Наша команда на протяжении более пяти лет разрабатывает продукты для здравоохранения с использованием технологий искусственного интеллекта, а точнее, мы учим нейронные сети находить на медицинских снимках патологии, которые зачастую едва различимы для человеческого глаза. Мы много общаемся с журналистами и обнаружили, что зачастую они даже примерно не понимают, кто такой этот искусственный интеллект. Это нормально, они и не должны - у каждого своя работа. А мы решили просто и понятно рассказать, что такое ИИ, как мы его обучаем и что получаем на выходе.
Итак, вот самые забавные ответы на вопрос “что такое ИИ”, с которыми мы сталкивались за годы работы:
большая железка вроде адронного коллайдера, где протекают все процессы
чип, вживленный в медицинские аппараты, который сразу сам ставит диагноз пациенту
реальная угроза, которая отправит врачей на вольные хлеба
что-то, что скоро уничтожит человечество
![](https://habrastorage.org/getpro/habr/upload_files/342/532/eec/342532eeccdd9297b65b736316fc0fbb.jpeg)
Нам не нравится термин искусственный интеллект, мы чаще говорим машинный интеллект и связанное с ним Машинное обучение. Лучшее, на наш взгляд, определение машинного обучения дал Артур Сэмюэл: “Машинное обучение - это процесс, в результате которого компьютеры способны показать поведение, которое в них не было явно запрограммировано”.
Как мы научили искусственный интеллект находить патологии?
Идея была такая: если врач может найти например рак легкого на КТ снимке, но при этом есть риски того, что врач сможет пропустить признаки онкологии на ранних стадиях, то искусственный интеллект также сможет найти признаки онкологии, но с минимизацией рисков пропуска. Но на этом пути много трудностей: например, мы вынуждены учить искусственный интеллект в условиях “бедности” данных - их не так много, как хотелось бы.
К моменту непосредственного обучения модели(=нейросети) команда проводит большое бизнес-исследование: выясняет, в какой именно модели нуждается рынок. Например, есть исследование, которое показывает, что рентгенологи пропускают онкологию на ранних стадиях в более чем 50% случаев*. Очевидно, здесь есть запрос на помощника для врача, который снижал бы вероятность пропуска.
Мы определили модальность (тип медицинского оборудования) и патологию, с которой будем работать. После этого начинается длительная и сложная работа с разметкой снимков (аннотация данных). Медицинские специалисты вручную размечают каждый пиксель на снимке и отмечают, на каком из них присутствует патология.
![Вот пример снимка, который "разметил" искусственный интеллект и "подсветил" потенциально проблемные области Вот пример снимка, который "разметил" искусственный интеллект и "подсветил" потенциально проблемные области](https://habrastorage.org/getpro/habr/upload_files/59d/cc3/726/59dcc3726cb5e92626bd9aaac20fa870.png)
Теперь можно приступать к обучению нашей модели. Здесь есть два варианта:
Обучение с учителем - распространенный классический вариант работы с ИИ. Мы показываем модели исходное изображение - например, КТ органов грудной клетки - и затем показываем, что хотим получить на выходе (“размеченный” снимок, в котором определена область возможной патологии). Далее смотрим, что выдает модель, насколько предсказание не соответствует исходной разметке. И “показываем” эту ошибку модели, чтобы она скорректировала свою работу.
Этот метод хорошо работает, когда данных много. У нас обычно медицинских изображений не хватает, поэтому приходится идти на хитрости. Например, прибегать к аугментации - мы “скармливаем” модели снимок, а потом этот же снимок немного изменяем (меняем контрастность или поворачиваем) и еще раз скармливаем. Так мы учим ее работать с разными типами данных.
Второй вариант - обучение с частичным привлечением учителя, довольно популярная история. Обучение проводится в два этапа: сначала модели отдаются самые разные необработанные медицинские снимки, чтобы нейронка могла сформировать пространство признаков и понять, где, условно, КТ органов грудной клетки, а где - маммография. И второй шаг - спецификация модели, мы учим ее работать с определенной патологией. Для этого скармливаем уже размеченные снимки. У такого варианта обучения есть два плюса: для него нужно меньше размеченных данных, это подход занимает намного меньше времени.
После того, как модель построена, мы даем ей данные, которые она никогда не видела, из другого источника. Искусственный интеллект очень чувствителен к источнику данных: вплоть до того, на каком аппарате и в какой клинике сделано исследование - все это может повлиять на качество модели. И чтобы быть уверенным, что мы не обучили ИИ работать только с одним видом данных, в качества шага валидации (проверки) мы скармливаем снимки, которые она никогда раньше не видела.
Звучит несложно - значит кто угодно может создать такую модель?
Да, ведь готовые нейронные сети есть в открытом доступе. Их можно “доучить” на медицинском датасете из сети. Модель можно обучить на датасете из сети. Вопрос в качестве этой модели - скорей всего она “посыпется” при первой же работе в полях, то есть точность будет гораздо хуже, чем при работе с эталонными датасетами. В интернете собраны датасеты с очевидными патологиям, простыми случаями, качественными снимками. Но в реальности КТ аппарат может быть не откалиброван, пациент дернулся во время снимка и еще много всяких “но”, к которым модель тоже нужно готовить - это годы работы. Так и формируется один из главных критериев качества - робастность нейросети.
Кстати, здесь кроется большая боль рынка, и не только российского. Появляются компании, которые на скорую руку получили первую модель и побежали в ближайшую больницу тестировать ее. Плохие результаты рождают плохое отношение врачей. Они и так в меру консервативны, а тут еще и вживую видят, что технологии только усложняют работу врача.
![Пример изображения с "артефактом" - слева пример с сильными шумами. Такое случается, это тоже надо показать модели. Но такие сложные случаи не найти в эталонных датасетах в сети. Пример изображения с "артефактом" - слева пример с сильными шумами. Такое случается, это тоже надо показать модели. Но такие сложные случаи не найти в эталонных датасетах в сети.](https://habrastorage.org/getpro/habr/upload_files/76b/d6e/182/76bd6e182fce7b29321c8cefe155f767.png)
Почему искусственный интеллект ошибается и можно ли это исправить?
Есть один публичный проект ImageNet - там собрано больше 10 млн изображений, разбитых на тысячи классов. Все это предназначено для тестирования и совершенствования алгоритмов машинного зрения. Много лет подряд на базе площадки проводился конкурс: разработчики алгоритмов соревновались в точности определения картинки с живыми людьми.
До 2016 года процент человеческих ошибок на этом датасете составлял 5.1%. И вот в 2016 году нейросеть побила рекорд человека - она допустила 4% ошибок. Но это все еще 4% даже в такой простой задаче. Это и есть первый ответ на вопрос “Почему ИИ ошибается?”. Потому что ошибается и человек.
Вторая причина - мы находимся в особой зоне медицинского сектора, где не существует “золотого стандарта” разметки медицинских изображений - каждый рентгенолог делает работу по-своему. Отсюда такая вариативность в разметке и чтении результатов работы искусственного интеллекта. В теории мы можем взять одного рентгенолога, попросить его разметить миллион медицинских снимков, на их основе обучить нейросеть и показать результат этому же радиологу - только так мы достигнем стопроцентную точность. Но другой радиолог уже будет спорить с результатами работы нейросети.
Отсюда ответ на вопрос “Можно ли сделать совершенную нейросеть?”: в обозримом будущем - нет.
Сейчас искусственный интеллект может больше, чем живой врач?
ИИ повторяет работу врача: находит подозрительные области на снимке и описывает их (объем, плотность). Из реальной практики: за время пандемии КТ-исследование грудной клетки сделал буквально весь мир. Тогда врачи в режиме высокого стресса отсматривали эти снимки, чтобы определить степень поражения легкого, характерные для COVID-19 - другие патологии оставались вне зоны внимания специалистов. И вот сейчас идут разговоры о том, чтобы весь этот объем данных пересмотреть, найти признаки ранней онкологии легкого. Ведь вряд ли пациенты сами придут проверяться в ближайшее время. Но пересмотреть такой объем данных усилиями врачей невозможно, вот здесь и пригодится искусственный интеллект, который сам проанализирует исследования. Врачам останется только отсмотреть небольшой процент снимков, в которых ИИ обнаружил признаки патологии. Такой проект мы провели, например, в Нижнем Новгороде и Санкт-Петербурге - там искусственный интеллект нашел пациентов с раком легкого, которые раньше не состояли на учете в онкодиспансере (наличие онкологии подтвердили врачи).
Важно: ИИ может найти “тревожную” область на снимке. Но все равно исследование пройдет повторную верификацию живым врачом. Диагноз и план лечения также выбирает врач. Поэтому разговоры о том, что искусственный интеллект оставит рентгенологов без работы, слишком преждевременны. В обозримом будущем они продолжат страховать, подсказывать и помогать врачам.
*По данным исследования, проведенного в рамках Международной программы ранней диагностики рака легких International Early Lung Cancer Action Program (I-ELCAP)