Машинное обучение в Drug
Discovery
Андрей Гедич, Аркадия
Обо мне
2
Андрей Гедич
Аркадия
andrey.gedich@arcadia.spb.ru
В Аркадии с 2010 года, последние 5 лет работаю,
главным образом, с C++, Machine Learning, Scala,
Apache Spark
Задачи машинного обучения
• Предсказание различных величин, событий
• Спам фильтры, классификация текстов
• Распознование текста, лиц, голоса
• Рекомендательные системы
3
Что рассмотрим
• Машинное обучение в Drug Discovery
• Терминология и задачи
• Подготовка данных
• Получение модели
• Выбор модели
• Улучшение модели
• Оценка модели
• Параллелизация применительно к C++
• Библиотеки для параллелизации
• Распределённые вычисления
• Выбор фреймворка для распределённых вычислений
• Выбор файловая системы
• Drug Discovery Pipeline - обобщение
4
Drug discovery - Основные задачи
• Для заданных химических соединений (compound) –
предсказать насколько сильно они будут связываться с
биологической целью (target), вызывая при этом её
желаемое изменение.
• Химическое соединение – энзим ингибитор (лиганд)
• Биологическая цель – протеин (энзим)
• Желаемое изменение – представлено активностью
биологической цели, выражаемой метрикой IC50.
• IC50 – концентрация полумаксимального
ингибирования.
5
Phenotypic screening, Inhibition
• Phenotypic screening – процесс поиска соединений которые изменяют поведение
клетки или организма.
• Ингибитор –ингибитор это молекула, которая связывается с протеином и изменяет
его активность. Блокирование активности может уничтожить патоген.
Многие лекарства являются ингибиторами протеинов.
• Specificity – свойство ингибитора, определяющее его слабую связываемость с
другими протеинами.
• Potency – свойство ингибитора, определяющее концентрацию, необходимую для
блокирования активности протеина.
Лекарства с высокими показателями имеют меньше побочных эффектов.
6
Benzocaine
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
Кривая доза-эффект
8
Машинное обучение – термины
• Машинное обучение – научная дисциплина, которая
создаёт и изучает алгоритмы, способные обучаться на
данных.
• Такие алгоритмы оперируют посредством построения
моделей (model), основанных на входных данных
(input). Модели используются для дальнейшего
предсказания и принятия решений.
9
Машинное обучение - обозначения
• 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
Определение 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
Определение x(i) - fingerprint
• Характеристики соединения (features) получаются посредством расчёта
специального отпечатка (fingerprint).
• Химическое соединение разбивается на паттерны, которые хэшируются.
• Существует множество алгоритмов: MACCS, ECFP, LINGO, AP, MNA итд
• Основные библиотеки: JCompoundMapper, CDK, RDKit, GraphSim TK, Open Babel.
12
Определение 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
Получение модели и предсказания
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
Объединение результатов
• Нормализация – Platt Scaling
• Объединение – mean, geometric mean, max probability итд
15
Compounds
Class/Probability
Protein
Prediction
෡𝒀
Compounds
Class/Probability
Protein
Prediction
Fused
෡𝒀
Выбор лучшей модели
• При выборе модели обычно говорят о таких проблемах как:
• Недообучение (Underfitting)
• Переобучение (Overfitting)
• Увеличение количества характеристик
• Увеличение объёма тренировочных данных
16
Поиск недостатка модели
• Перед решением необходимо найти недостаток модели:
• High bias/Low Variance – Недообучение
• Low bias/High Variance – Переобучение
• Для поиска недостатка используются такие вещи как:
• Кривые обучения (Learning Curves)
• Перекрёстная проверка (Cross validation)
• Cross validation
• K-fold cross validation
• K-fold nested cross validation
17
High Bias vs High Variance
18
Derivative of: http://www.astroml.org/sklearn_tutorial/practical.html
High Bias vs High Variance
• High Bias/Low Variance
• Добавление новых характеристик
• Увеличение объёма тренировочных данных
• Low Bias/High variance
• Увеличение объёма тренировочных данных
• Уменьшение количества характеристик
• Feature selection (Fisher score, Relief)
• Dimension reduction (PCA)
• Добавление новых характеристик
19
Оценка качества модели
• Когда необходимо оценить качество модели, говорят о парах:
• 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
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
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
AUC density plot
• Сравнение разных алгоритмов
• Сравнение одного алгоритма
с разными параметрами
23
Подводя итоги - объём вычислений
• Подготовка входных данных
• Генерация отпечатков: 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/
Tox 21 Challenge
• Программа Tox21 – проводится совместно с NIH, EPA, FDA и нацелена на
разработку и улучшение методов оценки токсичности.
• Главная цель Tox21 Challenge – быстрое и эффективное тестирование заданного
химического соединения. Необходимо проверить, может ли оно нарушать
процессы в теле человека, что может привести к побочным эффектам.
25
Параллелизация в С++
• Native threads
• Windows threads / pthreads
• Cross-platform threads
• Boost threads
• MPI parallel computing
• Open MPI
• Intel MPI
• Boost MPI
• Parallelization libraries
• Intel Cilk
• Open MP
• TBB
26
Параллелизация в 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
Распределённые вычисления -
выбор фреймворка
• Hadoop
• MapReduce – Java
• Python, R (stdin/stdout Streaming API)
• Нет кэширования в памяти – постоянная нагрузка на сеть
• Batch processing
• Есть файловая система - HDFS
• Spark
• Java, Python, Scala Jobs
• Кэширование в памяти
• Итеративные алгоритмы (машинное обучение)
• Нет файловой системы – можно использовать HDFS и подобные
28
Какую файловую систему выбрать
• Posix Compliance
• Parallel/Distributed
• Open-source
• Spark Integration
29
Какую файловую систему выбрать
• Parallel
• IBM GPFS
• Lustre
• Distributed
• Gluster FS
• Ceph FS
30
• Posix Compliant
• IBM GPFS
• Lustre
• Gluster FS
• Ceph FS
• Non Posix Compliant
• HDFS
• Orange FS
• Grid Gain
• Quantcast FS
• Open-source
• Gluster FS
• Ceph FS
• Spark integration
• Gluster FS
• Ceph FS
Что даёт 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
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
Q & A

