Задний план:
Внедрение искусственного интеллекта в здравоохранение произвело революцию в отрасли. Что касается магнитно-резонансной томографии (МРТ), она обеспечивает более быстрое и лучшее обнаружение опухолей и рака с сегментацией и локализацией.
Постановка задачи:
В качестве консультанта по искусственному интеллекту и машинному обучению медицинская диагностическая компания поставила перед вами задачу повысить скорость и точность обнаружения и локализации опухолей головного мозга на основе МРТ. Предоставленный набор данных содержит 3929 МРТ-сканов головного мозга с указанием местоположения опухоли, чтобы вы могли разработать модель, которая обнаруживает и локализует опухоли головного мозга.
Интерес:
Интерес этой компании заключается в увеличении ранней диагностики опухолей головного мозга и снижении стоимости диагностики рака.
Решение:
Для решения вышеуказанной задачи строится модель классификации и сегментации.
Данные:
Источник: данные взяты отсюда
Используя функцию .info, я напечатал столбцы в файле csv.
Затем с помощью функции .head я напечатал первые 30 строк в наборе данных.
Как видно из приведенного выше, столбец с именем mask имеет значение 0, что указывает на отсутствие опухолей.
Визуализация данных
Используя matplolib.pyplot, я визуализировал 723-е изображение в наборе данных, которое имеет максимальное значение 255 и минимальное значение 0.
Затем, используя случайную функцию, я визуализировал шесть МРТ головного мозга, которые генерировали МРТ как с опухолями, так и без опухолей.
Разделение:
Используя функцию train_test_split, я разделил данные на обучение и тестирование со значением 15%. Затем, используя генератор изображений данных от keras, я изменил масштаб данных и разделил данные проверки на 15%.
Генерация данных:
Я сгенерировал подмножества поезда, проверки и тестового изображения с размером пакета 16, режимом класса, который равен категориальному и целевому размеру (256 256), а перемешивание равно false.
Я создал базовую модель с помощью resnet50 с весами из предварительно обученного значения, которое является сетью изображений. Ниже приводится краткое описание базовой модели.
Строительная сеть:
Я построил сеть, используя два скрытых слоя с активацией relu, плотностью 256 и отсевом 0,3 с выходным слоем, используя активацию softmax. Ниже представлено краткое описание модели.
Сборник:
Я скомпилировал модель, используя категориальную кроссэнтропию для потерь, оптимизатор Адама и метрики «точности».
Я также использовал раннюю остановку после 20 терпения, с контрольными точками, устанавливающими save_best_model в true.
Обучение:
Здесь были пробы и ошибки. Первая модель была обучена с 10 эпохами, что привело к точности 0,329 с этой визуализированной метрикой путаницы.
Вторая модель обучалась на 50 эпохах. обучение не дошло до 50 эпох, так как была вызвана ранняя остановка, в результате чего модель остановилась на 33 эпохах. Эта модель имела точность 0,866 и не могла работать с визуализированными метриками путаницы.
Третья модель обучалась с 1 эпохой с изменением некоторых гиперпараметров. Проверка была разделена на 20% вместо 15%. Точность с этой визуализированной метрикой путаницы составила 0,76.
Окончательная модель была обучена с 25 эпохами, которые имели точность 0,946, и это визуализировало метрики путаницы.
Глядя на модели выше, у нас есть наш победитель, четвертая модель.
Счет:
С помощью функции scikit Learn Classification_report изображение ниже было отчетом.
Модель сегментации:
Модель сегментации, которая поможет в локализации, была построена с использованием маски, целью которой является понимание изображения на уровне пикселей.
Методология:
Данные были разделены на обучающие, проверочные и тестовые подмножества. Функция потерь была выполнена с использованием пользовательской функции потерь, которая является функцией потерь Тверски. Подробнее об этом можно прочитать здесь, а репозиторий функции можно найти здесь.
Использовался оптимизатор Adam со скоростью обучения 0,05 и эпсилон 0,1, функцией потерь focus_tversky и метриками «tversky». Также применялись ранняя остановка и контрольно-пропускные пункты.
Обучение:
Модель сегментации обучалась с использованием 10 эпох с потерей и
Результат вышеизложенного недостаточен для сегментации, так как был замечен ложноотрицательный результат.
Визуализация:
Модель была построена для визуализации МРТ со сканированием, исходной маской, прогнозируемой маской, наземной истиной и сканированием с прогнозируемой маской.
Обсуждение:
Причиной обучения различных моделей было получение более высокой точности и устранение ложных срабатываний и ложных отрицательных результатов. Это помогает исключить ошибочный диагноз.
Вывод:
На обучение всех моделей ушло 48 часов, и я впервые столкнулся с функцией тверского. Приветствуются любые предложения о том, как повысить точность этой модели как минимум до 99%, вы можете связаться со мной через мой профиль LinkedIn.
PS: Это часть моего сертификационного курса, который я прошел в Udemy.