Хемоинформатический кентавр: объединение методов машинного обучения и химических уравнений |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2019-10-24 14:15 Как и обещал, буду время от времени рассказывать о публикациях по хемоинформатике российских ученых. На этот раз особенно легко об этом писать, ибо эта статья - наша и посвящена она, на мой взгляд, интересному и многообещающему подходу в моделировании химических характеристик - "сопряженным" QSPR моделям (термин ввели мы в этой статье), развитым нами в рамках гранта . Итак, начнем издалека. Когда нужно использовать машинное обучение? Когда у вас явление сложное и вы не знаете уравнения, которое определяет зависимость зависимой переменной (интересующего свойства) от независимых переменных (дескрипторов структуры). Если это уравнение вам известно, то вам, конечно, и не придет на ум считать ее через использование машинного обучения (например, молекулярный вес является таким примером - его легко посчитать из состава молекулы и машинное обучение тут ни к чему). Но это бывает чрезвычайно редко. Поэтому так часто прибегают к помощи квантовой химии или машинного обучения. Квантовая химия - яркий пример области, которая основана на уравнении - уравнении Шредингера. Оно настолько универсально, что решая его можно предсказать очень много характеристик молекул и реакций. Но решать его сложно, долго и можно это сделать только приблизительно (а значит с потерей точности). Машинное обучение быстрое, но не дает универсального решения - полученные модели справедливы только для данного набора данных. При этом в химии встречаются такие случаи, когда мы знаем взаимоотношения между различными характеристиками. Если вы попробуете построить модели с помощью машинного обучения для предсказания этих характеристик, то метод машинного обучения этой зависимости не знает и скорее всего, ее соблюдать не будет. А это очевидная потеря точности. Проблема которую мы решали в этой статье: это предсказании константы таутомерного равновесия и кислотсности. Логарифм константы таутомерного равновесия можно рассчитать как разницу кислотности таутомеров (так называемое уравнение Кабачника). То есть хотите ее найти - посчитайте (предскажите) кислотность таутомерных форм, вычтите из одной другую и вот вам искомая величина! Вот только в чем загвоздка: построить модель на кислотность не сложно, есть много данных, но напрямую если вы попробуете использовать эту зависимость для расчета константы таутомерии - у вас ничего не выйдет! Ошибка предсказания будет чудовищной. Константа равновесия будет предсказываться с настолько большой ошибкой, что случайное предсказание будет точнее. Причины этому две. Первая - кислотность, как бы вы ни старались, предсказывается с некоторой ошибкой (около 1.5 единиц pKa). Теперь представьте, что для одного таутомера кислотность предсказалась на 1.5 единицы больше, чем нужно, а для другого - на 1.5 меньше. Значение логарифма константы таутомерии будет завышена на 3 лог единицы. То есть в 1000 раз! Вторая причина - кислотность мерят для "нормальных" соединений. Никто не делает прямых измерений кислотности нестабильных таутомеров (енолов, например - ее можно оценить только опосредованно для таких случаев). Понятно, что таких соединений в выборке по кислотности нет - и как ваше машинное обучение может выучить, какая у них должна быть кислотность? Никак... Вот и получается, что нередко, если вы предскажете константу таутомерии через разницу кислотности, ошибка может легко достигать 10 порядков! Ну и ответ на главный вопрос - "что делать?" - мы предложили в обсуждаемой статье. Идея простая. Нужно строить модели так, чтобы она умела хорошо предсказывать данные по кислотности и, одновременно с этим, чтобы разность кислотностей таутомерных форм равнялась логарифму константы таутомерного равновесия. Тогда первая проблема будет решаться за счет того, что модель будет стараться завышать/занижать значения по возможности синхронно (появляется как бы дополнительная регуляризация модели), а вторая проблема будет решаться за счет того, что она будет учиться предсказывать кислотность тех форм, которых не было в данных по кислотности. В статье мы предложили два способа решить эту проблему. Первый - мы строим множественную линейную регрессию, которая предсказывает кислотность молекул, задаваемой дескрипторами Х. Для этого нам надо найти веса этой линейной регрессии. Делается это по принципу наименьших квадратов - минимизируя квадрат ошибки предсказания данных по кислотности Eк. Но мы можем взять эту же линейную модель (эти же веса) и с их помощью предсказать кислотность двух таутомерных форм, связанных одним равновесием. Разница этих кислотностей даст нам логарифм константы таутомерного равновесия. И мы, естественно, хотим, чтобы и ошибка его предсказания Ет тоже была минимальной. Ну дальше все просто - мы даём и данные по кислотности и по таутомерии и просим чтобы модель хорошо предсказывала обе характеристики минимизируя взвешенную сумму ошибок а*Ек+(1-а)Ет. Более того, мы нашли, что оптимальные веса линейной регрессии можно найти с помощью аналитического уравнения - подставляете выборку, делаете всякие матричные операции и получаете веса линейной регрессии. Очень быстро. Второй подход, если мы хотим использовать нелинейные модели для предсказания кислотности - это нейронные сети. Мы строим одну нейронную сеть, которая предсказывает кислотность молекулы. Теперь тренируем ее так, чтобы она хорошо предсказывала кислотность и одновременно разность кислотностей таутомеров равнялась константе таутомерии. То есть одна и та же нейронная сеть предсказывает обе характеристики зная уравнение. В PyTоrch это оказалось весьма несложно. Это очень важно, ибо эту идею я вынашивал почти 3 года, но не знал как имплементировать - а когда узнал PyTоrch мы без всяких ухищрений (которые в Keras бы пришлось сделать) смогли имплементировать. И теперь результаты. Мы построили модели только на данных по таутомерии и только на кислотности. Оценили точность - все было неплохо Q2 около 0.7 (таутомеры) и 0.9 (кислотность) - на уровне наших предыдущих статей, и других опубликованных в литературе подходов, то есть мы все сделали правильно. Теперь мы взяли полученную модель по кислотности и предсказали таутомерию. Ожидаемо получилось плохо, точнее неожиданно насколько плохо: Q2 = -8 (для линейной регрессии) и -20 (для нейронных сетей)! Теперь мы строим нашу сопряженную модель и качество ее точно такое как у индивидуальных моделей. То есть эта наша сопряженная модель предсказывает кислотность на уровне Q2 = 0.9 и при этом ее разность для таутомеров соотвествует истинным с Q2 = 0.7. То есть когда мы тренируем модель так чтобы соблюдать экспериментальное уравнение получается гораздо лучше! На внешнем тесте также работает хорошо. Ну и дальше много всяких забавных наблюдений. Например, мы нашли некоторые примеры, где были известны данные по кислотности отдельных таутомеров и известна константа таутомерии с их участием. Мы показали, что обычные (индивидуальные) модели по кислотности нормально предсказывают pKa самых стабильных таутомеров, но при этом близко даже не попадают для минорных форм. А наша нормально, одинаково точно предсказывает оба случая - и именно в этом кроется секрет успеха сопряженных моделей. То есть вы можете сопряженную модель использовать для предсказания кислотности нестабильных таутомерных форм, а обычные модели - не можете. Ну и наша модель не может не соблюдать уравнение Кабачника. То есть если вы предскажете константу любого таутомерного равновесия - она точно будет равна разности кислотностей. А если вы используете обычный QSAR и построите две независимые модели (одну на таутомерию и одну на кислотность), то разница между предсказанными кислотностями таутомерных форм может отличаться от предсказанной таутомерии в отдельных случаях на 15 порядков! В принципе этот подход весьма универсальный. Пока мы предсказывали характеристики, которые связаны как разность, самый простой случай, но могут же быть более сложные зависимости! Этот подход можно развить и на них. Поэтому мы видим тут много интересных продолжений, поскольку уравнения в химии встречаются не так уж и редко. П.С. Идею эту вскользь предложил в одном из разговоров давным-давно И. Баскин в ответ на мою постановку проблемы, с ним мы и вывели уравнение, имплементировал эту идею в рамках своего диплома наш студент . Ну и спасибо всем остальным, кто принимал участие, помогал в подготовке данных и статьи - , , Асима Рахимбекова, Марина Казымова и, конечно, Александр Варнек. https://pubs.acs.org/doi/10.1021/acs.jcim.9b00722 Источник: vk.com Комментарии: |
|