Можем ли мы обнаружить признаки COVID-19 на рентгеновском снимке грудной клетки, применяя нейронные сети и алгоритмы объяснимости?

Авторы сценария: Блейк ВанБерло и Мэтт Росс

Резюме

  • Исследование интерпретируемой модели машинного обучения для различения рентгеновских снимков грудной клетки пациентов с положительным результатом на COVID-19.
  • Для классификации рентгеновских лучей грудной клетки была разработана глубокая сверточная нейронная сеть. Инфраструктура модели, которую мы создали с открытым исходным кодом, является расширяемой, модульной и хорошо документированной, что позволит другим исследователям быстро выполнять итерацию, опираясь на эту библиотеку. Смотрите наш репозиторий GitHub.
  • Алгоритм LIME применяется для объяснения прогнозов модели.
  • Исследователи, частные лица и организации, обладающие опытом в области машинного обучения или здравоохранения, приглашаются внести свой вклад в продвижение этого проекта (контактная информация указана в конце этого поста).
  • Этот проект - ранний прототип, а не инструмент для медицинской диагностики. Для создания этой библиотеки требуется больше данных и опыта.

Вступление

Несомненно, читатель этой статьи осведомлен о стремительном распространении COVID-19. Это инфекционное заболевание представляет собой серьезную угрозу для здоровья населения и экономики стран. Число случаев заболевания в Канаде и во всем мире растет в геометрической прогрессии. Исследователи приняли призыв к действию и пытаются узнать больше о SARS Coronavirus 2 (SARS-CoV-2). Пытаясь поддержать эти усилия, исследователи машинного обучения используют свои навыки, чтобы получить больше информации о вирусе. Например, исследователи разработали структуру COVNet на основе ResNet50, чтобы отличить компьютерную томографию случаев COVID-19 от других типов внебольничной пневмонии [1].

В этой статье описывается эксперимент по применению методов машинного обучения для поиска интерпретируемой модели для различения случаев пневмонии, связанной с COVID-19, на основе рентгеновского снимка грудной клетки (CXR). Хотя машинное обучение может быть полезным для решения этой проблемы, любые прогнозы, сделанные моделью (независимо от того, насколько они успешны), будут тщательно изучены поставщиками медицинских услуг. Крайне важно дать объяснения предсказаниям модели. Мы надеемся, что интерпретируемые модели машинного обучения внесут положительный вклад в растущий объем знаний о COVID-19.

Зачем изучать рентгеновские лучи?

Поскольку комплекты для тестирования полимеразной цепной реакции с обратной транскрипцией (ОТ-ПЦР) находятся в ограниченном количестве, существует необходимость в изучении альтернативных средств выявления и определения приоритетности предполагаемых случаев COVID-19. В нашем городе Лондон, Канада, время обработки результатов теста на COVID-19 в настоящее время составляет 24 часа [2]. Не исключено, что этот срок еще больше в сельских и отдаленных регионах. КТ-сканирование, несмотря на то, что оно используется для клинического обследования пациентов с подозрением на COVID-19, стоит дорого. Следовательно, небольшие центры могут иметь ограниченный доступ к компьютерным томографам. Рентгеновские аппараты более доступны по цене, могут быть портативными и, следовательно, являются жизнеспособной альтернативой.

Чтобы быть ясным, в этой статье не утверждается, что CXR следует полагаться при диагностике COVID-19. Руководство Канадской ассоциации радиологов рекомендует следовать рекомендациям CDC, в которых говорится, что рентгенография и компьютерная томография не должны использоваться для диагностики COVID-19 [3]. В рекомендациях говорится, что вирусное тестирование в настоящее время является единственным средством диагностики COVID-19, даже если у пациента есть подозрительные признаки на рентгенограмме или компьютерной томографии. При этом некоторые исследования показали, что радиологическая визуализация (в частности, КТ) может быть такой же чувствительной, как ОТ-ПЦР [4]. Такие результаты показывают, почему мы решили изучить этот путь и создать инструменты с открытым исходным кодом для дальнейшего исследования. Также важно отметить, что нормальная визуализация не означает, что пациент не инфицирован SARS-CoV-2, только то, что у него нет признаков респираторного заболевания COVID-19.

Цели

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

Данные

Наборы данных

