Глубокое обучение

Как я построил классификатор тканей колоректального рака с помощью глубокого обучения

Я верю, что искусственный интеллект может спасти человечество.

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

Фэнтези Скайнет далек от того, чтобы случиться… по крайней мере, на данный момент.

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

Применение искусственного интеллекта в области здравоохранения безгранично, предлагая огромный потенциал в области точной медицины, медицинской аналитики, медицинской информатики и т. Д.

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

Почему Клаудиопсия?

Колоректальный рак (CRC) только в 2018 году унес жизни около 1,8 миллиона человек (ВОЗ, 2018). Фактически, на Филиппинах колоректальный рак считается желудочно-кишечным раком номер один (Afinidad-Bernardo, 2017). Однако, к счастью, колоректальный рак можно предотвратить, и, если его выявить в раннем возрасте, колоректальный рак можно вылечить.

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

Итак, что это такое?

Проще говоря, платформа Cloudiopsy предсказывает входные изображения через модель нейронной сети посредством передачи обучения, используя Keras с бэкэндом Tensorflow, обученным в Google Colab, и обслуживая прогнозы в браузере через Tensorflow.js.

Базовая патологическая интуиция, лежащая в основе колоректального рака

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

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

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

Нейронные сети и трансферное обучение

Нейронные сети - это набор связей в мозгу, где электрические сигналы передаются друг через друга для генерации мыслей, идей, эмоций и т. Д. С другой стороны, когда мы учимся, мы перестраиваем эти связи между этими нейронами, чтобы изучить новые паттерны. и концепции.

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

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

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

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

Набор данных

Набор данных, использованный в этом проекте, представлял собой 100 000 гистологических изображений колоректального рака человека и здоровых тканей, подготовленных Катером, Халамой и Марксом. По словам исследователей, набор данных состоит из 100000 изображений окрашенных гематоксилином и эозином (H&E) гистологических изображений колоректального рака (CRC) человека и нормальной ткани, собранных из образцов из NCT Biobank и архива патологии UMM (Kather, Halama & Marx , 2016).

Построение модели

Чтобы построить модель нейронной сети, я использовал Google Colab для обучения более чем 4534 изображениям (2235 изображений опухолевой ткани и 2299 изображений нормальной ткани). У меня есть 1330 изображений для проверки (656 для нормальной и 674 для опухолевой ткани) и 1653 изображения (810 для нормальной и 843 для опухолевой ткани) для набора тестовых данных.

Я использовал Keras с бэкэндом Tensorflow для разработки нейронной сети с оптимизатором Nadam, обучаясь в течение 50 эпох.

Конкретная архитектура моей модели проиллюстрирована ниже:

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

Функция потерь была основана на бинарной кросс-энтропии. Модель получила окончательную точность теста 98,79% и оценку F1 0,987. Окончательный размер модели - 75,5 МБ.

Обслуживание с использованием Tensorflow.js

Чтобы обслуживать его онлайн, я использовал конвертер tfjs, который преобразует модель в файл model.json и файлы сегментов, которые будут использоваться для загрузки модели. Я написал простой скрипт для загрузки model.json и предоставления прогнозов через cloudiopsy.github.io.

Заключение

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

Благодарности

Я хотел бы поблагодарить своего наставника г-на Мартина Гомеса, доктора Дафну Анг и моих родителей, доктора Серафина Серапио и доктора Черри Серапио, которые помогли мне сделать этот проект возможным.

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

Шолле, Ф. (2016). Создание мощных моделей классификации изображений с использованием очень небольшого количества данных. Получено с https://blog.keras.io/building-powerful-image-classification-models-using-very-little-data.html.

Мартинсон, К. (2018). Передача обучения и увеличения данных в Керасе. Получено с https://craigmartinson.com/post/keras-transfer-learning/.

НАБОР ДАННЫХ:

Катер, Дж. Н., Халама, Н., Маркс, А. (2016). 100000 гистологических изображений колоректального рака и здоровых тканей человека. [Набор данных изображения]. Получено с https://zenodo.org/record/1214456.