More Related Content

PDF
AzovDevMeetup 2016 | Выстраивание процесса и применение Best Practices с нуля...
PDF
AzovDevMeetup 2016 | Zero downtime — как релизить продукт миллионам пользоват...
PPTX
Автоматическое тестирование Web api
PDF
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
PDF
Быстрое расширение Robot Framework под свои нужды с использованием Python
PDF
Автоматическое тестирование. Моя система
PDF
Grail: шаги для ваших Python-тестов
PDF
Скажи мне правду, Scrum, когда тестировать нам?
AzovDevMeetup 2016 | Выстраивание процесса и применение Best Practices с нуля...
AzovDevMeetup 2016 | Zero downtime — как релизить продукт миллионам пользоват...
Автоматическое тестирование Web api
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Быстрое расширение Robot Framework под свои нужды с использованием Python
Автоматическое тестирование. Моя система
Grail: шаги для ваших Python-тестов
Скажи мне правду, Scrum, когда тестировать нам?

What's hot (20)

PPTX
Павел Беликов, Опыт мигрирования крупного проекта с Windows-only на Linux
PPTX
Тестируем производительность с помощью Selenium
PPTX
Автоматизация тестирования: доступна каждому или удел избранных?
PPTX
Наталья Медведева - Тестировщик на все руки в Scrum-команде
PPTX
Как не налететь на рифы в море преимуществ Scrum: организация и оптимизация т...
PDF
Экономически эффективный процесс тестирования
PDF
Keyword driven testing
PDF
UICov - инструмент анализа покрытия UI-тестами
PPTX
Cовременный контроль качества: давай сделаем это по-быстрому...
PDF
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
PPTX
Web driver история одной миграции
PPSX
История HERE Maps for Windows: меняемся не изменяя качеству
PDF
Тестировщик в Agile - кто он?
PDF
Grail - CodeFest'2015
PPTX
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙ
PDF
Как Cluster Membership Software может помочь QA
ODP
The fast and the continuous
PDF
Архитектура автоматизированных тестов
PDF
Badger — инструмент для мониторинга качества продуктов
PDF
Проблемы автоматизации крупных проектов: TestComplete
Павел Беликов, Опыт мигрирования крупного проекта с Windows-only на Linux
Тестируем производительность с помощью Selenium
Автоматизация тестирования: доступна каждому или удел избранных?
Наталья Медведева - Тестировщик на все руки в Scrum-команде
Как не налететь на рифы в море преимуществ Scrum: организация и оптимизация т...
Экономически эффективный процесс тестирования
Keyword driven testing
UICov - инструмент анализа покрытия UI-тестами
Cовременный контроль качества: давай сделаем это по-быстрому...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Web driver история одной миграции
История HERE Maps for Windows: меняемся не изменяя качеству
Тестировщик в Agile - кто он?
Grail - CodeFest'2015
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙ
Как Cluster Membership Software может помочь QA
The fast and the continuous
Архитектура автоматизированных тестов
Badger — инструмент для мониторинга качества продуктов
Проблемы автоматизации крупных проектов: TestComplete
Ad

Similar to AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисления в drug discovery | Андрей Гедич (20)

