Как deep learning помогает в разработке персонализированной терапии рака?

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

07014d47314fd18d220df11bc4a6a3eb.jpeg

Что делает этот метод настоящим Чаком Норрисом в мире борьбы с раком? Он не просто борется с болезнью, а анализирует многочисленные факторы, связанные с онкологической патологией конкретного пациента. Это не просто лечение, это индивидуально настроенная стратегия, созданная благодаря силе глубокого обучения.

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

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

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

Многомодельный подход в онкологии

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

Выход = Среднее (Модель_1, Модель_2,…, Модель_n)

Это означает, что результат предсказания системы — это среднее значение предсказаний каждой модели.

История началась с разработки новой технологии глубокого обучения в Университете Джона Хопкинса. Исследователи университета решили использовать свёрточные (CNN) и рекуррентные нейросети (RNN), чтобы обрабатывать, анализировать genetic data раковых клеток из баз данных и предсказывать, как они отреагируют на разные виды лечения. Анализ производился посредством медицинских изображений, результатов биопсий, генетической информации, анамез и других релевантных факторов, которые впоследствии аннотировались, подвергались обучению глубоких нейросетей для автоматизированного прогнозирования персонализированного лечения. В основе этой технологии лежит deep learning, которое использует ИИ для обработки, анализа и классификации огромного объема генетических данных. 

Свёрточные нейросети (CNN)

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

36fd86cb5ef14d87ba4a01318d7b5825.gif

1.  Сверточный слой:

Формула свертки:  

S (i, j)=∑m​∑n​I (i+m, j+n)⋅K (m, n)

Код в Python с использованием библиотеки TensorFlow:

from tensorflow.keras.layers import Conv2D

model.add(Conv2D(filters, kernel_size, input_shape=(height, width, channels)))

 2. Слой Пулинга:

Формула пулинга:

P (i, j)=maxm, n​I (i⋅s+m, j⋅s+n)

from tensorflow.keras.layers import MaxPooling2D

model.add(MaxPooling2D(pool_size=(2, 2)))

3. Полносвязный слой:

from tensorflow.keras.layers import Dense

model.add(Dense(units=64, activation='relu'))

4. Обучение:

Использование функции потерь и оптимизатора:

model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

Генеративные состязательные сети (GAN)

Однако, когда дело дошло до генерации данных, ученые обратились к концепции генеративных состязательных сетей (GAN) и включили свободную креативность GAN для улучшения результатов. Одна сеть генерирует поддельные изображения опухоли, а другая пытается отличить их от реальных. Это что-то похожее на головоломку «Где Шерлок?», только с меньшим количеством пайплайнов. Это один из хитрых козырей, который инженеры вытащили из своего кармана, чтобы поднять качество исполнения.

 1. Генератор GAN:

from tensorflow.keras.models import Sequential

from tensorflow.keras.layers import Dense

 generator = Sequential()

generator.add(Dense(units=hidden_units, input_dim=noise_dim, activation='relu'))

2. Дискриминатор GAN:

discriminator = Sequential()

discriminator.add(Dense(units=hidden_units, input_dim=image_dim, activation='relu'))

discriminator.add(Dense(units=1, activation='sigmoid'))

3. Обучение GAN:

from tensorflow.keras.models import Model

from tensorflow.keras.optimizers import Adam

discriminator.compile(loss='binary_crossentropy', optimizer=Adam(learning_rate=0.0002, beta_1=0.5))

Пример графических результатов для образцов, подвергшихся нормализации с использованием GAN. На графике представлена карта вероятности рака для положительных случаев (рак), отрицательных случаев (без рака) и областей с ложноотрицательным обнаружением. Обозначения включают результаты для набора данных разработки (Dev.), независимого тестового набора 1 (IT1) и независимого тестового набора 2 (IT2). Синяя линия представляет собой аннотации, а красная стрелка указывает на области, не обнаруженные (ложноотрицательные области).

Пример графических результатов для образцов, подвергшихся нормализации с использованием GAN. На графике представлена карта вероятности рака для положительных случаев (рак), отрицательных случаев (без рака) и областей с ложноотрицательным обнаружением. Обозначения включают результаты для набора данных разработки (Dev.), независимого тестового набора 1 (IT1) и независимого тестового набора 2 (IT2). Синяя линия представляет собой аннотации, а красная стрелка указывает на области, не обнаруженные (ложноотрицательные области).

