Машинное обучение в медицине
Диагностика заболеваний по результатам рентгенологических и УЗИ исследований
Диагностика по изображению
В диагностике заболеваний есть большое количество задач, которые можно решить при помощи машинного обучения, а в частности, при помощи анализа результатов различных исследований, таких как рентген, УЗИ или МРТ. В основном задача любой модели сводится к предсказанию, болен ли человек сейчас (иногда обычная мультиклассовая классификация, иногда — вероятностная классификация).
Для решения таких задач чаще всего используют глубокое обучение. Такие модели на вход получают картинку с рентгенологическим или ультразвуковым исследованием пациента и по ним предсказывают наличие болезни. Обычно внутри таких моделей-классификаторов лежат сверточные нейронные сети, а иногда к ним добавляются механизм внимания. За основу берутся state-of-the-art модели в области сверточных нейронных сетей, такие как GoogleLeNet[1], при этом точность предсказаний превышает 90%. Такие модели учатся на размеченных тренировочных наборах данных, поэтому их можно отнести к обучению с учителем. Большое распространение такие классификаторы получили в предсказании злокачественности новообразований, классификации заболеваний легких, подборе дозы контраста при проведении МРТ.
Кроме того, есть и другое применение. Многие модели учатся не только определять, есть ли опухоль на данном образце, но и локализировать ее положение. Таким образом, необходимо решить задачу сегментации изображения, то есть выделения каких-то ее наиболее важных частей. Технически задача не сильно отличается от предыдущей и решается все теми же сверточными нейронными сетями.
Применения
Поскольку точность предсказаний у описанных выше моделей достаточно высока, их стали применять на практике. Сейчас ведутся исследования по внедрению таких моделей в УЗИ-аппараты для того, чтобы быстрее и точнее определять местоположение и злокачественность опухоли. Кроме того, такие модели стали применять в направленной лучевой терапии, когда злокачественная опухоль облучается различными видами частиц. Известно, что эти частицы уничтожают не только раковые, но и здоровые клетки. Именно поэтому активно внедряются модели, которые могут подсказать аппарату точное направление облучения. Также сверточные сети стали использовать для определения дозы контрастного вещества при МРТ[2].
Персонализированная медицина
Персонализированная медицина — новая организационная модель построения медицинской помощи пациентам, которая основывается на подборе индивидуальных лечебных, диагностических и превентивных средств, оптимально подходящих по биохимическим, физиологическим и генетическим особенностям организма.
Основная цель нового направления в медицине заключается в персонализации и оптимизации профилактических мероприятий и лечения пациентов для исключения негативных последствий и осложнений, проявляющихся из-за индивидуальных особенностей. Основные отрасли медицины, где применяются новые принципы — онкология, фармация и фармакогеномика. Последняя занимается изучением реакций организма на медицинские препараты в зависимости от индивидуальных наследственных факторов.
Экспрессия генов
Многие модели ориентируются на данные экспрессии генов[3] (в широком смысле — процесс получения белка из последовательности ДНК). Известно, что от количества некоторых белков напрямую зависит возможность клеток становиться раковыми, а также порождать другие заболевания. Совокупность изменений в большом количестве различных белков может приводить к заболеванию. Именно поэтому модели персонализированной медицины основываются на данных экспрессии. Часто в качестве основы используют сверточные нейронные сети, располагая гены, отвечающие за похожие по своей функции белки, рядом друг с другом.
Медицинская карта
Другая задача — предсказать, заболеет ли человек в будущем. Для этого часто используется электронная медицинская карта пациента, и на вход сети подаются данные о пациенте, результаты исследований, его генеалогическое древо и другая медицинская информация. Основываясь на полученных данных, модель должна предсказать вероятность того, что человек может заболеть каждым из приведенного набора болезней. Если вероятность хотя бы по одному из маркеров превышает некоторое значение — такая модель рекомендует пациенту обратиться к специалисту и относит его в группу высокого риска по этому параметру. В свою очередь специалист может подтвердить или же опровергнуть опасения модели, отдавая ей результат — права модель или нет. Таким образом, эта проблема относится к классу задач обучения с подкреплением В таких задачах часто используют метод опорных векторов (SVM) или глубокое обучение.
Поиск лекарств
Поиск лекарств (англ. drug discovery, drug design) — процесс поиска новых лекарственных средств, часто основанный на знаниях о биологической мишени. При поиске новых лекарственных средств часто прибегают к помощи машинного обучения в таких задачах, как предсказание молекулярных свойств потенциальной молекулы лекарства, формы какого-либо белка, активности взаимодействия между двумя молекулами и т.д.
Предсказание молекулярных свойств
Одна из главных задач машинного обучения при поиске новых лекарств — сужение круга их поиска. Чаще всего фармацевтические компании имеют на руках библиотеки с огромным количеством веществ, которые они потенциально могут синтезировать и опробовать в качестве лекарства. Но обычно размеры этих библиотек составляют тысячи молекул, поэтому синтезировать и проверить каждую из них не представляется возможным. В этом случае прибегают к предсказанию некоторых свойств этих молекул, которые точно определяют, может ли молекула быть использована как лекарство. Для предсказания свойств молекул обычно используют молекулярный граф — графическое представление молекулы (ее атомов и связей).
Первые нейронные сети для предсказания молекулярных свойств использовали Моргановские фингерпринты (англ. Morgan fingerpints), которые для каждого атома в молекуле выделяли всех его соседей на каком-то определенном расстоянии (которое является гиперпараметром) и смотрели на наличие такой подструктуры в молекуле. Получался аналог некоторого оne-hot кодирования. Впоследствии этот метод был несколько усовершенствован, и стали смотреть не на наличие подструктуры, а на то, сколько раз она встречается в молекуле. Прорыв в этой области случился с появлением сети NeuralFingerprints [4], которая является примером одной из первых попыток применения графовых нейронных сетей в этой области.
NeuralFingerprints принимает один гиперпараметр - максимальное расстояние, которое нужно учитывать при просмотре соседей каждого атома. После этого для каждого расстояния для каждого атома суммируются атомные представления его соседей на текущем расстоянии. Таким образом, получается векторное представление текущего атома фиксированной длины, которая равна количеству свойств у одного атома. Каждый элемент такого представления умножается на обучаемый параметр, уникальный для номера свойства и текущего рассматриваемого расстояния. После этого применяется функция активации к полученному ранее вектору, умноженному на вес, отвечающий за текущее расстояние. Полученные результаты для каждого из атомов на каждом из расстояний суммируются и получается результирующий вектор свойств для молекулы. Таким образом, в этой сети обучаемые параметры — веса для каждого из свойств атомов на каждом расстоянии (
, где — индекс номера свойства (в модели их всего 5), — индекс для текущего расстояния) и веса для каждого из расстояний ( , где — индекс для текущего расстояния). Псевдокод представлен ниже.function neuralFingerptint(molecule, R, H, W): # R - максимальное расстояние, H - матрица весов размера len(molecule)# записываем свойства для каждого атома for L = 1 to R: for a in molecule: neighbors = neighbors(a) # смотрим соседей на расстоянии L от текущего атома a v = r[a] + sum(r[i] for i in neighbors) # суммируем вектора соседей и вектор текущего атома r[a] = σ(v H[a][L]) # изменяем представление текущего атома i = softmax(r[a] W[L]) # получаем вектор для текущего атома и расстояния f = f + i # добавляем его к ответу return fR, W - вектор весов размера R f = array[len(molecule), 0] for a in molecule: r[a] = g(a)
Эта сеть была одной из первых в этой области, и сейчас используется как базовый метод в огромном количестве статей. В основу новых методов сейчас все еще чаще всего ложатся графовые нейронные сети. Подходы графовых нейронных сетей адаптируют под молекулярный граф путем поиска элементов на расстоянии не более, чем N (где N является гиперпараметром), или последовательным рассмотрением каждой вершины и усреднением полученых значений.
Предсказание формы белка
Секвенирование — процесс получения нуклеотидной последовательности из молекулы ДНК. [5] Из нуклеотидной последовательности можно получить аминокислотную последовательность, которая в свою очередь кодирует любой белок в организме.
Предсказание формы белка — другая очень важная задача машинного обучения в фармацевтике. С возникновением технологий секвенирования ДНК у сообщества появилась возможность быстро и достаточно качественно прочитывать белковые последовательности, но получать пространственную структуру полученных белков экспериментально все еще очень трудоемко и дорого. Пространственная же структура белка важна для генерации мишеней, поэтому задача предсказания структуры является очень важной. Например, при подборе потенциальной вакцины, необходимо точно знать форму антитела, чтобы понимать сможет ли это соединение захватить свою мишень, не дав ей закрепиться в организме пациента.
Предсказание формы белков основано на нейронных сетях, которые как вход используют очень длинную аминокислотную последовательность (размер алфавита ограничен — всего различных аминокислот 20), а на выходе должны предсказать значения торсионных углов[6] между аминокислотами. В декабре 2020 года DeepMind (исследовательское подразделение Google) заявили, что решили проблему пространственной структуры белка.[7] Авторы модели утверждают, что значение метрики глобального расстояния (англ. global distance test) превысило 90%. Метрика глобального расстояния — это метрика, которая вычисляется для каждой аминокислоты как процент атомов углерода из главной цепи белка, которые в сгенерированном белке расположены не более чем на расстоянии какого-то определенного количества ангстрем от соответствующего атома углерода в исходном белке. Обычно это значение берется равным 1, 2, 4 или 8 ангстрем (10-10м).
См. также
Примечания
- Protein structure prediction
- Википедия: Персонализированная медицина
- CoroNet: A deep neural network for detection and diagnosis of COVID-19 from chest x-ray images
- 7 Applications of Machine Learning in Pharma and Medicine
- Ascent of machine learning in medicine
- Глубокое машинное обучение (искусственный интеллект) в ультразвуковой диагностике
- Convolutional neural network models for cancer type prediction based on gene expression
Источники информации
- ↑ Szegedy et al., Going Deeper with Convolutions, 2015. GoogLeNet.
- ↑ Lundervold et al., An overview of deep learning in medical imaging focusing on MRI, 2019
- ↑ Википедия: Экспрессия генов
- ↑ Duvenaud et al., Convolutional Networks on Graphs for Learning Molecular Fingerprints, 2015
- ↑ Википедия: Секвенирование
- ↑ Торсионные углы
- ↑ Фундаментальная «проблема белка» решена