За основу была взята архитектура состязательных автокодировщиков, являющаяся расширением принципиально нового подхода в глубоком обучении, генеративных состязательных сетей. Для обучения использовались молекулы с известными лечебными свойствами и эффективной концентрацией. Информацию о такой молекуле подавали на вход сети. Сеть настраивали так, чтобы на выходе получить точно такие же данные. Она была составлена из трех структурных элементов — кодировщика, декодера и дискриминатора, — каждый из которых выполнял свою специфическую роль, «сотрудничая» с двумя другими. Кодировщик совместно с декодером обучался сжимать и затем восстанавливать информацию об исходной молекуле, а дискриминатор помогал сделать сжатое представление более подходящим для последующего восстановления. После того как сеть обучалась на множестве известных молекул, кодировщик вместе с дискриминатором «выключались», и сеть, используя декодер, генерировала описание молекул уже сама.
Обучение нейронных сетей зависит от количества входных данных и от размеров самой сети. В среднем нейронная сетка обучается в течение недели (зависит как от сети, так и от данных и технологических возможностей компьютера). То, насколько хорошо идет воспроизведение, влияет конфигурация слоев. Поиск наиболее оптимального решения архитектуры сети может занять от нескольких дней до нескольких месяцев, то есть настройка нейронной сети — это, без преувеличения, целое искусство.
Все молекулы имеют представление в виде "смайлзов" — буквенных аннотаций химического вещества, которые позволяют восстановить его структуру. Стандартная запись, которой обучали в школе, не подходит для обработки сетью, но и смайлз не очень подходит — он имеет произвольную длину от одной буквы до 200. Для обучения нейронной сети требуется одинаковая длина описания (вектора). Решает эту задачу фингерпринт, в переводе «отпечаток пальца» молекулы. Фингерпринт содержит в себе всю информацию о молекуле. Существует множество способов построения «отпечатка», исследователи использовали самый простой бинарный из 166 цифр. Они конвертировали смайлзы в фингерпринты и на них уже обучали сеть.
На вход нейронной сети подавались «отпечатки» известных лекарственных молекул. Сеть должна была распределить веса параметров внутренних нейронов так, чтобы при заданном входе получился заданный же выход. Эта операция повторялась много раз — так происходит обучение на большом количестве данных. В результате получается «черный ящик», который умеет при заданном входе давать заданный выход. Затем разработчики убрали первые слои, и сеть генерировала фингерпринты при обратном прогоне уже сама. Ученые построили «отпечатки» для всех 72 млн молекул и далее сравнивали сгенерированные сетью фингерпринты с базой.
Комментирует один из авторов, аспирант МФТИ Андрей Казеннов: «Мы разработали нейронную сеть генеративного типа, то есть умеющую создавать новые объекты по заданным параметрам, используя "накопленные знания" о миллионах объектах на которых она обучалась. Мы разработали и обучили модель сети, которая способна создавать новые молекулярные структуры с заданными свойствами».
Для проверки сети использовали базу известных противораковых лекарств. Исследовали сверили сгенерированные сетью соединения с общей базой. Из полученных 69 молекул многие являются активно используемыми противораковыми препаратами. А вот остальные потенциально могут стать основой новых лекарственных препаратов.
«Генеративные состязательные сети с применением обучения с подкреплением — это будущее фармакологии. Я очень надеюсь, что в скором времени мы сможем разрабатывать индивидуальные лекарства для лечения редких заболеваний и даже для лечения отдельных пациентов. Уже в этом году искусственный интеллект начнет трансформировать фармацевтическую индустрию», - говорит один из авторов исследования Александр Жаворонков, глава Insilico Medicine и международный адъюнкт-профессор МФТИ.