Использование генеративных нейросетей для моделирования взаимодействия молекул иммунной системы

Исследование возможностей современных нейросетевых подходов к решению некоторых проблем в сфере иммунологии. Основные современные нейросетевые генеративные подходы, методы их обучения. Создание нейросетевой модели на языке программирования Python.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 01.12.2019
Размер файла 2,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Выпускная работа

Использование генеративных нейросетей для моделирования взаимодействия молекул иммунной системы

(Информатика и вычислительная техника)

Иванов Алексей Анатольевич

АННОТАЦИЯ

Последние 5 лет компьютерные технологии в области машинного обучения претерпели существенный скачек в развитии и распространили свое влияние на многие области различных прикладных наук. Настоящий проект является попыткой раскрыть возможности современных нейросетевых подходов к решению некоторых проблем в сфере иммунологии. В данном проекте будут рассмотрены основные современные нейросетевые генеративные подходы, методы их обучения. Также будет рассмотрена возможность встраивания модуля Attention и seq2seq методов в генеративные модели. Итогом работы является нейросетевая модель на языке программирования Python с использованием современного фреймворка для глубинного обучения PyTorch, ее тестирование и сравнение с аналогами.

ABSTRACT

In the last 5 years, computer technologies in the field of machine learning have undergone a significant leap in development and spread their influence in many areas of various applied sciences. This project is an attempt to uncover the possibilities of modern neural network approaches to solving some problems in the field of immunology. The basic modern neural network generative approaches, methods of their training will be considered. The possibilities of embedding the Attention module and seq2seq methods in the generative models will also be considered. The result of the work is a neural network model in the Python programming language using a modern framework for deep learning PyTorch, testing and comparison with analogs.

СОДЕРЖАНИЕ

Введение

1. Обзор и анализ предметной области

1.1 Предобработка (PMBEC)

1.2 NetMHCpan

1.3 Autoencoders (Автокодировщики)

1.4 Seq2Seq

1.5 GAN (Generative Adversarial Network - Генеративные-состязательные сети)

1.6 AAE (Adversarial Auto Encoders)

1.7 Attention

1.8 Обоснование выбора программных средств и фреймворков

1.9 Цели и задачи в проекте

2. Описание решения поставленной задачи

2.1 Предобработка данных

2.2 Реализация генеративной нейронной сети

3. Результаты

Заключение

Список использованной работы

ВВЕДЕНИЕ

В настоящее время алгоритмы машинного обучения оказывают свое влияние почти на все сферы человеческой деятельности, начиная от автоматизации процессов на заводе до научных исследований в самых разных направлениях, включая иммунологию. Основным преимуществом машинного обучения является нахождение скрытых зависимостей в данных, позволяющее предсказывать некоторую величину. Скрытые закономерности очень трудно заметить даже квалифицированным экспертам, и в этом алгоритмы машинного обучения могут помочь. Также, используя машинное обучение, можно обрабатывать большие объемы данных без ошибок со стороны человека. Цитотоксичные-Т клетки играют важную роль в иммунном ответе человека, распознавая на поверхности клетки молекулы MHC (major histocompatibility complex, русск. ГКГС - главный комплекс гистосовместимости). Связывание пептидов с молекулами MHC является одним из основных путей презентации антигена, что способствовало увеличению интереса к предсказанию связывания пептидов с молекулами MHC. Также в последнее время растет число пептидов, представленных MHC с помощью масс-спектрометрии. Все это позволяет использовать современные методы машинного обучения, такие как нейронные сети, в предсказании связывания пептидов с молекулами MHC. Предсказывание связывания пептидов с молекулами MHC. Предсказывание связывания пептидов с молекулами MHC может помочь при создании вакцин и борьбы с раковыми клетками. Может помочь в понимании иммунной системы не только человека, но и других живых организмов. В попытках предсказать связывание пептидов будет использоваться генеративная сеть.

1. ОБЗОР И АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ

В данном разделе будет описываться решения, которые будут использоваться в дальнейшей работе.

1.1 Предобработка (PMBEC)

Для количественной оценки того, насколько сходны две аминокислоты aa и aa' в контексте пептида используется следующие формулы [1] (рис. 1):

Формулы подсчета корреляции.

В формулах, Eaa и Eaa' представляют собой средние значения в терминах IC50 по всем позициям и молекулам MHC для аминокислот aa и aa' соответственно. Значения ковариации аминокислот определяют матрицу ковариации пептид - MHC ковариационную энергию связи (Peptide:MHC Binding Energy Covariance - PMBEC). Положительная ковариация между двумя остатками указывает на то, что в среднем они вносят одинаковый вклад в связывание свободной энергии в различных средах. И наоборот, отрицательная ковариация указывает на то, что, когда один остаток способствует благоприятному связыванию, другой вносит неблагоприятный вклад. На рис. 1 показана матрица PMBEC, которая является симметричной и имеет размеры 20Ч20. 20 - количество основных аминокислот: Глицин (Gly, G), Лейцин (Leu, L), Тирозин (Tyr, Y), Серин (Ser, S), Глутаминовая кислота (Glu, E), Глутамин (Gln, Q), Аспарагиновая кислота (Asp, D), Аспарагин (Asn, N), Фенилаланин (Phe, F), Аланин (Ala, A), Лизин (Lys, K), Аргинин (Arg, R), Гистидин (His, H), Цистеин (Cys, C), Валин (Val, V), Пролин (Pro, P), Триптофан (Trp, W), Изолейцин (Ile, I), Метионин (Met, M), Треонин (Thr, T).