Для этого эксперимента данные были взяты из двух репозиториев:

  1. Репозиторий COVID-19 image data collection на GitHub представляет собой постоянно растущую коллекцию деидентифицированных рентгеновских снимков и компьютерных томографов от случаев COVID-19 во всем мире [5]. Мы хотели бы воспользоваться этой возможностью, чтобы поблагодарить Джозефа Пола Коэна и его коллег из Монреальского университета за их усердную работу по сбору этого набора данных. Образец изображения см. На рис. 1а.
  2. Набор данных RSNA Pneumonia Detection Challenge, доступный на Kaggle, содержит несколько деидентифицированных рентгеновских снимков и включает метку, указывающую, показывает ли изображение доказательства пневмонии [6]. Мы хотели бы воспользоваться этой возможностью, чтобы поблагодарить Радиологическое общество Северной Америки и все другие заинтересованные организации за создание этого набора данных. Образец изображения см. На рис. 1b.

На момент написания этой статьи первый набор данных содержал 76 задне-передних (ПА) снимков рентгеновской рентгенографии пациентов с положительным результатом на COVID-19. Он также содержит некоторые рентгенограммы пациентов с альтернативными результатами (например, SARS). Второй набор данных был включен, чтобы увеличить объем доступных данных, чтобы улучшить распознающие способности нашего классификатора. Второй набор данных не только содержит нормальные рентгеновские снимки, но также включает несколько рентгенограмм пациентов с пневмониями. Было проявлено осторожность при выборе только PA CXR из обоих этих наборов данных. Хотя оба набора данных также содержат переднезадние (AP) рентгенограммы, мы предположили, что включение обоих может ненадлежащим образом повлиять на прогнозы модели. Как описано Bell, Jones et. и др., к недостаткам АР-рентгенограмм относятся различия во внешнем виде структур по сравнению с АР-рентгенограммами [7].

Перед обучением данные из обоих наборов данных были объединены в один большой набор данных, состоящий примерно из 1000 изображений. В идеале мы хотели бы тренироваться на более крупном наборе данных, но мы опасаемся создания слишком сильного дисбаланса классов. Набор данных состоял из DataFrame Pandas, который содержит имена файлов и связанные с ними метки. Затем набор данных был случайным образом разделен на наборы для обучения, проверки и тестирования, чтобы сохранить постоянные пропорции классов среди этих наборов.

Предварительная обработка данных

Перед обучением на самих изображениях была реализована предварительная обработка. ImageDataGenerator (из tensorflow.keras) использовался для предварительной обработки пакетов изображений перед обучением. К изображениям были применены следующие преобразования:

  • Размер изображений был изменен до следующей формы: 224 × 224 × 3. За счет уменьшения размера изображения было уменьшено количество параметров в нейронной сети.
  • Для изображений был применен порог, чтобы удалить все очень яркие пиксели, а отсутствующие области были закрашены. Это было сделано для того, чтобы удалить с изображений как можно больше текстовых аннотаций. Была выдвинута гипотеза, что аннотации, относящиеся к региону или учреждению, могут искажать прогнозы. Подробнее об этом позже.
  • Значения пикселей изображения были преобразованы таким образом, что их среднее значение равно 0.
  • Значения пикселей изображения были разделены на стандартное отклонение пикселей изображения внутри изображения. Часто изображения нормализуются путем их масштабирования, поэтому их значения в пикселях находятся в диапазоне [0, 1]. Вместо этого мы решили изменить масштаб на основе стандартного отклонения изображения, поскольку наборы данных поступают из разных источников. Мы не можем говорить с набором данных RSNA, но набор данных Монреальского университета содержит изображения, взятые из нескольких источников.

Бинарная классификация

Сначала мы рассмотрели проблему бинарной классификации, цель которой состояла в том, чтобы определить, показывает ли рентгеновский снимок доказательства инфекции COVID-19. Классификатор должен был отнести рентгеновские изображения либо к классу, не относящемуся к COVID-19, либо к классу COVID-19. Архитектура глубокой сверточной нейронной сети была обучена выполнять бинарную классификацию. Модель обучалась с использованием оптимизатора Адама и категориальной кросс-энтропийной потери. Весь обучающий код написан с использованием TensorFlow 2.0.

Архитектура

После многочисленных итераций мы пришли к архитектуре глубокой сверточной нейронной сети, в которой используются остаточные связи. В связи с непосредственностью угрозы COVID-19 после выхода этой статьи будет проведен исчерпывающий поиск по гиперпараметрам. Кроме того, размер сети ограничен, чтобы соответствовать средним аппаратным ресурсам графического процессора, но при увеличении размера сети ожидаются улучшенные показатели, чтобы извлечь выгоду из большей доступности вычислений. В будущей работе будут предприняты попытки обучить хорошо известную остаточную сеть (например, ResNet50) и извлечь выгоду из переноса обучения из предварительно обученных весов. Рисунок 2 обобщает архитектуру двоичного классификатора.