Архитектура нейросети и регуляризация

Одним из ключевых аспектов рассматриваемого исследования является подбор оптимальной архитектуры нейросети. Команда исследователей провела множество экспериментов, чтобы подобрать наилучшую модель для поставленной задачи. Для оптимизации процесса обучения и предотвращения переобучения модели использовались различные методы регуляризации, такие как Dropout, L1 и L2 регуляризации, а также структурные изменения в архитектуре нейронки, например, batch normalization. Использование алгоритмов deep learning позволило применить технику Transfer Learning, которая обеспечила возможность переноса знаний, полученных при решении одной задачки на решение другой. 

Исключительная польза для редкий образцов данных, когда в доступе ограниченное кол-во информации. А для оценки точности и надежности модели использовались различные метрики, такие как точность (accuracy), полнота (recall), специфичность (specificity) и F1-мера. Также использовались методы препроцессинга данных, включающие стандартизацию, нормализацию и фильтрацию информации, редуцирование размерности и удаление шума, чтобы сократить размерность и эффектно извлечь нужное из фантастических размеров объемов данных для качественного обучения модели. Полученные результаты показали, что, комбинация данных экспонатов от мира нейростей с несколькими слоями имеет наибольшую эффективность в прогнозировании оптимальной терапии для пациента.

c1d3fa12981a862402029ed5dfee98f2.gif

  1. Добавление Dropout:

    from tensorflow.keras.layers import Dropout

 model.add(Dropout(rate=0.5))

  1. Batch Normalization:

    from tensorflow.keras.layers import BatchNormalization

 model.add(BatchNormalization())

Attention Mechanism

А еще инженеры из Хопкинса использовали attention mechanism, т.е. внимательность в сети. Эта система способна выделять те элементы изображения, которые ей кажутся наиболее важными для анализа, что очень полезно при обработке больших изображений, ибо никому не нужно чтобы система «застыла» в попытке проанализировать каждый пиксель. Вместо этого мы просто концертируем наше внимание на ключевых деталях и ускоряем процесс обработки.

 1. Добавление Attention:

from tensorflow.keras.layers import Attention

model.add (Attention ())

d0dda1381e21944fbeb45a64abc8ec66.gif

Deep Learning для Генетических вариантов и оценка модели

Преимущество глубокого обучения в его способности обрабатывать такие трехмерные изображения как, например, компьютерная томография (КТ), магнитно-резонансная томография (МРТ) и такие структуры данных, как генетические последовательности, скрытые закономерности и паттерны. По итогу путем алгоритмов deep learning нейросеть расшифровывают генетические варианты, детектирует хардкорные текстуры пациентов и определяет индивидуальное лечение для каждого. Эта система способна обнаруживать скрытые маркеры и мутации в геноме, которые не видны при традиционных методах анализа. 

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

1. Применение Deep Learning к Генетическим Данным:

# Представление генетических данных

model.add(Dense(units=genetic_units, activation='relu'))

2. Transfer Learning:

from tensorflow.keras.applications import VGG16

base_model = VGG16(weights='imagenet', include_top=False, input_shape=(img_height, img_width, 3))

 И немного об оценке модели:

1. Использование метрик:

model.compile(loss='...', optimizer='...', metrics=['accuracy', 'recall', 'specificity'])

2. Препроцессинг Данных:

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()

X_train_scaled = scaler.fit_transform(X_train)

387cd6979f1d1d87ef38a07448a0753c.jpeg

Новый взгляд на рак

Даже представить трудно, насколько это круто! Знаете ведь, что рак — не шутка, и каждый год он портит жизнь миллионам людей по всему миру. А тут появляется нью текнолоджи, которая позволит нам учитывать индивидуальные особенности каждого пациента.  Представьте только: каждому из нас станет доступно более эффективное лечение, основанное на генетических данных. Модернизированная борьба с раком, даже звучит захватывающе, не правда ли? Этот прорыв напоминает мне времена, когда я только-только столкнулась с модулем импорта в Python и восклицала «а че, так можно было что-ли?!».

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

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

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

Спасибо за прочтение! Ждем вашей обратной связи в комментариях (:

Автор: Вероника Веселова

© Habrahabr.ru