Кластеризация аминокислот на основе их ковариаций привела к аминокислотным группировкам, сходным с их классически известными физико-химическими свойствами: ароматический (W, F и Y); гидрофобный (L, I, V и M); кислотный (D и E); основной (R, H и K); маленький (G, A и P); маленький и полярный (S и T); и полярный (N и Q). Это указывало на то, что матрица PMBEC согласуется с существующими эвристическими группировками аминокислот.

Матрица PBMBEC

Сформированная таким образом матрица имеет некоторые корреляции с матрицами типа BLOSUM [2] и другими (рис. 2).

Матрица корреляций PMBEC

1.2 NetMHCpan

В данное время одним из state of the art решением по предсказанию связанности пептидов к MHC является NetMHCpan4 от департамента биоинформатики и здоровья университета Денмарк в коллаборации с институтом аллергии и иммунологии им. Ла-Хольи в Калифорнии и институтом биоинформатики национального университетма Сан-Мартина [3]. Первая версия NetMHCpan началась с 2003 года, на текущий момент существует четвертая версия. С первых версий NetMHCpan использует в своей основе нейросетевой подход. Особенностями последней версии является расширение техники NN-align (рис. 3) и обучающей выборки. Алгоритм NN-Align (ANN) выглядит следующим образом: искусственная нейронная сеть (изначально с назначенными случайными весами) используется для прогнозирования аффинности связывания для данного пептида (правая панель). Пептид (показан светло-синим цветом) разделен на перекрывающиеся 9-мерные фрагменты, и предсказывается сродство связывания, кодирующее 9-мерное «ядро», в сочетании с информацией о пептидных фланкирующих остатках (peptit flanking residues - PFR), длине PFR и длине пептида. Аффинность связывания пептида определяется по части пептида с наивысшей оценкой (показан красным). Затем конфигурация весов ANN обновляется с использованием обратного распространения ошибки, чтобы минимизировать квадрат ошибки между предсказанным и измеренным сродством связывания. Это повторяется в цикле для всех пептидов в наборе обучающих данных для заданного количества итераций.

Схема алгоритма NN-align.

В статье [3] авторы расширили данную технику и решили проблему использования различных баз данных.

разбиение пептидов на длины: меньше или равно 8, равной 9, больше или равно 10;

нейронная сеть имеет 1 выход, но двух разных типов, которые чередуются в зависимости от используемого датасета - BA (binding affinity) или EL (eluted ligand), общую архитектуру можно видеть на рис. 4;

используется логарифмическая нормализация к интервалу от 0 до 1 используя формулу: 1-log(aff)/log(50000);

все веса скрытых нейронов являются общими для всех типов данных, различными являются лишь веса, связанные с выходных нейроном. Данная техника называется weights sharing;

Архитектура нейронной сети

По ходу обучения из двух датаcетов случайно выбираются данные и, исходя из типа данных, меняются и обучаются веса, используемые на выходном слое. После выбора пептида определяется ее длина и исходя из длины происходят следующие предобработки:

меньше или равно 8: пептид дополняется до длины 9 неизвестной аминокислотой «Х» в различных местоположениях - XGRWDRDA, GXRWDRDA, GRXWDRDA, GRWXDRDA;

равно 9: ничего не менять;

больше или равно 10: по пептиду проходится окно длиной в 9 и результаты предсказаний геометрически усредняются;

1.3 Autoencoders (Автокодировщики)

Смысл его заключался в том, чтобы проецировать пространство изначальных объектов в более компактное скрытое представление [4]. Для этого сеть делилась на две части - энкодер и декодер. Задача энкодера состояла в том, чтобы сжать пространство входных объектов в более компактное скрытое пространство, а задача декодера из данного пространство восстановить объект в изначальное пространство с минимальными потерями. Одним из плюсов данного типа нейронных сетей является нахождение скрытого нелинейного пространства за счет нелинейных функций активации в слоях нейронных сетей. Также плюсом является то, что обучение ведется без учителя, что в свою очередь упрощает сбор данных. Основным же недостатком является быстрая переобучаемость и сложность в генерализации. Иными словами, нейронная сеть быстро учится проецировать в конкретные точки и восстанавливать с очень хорошей точностью только те объекты, которые были в обучающей выборке, в отличии от валидационной/тестовой выборок, иными словами, восстанавливать только с конкретных точек. На рис. 5 можно видеть типовую структуру автокодировщиков на основе многослойных перцептронов в качестве энкодера и декодера. Тип архитектуры энкодера и декодера ничем не ограничен, поэтому для объектов типа картинок используются сверточные нейронные сети (CNN) [5].

Архитектура автокодировщиков