Меры против переобучения

Мы применили несколько стратегий для борьбы с переобучением, такие как регуляризация весов L2, регуляризация выпадения и увеличение данных (поворот изображений обучающей выборки до 10 °).

Классовый дисбаланс

Из-за нехватки общедоступных рентгенограмм тяжелых случаев COVID-19 мы были вынуждены применять методы дисбаланса классов, чтобы смягчить последствия того, что один класс перевешивает несколько других. Если вы разбираетесь в машинном обучении, вы знаете, что точность может быть ошибочно высокой в ​​задачах классификации, когда класс недостаточно представлен. Мы остались перед дилеммой, так как мы также не хотели ограничивать наши обучающие данные только 76 примерами, не относящимися к COVID-19, поскольку всего было бы около 150 изображений. Следовательно, мы применили взвешивание классов, чтобы значительно больше штрафовать модель, когда она неправильно классифицирует положительный пример. Первоначально веса классов рассчитывались исключительно на основе пропорций в наборе данных. Результаты не были удовлетворительными. В результате мы дали пользователю возможность в конфигурационном файле нашего проекта более серьезно взвесить недостаточно представленный класс (в дополнение к рассчитанным весам). Это вмешательство повысило нашу точность и показатели запоминания до приемлемых значений для прототипа.

Полученные результаты

Метрики обучения визуализировались в TensorBoard после завершения обучающего эксперимента. См. рисунок 3 a для примера потери обучения и проверки в зависимости от эпохи.

Результаты по набору тестов представлены на рис. 3b. Обратите внимание, что набор тестов содержит менее 100 изображений, и только 8 из них относятся к классу COVID-19. Рисунки 3c и 3 d отображают матрицу неточности и кривую ROC соответственно .

Мультиклассовая классификация

Хотя бинарная классификация является информативной для определения того, могут ли CXR COVID-19 иметь какой-либо различимый образец, она более применима для отделения тяжелых случаев COVID-19 от других пневмоний (особенно других вирусных пневмоний). Наша цель здесь состояла в том, чтобы разработать модель, которая могла бы сортировать изображение рентгеновского снимка на один из следующих классов: нормальный, пневмония или инфекция COVID-19. Мы повторили те же методы предварительной обработки данных, которые описаны ранее в статье. Архитектура модели была очень похожа на архитектуру нашего бинарного классификатора, за исключением наличия полностью связанного слоя с 3 узлами в конце (по 1 для каждого класса).

Полученные результаты

Метрики обучения визуализировались в TensorBoard после завершения обучающего эксперимента. См. рис. 4a, где показан пример потери при обучении и проверке в зависимости от эпохи.

Результаты по набору тестов представлены на рис. 4b. Двоичные показатели (то есть точность, отзывчивость, оценка F1) сообщаются для класса, соответствующего инфекции COVID-19. Рисунки 4c и 4d отображают матрицу неточности и кривую ROC соответственно для класса COVID-19. Хотя модель выявила большинство случаев COVID-19, можно видеть, что точность этой модели была значительно ниже. Низкая общая точность означает, что мультиклассовая модель научилась отличать класс COVID-19 от классов «нормальная» и «другая пневмония» лучше, чем она научилась различать классы «нормальная» и «другая пневмония» друг от друга. В будущих версиях этой модели необходимо будет лучше сбалансировать вес классов во время обучения, чтобы другие классы оставались разными.

Объяснимость

Необходимость объяснения

Как упоминалось ранее в этой статье, совершенно необходимо, чтобы эта модель была интерпретируемой. Глубокие сверточные нейронные сети по своей сути не поддаются интерпретации; скорее, они считаются «черными ящиками». Согласно международному заявлению об этике искусственного интеллекта в радиологии, «прозрачность, интерпретируемость и объяснимость необходимы для создания доверия пациентов и медицинских работников» [8]. Вряд ли клиницисты полностью доверяют предсказаниям алгоритма, да и не должны. Объясняя, почему наша модель предсказывает инфекцию COVID-19 или ее отсутствие, любые исследователи или клиницисты, заинтересованные в улучшении этой системы, могут понять, почему модель принимает то или иное решение. На данный момент мы использовали алгоритм LIME [9] для генерации объяснений для прогнозов модели.

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

LIME Пояснения