PDF
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
PDF
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
PDF
Yurii Gavrilin | ML Interpretability: From A to Z | Kazan ODSC Meetup
PDF
Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"
PPTX
TMPA-2013 Petrenko Pakulin: Technical Solutions and Non-Technical Challenges ...
PPTX
Современный статический анализ кода: что умеет он, чего не умели линтеры
PPTX
Python-for-Data-Analysis, Pandas, Numpy,Seaborn
PPT
Автоматизация тестирования как способ получения знаний
PDF
Сверточные нейронные сети
PPTX
Java Ahead-Of-Time compilation
PDF
Вебинар: Основы распараллеливания С++ программ при помощи OpenMP
PDF
08.11 SEMPRO Club - Влад Моргун - Цвет настроения серый
PDF
9.1 resource analysis.templ
PDF
Тестирование весна 2013 лекция 2
PDF
Машинное обучение в электронной коммерции - практика использования и подводны...
PDF
Вебинар "Проекты зеленых поясов. Причины неудач и секреты успеха"
PDF
машинное обучение и анализ данных
PPTX
Машинное обучение
PDF
BigData и Data Science: методы и инструменты
PPTX
Роль TestOps: расширяем традиционные обязанности тестировщика
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
Yurii Gavrilin | ML Interpretability: From A to Z | Kazan ODSC Meetup
Лекция №1. Введение. Предмет "Структуры и алгоритмы обработки данных"
TMPA-2013 Petrenko Pakulin: Technical Solutions and Non-Technical Challenges ...
Современный статический анализ кода: что умеет он, чего не умели линтеры
Python-for-Data-Analysis, Pandas, Numpy,Seaborn
Автоматизация тестирования как способ получения знаний
Сверточные нейронные сети
Java Ahead-Of-Time compilation
Вебинар: Основы распараллеливания С++ программ при помощи OpenMP
08.11 SEMPRO Club - Влад Моргун - Цвет настроения серый
9.1 resource analysis.templ
Тестирование весна 2013 лекция 2
Машинное обучение в электронной коммерции - практика использования и подводны...
Вебинар "Проекты зеленых поясов. Причины неудач и секреты успеха"
машинное обучение и анализ данных
Машинное обучение
BigData и Data Science: методы и инструменты
Роль TestOps: расширяем традиционные обязанности тестировщика
Ad

More from JSC “Arcadia Inc” (8)

PDF
Outsourcing of Software Development — Myths
PDF
AzovDevMeetup 2016 | Сертификация ISTQB для QA инженера | Артём Кравченко
PDF
AzovDevMeetup 2016 | Основы Agile Project Management или Прощай, менеджер про...
PDF
AzovDevMeetup 2016 | Angular 2: обзор | Александр Шевнин
PDF
AzovDevMeetup 2016 | HBase и Phoenix в качестве основы ETL-приложения на Node...
PPTX
Quality Practices in e-Assessment Development
PPTX
2015-12-12 | AzovDevMeetup 2015 | Мобильная разработка: Native, Hybrid, Cross...
PPTX
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
Outsourcing of Software Development — Myths
AzovDevMeetup 2016 | Сертификация ISTQB для QA инженера | Артём Кравченко
AzovDevMeetup 2016 | Основы Agile Project Management или Прощай, менеджер про...
AzovDevMeetup 2016 | Angular 2: обзор | Александр Шевнин
AzovDevMeetup 2016 | HBase и Phoenix в качестве основы ETL-приложения на Node...
Quality Practices in e-Assessment Development
2015-12-12 | AzovDevMeetup 2015 | Мобильная разработка: Native, Hybrid, Cross...
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий

AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисления в drug discovery | Андрей Гедич

  • 1. Машинное обучение в Drug Discovery Андрей Гедич, Аркадия
  • 2. Обо мне 2 Андрей Гедич Аркадия [email protected] В Аркадии с 2010 года, последние 5 лет работаю, главным образом, с C++, Machine Learning, Scala, Apache Spark
  • 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
  • 26. Параллелизация в С++ • Native threads • Windows threads / pthreads • Cross-platform threads • Boost threads • MPI parallel computing • Open MPI • Intel MPI • Boost MPI • Parallelization libraries • Intel Cilk • Open MP • TBB 26
  • 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
  • 29. Какую файловую систему выбрать • Posix Compliance • Parallel/Distributed • Open-source • Spark Integration 29
  • 30. Какую файловую систему выбрать • Parallel • IBM GPFS • Lustre • Distributed • Gluster FS • Ceph FS 30 • Posix Compliant • IBM GPFS • Lustre • Gluster FS • Ceph FS • Non Posix Compliant • HDFS • Orange FS • Grid Gain • Quantcast FS • Open-source • Gluster FS • Ceph FS • Spark integration • Gluster FS • Ceph FS
  • 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
  • 33. Q & A