Для того, чтобы избежать переобучения использовались различные методы обучения, такие как добавление шума в данных, Dropout [6] и нормализационные слои, такие как Batch Normalization [7], перемешивание данных, изменение оптимизатора и т. д. Данные методики давали некоторое улучшение, но не решало суть проблемы. Все так и оставалось пока в 2013 не появился VAE (Variational Autoencoder) [8]. Теперь, в отличии от обычного автокодировщика, энкодер пытается не проецировать в пространство меньшей размерности, а предсказать параметры априорного нормального распределения, откуда будет сэмплироваться вектор для восстановления. Теперь декодер не сможет учиться восстанавливать объект из конкретных точек, потому что теперь скрытое представление задано распределением. На рис. 6 можно видеть типовую структуру VAE на основе многослойных перцептронов в качестве энкодера и декодера. В статье [8] также описывается процесс регуляризации предсказания параметров с помощью расстояния Кульбака-Лейблера между нормальными распределениями (Kullback-Leibler divergence) и так называемый Reparametrization Trick, благодаря которому через семплирование можно провести градиент для того, чтобы система обучалась end-to-end.

Архитектура VAE

1.4 Seq2Seq

Подход для обработки данных, где на входе и на выходе данными являются последовательности. Впервые этот подход был описан в 2014 году Сутсвекером [9] в рамках задач NMT (Neural Machine Translation). В основе Seq2Seq лежит RNN подобные нейронные сети (в статье использовался LSTM [10]). Архитектура Seq2Seq выглядела следующим образом (рис. 7).

Архитектура Seq2Seq

На вход LSTM подается входная последовательность и в конце входной последовательности подается знак конца строки и при этом LSTM ничего не выдает на выход (на рис. 7, часть, где на вход подается A, B, C). Эта часть LSTM называется энкодер. Далее, в каждый момент времени LSTM выдает какой-либо сигнал и данный сигнал подается на вход для следующего момента времени. Так продолжается, пока не выдастся сигнал конца строки (на рис. 7, часть, где на вход подается EOS, W, X, Y, Z). Эта часть называется декодер. Энкодер и декодер являются разными RNN сетями, но между ними передается скрытое состояние. Данный подход оказал сильное влияние на обработку текстов в целом и задачи NLP (Natural Language Processing). В 2016 году Google использовал Seq2Seq модели для своего переводчика Google Translate [11] рис. 8.

Модель Google Translate (2016)

1.5 GAN (Generative Adversarial Network - Генеративные-состязательные сети)

Тип нейронных сетей одновременно обучающие две модели. Одна модель несет название G (generator). Она восстанавливает некоторое распределение в данных, а другая модель D (discriminator) оценивает вероятность того, что данные были сгенерированы G. Целью данных моделей является попытка обмануть друг друга. Модель G пытается сгенерировать такие данные, которые не может отличить от оригиналов модель D, а модель D пытается учиться распознавать данные, сгенерированные моделью G. Другими словами это соответствует некоторой минимаксной игре между двумя игроками. Общую схему обучения можно видеть на рис. 9. Данная статья [12] является первой статьей о GAN и показывает ее возможности путем генерации чисел из базы данных MNIST, лиц из данных TFD, объектов различных классов из базы данных CIFAR-10. Основным недостатком такой модели является ее нестабильность в обучении. В пример такой нестабильности авторы приводят такую ситуацию, когда генератор не успевает учиться, так как генерировать данные куда сложнее, чем решать сгенерированные ли данные или нет. В таком случае, если дискриминатор слишком хорошо обучился, то градиент ошибки, получаемый генератором, будет слишком мал для обучения.

нейросетевой генеративный иммунология

Общая схема GAN

Алгоритм обучения GAN:

Для каждого тренировочного набора:

Для k шагов:

Генерировать минибатч размером m из априорного распределения шума pg(z).

Генерировать минибатч размером m из генератора pdata(x)

Обновить веса дискриминатора по правилу:

Генерировать минибатч размером m из априорного распределения шума pg(z).

Обновить веса генератора по правилу:

Для решения проблемы с переобучением дискриминатора предлагается использовать новую форму спектральной нормализации весов нейронной сети для более стабильного обучения генеративных нейронных сетей [13]. Авторы приводят сравнительный математический и смысловой анализ с другими видами нормализации, такими как Gradient Penalty, Singular Value Clipping, Weight Clipping, Frobenius Normalization. Авторы предлагают нормализовать норму Липшица к единице для матрицы весов каждого слоя дискриминатора и предлагают приближенный метод для нормализации, так как наивное применение спектральной нормализации для каждого слоя нейронной сети является вычислительно сложной задачей. Итогами данной статьи является сравнительный анализ с другими методами регуляризации в виде таблицы (рис. 10). Исходя из полученной таблицы авторы делают вывод о том, что генеративные модели с использованием предложенного метода регуляризации обучаются лучше и стабильнее, чем модели с другими методами регуляризации.

Сравнительный анализ методов нормализации

1.6 AAE (Adversarial Auto Encoders)

