174
правки
Изменения
→Предсказание молекулярных свойств
Одна из главных задач машинного обучения при поиске новых лекарств {{---}} сужение круга их поиска. Чаще всего фармацевтические компании имеют на руках библиотеки с огромным количеством веществ, которые они потенциально могут синтезировать и опробовать в качестве лекарства. Но обычно размеры этих библиотек составляют тысячи молекул, поэтому синтезировать и проверить каждую из них не представляется возможным. В этом случае прибегают к предсказанию некоторых свойств этих молекул, которые точно определяют, может ли молекула быть использована как лекарство. Для предсказания свойств молекул обычно используют молекулярный граф {{---}} графическое представление молекулы (ее атомов и связей). Пример молекулярного графа можно увидеть на рисунке 7.
Первые нейронные сети для предсказания молекулярных свойств использовали Моргановские фингерпринты (англ. Morgan fingerpints), которые для каждого атома в молекуле выделяли всех его соседей на каком-то определенном расстоянии (которое является [[Настройка гиперпараметров#Гиперпараметры|гиперпараметром]]) и смотрели на наличие такой подструктуры в молекуле (рис. 8). Получался аналог некоторого [[Векторное представление слов#One-hot encoding|оne-hot кодирования]]. Впоследствии этот метод был несколько усовершенствован, и стали смотреть не на наличие подструктуры, а на то, сколько раз она встречается в молекуле. Прорыв в этой области случился с появлением сети NeuralFingerprints <ref>[https://arxiv.org/abs/1509.09292 Duvenaud et al., Convolutional Networks on Graphs for Learning Molecular Fingerprints, 2015]</ref>, которая является примером одной из первых попыток применения [[графовые нейронные сети|графовых нейронных сетей]] в этой области.
NeuralFingerprints принимает один гиперпараметр {{---}} максимальное расстояние, которое нужно учитывать при просмотре соседей каждого атома. После этого для каждого расстояния для каждого атома суммируются атомные представления его соседей на текущем расстоянии. Таким образом, получается векторное представление текущего атома фиксированной длины, которая равна количеству свойств у одного атома. Каждый элемент такого представления умножается на обучаемый параметр, уникальный для номера свойства и текущего рассматриваемого расстояния. После этого применяется функция активации к полученному ранее вектору, умноженному на вес, отвечающий за текущее расстояние. Полученные результаты для каждого из атомов на каждом из расстояний суммируются и получается результирующий вектор свойств для молекулы. Таким образом, в этой сети обучаемые параметры {{---}} веса для каждого из свойств атомов на каждом расстоянии (<tex>H^i_j</tex>, где <tex>i</tex> {{---}} индекс номера свойства (в модели их всего 5), <tex>j</tex> {{---}} индекс для текущего расстояния) и веса для каждого из расстояний (<tex>W_j</tex>, где <tex>j</tex> {{---}} индекс для текущего расстояния). Псевдокод представлен ниже.