Глубокое обучение для обнаружения рака молочной железы. Пошаговый процесс.

0
534

Рак молочной железы является наиболее распространенным инвазивным раком у женщин и второй основной причиной смерти от рака у женщин после рака легких. В этой статье я (Фабио Васкес — Ученый-физик, физик и компьютерный инженер). построю нейронную сеть на основе WideResNet, чтобы классифицировать слайд-изображения на два класса, один из которых содержит рак молочной железы и другие.

Об этом со ссылкой на источники пишет Фабио Васкес в статье для towardsdatascience, сообщает ai360.com.ua.

Инвазивная протоковая карцинома (IDC), также известная как инфильтрирующая протоковая карцинома, является наиболее распространенным видом рака молочной железы. Американское общество рака оценивает, что более 180 000 женщин в Соединенных Штатах обнаруживают, что у них есть инвазивный рак молочной железы каждый год. Большинство этих видов рака диагностированы с помощью IDC.

Точная идентификация и категоризация подтипа рака молочной железы — важная задача. Автоматизированные методы, основанные на ИИ, могут значительно сэкономить время и уменьшить погрешность.

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

Набор данных для этой проблемы был собран учеными из Western Reserve University в Кливленде, штат Огайо. Этот набор данных предварительно обрабатывается хорошими людьми в Kaggle, который использовался в качестве отправной точки в нашей работе.

Каждый слайд приблизительно дает 1700 изображений 50х50 патчей

В наборе данных имеется 162 изображения слайдов. Эти слайды были сканированы с разрешением 40 раз. Наконец, эти слайды затем разделены 275,215 50×50 пиксельных патчей. Затем каждой из этих патчей присваивается одна метка 0 или 1. Для патчей, которые включают IDC, есть метка 1 и исправления, которые не включают IDC, имеют метку 0.

Пример положительной и отрицательной ткани

Классификация слайдов с помощью WideResNet
Архитектура ResNet, использующая остаточные соединения, была очень успешной в задачах классификации изображений. Архитектура WideResNet показала, что подобная производительность может быть достигнута с гораздо меньшей глубиной до 16 слоев. Это помогает решить различные проблемы, связанные с очень глубокими ResNets, такими как разрастающиеся / исчезающие градиенты и деградация.

Основная идея ResNet представляет собой так называемое «соединение ярлыков с идентификатором», которое пропускает один или несколько уровней.

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

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

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


Для решения этих проблем Zagoruyko и Komodakis провели детальное экспериментальное исследование архитектуры блоков ResNet (опубликовано в 2016 г.), на основе чего они предложили новую архитектуру, где мы уменьшаем глубину и увеличиваем ширину остаточных сетей. Они называли их широкими остаточными сетями.

Теперь мы покажем пошаговый процесс решения этой проблемы с использованием архитектуры WideResNet. Мы используем Deep Learning Studio, которая позволяет нам быстро строить нейронную сеть, не беспокоясь о кодировании, синтаксисе и наборе данных.

1. Создание проекта

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

 

2. Использование набора данных

Затем мы устанавливаем набор данных для этого проекта на вкладке «Данные». Обычно 80% — 20% — хороший раскол между обучением и валидацией, но вы можете использовать другие настройки, если хотите. Также не забудьте установить Load Dataset в памяти в «Полный набор данных», если ваша машина имеет достаточное количество ОЗУ для загрузки полного набора данных в ОЗУ.

3. Создайте нейронную сеть

Вы можете создать нейронную сеть, как показано ниже, путем перетаскивания слоев.

 

Не забудьте установить WideResNet на 100% в соответствие с свойствами, находящимися справа. Также первый плотный слой (Dense_3) должен иметь около 20 нейронов с ReLU в качестве функции активации. Заключительный слой Dense (Dense_1) должен иметь выходной размер как 1 и активацию в виде сигмоида. Причина этого заключается в том, что мы поставили эту проблему как регрессию вместо классификации. Если выход регрессии ниже 0,5, то мы можем сказать, что вход принадлежит классу 0 (без рака IDC), иначе он имеет рак IDC.

4. Гиперпараметр и обучение

Ниже приведены гиперпараметры, которые мы использовали. Не стесняйтесь меняться и экспериментировать с ними.

 

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

После завершения обучения вы можете проверить результаты на вкладке результатов. Мы достигли более чем 85% -ной точности в течение нескольких часов на графическом процессоре K80, стоимость которого составляет около 0,90 долл. США в час.

С развертыванием Deep Learning Studio в качестве webapp или REST API может быть выполнена с помощью вкладки deploy, как показано ниже:

 

5. Развертывание модели

Доступную модель можно получить в виде API WebApp или REST, как показано ниже:

 

Заключение

Таким образом, вы можете увидеть, что модель Deep Learning может быть построена за считанные минуты и развернута за считанные секунды с помощью Deep Learning Studio. Такая мощность позволит многим разработчикам решать сложную проблему, не беспокоясь о кодировании, API и т.д.

Источник: https://towardsdatascience.com