Небольшая модификация GAN. Разница в том, что они сочетают в себе принцип работы вариационных автоэнкодеров (VAE и GAN). С одной стороны, данная модель позволяет генерировать объекты фиксированного класса и «стиля», с другой стороны позволяет извлекать признаки объектов в низкоуровневом скрытом пространстве (по типу автокодировщика). Таким образом представленная модель имеет свойства как GAN, так и автокодирощиков. Также авторы представили несколько типов ААЕ. Самый простой тип AAE кодирует сразу весь объект в скрытое пространство, заданное любым распределением, из которого можно семплировать. На рис. 11 показана архитектура первого типа ААЕ. На рис. 12 показан пример работы для данных MNIST.

Архитектура первого типа ААЕ

Результат работа первого типа ААЕ на данных MNIST

Второй тип ААЕ проецирует каждый класс в отдельное семплируемое распределение. Для этого на вход дискриминатора, кроме сжатого пространства z, подается также one-hot-encoded класс объекта. За счет этого дискриминатору проще отличить реальное априорное распределение от сгенерированного энкодером, а энкодеру проще объекты одного класса проецировать на одно из распределений, либо держать их ближе к объектам того же класса. Общая схема второго типа ААЕ и результаты ее работы для базы рукописных цифр MNIST показана на рис. 13 и рис. 14

Архитектура второго типа ААЕ

Результат работа второго типа ААЕ на данных MNIST

Третий тип ААЕ выделяет и кодирует «стиль» объекта в априорное распределение, выделяет класс объекта и кодирует в категориальное распределение. Этот тип ААЕ позволяет при генерировании объекта фиксировать класс и менять «стиль», либо фиксировать «стиль» и менять класс. Общую схему для третьего типа AAE можно видеть на рис. 8. Основным преимуществом перед GAN является возможность обучаться в режиме semi-supervised, когда в тренировочных данных могут использоваться неразмеченные данные. Данный тип нейронной сети преследуют все те же недостатки, что и GAN.

Обучение ААЕ разбивается на три фазы. В первой фазе (ошибка реконструкции) обновляются энкодер и декодер по ошибке восстановления данных, во второй фазе (регуляризация) обновляются веса дискриминатора по ошибке классификации реальных (семплированных) данных от сгенерированных из энкодера, в третьей фазе (полуобучаемая, есть только в третьем типе ААЕ) обновляются веса генератора по ошибке классификации класса входного объекта.

Рисунок 8. Архитектура третьего типа ААЕ.

1.7 Attention

В попытках улучшить интерпретируемость seq2seq моделей в задаче neural machine translation (NMT) и упростить их обучение авторы предлагают использовать такой механизм, как Attention [14]. Данный механизм в рамках NMT позволяет модели решать какая часть предложения наиболее важна в текущий момент времени. Иными словами, нейроны из слоя Attention решают какие выходные сигналы из предыдущего слоя являются наиболее важными. В задачах NMT данный механизм помог решить проблему с потерей контекста в длинных предложениях. Результаты обучения сети показаны на рис. 15, на рис. 16 можно видеть интерпретация Attention слоя.

Результаты обучения с Attenttion

Интерпретация Attention слоя

Общую структуру работы Attention слоя можно видеть на рис. 17. Механизм внимания «включается» только на стадии декодироки (при проходе через энкодер) и работает в контексте NMT следующим образом: для каждого следующего слова в декодере считаются логиты для каждого слова в энкодере (1). Полученные логиты взвешиваются через softmax (2), и полученные коэффициенты взвешенно складываются со словами из энкодера (3).

Общая схема Attention слоя

(1)

(2)

(3)

В настоящее время механизм Attention является одним из основных механизмов, которые почти всегда используются в новейших нейросетевых архитектурах наряду с Batch Normalization и Dropout (В последнее время сдает позиции в пользу Batch Normalization, но опять-таки эффективность меняется от задачи к задаче). Данный механизм может помочь в решении поставленной задачи в рамках проекта, так как набор аминокислот в пептидах являются последовательными данными.

1.8 Обоснование выбора программных средств и фреймворков

Разработка генеративной нейросетевой модели будет везтись на языке Python с использованием фреймворка для глубинного обучения PyTorch c открытым исходным кодом, разрабатываемой исследовательской группой FacebookResearch компании Facebook. Так как PyTorch доступен для языка Python, то в ходе выполнения работы будет использоваться данный язык.

1.9 Цели и задачи в проекте

Основной целью данной работы является исследование современных генеративных нейросетевых подходов в решении задачи предсказывания взаимодействия пептидов и молекул MHC человека. Реализация модели на языке Python, использование и изучение возможностей разработанной модели, и сравнение с аналогами.

2. Описание решения поставленной задачи

В этой главе описывается программная реализация генеративной нейронной сети и вспомогательных модулей с использованием фреймворка PyTorch на языке Python.

2.1 Предобработка данных

Данные, по которым будет проводиться обучение, доступны в базе данных IEDB. Эта база данных включает более 160 тысяч анализов и длину пептидов в диапазоне от 4 до 37 аминокислот. 99% записей составляют пептиды длиной от 8 до 15 аминокислот. На рис. 18 можно увидеть структуру представленных данных. Обучение будет происходить для одной молекулы MHC с одной длиной пептидов, поэтому берется наиболее изученная молекула. В данном случае это HLA-A*0201 с длиной пептидов 9 (см. рис. 19 и рис. 20).