Мы использовали Local Interpretable Model-Agnostic Explanations (т.е. LIME), чтобы объяснить предсказания классификатора нейронной сети, который мы обучили [7]. Мы использовали реализацию, доступную в авторском репозитории GitHub. LIME изменяет функции в примере и соответствует линейной модели для аппроксимации нейронной сети в локальной области в пространстве функций, окружающем пример. Затем он использует линейную модель, чтобы определить, какие функции больше всего способствовали предсказанию модели для этого примера. Применяя LIME к нашей обученной модели, мы можем проводить осознанную разработку функций на основе любых явно несущественных функций, которые мы видим, или идей экспертов в предметной области. Мы также можем определить, изучает ли модель какое-либо непреднамеренное смещение, и устранить его с помощью дополнительных функций.

Для данных изображения LIME считает элементы суперпикселями изображения. Для создания этих сегментов мы использовали алгоритм сегментации с поиском режима Quick Shift [10]. В нашем проекте объяснения визуально представлены в виде наложения суперпикселей, которые LIME считает наиболее способствующими предсказанию исходного изображения. Зеленые суперпиксели указывают на регионы, которые вносят наибольший вклад в предсказанный класс. И наоборот, суперпиксели, окрашенные в красный цвет, указывают на регионы, которые вносят наибольший вклад в прогнозируемый класс.

См. рисунки 5a и 5b для визуального представления объяснений LIME для пары предсказаний двоичного классификатора изображений в тестовом наборе. Рисунки 5 c, 5d, 5e и 5f отображают пояснения LIME для выбора прогнозов изображений в тестовом наборе, сделанных мультиклассификатором. Ясно, что модели еще предстоит пройти долгий путь, поскольку в объяснениях продолжают появляться суперпиксели вне грудной полости.

Улучшения, мотивированные LIME Объяснения

  1. Яркие символы, напечатанные на изображении
    После обучения нашего двоичного классификатора и создания объяснений LIME в первый раз мы заметили, что суперпиксели, содержащие яркий текст, часто выделялись зеленым цветом, что указывает на то, что они вносят свой вклад в модель прогноз. Возможно, один из наборов данных содержит определенные символы чаще, чем другой. Это открытие побудило нас попытаться удалить и перерисовать пиксели с яркостью выше определенного порога. Перед другими этапами предварительной обработки, если интенсивность пикселя выше 230 (из 255), он окрашивается с использованием окружающих пикселей для справки [11]. Этот подход, казалось, улучшил объяснения, поскольку текстовые области выделялись реже. Однако этот подход не работает для менее ярких текстовых областей. Если порог отсечки яркости установлен слишком низким, мы рискуем вырезать артефакты, которые могут присутствовать на рентгеновском снимке, что приведет к удалению подлинной информации о пациенте. Мы приглашаем других порекомендовать более эффективные решения этой проблемы. Либо мы находим лучший способ удалить текстовые данные с изображений, либо обучаемся на наборе данных, в котором вообще нет символов, напечатанных на изображениях.
  2. Непреднамеренное использование набора педиатрических данных для изображений, не относящихся к COVID-19
    Первоначально в качестве нашей коллекции мы использовали классический набор данных Рентгеновские снимки грудной клетки от Пола Муни (доступен на Kaggle). изображений, не относящихся к COVID-19. Этот набор данных содержит рентгеновские снимки, классифицируемые как нормальные случаи, случаи бактериальной пневмонии и случаи вирусной пневмонии. После обучения бинарных и мультиклассовых классификаторов мы заметили, что черные столбцы с правой и левой стороны изображения часто упоминаются в пояснениях LIME как важные функции, поддерживающие прогнозирование CXR, отличного от COVID-19. Поскольку эти области находятся вне тела пациента, очевидно, что они не должны постоянно выделяться как способствующие предсказанию. Внимательно прочитав описание этого набора данных на Kaggle, мы обнаружили, что все его рентгеновские снимки были получены у педиатрических пациентов в возрасте от 1 до 5 лет. Это представляет собой утечку данных, поскольку модель, вероятно, улавливает особенности рентгеновских лучей взрослых и детей. Это могло объяснить, почему мы изначально добивались высоких показателей производительности на тестовой выборке. Это подчеркнуло для нас необходимость реализации моделей машинного обучения в сочетании с объяснимым ИИ. Мы заметили, что этот подход к классификации CXR на COVID-19 с использованием того же набора педиатрических данных был опубликован несколько раз в сообществе специалистов по анализу данных за последние 2 недели. Мы надеемся, что этот проект поможет исправить эти ложные результаты.

Хотя LIME - отличный алгоритм объяснимости, в ближайшем будущем мы будем применять и сравнивать альтернативные алгоритмы объяснимости, не зависящие от модели.

Заключение

