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

Ужасная сказка о раке

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

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

Метастатический рак

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

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

Машинное обучение + сверточные нейронные сети

Суть машинного обучения заключается в том, чтобы заставить машины научиться выполнять конкретную задачу. Вместо того чтобы давать явные инструкции, машина учится создавать свои собственные инструкции. На самом деле все эти инструкции являются математическими значениями. Модель машинного обучения - это просто дифференцируемая функция, которая принимает заранее определенный объем входных данных, использует переменные (веса) для выполнения действий с входными данными и производит выходные данные. Это похоже на y = mx + b. x - входные данные модели, m и b - переменные (веса), а y - выход. Машинный алгоритм должен оптимизировать веса m и b, чтобы при любом вводе он всегда давал желаемый результат. Как мы оптимизируем наши переменные? По сути, это два шага, генерирующие потери и обратное распространение.

Функция потерь

Функция потерь - это функция, которая показывает, насколько плохо работает модель. Чем выше потери, тем хуже работает модель. Мы можем генерировать убытки, используя данные с метками. Мы можем дать модели на входе x и позволить ей производить собственный вывод на основе своих весов. Поскольку мы пометили данные, мы знаем, каким должен быть результат на выходе модели. Мы можем сравнить выходные данные модели с реальными и увидеть разницу. Например, выход модели может быть 3, а реальный выход может быть 5. Потери для этого примера могут быть 2, т.е. насколько далеко друг от друга находятся два выхода. Мы хотим, чтобы модель всегда производила потери равные 0, что означает, что нам нужно минимизировать функцию потерь.

Обратное распространение

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

Сверточные нейронные сети

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

Чтобы получить более понятное объяснение, ознакомьтесь с этой статьей, которую я написал, более подробно описывая сверточные нейронные сети.

Модель обнаружения метастатического рака

Данные

Для создания модели использовались данные с пометкой Гистопатологическое обнаружение рака на Kaggle. Он поставляется с более чем 150 000 изображений сканированных гистопатологических изображений, каждое из которых помечено либо 1, либо 0. 0 указывает на отсутствие метастатического рака на изображении, а 1 указывает на наличие метастатического рака внутри изображения. Каждое изображение имеет размер 96 пикселей на 96 пикселей по 3 цветным каналам (красный, синий, зеленый). Мы можем представить каждое изображение сеткой значений 96x96x3.

Модель

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

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

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

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

Наконец, плотные слои анализируют карты функций и фактически выясняют, есть ли рак или нет. Последний слой содержит один узел или выход, который будет иметь значение 0 или 1. 0 означает отсутствие рака, а 1 означает рак. Функция потерь будет использовать это для вычисления потерь, а обратное распространение оптимизирует веса в этих слоях.

Модель содержит более 51 миллиона + параметров, что означает, что она может обеспечить действительно хорошую точность.

Функция потерь + оптимизация

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

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

Обучение

Модель обучалась более 10 эпох или выполняла обратное распространение в пакетах по 100 изображений каждый 10 раз по всему набору данных. 20% изображений использовались для проверки или проверки того, что модель обучалась. После пары часов обучения модель была готова.

Результаты в…

Модель получила 80% точности определения рака. Значит, 80% будут правы в своем прогнозе. Вот несколько примеров:

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

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

Https://mc.ai/gradient-descent-and-its-types/ (Изображение с градиентным спуском)