Распутывая «черный ящик» сверточных нейронных сетей
Интерес к приложениям искусственного интеллекта для анализа изображений в здравоохранении быстро растет. Количество публикаций в академических журналах, посвященных машинному обучению, растет экспоненциально, и, как следствие, несколько приложений для распознавания изображений были внедрены в повседневную клиническую практику. Точные алгоритмы могут служить дополнительными диагностическими инструментами для врачей, чтобы облегчить и ускорить рабочий процесс и, что наиболее важно, повысить точность диагностического процесса.
Алгоритмы анализа изображений следует добавлять в инструментарий врача и не рассматривать как потенциальную замену медицинских специалистов. Несмотря на то, что врачи заботятся о благополучии своих пациентов и несут ответственность за них, большинство из них не знакомо с математическими деталями алгоритмов машинного обучения. Следовательно, медицинские приложения не должны служить «черными ящиками», а должны предоставлять дополнительную информацию о том, как модель пришла к своим предсказаниям. В этом блоге демонстрируются два возможных метода получения этой информации: вероятностные слои, которые можно использовать для устранения неопределенности в прогнозах модели, и Grad-CAM - метод демонстрации того, какие пиксели больше всего влияют на результат модели. В этом блоге мы сосредоточимся на дерматоскопических изображениях, но представленные методы применимы и к другим областям медицины (например, радиологии и патологии).
Базовая архитектура
Эти два метода будут проиллюстрированы с использованием общедоступного набора данных Kaggle HAM («Человек против машины») 10000, который содержит более 10000 изображений 7 классов пигментных поражений кожи, включая несколько типов рака кожи (например, меланома и базальноклеточная карцинома) и менее инвазивные типы. такие как доброкачественные кератозоподобные поражения и физиологические меланоцитарные поражения.
Хотя набор данных содержит дополнительные функции, такие как возраст и местоположение, ценные для классификации поражений кожи, в иллюстративных целях этот блог будет просто сосредоточен на данных изображений. Слева изображены несколько изображений-примеров, все полученные с помощью дерматоскопа.
Сначала была обучена базовая сверточная нейронная сеть с использованием архитектуры VGG16 с предопределенными весами. Вес первых слоев был заморожен, и только последние 6 слоев были повторно обучены. Добавлен дополнительный плотный слой с функцией активации softmax.
После 10 эпох обучения модель переноса обучения дала точность проверки 82%. На данный момент выходные данные модели состоят из массива, представляющего вероятности принадлежности изображения к каждому из 7 классов (см. Ниже).
[[2.3303068e-09 1.2782693e-10 1.4191615e-02 1.8526940e-14 3.9408263e-02 9.4640017e-01 2.1815825e-11]]
Эти прогнозы уже могут направлять врачей в правильном направлении, однако дополнительная информация о методе «мышления» модели повысит понимание и доверие к такого рода моделям глубокого обучения. В следующих разделах будет показано, что для этой цели чрезвычайно полезны вероятностные слои и Grad-CAM.
Вероятностные слои
Добавление вероятностного слоя в архитектуру модели - ценный метод оценки неопределенности прогнозов модели. Фундаментальное различие между «нормальным» и вероятностным слоями состоит в том, что вероятностные слои предполагают, что веса имеют определенное распределение, а не являются точечными оценками. Вероятностные слои аппроксимируют апостериорное распределение весов с помощью вариационного вывода. По сути, апостериорное распределение аппроксимируется с помощью распределенной суррогатной функции Гаусса. Во время каждого прямого прохода веса вероятностного слоя выбираются из этого суррогатного распределения.
Как следствие, ввод одного и того же ввода несколько раз будет приводить каждый раз к немного разным прогнозам. В задаче классификации модель даст распределение вероятностей для каждого класса. Это распределение вероятностей можно использовать для оценки неопределенности прогнозов модели: если неопределенность ограничена, повторные прогнозы будут очень близки друг к другу, в то время как широкое распределение прогнозов подразумевает большую неопределенность модели.
Этот блог будет сосредоточен на реализации определенного вероятностного плотного слоя (Flipout), который может быть легко достигнут с помощью модуля Tensorflow Probability. Вместо добавления нормального плотного слоя к предопределенной сети VGG16 мы добавляем плотный слой Flipout, используя тот же метод. Полная математическая основа Flipout была описана Wen et al. и его можно найти по адресу https://arxiv.org/abs/1803.04386.
После обучения модели результат нашего плотного слоя Flipout на первый взгляд выглядит похожим: массив, представляющий вероятность для каждого из 6 классов. Однако, как упоминалось выше, каждое предсказание одного и того же изображения немного отличается в результате весов выборки слоя Flipout из распределения при каждом прямом проходе. Повторяя прогнозы для определенного изображения несколько раз, можно получить распределение вероятностей для каждого из 7 классов повреждений кожи.
Каждое из изображений слева показывает распределение вероятностей изображения, принадлежащего к классу «меланоцитарные невусы» (синий) или «меланома» (оранжевый), созданное при прохождении каждого изображения через сеть 100 раз. Ось абсцисс отражает вероятность принадлежности изображения к одному из классов, а высота графиков выражает плотность распределения.
Ценность дополнительной информации для врачей можно проиллюстрировать на изображенных графиках плотности. Давайте посмотрим на левый график: прохождение первого изображения через «нормальную» сверточную нейронную сеть дало бы низкую оценку для класса «меланоцитарные невусы» (синий) и высокую оценку для класса «меланома» (оранжевый ). Слой вероятностного переворота позволяет оценить неопределенность этих прогнозов. В частности, левый график показывает небольшое изменение предсказанных (низких) вероятностей для класса «меланоцитарные невусы». Однако распределение класса «меланома» имеет гораздо больше вариаций, что означает, что вероятность принадлежности изображения к классу «меланома» весьма неопределенна.
Таким образом, «нормальная» сверточная нейронная сеть будет обеспечивать вероятность для каждого класса, в то время как модель, содержащая вероятностный слой Flipout, дает распределение вероятностей для каждого класса и, таким образом, может использоваться для оценки неопределенности прогнозов модели. Врачи могут использовать эту дополнительную информацию, чтобы лучше понять прогнозы и использовать свои знания для подтверждения или исключения определенного диагноза.
Grad-CAM
Градиентно-взвешенное отображение активации классов (Grad-CAM) - это метод, который извлекает градиенты из последнего сверточного слоя сверточной нейронной сети и использует эту информацию для выделения областей, наиболее ответственных за прогнозируемую вероятность принадлежности изображения к предопределенному классу.
Этапы Grad-CAM включают извлечение градиентов с последующим объединением глобального среднего значения. Функция активации ReLU добавлена только для отображения тех областей изображения, которые имеют положительный вклад в предопределенный класс. Результирующая карта внимания может быть нанесена поверх исходного изображения и может быть интерпретирована как визуальный инструмент для определения областей, на которые модель смотрит, чтобы предсказать, принадлежит ли изображение к определенному классу. Читателям, интересующимся математической теорией, лежащей в основе Grad-CAM, рекомендуется прочитать статью Selvaraju et al. через https://arxiv.org/abs/1610.02391.
Приведенный ниже код демонстрирует относительную простоту реализации Grad-CAM с нашей базовой моделью.
Эти изображения демонстрируют исходное изображение меланомы и то же изображение с наложенной картой внимания, созданной с использованием алгоритма Grad-CAM. Эти изображения ясно показывают, что Grad-CAM дает дополнительную информацию, полезную для повседневной клинической практики. Эта карта внимания отражает, какие части поражения кожи больше всего влияют на прогнозы модели. Возможно, эта информация может быть полезной при проведении биопсии кожи для подтверждения предполагаемого диагноза. Кроме того, при условии, что алгоритм точен в своих предсказаниях, повторное использование алгоритма со встроенными визуальными функциями у разных пациентов повысит доверие врача к предсказаниям алгоритма.
Заключение
Сверточные нейронные сети могут предоставить дополнительные диагностические инструменты для нескольких медицинских специальностей, таких как радиологи, дерматологи и патологи. Однако моделей, которые просто предоставляют предсказания классов, недостаточно. Мы считаем, что внедрение методов, добавляющих вероятностные рассуждения и Grad-CAM, дает представление об основных свойствах модели и поэтому важно для врачей, чтобы понять и начать применять алгоритмы машинного обучения в повседневной клинической практике.
Об авторе
Рик Краан - врач, работающий специалистом по анализу данных в Vantage AI, консалтинговой компании в области науки о данных в Нидерландах. Не стесняйтесь обращаться к нам через [email protected]
Особая благодарность Ричарду Бартелсу и Луку Герритсу