Найти в Дзене
lab_mouse

ВИЧ, туберкулез и машинное обучение

Продолжим разбираться, как информатики могут помочь медикам в решении задач на примере диагностирования туберкулеза у ВИЧ-положительных пациентов. Напомню тезисы из прошлых постов: ✅Лечение любого заболевания у ВИЧ+ пациента начинать нужно с «починки» его собственного иммунитета (который как раз и убивает вирус ВИЧ). Но если мы начнём поднимать иммунитет, то на фоне этой терапии может стартовать ранее спящее и не беспокоящее человека заболевание. Например, туберкулёз. Поэтому важно очень быстро выяснять, есть у пациента с ВИЧ туберкулез в скрытой форме или нет. ✅Медицинские способы это выяснить могут быть или дорогими и точными, или дешевыми и ненадежными. А ещё часто они долгие, а времени у пациента просто нет. ✅Туберкулёз у ВИЧ+ больного отличается на вид от таких же форм туберкулеза у ВИЧ-отрицательного: на рентгене его можно принять за онкологию или пневмоцистную пневмонию, например. И это еще сильнее затрудняет диагностику. ❕Итог: проблема у медиков стоит очень остро. Самое время

Продолжим разбираться, как информатики могут помочь медикам в решении задач на примере диагностирования туберкулеза у ВИЧ-положительных пациентов.

Напомню тезисы из прошлых постов:

✅Лечение любого заболевания у ВИЧ+ пациента начинать нужно с «починки» его собственного иммунитета (который как раз и убивает вирус ВИЧ). Но если мы начнём поднимать иммунитет, то на фоне этой терапии может стартовать ранее спящее и не беспокоящее человека заболевание. Например, туберкулёз. Поэтому важно очень быстро выяснять, есть у пациента с ВИЧ туберкулез в скрытой форме или нет.
✅Медицинские способы это выяснить могут быть или дорогими и точными, или дешевыми и ненадежными. А ещё часто они долгие, а времени у пациента просто нет.
✅Туберкулёз у ВИЧ+ больного отличается на вид от таких же форм туберкулеза у ВИЧ-отрицательного: на рентгене его можно принять за онкологию или пневмоцистную пневмонию, например. И это еще сильнее затрудняет диагностику.
Итог: проблема у медиков стоит очень остро. Самое время звать на помощь информатиков с их «магией» машинного обучения.

Слева саркаидоз у обычного пациента, справа - туберкулез у ВИЧ+ пациента. Источники [1] и [2].
Слева саркаидоз у обычного пациента, справа - туберкулез у ВИЧ+ пациента. Источники [1] и [2].

Первое, что нужно специалистам по данным (датасайнтистам, от data science - наука о данных) для работы, это примеры ВИЧ пациентов («выборка»). 

❓Вопрос: Подойдут ли нам обычные пациенты?
❗️Ответ: Зависит от постановки задачи. Для некоторых постановок это допустимо. В нашей же задаче нужно находить специфическую проблему только у ВИЧ+ пациентов, поэтому и в выборке мы должны использовать только их данные.

Точнее, нам нужны медицинские данные пациентов из выборки. Это могут быть: 

🗃снимки с компьютерного томографа,

🗃рентгенограммы легких, 

🗃результаты различных анализов (крови, мочи), 

🗃записи о состоянии пациента, его жалобах, вредных привычках, биографии (клинические данные).

Как правило, это все то, что можно узнать о пациенте в короткие сроки.

Допустим, исследователи решают использовать данные рентгенографии. Вспомним пост про машинное обучение и применим описанный там подход к этой задаче.

Используем «обучение с учителем». Для него нам нужны точные ответы, есть ли у каждого из пациентов в выборке туберкулез или нет.

Такие ответы уже имеются по пациентам, проведшим в больнице время, за которое успели сделать точные тесты. А иногда ответы мы узнаем из заключения патологоанатома, к сожалению. (В работе над медицинскими задачами приходится «забывать», что за цифрами стоят настоящие люди, их жизни и смерти. Моя первая задача в этой области два года назад была связана с изображениями раковых образований. Помню, как сначала сложно было абстрагироваться. Но привыкаешь.)

Итак, теперь у нас есть «выборка» (пациенты и их рентгеновские снимки) и ответы (есть туберкулез/нет туберкулеза) по каждому человеку в ней.

Зададим модель.