Проект, описанный в этой статье, представляет собой попытку применить машинное обучение, чтобы отличить пациентов с тяжелыми случаями инфекции COVID-19 от их рентгенологического исследования. Эта работа ни в коем случае не предназначена для клинического использования; это чисто исследовательский. Тем не менее, мы надеемся, что этот проект будет продолжать улучшаться и потенциально предлагать понимание, которое будет способствовать медицинским исследованиям в отношении COVID-19. Мы считаем, что объяснимость - это ключ к созданию алгоритмической системы, которая поможет медицинским работникам и исследователям. Этот проект будет продолжать расти, и обновления будут предоставляться соответственно.

Сотрудничайте с нами

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

Потребность в разном опыте

Этот проект был завершен сотрудниками Лаборатории исследований и инноваций в области искусственного интеллекта в лондонском Сити, Канада. Мы понимаем, что другие могли бы значительно улучшить нашу работу. Для продвижения этого проекта нам нужны люди с разным опытом. Особенно:

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

Если вы заинтересованы, свяжитесь с нами (см. Контактную информацию ниже).

Потребность в дополнительных данных

Отсутствие общедоступных COVID-19-положительных рентгеновских снимков является серьезным препятствием на пути улучшения производительности этой прототипной модели. Имея менее 100 РР COVID-19 PA, сложно подготовить обобщаемую модель. Фундаментальный принцип машинного обучения заключается в том, что чем больше данных вы тренируете, тем лучше ваша модель будет работать с невидимыми данными.

Если вы можете предоставить больше неидентифицированных данных или заинтересованы в подписании соглашения о совместном использовании данных, свяжитесь с нами:

Мэтт Росс,
менеджер по искусственному интеллекту,
Служба информационных технологий,
Офис городского менеджера,
Корпорация лондонского Сити
maross @ london. ca | 226.449.9113

Посмотреть код

Пожалуйста, смотрите Репозиторий GitHub для этого проекта. Мы приглашаем вас поделиться своими идеями. README.md репозитория объясняет организацию проекта и предоставляет подробные инструкции о том, как начать работу.

использованная литература

  1. Л. Ли и др., «Искусственный интеллект отличает COVID-19 от внебольничной пневмонии при КТ грудной клетки», Радиология, 2020. Доступно: 10.1148 / radiol.2020200905.
  2. Политика и рекомендации по тестированию на COVID-19, lhsc.on.ca, 2020. [Онлайн]. Доступно: https://www.lhsc.on.ca/palm/labs/covid.html#main-content. [Доступ: 27 марта 2020 г.].
  3. Заявление Канадской ассоциации радиологов и Канадского общества торакальной радиологии о лечении COVID-19 в отделениях визуализации. Канадская ассоциация радиологов, 2020.
  4. Я. Фанг и др., Чувствительность КТ грудной клетки на COVID-19: сравнение с ОТ-ПЦР, Радиология, 2020. Доступно: https://pubs.rsna.org/doi/ 10.1148 / radiol.2020200432.
  5. Дж. Коэн, Сбор данных об изображениях COVID-19, GitHub, 2020. [Онлайн]. Доступно: https://github.com/ieee8023/covid-chestxray-dataset. [Доступ: 17 марта 2020 г.].
  6. Проблема обнаружения пневмонии RSNA, Kaggle, 2020. [Online]. Доступно: https://www.kaggle.com/c/rsna-pneumonia-detection-challenge. [Доступ: 22 марта 2020 г.].
  7. Д. Белл и Дж. Джонс, Рентгенограмма грудной клетки, Радиопедия. [Онлайн]. Доступно: https://radiopaedia.org/articles/chest-radiograph. [Доступ: 26 марта 2020 г.].
  8. Этика искусственного интеллекта в радиологии: заявление о мультиобществе Европы и Северной Америки. Американский колледж радиологии, 2020.
  9. М. Рибейро, С. Сингх и К. Гестрин, Почему я должен вам доверять?, Материалы 22-й Международной конференции ACM SIGKDD по открытию знаний и интеллектуальному анализу данных - KDD '16, 2016 Доступно: https://dl.acm.org/doi/10.1145/2939672.2939778. [Доступ 25 марта 2020 г.].
  10. А. Ведальди и С. Соатто, Методы быстрого сдвига и ядра для поиска режима, Lecture Notes in Computer Science, pp. 705–718, 2008. Доступно: https: //link.springer .com / chapter / 10.1007% 2F978-3-540-88693-8_52. [Доступ 25 марта 2020 г.].
  11. Inpainting, Scikit-image.org, 2020 г. [Online]. Доступно: https://scikit-image.org/docs/dev/auto_examples/filters/plot_inpaint.html. [Доступ: 25 марта 2020 г.].