Структура данных IMDB.

Топ-5 распределение по MHC

Распределение длин пептидов HLA 0201

Далее каждая аминокислота кодируется с использованием таблицы PBMEC [4] представленный на рис. 2 и нормализуется от 0 до 1. Целевой переменной в данной задаче является колонка meas. Так как наша задача представлена в виде бинарной задачи связывания, то по правилу: если meas>500, то молекула не связывается с пептидом, можно meas превратить в бинарную переменную 1 или 0. Данные случайным образом перемешиваются и разбиваются на тренировочную и валидационную. Тренировочная и валидационная выборки разбиты с соотношением 3 к 1 соответственно. В итоге получается две матрицы размерами N1x9x20, N2x9x20, где N1 и N2 количество пептидов в тренировочной и валидационной выборках, в данном случае это 6788 и 2263, соответственно. 9 - количество аминокислот а пептиде, 20 - размер кодирования по таблице PMBEC.

2.2 Реализация генеративной нейронной сети

В данном пункте будет описана реализованная модель, ее архитектура и интуиция ее построения. В основу модели легли работы Гудфеллоу по AAE [15] и seq2seq подходы Сутсвекера [10]. В качестве идеи было принято решение попытаться спроецировать связывающиеся и не связывающиеся пептиды в различные нормальные распределения одного и того же пространства (далее - пространство Z). Данная особенность в будущем позволит сэмплировать только связывающиеся пептиды (или не связывающиеся, но это не имеет практического смысла).

Энкодер

В качестве энкодера была взята архитектура рекуррентного типа под названием GRU [16]. Основной причиной выбора GRU является уменьшенное количество операций внутри ячейки и незначительное отличие в точности работы от LSTM [10]. Размерность скрытого слоя составляет 70, размерность входных данных - 20. В качестве улучшающий приемов был применен, так называемый, двунаправленный GRU, который позволяет «смотреть» на последовательность с обеих сторон. На рис. 21 можно видеть структуру двунаправленных рекуррентных сетей. Для повышения качества обучения была применена нормализация под названием LayerNorm [17].

Структура двунаправленной рекуррентной сети

Далее, выходы последних по времени ячеек суммируются, для того, чтобы получить размерность 70 (так как размер скрытого слоя составлял 70, то у двунаправленных сетей общая размерность скрытого слоя удвоится), далее, просуммированный вектор подается на вход однослойному перцептрону без нелинейной активации с 5 нейронами на выходе, чтобы сжать 70-мерный вектор в 5-мерное Z пространство. На рис. 22 показана полная схема потоков данных (в некотором роде, архитектура).

Полная схема потоков данных энкодера

Декодер

В роли декодера также взята архитектура GRU с 70-ти размерным скрытым состоянием, с LayerNorm, но без двунаправленности. Выход каждой ячейки проходит через однослойный перцетрон с 20-тью (количество аминокислот) нейронами на выходе с активацией LogSoftmax, чтобы использовать функцию потерь NegativeLogLikelihood (NLL). Иными словами, этот перцептрон решает задачу классификации аминокислоты.

С входной размерностью не все так просто, потому что размерность входной последовательности зависит здесь не только от размерности выхода GRU, но и от улучшений, которые были встроены. В итоге общая размерность входа равняется 95:

передается предыдущий выход сети (размерность 20);

передается пространство Z (размерность 5);

передается выход из слоя Attention (размерность 70);

Далее рассмотрим Attention слой. Здесь он используется не так, как описано оригинальной в статье (напомним, что Attention в оригинальной статье «смотрит» на выходы энкодера). В данной реализации Attention «смотрит» на предыдущие выходы декодера. Иными словами, количество векторов, которые обрабатывает Attention с каждым шагом увеличивается на 1, а не фиксированное.

Для того, чтобы сделать архитектуру максимально похожей на seq2seq подход, а именно научиться передавать скрытое состояние из энкодера в декодер, был реализован однослойный перцептрон без нелинейной активации, который из пространства Z получал начальное скрытое состояние для декодера. В некотором смысле это передача скрытого состояния из энкодера в декодер со сжатием.

Полную схему потоков данных можно видеть на рис. 23.

Дискриминатор

В основе дискриминатора лежит обычный многослойный перцептрон с тремя скрытыми слоями и нелинейной функцией ReLU и одним выходным нейроном с сигмоидальной активацией, отвечающей за то, смог ли дискриминатор отличить реальные данные от не реальных. В данном случае реальные данные это сэмплированные из смеси гауссиан данные, а не реальные - сгенерированные энкодером вектора пространства Z. На вход к дискриминатору подается не только вектор размерностью пространства Z, но и закодированный

Полная схема потоков данных декодера

OneHotEncoding методом класс вектора (связывающийся/не связывающийся). Рис. 24 иллюстрирует схему потоков данных для дискриминатора.