❓Что такое модель?
❗️Модель - это математический алгоритм, некая последовательность операций над данными: например, взять вот эти значения и умножить их на такие коэффициенты, затем повторить это с такими-то параметрами и после этого сделать такие-то действия над ними...
В реальной жизни мы сталкиваемся с такими алгоритмами каждый день, просто не называем их этим словом. Каждое утро я делаю выбор: поспать еще пять минут или встать по первому будильнику. Если выбрала “поспать”, то дальше буду выбирать успеть помыть голову или лучше успеть позавтракать. А если выбрала “встать вовремя”, то дальше выбираю погладить красивое платье на работу или приготовить обед с собой. На языке математики эта модель называется “бинарное дерево решений”.
Вообще модели бывают разные. Одни лучше подходят для одних задач, другие - для других. К примеру, те самые нашумевшие нейросети - это тоже «модели». ❗️

Разделим выборку на две части. Можно пополам. Но обычно делают 70% к 30%. Теперь возьмём первую часть и обучим на ней модель.

«Обучим» - это значит будем подавать модели на вход наши снимки и смотреть, что она ответит. После каждого прохода (шага обучения) будем корректировать параметры модели, чтобы с каждым разом правильных ответов получалось как можно больше.

Алгоритм, по которому авторы статьи [3] сегментировали изображения легких для поиска границ самих легких и определения образований в них. Такое преобразование - необходимый этап для работы с изображениями.
Алгоритм, по которому авторы статьи [3] сегментировали изображения легких для поиска границ самих легких и определения образований в них. Такое преобразование - необходимый этап для работы с изображениями.

Сделаем много-много таких итераций.

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

Для этого возьмём нетронутую раньше вторую часть выборки и отправим ее на вход обученной модели. Посмотрим, какие она сделает предсказания, и сравним их с известными нам ответами.

Если оказалось, что она ошиблась лишь на небольшом количестве примеров, значит, наша модель достаточно хороша, и ею можно пользоваться в реальных условиях.

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

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

Если закономерность в данных на самом деле есть (хотя от взгляда человека она может быть скрыта), то рано или поздно мы подберем хорошую модель и с ее помощью будем делать точные предсказания.

❓Вопрос: Если все так просто, то почему вы, датасайнтисты, еще не решили все проблемы человечества?
❗️Ответ: Как правило, главная проблема это вовсе не выбор хорошей модели, а сбор и подготовка данных. Есть даже такая грустная шутка, что почти 100% времени решения задачи специалисты по анализу данных тратят на подготовку и очистку данных и лишь оставшуюся малую толику на всякие алгоритмы. Почти в любой задаче данные приходят «грязные» (и это термин): в них множество пропусков, неверных значений (ошибся оператор при вводе, неправильно поставили запятую в числе, опечатки и прочее прочее) или и вовсе встречается ошибочная разметка (в нашем случае неверно выставленный  диагноз).
А ещё данных может быть просто слишком мало!
Именно поэтому, кстати, все это «машинное обучение» появилось в лентах новостей относительно недавно, хотя большая часть алгоритмов насчитывает не один десяток лет, да и компьютерные мощности уже лет двадцать как достаточны для решения многих задач. Все эти годы шло накопление данных. Показания температурных датчиков и транзакции банковских операций, оцифрованные истории болезней и записи регистраторов движения микроскопических частиц, данные с фитнес-браслетов и светофоров... Количество данных увеличивается даже не с каждым годом, а с каждой минутой. Мне сложно подсчитать, для решения скольких задач может быть использован даже этот простой текст! Ведь это тоже данные! Только навскидку этот пост можно добавить в выборку для таких задач как поиск эмоциональной окраски текстов,  машинный перевод на другие языки, обучение чат-ботов общаться, как человек... И многое-многое другое.

Но вернёмся к нашей задаче. Решить ее, используя в качестве входных данных рентгеновские снимки, пробовали многие исследовательские группы. Это решение дает довольно хорошие результаты: правильно подобранная и обученная на снимках модель очень редко ошибается в диагнозе.

Мы же пошли немного другим путём: использовали клинические данные. То есть наша модель получала на вход не снимки, а значения показателей анализа крови пациента, анализа мочи, некоторые сведения о его биографии. Ее результаты намного хуже, чем у моделей на снимках. Причин на то может быть много, и мы не станем сейчас на этом останавливаться.

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

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

Спасибо, что дочитали до конца:)

Ссылки на предыдущие части:

- ВИЧ: когда лечение - причина смерти (Туберкулез и синдром восстановления иммунной системы)

- Как отличить кошку от собаки или Машинное обучение "на пальцах"

Источники:

[1] Radiopaedia.org

[2] HIV/AIDS

[3] Lung Image Segmentation Using Deep Learning Methods and Convolutional Neural Networks