Когда говорят о машинном обучении, обычно рассматривают его в контексте создания спам-фильтров, рекомендательных систем, распознавания текста, лиц и голоса. В данном докладе машинное обучение будет рассмотрено применительно к фармацевтике, а именно drug discovery. Доклад условно разделён на 3 части. В первой части Андрей на реальном примере рассмотрит реализацию и основные стадии пайплайна, который используется в drug discovery. Во второй части доклада применительно к C++ будут рассмотрены возможности, которые можно использовать для организации параллельных вычислений. В третьей части Андрей расскажет, как можно использовать распределённые вычисления для масштабирования существующего решения, когда нежелательно или невозможно поменять существующую кодовую базу.
AzovDevMeetup 2016 | Выстраивание процесса и применение Best Practices с нуля...JSC “Arcadia Inc”Представьте себе ситуацию: к вам приходит заказчик, у него уже есть продукт, и вам надо организовать процесс и создать соответствующую инфраструктуру так, чтобы сделать работу над продуктом максимально удобной и эффективной. Какие шаги были сделаны и почему, какие проблемы встретились и как были решены проектной командой в вышеописанной ситуации, к чему всё это привело на данный момент — об этом и будет рассказано в докладе.
AzovDevMeetup 2016 | Zero downtime — как релизить продукт миллионам пользоват...JSC “Arcadia Inc”Участвуя в разработке высоконагруженной системы, разработчики сталкиваются со множеством интересных задач, неактуальных для небольших проектов. К примеру, имея большое количество активных пользователей, не все могут позволить себе приостановить работу системы на время релиза новой версии, что делает жизнь разработчиков гораздо увлекательнее даже в относительно простых проектах. А что если система состоит из большого набора веб-приложений, сервисов, постоянно взаимодействующих друг с другом, имеет публичный API, и т.д.? В докладе Виктор покажет, как можно обновить приложение незаметно для пользователей, определит основные факторы, которые могут помешать релизу без остановки приложения, а также даст практические советы по реализации.
Автоматическое тестирование Web apiIgor LyubinСовременный мир ускоряется, и от тестирования требуется быстрые и стабильные тесты. В этом мастер-классе предлагается уйти от UI автоматизации и перейти на уровень ниже "пирамиды тестирования", на уровень WEB API. Не обещаю теорию, но будет много практических кейсов. В качестве примера я возьму популярный веб сайт с открытым API и покажу как за относительно небольшое время можно создавать хорошие тесты! Причем тесты мы будем создавать совместно, и особых навыков программирования от участников здесь не потребуется, достаточно включить логику и желание освоить что-то новое.
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...Mail.ru GroupАлексей рассказал, какие задачи и проблемы стояли перед командой в начале пути, какие технологии используются для автоматизации тестирования, какие проблемы при этом возникают и как решаются, а также поделится достигнутыми результатами.
Быстрое расширение Robot Framework под свои нужды с использованием Pythonautomated-testing.infoБыстрое расширение Robot Framework под свои нужды с использованием Python, Михаил Поляруш
Когда мы начинаем заниматься автоматизацией тестирования ПО, мы редко знаем и понимаем, что нам надо будет делать, а тем более, как это нужно реализовать. Потому, выбираем самые простые решения, которые иногда даже не подразумевают программирования. Вы считаете, что успешная автоматизация может быть без программирования? Я уверен, что НЕТ, и с уверенностью могу сказать, что процесс автоматизации с помощью python и RobotFramework может значительно упростить Вам жизнь. Убедитесь в том, что архитектура RobotFramework очень гибкая, а python – лучший друг автоматизатора. Вас ждет увлекательная теория и много практики в живую.
Автоматическое тестирование. Моя системаIgor LyubinВ этом докладе вы услышите историю о том, как можно построить процесс автоматизированного тестирования и непрерывной интеграции за короткий период времени. Мы поговорим о точках роста, развития и внедрения автоматизированного тестирования на уже существующем проекте. Вы узнаете, что с чего начинать автоматизированное тестирование и как выбрать "работающую" стратегию. После доклада вы захотите избавиться или значительно сократить ручное тестирование и ручной труд у себя на проекте. Вы откроете для себя целую систему, элементы который можно будет внедрять у себя, и которые будут работать.
Доклад будет интересен всем тестировщикам, разработчикам и менеджерам проектов.
Автоматизация тестирования: доступна каждому или удел избранных?SQALabДоклад Игоря Хрола на конференции SQA Days-17,
29-30 мая 2015 г., Минск
www.sqadays.com
Keyword driven testingautomated-testing.infoKeyword-driven testing, Геннадий Алпаев
Keyword-driven подход к автоматизации тестирования был описан в литературе более 10ти лет назад, однако в русскоязычных источниках по этой теме информации довольно мало. В докладе Геннадий расскажет о том, в чем заключается подход, когда применяется, его достоинства и недостатки, а также покажет пример практической реализации Keyword-driven подхода для простого тестируемого приложения с помощью TestComplete и SilkTest.
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...WrikeTechClubИлья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы думали, что всё хорошо, а оказалось, что можно лучше»
История HERE Maps for Windows: меняемся не изменяя качествуSQALabПрезентация Татьяны Смехновой на SQA Days-16
14-15 ноября 2014, Санкт-Петербург, Россия
www.sqadays.com
Badger — инструмент для мониторинга качества продуктовSQALabДоклад Ирины Шрейдер на конференции SQA Days-18, 27-28 ноября 2015 г., Москва www.sqadays.com
Проблемы автоматизации крупных проектов: TestCompleteautomated-testing.infoПроблемы автоматизации крупных проектов: TestComplete, Дмитрий Марков
Дмитрий в своем докладе рассмотрит следующие вопросы:
Инструмент TestComplete. В чем сила?
Чем отличается автоматизация мелкого, среднего, крупного проекта?
Нужно ли что-то дополнительно делать при автоматизации крупного проекта?
Ошибки на начальных стадиях автоматизации
Раз говорим об ошибках, то также поговорим о том, как можно построить все так, чтобы этих ошибок избежать
Практические набитые шишки автоматизатора
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...yaeventsАлександр Петренко, ИСП РАН
Профессор, доктор физико-математических наук, заведующий отделом технологий программирования Института системного программирования (ИСП РАН), профессор ВМК МГУ. Основные работы в областях: формализация требований, генерация тестов на основе формализованных требований и формальных моделей (model based testing – MBT). Приложения: тестирование операционных систем и распределенных систем, тестирование компиляторов, верификация дизайна микропроцессоров, формализация стандартов на API операционных систем и телекоммуникационных протоколов. Сопредседатель оргкомитетов International MBT workshop (http://www.mbrworkshop.org/), Spring Young Researcher Colloquium on Software Engineering – SYRCoSE (http://syrocose.ispras.ru), городского семинара по технологиям разработки и анализа программ ТРАП/SDAT (http://sdat.ispras.ru/).
Тема доклада
Модели в профессиональной инженерии и тестировании программ.
Тезисы
Model Based Software Engineering (MBSE) является расширением подхода к разработке программ на основе моделей. В MBSE в отличие, например, от MDA (Model Driver Architecture) существенное внимание уделяется не только задачам собственно проектирования и разработки кода, но и задачам других фаз жизненного цикла – анализу требований, верификации и валидации, управлению требованиями на всех фазах жизненного цикла. Model Based Testing (MBT) хронологически возник гораздо раньше, чем MBSE и MDA, однако его место в разработке программ в полной мере раскрылось вместе с развитием MBSE. По этой причине MBT и MBSE следует рассматривать в тесной связке. В докладе будут рассмотрены концепции MBSE-MDA-MBT, основные источники и виды моделей, которые используются в этих подходах, методы генерации тестов на основе моделей, известные инструменты для
Автоматизация тестирования: доступна каждому или удел избранных?SQALabДоклад Игоря Хрола на конференции SQA Days-17,
29-30 мая 2015 г., Минск
www.sqadays.com
Keyword driven testingautomated-testing.infoKeyword-driven testing, Геннадий Алпаев
Keyword-driven подход к автоматизации тестирования был описан в литературе более 10ти лет назад, однако в русскоязычных источниках по этой теме информации довольно мало. В докладе Геннадий расскажет о том, в чем заключается подход, когда применяется, его достоинства и недостатки, а также покажет пример практической реализации Keyword-driven подхода для простого тестируемого приложения с помощью TestComplete и SilkTest.
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...WrikeTechClubИлья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы думали, что всё хорошо, а оказалось, что можно лучше»
История HERE Maps for Windows: меняемся не изменяя качествуSQALabПрезентация Татьяны Смехновой на SQA Days-16
14-15 ноября 2014, Санкт-Петербург, Россия
www.sqadays.com
Badger — инструмент для мониторинга качества продуктовSQALabДоклад Ирины Шрейдер на конференции SQA Days-18, 27-28 ноября 2015 г., Москва www.sqadays.com
Проблемы автоматизации крупных проектов: TestCompleteautomated-testing.infoПроблемы автоматизации крупных проектов: TestComplete, Дмитрий Марков
Дмитрий в своем докладе рассмотрит следующие вопросы:
Инструмент TestComplete. В чем сила?
Чем отличается автоматизация мелкого, среднего, крупного проекта?
Нужно ли что-то дополнительно делать при автоматизации крупного проекта?
Ошибки на начальных стадиях автоматизации
Раз говорим об ошибках, то также поговорим о том, как можно построить все так, чтобы этих ошибок избежать
Практические набитые шишки автоматизатора
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...yaeventsАлександр Петренко, ИСП РАН
Профессор, доктор физико-математических наук, заведующий отделом технологий программирования Института системного программирования (ИСП РАН), профессор ВМК МГУ. Основные работы в областях: формализация требований, генерация тестов на основе формализованных требований и формальных моделей (model based testing – MBT). Приложения: тестирование операционных систем и распределенных систем, тестирование компиляторов, верификация дизайна микропроцессоров, формализация стандартов на API операционных систем и телекоммуникационных протоколов. Сопредседатель оргкомитетов International MBT workshop (http://www.mbrworkshop.org/), Spring Young Researcher Colloquium on Software Engineering – SYRCoSE (http://syrocose.ispras.ru), городского семинара по технологиям разработки и анализа программ ТРАП/SDAT (http://sdat.ispras.ru/).
Тема доклада
Модели в профессиональной инженерии и тестировании программ.
Тезисы
Model Based Software Engineering (MBSE) является расширением подхода к разработке программ на основе моделей. В MBSE в отличие, например, от MDA (Model Driver Architecture) существенное внимание уделяется не только задачам собственно проектирования и разработки кода, но и задачам других фаз жизненного цикла – анализу требований, верификации и валидации, управлению требованиями на всех фазах жизненного цикла. Model Based Testing (MBT) хронологически возник гораздо раньше, чем MBSE и MDA, однако его место в разработке программ в полной мере раскрылось вместе с развитием MBSE. По этой причине MBT и MBSE следует рассматривать в тесной связке. В докладе будут рассмотрены концепции MBSE-MDA-MBT, основные источники и виды моделей, которые используются в этих подходах, методы генерации тестов на основе моделей, известные инструменты для
Современный статический анализ кода: что умеет он, чего не умели линтерыcorehard_by Статический анализ появился почти 40 лет назад. В своём докладе мы хотим показать, чему за это время научились статические анализаторы. Мы рассмотрим различные методики анализа, как они появлялись и какие ошибки можно найти с помощью них. Посмотрим на примеры ошибок, найденных PVS-Studio в Open Source проектах. Поговорим о том, чем статический анализатор отличается от "линтеров" и некоторых других инструментов, а также какие проблемы решает современный статический анализатор C++ кода, помимо собственно анализа кода.
Павел Беликов
@PVS-Studio, Тула, Россия
Сверточные нейронные сетиIvan KavalerovОсновы машинного обучения, базовые понятия (например переобучение и способы его предотвращения), различные архитектуры сетей, и, в частности, сверточные сети. Так же рассмотрены методы оптимизации вычислений в подобных архитектурах: quantization, binary-net и другие.
Вебинар: Основы распараллеливания С++ программ при помощи OpenMPFlyElephant Презентация с первого технического вебинара FlyElephant, на котором были рассмотрены основы распараллеливания С/С++ программ при помощи OpenMP и рассказано о функционале FlyElephant.
Видео презентации: https://youtu.be/X1bqBPnJaHM
Сайт FlyElephant: http://flyelephant.net/
ПРОГРАММА БЕТА-ТЕСТИРОВАНИЯ FLYELEPHANT: http://flyelephant.net/beta/
08.11 SEMPRO Club - Влад Моргун - Цвет настроения серыйVladislav MorgunSEO Team-lead в ЛУН & Flatfy. Куратор курса «Product SEO» в Projector. SEO-консультант
Серое SEO - баланс во вселенной.
Сын маминой подруги автоматизирует процессы. А вы?
Продвижение по белому, где все по чёрному.
Что делать, чтобы Google не укусил за бочок?
Как вам такое?
8-го ноября на Sempro.Club мы посмотрим на Google, как на продукт и узнаем как создать синергию между поиском и Вашим проектом. Обсудим цели и ограничения поисковых систем. Вектор их развития. Рассмотрим примеры поисковой оптимизации направленной на продукт и пользователя с использованием "серых" техник. Поделимся наработками по автоматизации процессов.
У нас в гостях Владислав Моргун SEO Team-lead в ЛУН & Flatfy. Вы знаете еще кого-то, кто имеет опыт продвижения долгосрочных белых проектов на 37+ стран?
Мероприятие Must know для SEO-специалистов, которые работают в продуктовых компаниях. Junior/Middle SEO.
Машинное обучение в электронной коммерции - практика использования и подводны...OnticoРИТ++ 2017, секция ML + IoT + ИБ
Зал Белу-Оризонти, 5 июня, 16:00
Тезисы:
http://ritfest.ru/2017/abstracts/2532.html
Простыми словами расскажем о популярных, эффективных и используемых в нашей компании техниках применения машинного обучения для привлечения и удержания клиентов:
- кластеризации товарного каталога,
- классификации клиентов (готовых перейти на платный тариф, готовых уйти, способных принести прибыль),
- повышении релевантности e-mail-рассылок.
Особое внимание уделим технике использования популярных платформ и библиотек:
- Apache Spark,
- Spark MLlib,
- Hadoop,
- Amazon Kinesns.
Отдельно остановимся на особенностях обработки "больших данных", выборе и разработке параллельных алгоритмов.
Вебинар "Проекты зеленых поясов. Причины неудач и секреты успеха"SixSigmaOnlineСлайды открытого вебинара "Проекты зеленых поясов. Причины неудач и секреты успеха", который проходил 30 октября 2013 - http://sixsigmaonline.ru/load/16-1-0-425
Содержание вебинара:
Кто такой зеленый пояс?
Что есть проект зеленого пояса?
Что такое DMAIC?
Где посмотреть примеры?
Как выбрать проект?
Как совместить учебу и проект?
5 секретов зеленого пояса
5 ошибок зеленого пояса
Советы соискателям
Тренинги зеленых поясов (описание и сравнение)
Программа обучения
Роль TestOps: расширяем традиционные обязанности тестировщикаSQALabДоклад Александра Неделяева на конференции SQA Days-17,
29-30 мая 2015 г., Минск
www.sqadays.com
Outsourcing of Software Development — MythsJSC “Arcadia Inc”A workshop by Oksana Uvarova and Dmitri Adov at e-Assessment Question 2017 (http://www.e-assessment-question.com/).
There are a number of myths related to software development outsourcing – some of them might be true, some – not.
In this workshop, Oksana Uvarova, Delivery Director in Arcadia, and Dmitri Adov, our Technical Director, discuss with the audience where outsourcing fits and where not; how to manage outsourcing partnership and what to expect from this type of cooperation.
AzovDevMeetup 2016 | Сертификация ISTQB для QA инженера | Артём КравченкоJSC “Arcadia Inc”С каждым годом в тестирование приходит всё больше специалистов с различными уровнями подготовки. И чем дольше мы занимаемся тестированием, тем больше нам хочется структурировать/систематизировать свои знания по единому стандарту. Общий язык помогает выработать международная сертификация ISTQB. В своём докладе Артём расскажет, что она из себя представляет и какие выгоды даёт, а также каковы правила прохождения экзамена и как подготовиться к нему.
AzovDevMeetup 2016 | Основы Agile Project Management или Прощай, менеджер про...JSC “Arcadia Inc”Принципы Agile и практические методики их применения сегодня у всех на слуху. В докладе Андрей рассмотрит аспекты теории и практики, предлагаемые консорциумом ICAgile для проектных менеджеров на сертификации Agile Project Management.
AzovDevMeetup 2016 | Angular 2: обзор | Александр ШевнинJSC “Arcadia Inc”Angular 2 очень сильно изменился по сравнению с первой версией. В этом докладе Александр расскажет об общей архитектуре нового фреймворка, о dependency injection, о взаимодействии компонентов, маршрутизации, о компиляторе, а также о подходах к развёртыванию приложений.
AzovDevMeetup 2016 | HBase и Phoenix в качестве основы ETL-приложения на Node...JSC “Arcadia Inc”В докладе Николай рассмотрит архитектуру распределённой NoSQL базы данных Apache HBase и интерфейс к ней Apache Phoenix. Кроме того, Николай поделится опытом использования этих инструментов в реальном проекте, расскажет о набитых шишках и даст практические рекомендации.
Quality Practices in e-Assessment DevelopmentJSC “Arcadia Inc”The document outlines Arcadia Inc.'s software development process for e-assessment projects. It details the phases of design, implementation, testing and deployment. It also describes Arcadia's emphasis on quality practices like security testing, automation and infrastructure. For testing in Scrum, it explains the regular sprint process and regression testing before release. Key roles in testing include the QA manager, release manager and the team.
2015-12-12 | AzovDevMeetup 2015 | Мобильная разработка: Native, Hybrid, Cross...JSC “Arcadia Inc”В настоящее время существуют три подхода к мобильной разработке: 1. Native, 2. Hybrid, 3. Cross-platform. У каждого из них есть свои плюсы и недостатки, поэтому в ситуации, когда есть возможность выбора или есть возможность оказать влияние на выбор заказчика проекта, необходим аргументированный подход.
В докладе будут рассмотрены основные решения, представленные на рынке в настоящее время (в т.ч. Xamarin 4 и ReactNative), а также даны рекомендации по выбору оптимального подхода в зависимости от особенностей проекта.
Автор доклада: Виктор Котов — iOS разработчик, компания Аркадия. В ИТ-индустрии более 20 лет, начинал с разработки специализированной САПР, работал менеджером проектов, последние пять лет занимается мобильной разработкой (бизнес-приложения, social networking).
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел КрынецкийJSC “Arcadia Inc”Краткий экскурс в историю развития PHP как языка программирования с момента зарождения и до наших дней, попытка проследить расширение сферы применения языка и выявить причины, этому способствовавшие, обзор возможностей современного PHP как языка программирования и как стэка технологий для создания мощных программных решений корпоративного уровня.
Доклад будет интересен как начинающим программистам, так и разработчикам с опытом, ещё не освоившим PHP.
Автор доклада: Павел Крынецкий — PHP/Java разработчик, компания Аркадия. Участвовал в разработке веб-проектов корпоративного сектора различной сложности для как для российских, так и зарубежных заказчиков. Профессиональный опыт в IT-индустрии > 7 лет.
3. Задачи машинного обучения
• Предсказание различных величин, событий
• Спам фильтры, классификация текстов
• Распознование текста, лиц, голоса
• Рекомендательные системы
3
4. Что рассмотрим
• Машинное обучение в Drug Discovery
• Терминология и задачи
• Подготовка данных
• Получение модели
• Выбор модели
• Улучшение модели
• Оценка модели
• Параллелизация применительно к C++
• Библиотеки для параллелизации
• Распределённые вычисления
• Выбор фреймворка для распределённых вычислений
• Выбор файловая системы
• Drug Discovery Pipeline - обобщение
4
5. Drug discovery - Основные задачи
• Для заданных химических соединений (compound) –
предсказать насколько сильно они будут связываться с
биологической целью (target), вызывая при этом её
желаемое изменение.
• Химическое соединение – энзим ингибитор (лиганд)
• Биологическая цель – протеин (энзим)
• Желаемое изменение – представлено активностью
биологической цели, выражаемой метрикой IC50.
• IC50 – концентрация полумаксимального
ингибирования.
5
6. Phenotypic screening, Inhibition
• Phenotypic screening – процесс поиска соединений которые изменяют поведение
клетки или организма.
• Ингибитор –ингибитор это молекула, которая связывается с протеином и изменяет
его активность. Блокирование активности может уничтожить патоген.
Многие лекарства являются ингибиторами протеинов.
• Specificity – свойство ингибитора, определяющее его слабую связываемость с
другими протеинами.
• Potency – свойство ингибитора, определяющее концентрацию, необходимую для
блокирования активности протеина.
Лекарства с высокими показателями имеют меньше побочных эффектов.
6
Benzocaine
7. Drug discovery – Фазы разработки
7
Clinical trials
• Phase 0
• Phase I
• Phase II
• Phase III
• Phase IV
Preclinical
• In vitro (cell line)
• In vivo (animal)
Virtual
• In silico
Compound
Collection
Lead Compound
Back-up compounds
Computer-Aided Drug Design (CADD) High-throughput screening (HTS)
Source: www.ddw-online.com
9. Машинное обучение – термины
• Машинное обучение – научная дисциплина, которая
создаёт и изучает алгоритмы, способные обучаться на
данных.
• Такие алгоритмы оперируют посредством построения
моделей (model), основанных на входных данных
(input). Модели используются для дальнейшего
предсказания и принятия решений.
9
10. Машинное обучение - обозначения
• x(i) – используется для обозначения входных переменных
(features) – вектор характеристик.
• y(i) – используется для обозначения тренировочных данных
(target).
• (x(i),y(i)) – используется для обозначения тренировочной пары
(training example).
• Список в m training examples и n features и называется training set.
10
Compounds
Fingerprints
Compounds
Activities
Protein
X Y
11. Определение x(i) – compound id
• Входные данные представлены химическими соединениями (compound).
• Необходимо предсказать активность, основываясь на структуре соединения.
• Соединение идентифицируется посредством InChl Key
11
Ketoconazole
InChl key: XMAYWYJOQHXEEK-ZEQKJWHPSA-N
Cytochrome
uniprot: P450/P15149
Image source: de.wikipedia.org
License: CC BY-SA 2.0 de
12. Определение x(i) - fingerprint
• Характеристики соединения (features) получаются посредством расчёта
специального отпечатка (fingerprint).
• Химическое соединение разбивается на паттерны, которые хэшируются.
• Существует множество алгоритмов: MACCS, ECFP, LINGO, AP, MNA итд
• Основные библиотеки: JCompoundMapper, CDK, RDKit, GraphSim TK, Open Babel.
12
13. Определение y(i) – activity
• Входные данные это триплет: inchlkey : activity_pvalue : target_uniprot_ac.
• Задаётся пороговое значение для IC50 – округлённое значение концентрации.
• Данные разбиваются на 2 класса – active и inactive.
• Затем данные фильтруются (balancing), семплируются (sampling) и разбиваются
на группы (cross validation).
13
Concentration level = 6
inchlkey IC50 target activity
compound id 1 6.43 P15149 active
compound id 2 6.14 P15149 active
compound id 3 5.97 P15149 inactive
compound id 4 6.27 P15149 active
Fold 1
Fold 2
14. Получение модели и предсказания
Train
Algorithm
Compounds
Fingerprints
X
Train
Compounds
Activities
Protein
Y
14
14
Fingerprints
Weights
Protein
Model
Y Prediction
Algorithm
Compounds
Class/Probability
Protein
Prediction
𝒀
Compounds
Fingerprints
X
Test
14
Fingerprints
Weights
Protein
Model
Y
15. Объединение результатов
• Нормализация – Platt Scaling
• Объединение – mean, geometric mean, max probability итд
15
Compounds
Class/Probability
Protein
Prediction
𝒀
Compounds
Class/Probability
Protein
Prediction
Fused
𝒀
16. Выбор лучшей модели
• При выборе модели обычно говорят о таких проблемах как:
• Недообучение (Underfitting)
• Переобучение (Overfitting)
• Увеличение количества характеристик
• Увеличение объёма тренировочных данных
16
17. Поиск недостатка модели
• Перед решением необходимо найти недостаток модели:
• High bias/Low Variance – Недообучение
• Low bias/High Variance – Переобучение
• Для поиска недостатка используются такие вещи как:
• Кривые обучения (Learning Curves)
• Перекрёстная проверка (Cross validation)
• Cross validation
• K-fold cross validation
• K-fold nested cross validation
17
18. High Bias vs High Variance
18
Derivative of: http://www.astroml.org/sklearn_tutorial/practical.html
19. High Bias vs High Variance
• High Bias/Low Variance
• Добавление новых характеристик
• Увеличение объёма тренировочных данных
• Low Bias/High variance
• Увеличение объёма тренировочных данных
• Уменьшение количества характеристик
• Feature selection (Fisher score, Relief)
• Dimension reduction (PCA)
• Добавление новых характеристик
19
20. Оценка качества модели
• Когда необходимо оценить качество модели, говорят о парах:
• Precision vs Recall
• Recall vs Fall-out
20
Predicted condition
Predicted condition positive Predicted condition negative
True condition Condition
positive
True Positive (TP) False Negative (FN)
Condition
negative
False Positive (FP) True Negative (TN)
Confusion matrix
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 =
𝑇𝑃
𝑇𝑃 + 𝐹𝑃
𝑅𝑒𝑐𝑎𝑙𝑙 =
𝑇𝑃
𝑇𝑃 + 𝐹𝑁
𝐹𝑃𝑅 =
𝐹𝑃
𝐹𝑃 + 𝑇𝑁
0 ≤ ℎ 𝜃(𝑥) ≤ 1
1 if ℎ 𝜃(𝑥) ≥ threshold
0 if ℎ 𝜃(𝑥) < threshold
21. Precision vs Recall
21
Derivative of: http://stackoverflow.com/questions/33294574/good-roc-curve-but-poor-precision-recall-curve
License: cc by-sa 3.0
22. Recall vs Fall-out (ROC AUC)
22
Derivative of: http://stackoverflow.com/questions/33294574/good-roc-curve-but-poor-precision-recall-curve
License: cc by-sa 3.0
23. AUC density plot
• Сравнение разных алгоритмов
• Сравнение одного алгоритма
с разными параметрами
23
24. Подводя итоги - объём вычислений
• Подготовка входных данных
• Генерация отпечатков: ECFP, AP, etc (5)
• Разбиение на уровни концентрации (5)
• Семплинг (10)
• Фолдинг: k-fold nested CV (5)
• Выборка фичей: Fisher Score, Relief, etc (5)
• Тренировка моделей: LR, SVM (p) (2000)
• Предсказание: LR, SVM, Naive Bayes, etc (5)
• Объединение моделей: Platt Scaling, etc
• Оценка результатов: ROC-AUC, etc
• 5 * 5 * 10 * 5 * 5 * 2000 = 12500000 раз – 145 дней (4,03/2,01) - один метод
• 145 * 5 = 725 дней (20,13/10,07) – все методы
Scaling Machine Learning for Target Prediction in Drug Discovery using Apache Spark - Proceedings of the
15th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing: Workshop on Clusters,
Clouds and Grids for Life Sciences. IEEE, 2015. p. 871-879.
24
Image source: http://www.intel.com/
25. Tox 21 Challenge
• Программа Tox21 – проводится совместно с NIH, EPA, FDA и нацелена на
разработку и улучшение методов оценки токсичности.
• Главная цель Tox21 Challenge – быстрое и эффективное тестирование заданного
химического соединения. Необходимо проверить, может ли оно нарушать
процессы в теле человека, что может привести к побочным эффектам.
25
27. Параллелизация в C++
• Intel Cilk™
• cilk_spawn, cilk_sync, cilk_for
• Никакой свободы – всё делает оптимизатор из коробки
• Opens-source: cilkplus (gcc), cilk (llvm/clang) – Linux
• Commercial (free licence) : Intel Parallel Studio XE suites – Windows, Linux
• Open MP
• Набор различных #pragma директив
• #pragma omp parallel
• #pragma omp parallel for
• #pragma omp barrier
• Никакой компиляции и sanity checks
• Compiler specific – может не поддерживаться компилятором
• TBB
• Open-source
• Generic C++ template library – полный контроль
• parallel_for , parallel_do, parallel_reduce
• parallel_pipeline, make_filter, operator&
• concurrent_vector, concurrent_hash_map, concurrent_queue
• mutexes, atomic operations, memory allocators
27
28. Распределённые вычисления -
выбор фреймворка
• Hadoop
• MapReduce – Java
• Python, R (stdin/stdout Streaming API)
• Нет кэширования в памяти – постоянная нагрузка на сеть
• Batch processing
• Есть файловая система - HDFS
• Spark
• Java, Python, Scala Jobs
• Кэширование в памяти
• Итеративные алгоритмы (машинное обучение)
• Нет файловой системы – можно использовать HDFS и подобные
28
31. Что даёт Posix Compliance
31
HDFSlocal localRaw data Result
Write Copy Copy Read
Traditional applications Traditional applications
Posix
Compliant
Raw data Result
Direct Write Direct Read
Hadoop jobs
32. Drug Discovery Framework
• R
• подготовка окружения
• генерация json файлов c константными параметрами
• system.cmd -> spark-submit
• Scala
• Инициализация RDD с различными предикторами
• Перебор изменяющихся параметров
• scala.sys.process.Process -> запуск С++ приложений
• C++
• Target Generation
• Train
• Predict
• Fusion
• ROC-AUC
• R
• Агрегация результатов
• Генерирование отчётов
32
R scripts
Scala job
C++
binaries
R scripts
system.cmd
spark-submit
Scala.sys.process.
Process