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

Моя команда в университете представляет решение вышеуказанной проблемы в виде двух независимых моделей сверточной нейронной сети (CNN) для классификации типов кожных поражений и связанных с ними аллергий, а также для прогнозирования вероятности рака кожи и его типа соответственно. . Сверточная нейронная сеть (ConvNet/CNN) — это алгоритм глубокого обучения, который может принимать входное изображение, присваивать важность (обучаемые веса и смещения) различным аспектам/объектам на изображении и иметь возможность отличать один от другого. Предварительная обработка, необходимая в ConvNet, намного ниже по сравнению с другими алгоритмами классификации. В то время как в примитивных методах фильтры разрабатываются вручную, при достаточном обучении ConvNets имеют возможность изучать эти фильтры/характеристики.

Прогнозирование вероятности рака кожи

Архитектура модели, используемая для прогнозирования вероятности рака кожи, представляла собой ResNet50 (остаточная сеть с 50 слоями) + 3 сверточных слоя. ResNet50 устраняет проблему исчезающего градиента.

Исчезающий градиент

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

Как правило, в глубокой сверточной нейронной сети несколько слоев укладываются друг на друга и обучаются выполнению поставленной задачи. Сеть изучает несколько функций низкого/среднего/высокого уровня в конце своих слоев. При остаточном обучении вместо того, чтобы пытаться выучить какие-то особенности, мы пытаемся выучить какой-то остаток. Остаток можно просто понимать как вычитание признака, полученного из ввода этого слоя. ResNet делает это, используя короткие соединения или пропуская соединения (напрямую соединяя вход n-го уровня с некоторым (n+x)-м слоем). Доказано, что обучение этой формы сетей решает проблему ухудшения точности.

Используемые наборы данных

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

Набор данных ISIC по раку кожи

Результаты обучения и тестирования

ResNet50 явно дает очень высокую точность при тестировании на изображениях. Модель, которую мы обучили для выявления доброкачественного/злокачественного рака, дала нам точность обучения 92% и точность теста 85%. Следовательно, сама точность доказывает, что эта архитектура CNN лучше всего подходит для этой классификации. Предполагается, что точность будет дополнительно улучшена до 95%+ за счет доступа к большей вычислительной мощности и улучшенным графическим процессорам, большему количеству обучающих изображений и большему времени для обучения модели за счет увеличения количества эпох.

Обнаружение и классификация поражений кожи и связанных с ними аллергий

Используемая архитектура модели — DenseNet169 (плотно связанная сверточная сеть) + 6 сверточных слоев.

Архитектура CNN также используется для этой модели прогнозирования. Мы обнаружили, что в то время как ResNet50 давал отличные результаты при прогнозировании того, является ли рак доброкачественным или злокачественным (то есть, когда модель имела 2 класса для прогнозирования), она не работала так хорошо, когда у нее было 7 классов для классификации (т.е. выше перечислены 7 типов поражений кожи). Другие архитектуры нейронных сетей также работали хуже, так как количество классов увеличилось. После экспериментов с другими типами архитектур остаточной сети (например, ResNet101, ResNet152), другими архитектурами сверточных нейронных сетей, такими как VGG16, VGG19, MobileNet, InceptionV3 и DenseNet121, мы обнаружили, что следующая модель обеспечивает наилучшую точность: DenseNet169 + 6 сверточных слоев.

Преимущества использования архитектуры DenseNet

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

DenseNets упрощают схему подключения между уровнями. Эта архитектура решает проблему обеспечения максимального информационного (и градиентного) потока. Для этого он просто соединяет каждый слой напрямую друг с другом. Вместо того чтобы извлекать репрезентативную мощь из чрезвычайно глубоких или широких архитектур, DenseNets использует потенциал сети за счет повторного использования функций. Кроме того, некоторые варианты ResNets доказали, что многие слои практически не вносят вклад и могут быть удалены. На самом деле количество параметров ResNet велико, потому что у каждого слоя есть свои веса, которые нужно изучить. Вместо этого слои DenseNets очень узкие (например, 12 фильтров), и они просто добавляют небольшой набор новых карт функций.

Используемые наборы данных

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

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

Результаты обучения и тестирования

После очень тщательного тестирования с рядом моделей и настройки ряда гиперпараметров каждой из этих моделей с использованием различного количества эпох, тестирования с различными функциями потерь, скоростью обучения, добавлением различного количества сверточных слоев после модели с использованием DenseNet169 в качестве базовой модели мы нашли наилучшую точность. Модифицированная архитектура дала точность обучения 84% и точность тестирования 71%, которая, как предполагается, увеличится до ~ 92% с доступом к большей вычислительной мощности, лучшим графическим процессорам, большим наборам обучающих данных и большему времени обучения.

Системная архитектура для веб-приложения

Бэкэнд для системы был разработан с использованием Flask. Сервер Flask предварительно обрабатывает полученные данные изображения, создает прогноз с использованием сохраненных моделей и помечает прогнозы в понятной пользователю терминологии. Выходные данные преобразуются в данные JSON и отправляются в источник запроса.

Оптимизированная связь с сервером моделей

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

Интерфейс и пользовательский интерфейс

Интерфейс системы был разработан с использованием React JS и Bootstrap. Пользователь может легко перемещаться по его дружественному пользовательскому интерфейсу и загружать изображение пораженной области кожной аномалии пациента. Приложение React отправляет данные изображения на сервер с помощью HTTP-запроса POST и получает данные JSON, содержащие прогноз, в качестве ответа. Поскольку большая часть системы (сервер Flask и модели) не работает на компьютере пользователя, приложение быстрое, легкое и удобное в использовании.