Полная схема потоков данных

Обучение

Обучение проводилось по мини-батчам с размером в 2000. Использовались три оптимизатора Adam с параметрами: Learning rate = 0.001, beta1 = 0.9, beta2 = 0.999, weight_decay = 0, eps = 1e-8. Первый оптимизатор обучал веса для энкодера-декодера, второй обучал веса дискриминатора, третий только энкодера. В ходе обучения градиенты приводились к эвклидовой норме = 1, так называемый gradient norm clipping. Стоит отметить, что без этого обучение с использованием оптимизатора Adam было невозможным, так как сеть расходилась (значение функции ошибки росла). Сэмплирование проводилось из двух нормальных распределений размерности 5. Первое распределение со средним = 3 и отклонением 1, второе распределение со средним = -3 и отклонением 1.

Обучение состояло из трех фаз:

Фаза реконструкции. В данной фазе декодер и энкодер обучаются по ошибке восстановления декодера. Функцией ошибки является NegativeLogLikelihood (NLL).

Фаза дискриминатора. В этой фазе дискриминатор обучается отличать сгенерированные (энкодером) данные от сэмплированных. Задача дискриминатора научиться их различать. Функцией ошибки является:

Фаза генератора (энекодера). В этой фазе энкодер обучается генерировать данные, схожие к сэмплированным данным. Поэтому обучение происходит от ошибки дискриминатора.

3. Результаты

Обучение длилось в течение 2000 эпох. Валидационая выборка проверялась каждые 100 эпох. В ходе обучения описанной архитектуры были получены следующие результаты.

Значения функции потерь

На рис. 25 показаны значения функции потерь для тренировочной (слева) и валидационной (справа) выборок. Функция потерь по мини-батчу сокращалась к скаляру методом суммы, поэтому прямо сопоставить значения нельзя, но можно видеть, по самой кривой, что переобучения не возникло.

Ошибки дискриминатора и генератора (энкодера)

На рис. 26 показаны значения ошибок для дискриминатора и генератора (энкодера) для тренировочной (слева) и валидационной (справа) выборок. Из рисунка видно, что до 750-ой эпохи обучение было нестабильным, а с 1250-ой эпохи ситуация стабилизировалась.

Значения средних и стандартного отклонения

На рис. 27 показаны изменения средних и стандартного отклонения у пространства Z для связывающихся и не связывающихся пептидов в тренировочной выборке. Из рисунка видно, что здесь также, как и на рис. 26 до 750 эпохи значения оставались почти одинаковыми, и лишь с 750 эпохи сеть научилась проецировать данные в два нормальных распределения. В конце тренировки среднее значение у связывающихся пептидов составляет -2, а у не связывающихся +2, стандартное отклонение равно около 2 у каждого из классов. Такой результат объясняется тем, что некоторые объекты попадают не в «свое» распределение, что будет рассмотрено ниже.

10 попарных проекций пространства Z

На рис. 28 можно видеть попарные проекции 5-мерного пространства Z для валидационной выборки. Зелеными отмечены проекции связывающихся пептидов, красным - не связывающихся. Здесь можно видеть, что распределения действительно схожи с нормальными распределениями со средним 3 и -3, и стандартным отклонением 1. Также здесь заметно, что есть случаи, когда пептиды попадают не в «свое» распределение. Это может объяснить почему в тренировочных данных среднее и стандартное отклонение не равны значениям априорных распределений. При более тщательном изучении полученных данных выяснилось, что среднее значение класса 0 (не связывающиеся пептиды) 2.79, стандартное отклонение 0.64, для класса 1 (связывающиеся пептиды) -3.13 и 0.7 соответственно. Данные результаты показывают, что валидационная выборка в целом приблизилась к априорному распределению. Средняя F1 метрика равна 0.88 (Среднее значение берется в связи с тем, что метрика F1 не является симметричной).

Точность восстановления для обоих классов в среднем равна 3.61 аминокислот из 9. Для класса 1 точность равна 3.96. На рис. 29 можно видеть распределение количества правильно восстановленных аминокислот в пептиде.

Распределение количества правильно восстановленных аминокислот в пептиде

На рис. 30 показано распределение (нормированное от 0 до 1) позиций, где аминокислоты были восстановлены правильно. Здесь стоит отметить, что девятая позиция почти всегда правильно восстанавливалась. На рис. 31 показано то же самое распределение, только для считалось, что аминокислота была восстановлена правильно, если она была в топ 3 наиболее вероятных. Можно заметить, что рост точность на всех позициях равномерный.

Распределение точности по позициям

Распределение точности (топ 3) по позициям

Рис. 32 показывает распределение (нормированное от 0 до 1) правильно восстановленных аминокислот. По рисунку видно, что наиболее правильно восстанавливаемая аминокислота является лейцин (Leu, L). На рис. 33 распределение по топ 3 точности (такой же подход, как было описано для распределения точности позиций). Виден значительный рост точности аминокислот, которые слабо восстанавливались.

Распределение точности восстановленных аминокислот

Распределение точности (топ 3) восстановленных аминокислот

