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

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

Набор данных

Мы взяли рентгеновские снимки грудной клетки из этого проекта Kaggle и предварительно обработали каждое из них до разрешения 224 x 224 пикселей:

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

Мы предварительно обработали изображения, чтобы изменить размер каждого из них до разрешения 224x224 пикселей, и создали файл .csv для сопоставления изображений с соответствующими перечислениями классификации. Ниже приведен частичный пример того, как выглядит файл .csv:

В мастере данных мы установили первый столбец как Ввод типа Изображение, а второй столбец — как Цель типа Категория. ; распределения по разделам были оставлены по умолчанию PerceptiLabs (70% обучения, 20% проверки и 10% тестирования) с включенной рандомизацией.

Резюме модели

Наша модель была построена всего из трех Компонентов:

Обучение и результаты

Мы настроили модель для работы с использованием функции потерь Cross Entropy и оптимизатора ADAM со скоростью обучения 0,0001 в течение 10 эпох партиями по 50.

При времени обучения 2 минуты 44 секунд мы смогли достичь точности обучения 99,54 % и точности проверки 93,5 %. На следующем снимке экрана из PerceptiLabs вы можете увидеть, как обучение точность быстро увеличивалась в течение первой эпохи, в то время как точность проверки оставалась довольно стабильной:

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

Вертикальные приложения

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

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

Сводка

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