Попытка использовать Generative Adversarial Network не только для создания классных изображений.

Зачем обнаруживать аномалии на рентгеновских снимках

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

Однако ML и DL сильно жаждут данных, особенно в случае медицинских данных.

  • Ненормальные медицинские случаи обычно намного реже, чем нормальные случаи, поэтому они обычно сильно смещены в сторону нормальных случаев (отрицательные образцы). Получение разумной суммы для всех случаев занимает очень много времени.
  • Для контролируемого подхода к ОД / ДО объем собранных данных также должен быть отмечен квалифицированными врачами / врачами. Поэтому создание ярлыков для наборов медицинских данных очень дорого.

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

В этом сообщении блога мы исследуем идею построения такой модели с помощью Generative Adversarial Network (GAN).

О GAN

GAN - это семейство моделей нейронных сетей (NN), в которых два или более компонента NN (генератор / дискриминатор) конкурируют друг с другом, что приводит к тому, что со временем компоненты NN становятся лучше. GAN также можно рассматривать как функцию усвоенных потерь.

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

Пожалуйста, обратитесь к этой отличной статье для мягкого введения в GAN.

Почему GAN

Чтобы сгенерировать реалистичные образцы в мультимодальном распределении изображений, генератор и дискриминатор GAN должны иерархически изучить высокоуровневые характеристики входных данных, чтобы он мог различать реальные и синтетические образцы.

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

Но можно ли использовать эти изученные функции GAN для чего-то еще, например, для неконтролируемого обнаружения аномалий? GAN, безусловно, может делать крутые вещи, но может ли он делать и полезные вещи?

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

Стратегия обнаружения аномалий:

  1. Обучите GAN генерировать только нормальные рентгеновские изображения (отрицательные образцы).
  2. При прогнозировании аномалии используйте GAN для восстановления входных изображений как нормальных, так и аномальных изображений (отрицательные и положительные образцы ).
  3. Вычислить реконструкцию, сопоставление признаков и дискриминацию потерь .
  4. Различайте нормальные и ненормальные случаи, используя эту статистику.
  • Реконструкция потеря - это различия между исходным и восстановленным изображениями.
  • Соответствие функций - это различия между закодированными функциями скрытых слоев в кодировщике и дискриминаторе.
  • Потеря дискриминации - это просто результат работы Дискриминатора.

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

Несмотря на то, что первоначальная задача Дискриминатора состоит в том, чтобы различать реально-нормальные и поддельные-нормальные изображения, мы попытаемся перепрофилировать Дискриминатор для работы с реально-нормальными и реально-ненормальными данными.

Эксперименты:

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

  • Генератор, который выводит случайные выборки изображений из случайных скрытых векторов.
  • Дискриминатор, который классифицирует настоящие и поддельные образцы.

Чтобы иметь возможности кодирования и восстановления, нам нужно изменить ванильную архитектуру:

Двунаправленный GAN

BiGAN или ALI расширяют стандартную модель GAN с помощью компонента Encoder NN. Математически доказано, что энкодер является обратной функцией генератора, даже если они не связаны напрямую друг с другом во время обучения.

Дискриминатор в BiGAN теперь является объединенным дискриминатором, вместо того, чтобы различать входное изображение и сгенерированный образец, теперь он пытается различать пару данных X и скрытую переменную Z.

AlphaGAN

Alpha-GAN - это попытка объединить семейство Auto-Encoder (AE) с архитектурой GAN. Он начинается с компонентов кодировщика и декодера / генератора из AE и использует преимущества GAN как функции изученных потерь в дополнение к традиционным потерям L1 / L2.

Самая большая разница между Alpha-GAN и BiGAN - это прямое подключение энкодера к генератору.

В BiGAN градиенты текут параллельно к кодировщику и генератору, тогда как в Alpha-GAN градиенты текут последовательно от генератора, а затем обратно к кодировщику.

Генеративные результаты:

На рисунке ниже показаны результаты двух лучших моделей, обученных на наборе данных рентгеновских изображений MURA:

  • реконструированные выборки создаются из скрытых переменных z изображения: x - ›E (x) -› G (E (x))
  • сгенерированные выборки создаются из скрытых переменных z, выбранных случайным образом: z - ›G (z)

БиГАН:

  • Видно, что восстановленные образцы BiGAN не очень похожи на исходные входные изображения слева. Это можно объяснить архитектурой BiGAN, в которой кодировщик и генератор не взаимодействуют друг с другом во время обучения.
  • Сгенерированным образцам также не хватает разнообразия позы и яркости по сравнению с исходным распределением данных.

Альфа-ГАН:

Поскольку кодировщик и генератор связаны вместе во время обучения, Alpha-GAN может почти идеально реконструировать образцы, только немного размытые из-за потери L1.

Однако при генерации изображений из случайно выбранных скрытых векторов результаты намного хуже, чем у BiGAN, и не напоминают обучающие данные.

Похоже, что изученное скрытое пространство сильно зависит от выходных данных кодировщика. Скрытое пространство менее обобщено по сравнению с BiGAN, и при случайном отборе образцов он дает гораздо худшие результаты.

Дискриминационные результаты:

В этом разделе мы используем многие функции кодировщика и дискриминатора, чтобы различать нормальные и ненормальные случаи.

БиГАН

Как видно из гистограмм выше, как L1 / L2 потери при реконструкции, так и признаки совпадения потерь от кодировщика и дискриминатора показывают очень небольшую разницу между негативными и позитивными изображениями.

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

К сожалению, эти неконтролируемые функции BiGAN нельзя использовать для обнаружения аномальных рентгеновских изображений.

Альфа-ГАН:

Аналогично для Alpha-GAN мы строим гистограммы потерь L1 / L2 и потерь высокоуровневых характеристик. В этом случае потери при реконструкции отображают разницу между отрицательными и положительными образцами. Это можно объяснить способностью alpha-GAN восстанавливать изображение, наблюдаемое выше.

Кривые ROC показывают, что, в то время как другие особенности близко следуют за диагональной базовой линией, потери L1 и L2 показывают заметное отклонение от площади под кривой ROC, равной 0,65.

Проблемы и вызовы

Результаты экспериментов не согласуются с выдвинутой выше гипотезой, но почему?

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

Ниже приведены некоторые проблемы, которые, как мне кажется, препятствуют прогрессу:

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

  • Допущение дискриминатора: В этой недавней работе авторы показывают, что один и тот же дискриминатор подразумевает разные дискриминационные границы при случайной инициализации. Хотя эти случайные допущения Дискриминатора достаточно хороши для его первоначальной цели создания реалистичных изображений, это будет проблемой для других целей, таких как обнаружение аномалий.
  • Разреженное скрытое пространство: входные данные могут быть восстановлены из закодированных скрытых векторов, но GAN по-прежнему не имеют стимула иметь хорошо обобщенное скрытое пространство. Это явление можно наблюдать из случайно сгенерированных выборок в Alpha-GAN.

Заключение

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

Эта статья дает вам лучшее представление о том, как не создавать обнаружение аномалий с помощью GAN, и, надеюсь, вы лучше понимаете, как это сделать.

Если вы хотите воспроизвести результаты или у вас есть идея по улучшению, загляните в репозиторий Github: https://github.com/lkhphuc/Anomaly-XRay-GANs