Рис. 34 показывает среднее распределение внимания механизма Attention у декодера. Здесь по вертикальной оси расположены позиции предсказываемого пептида, а по горизонтальной позиции предыдущих пептидов + начальное состояние декодера. То есть можно видеть, что для предсказания последнего девятого пептида механизм уделяет больший вес только для предыдущему пептиду. Из распределения в целом, можно сказать, что основную роль играют первые и последние пептиды.

Распределение значений механизма Attention

Для сравнения результатов с аналогами необходимо посчитать PPV для валидационной выборки. PPV считается следующим образом: для данного аллеля есть N связывающихся пептидов, предсказания сети сортируются по возрастанию предсказания связывающихся пептидов, берется N первых пептидов и считается процент связывающихся пептидов среди них.

Для данной обученной сети PPV = 0.84, для сравнения, у NetMHCPan PPV = 0.81, но использовалась другая база. Поэтому прямое сравнение невозможно, но данный результат показывает, что разработанная модель при должном поиске параметров может конкурировать с аналогами.

Заключение

В рамках выполнения выпускной квалификационной работы была разработана генеративная модель для предсказания связывания пептидов с молекулами ГКГС. Был проведен анализ полученной модели, применены техники для работы с последовательностями и стабилизацией обучения генеративных сетей. Также было проведено сравнение с аналогом.

Важная особенность и отличие разработанной модели от аналогов является возможность семплирования связывающихся пептидов из априорного распределения, а не проверка всех возможных комбинаций аминокислот на связываемость.

Список использованной работы

1. Kim Y. et al. Derivation of an amino acid similarity matrix for peptide: MHC binding and its application as a Bayesian prior //BMC bioinformatics. - 2009. - Т. 10. - №. 1. - С. 394.

2. Henikoff S., Henikoff J. G. Amino acid substitution matrices from protein blocks //Proceedings of the National Academy of Sciences. - 1992. - Т. 89. - №. 22. - С. 10915-10919.

3. Jurtz V. et al. NetMHCpan-4.0: Improved peptide-MHC class I interaction predictions integrating eluted ligand and peptide binding affinity data //The Journal of Immunology. - 2017. - Т. 199. - №. 9. - С. 3360-3368.

4. Vincent P. et al. Extracting and composing robust features with denoising autoencoders //Proceedings of the 25th international conference on Machine learning. - ACM, 2008. - С. 1096-1103.

5. Zeiler M. D., Fergus R. Visualizing and understanding convolutional networks //European conference on computer vision. - springer, Cham, 2014. - С. 818-833.

6. Srivastava N. et al. Dropout: a simple way to prevent neural networks from overfitting //The Journal of Machine Learning Research. - 2014. - Т. 15. - №. 1. - С. 1929-1958.

7. Ioffe S., Szegedy C. Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift //International Conference on Machine Learning. - 2015. - С. 448-456.

8. Kingma, Diederik P. and Welling M. Auto-Encoding Variational Bayes //International Conference on Learning Representations (ICLR), 2013.

9. Sutskever I., Vinyals O., Le Q. V. Sequence to sequence learning with neural networks //Advances in neural information processing systems. - 2014. - С. 3104-3112.

10. Hochreiter S., Schmidhuber J. Long short-term memory //Neural computation. - 1997. - Т. 9. - №. 8. - С. 1735-1780.

11. Wu Y. et al. Google's neural machine translation system: Bridging the gap between human and machine translation //arXiv preprint arXiv:1609.08144. - 2016.

12. Goodfellow I. et al. Generative adversarial nets //Advances in neural information processing systems. - 2014. - С. 2672-2680.

13. Miyato T., Kataoka T., Koyama M., Yoshida Y. Spectral normalization for generative adversarial networks //International Conference on Learning Representations (ICLR), 2018.

14. Bahdanau D., Cho K., Bengio Y. Neural machine translation by jointly learning to align and translate //arXiv preprint arXiv:1409.0473. - 2014.

15. Goodfellow I. et al. Generative adversarial nets //Advances in neural information processing systems. - 2014. - С. 2672-2680.

16. Chung J. et al. Empirical evaluation of gated recurrent neural networks on sequence modeling //arXiv preprint arXiv:1412.3555. - 2014.

17. Lei Ba J., Kiros J. R., Hinton G. E. Layer normalization //arXiv preprint arXiv:1607.06450. - 2016.

Размещено на Allbest.ru

...

Подобные документы

  • Понятие и характеристики облачных технологий, модели их развертывания, технологические процессы, аспекты экономики и критика. Язык программирования Python, оценка функциональности, сравнение с аналогами. Управление облаком в Python на примере libcloud.

    курсовая работа [43,0 K], добавлен 08.06.2014

  • Программное обеспечение Python и ее основные характеристики, как программной среды. Общие сведения о языке программирования Python. Особенности применения ППП Python (x,y) с использованием его различных вычислительных модулей в учебном процессе.

    дипломная работа [2,9 M], добавлен 07.04.2019

  • Отличительные особенности языка программирования Python: низкий порог вхождения, минималистичный язык, краткий код, поддержка математических вычислений, большое количество развитых web-фреймворков. Традиционная модель выполнения программ на языке Python.

    реферат [51,9 K], добавлен 18.01.2015

  • Разработка структуры базы данных для хранения дипломных проектов в среде объектно-ориентированного программирования Python. Создание внешнего вида окон ввода-вывода информации, технологии переходов. Листинг программы с пояснениями; направления улучшения.

    курсовая работа [3,1 M], добавлен 27.02.2015

  • Исследование нейросетевых архитектур и их приложений. Общие принципы, характерные для нейросетей. Локальность и параллелизм вычислений. Программирование: обучение, основанное на данных. Универсальность обучающих алгоритмов. Сферы применения нейросетей.

    курсовая работа [250,5 K], добавлен 25.11.2010

  • Схематическое представление сигмоидной функции. Слой как группа нейронов, на которые входной сигнал приходит одновременно. Характеристика специфических особенностей кохоненоподобной нейросетевой модели. Описание модели работы самоорганизующихся карт.

    курсовая работа [1,6 M], добавлен 30.06.2017

  • Разработка программ средствами библиотеки tkinter на языке Python. Изучение основы работы в текстовом редакторе Word. Описание авторской идеи анимации. Использование базовых команд и конструкций. Процесс проектирования и алгоритм разработанной программы.

    контрольная работа [125,3 K], добавлен 11.11.2014

  • Обзор существующих подходов в генерации музыкальных произведений. Особенности создания стилизованных аудио произведений на основе современных нейросетевых алгоритмов. Выбор средств и библиотек разработки. Практические результаты работы алгоритма.

    дипломная работа [4,0 M], добавлен 13.10.2017

  • Исторические аспекты развития линии "Алгоритмизация и программирование" в старшей школе. Изучение языка программирования Python с применением дистанционных курсов Coursera. Методическая система обучения программированию с использованием Coursera.

    дипломная работа [808,8 K], добавлен 13.12.2017

  • Исследование возможностей и областей использования языка программирования JavaScript. Сравнительный анализ языков программирования JavaScript и PHP. Разработка интерактивного Web-приложения на примере теста по теме "Программирование на языке Delphi".

    практическая работа [26,0 K], добавлен 04.02.2015

  • Описание функциональных возможностей технологии Data Mining как процессов обнаружения неизвестных данных. Изучение систем вывода ассоциативных правил и механизмов нейросетевых алгоритмов. Описание алгоритмов кластеризации и сфер применения Data Mining.

    контрольная работа [208,4 K], добавлен 14.06.2013

  • Постановка задачи для машинного моделирования, определение параметров и переменных. Алгоритмизация модели и её машинная реализация. Реализация алгоритма моделирования на общесистемном языке программирования. Описание диалога с пользователем, интерфейс.

    курсовая работа [703,1 K], добавлен 14.01.2013

  • Создание математической модели системы массового обслуживания на примере банка. Разработка имитационной модели на языке программирования С++. Блок-схема программы, перевод модели на язык программирования. Верификация и валидация имитационной модели.

    курсовая работа [630,5 K], добавлен 01.06.2015

  • Эффективность применения нейронных сетей при выборе модели телефона. История искусственного интеллекта. Сущность нейросетевых технологий, обучение нейросимулятора. Пример выбора по определенным параметрам модели сотового телефона с помощью персептрона.

    презентация [93,8 K], добавлен 14.08.2013

  • Порядок описание процесса разработки модели для разрешения задачи программирования с помощью средств языка программирования. Структуры данных и основные принципы их построения. Этапы компьютерного моделирования. Этапы и значение написания программы.

    курсовая работа [19,5 K], добавлен 19.05.2011

  • Различные методы решения задачи классификации. Нейросетевые парадигмы, методы обучения нейронных сетей, возникающие при этом проблемы и пути их решения. Описание программной реализации классификатора, его функциональные возможности и результаты обучения.

    дипломная работа [1,0 M], добавлен 28.12.2015

  • Представление полиномов в виде кольцевых списков и выполнение базовых арифметических действий над ними. Реализация алгоритмов сложения, умножения и вычитания полиномов класса List на языке программирования Python 2.7. в интегрированной среде Python IDLE.

    курсовая работа [228,1 K], добавлен 11.01.2012

  • Анализ основ ООП, изучение языка программирования Python, применение полученных знаний на практике для реализации предметной области. Понятие и механизм инкапсуляции. Фиксирование информационной работы отеля. Диаграмма классов. Реализация на языке Python.

    курсовая работа [227,6 K], добавлен 14.05.2017

  • Принцип работы нейросетей и модели синтеза. Ключевые моменты проблемы распознавания речи. Система распознавания речи как самообучающаяся система. Описание системы: ввод звука, наложение первичных признаков на вход нейросети, модель и обучение нейросети.

    курсовая работа [215,2 K], добавлен 19.10.2010

  • Создание имитационной модели экономической системы на языке программирования GPSS. Определение возможных мест появления очередей, количества необслуженых заявок. Выявление причин возникновения неблагоприятных факторов, усовершенствование системы.

    курсовая работа [32,9 K], добавлен 13.12.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.