Генерация медицинских отчетов с использованием глубокого обучения

Оглавление

  1. Обзор
  2. Предпосылки
  3. Бизнес-проблема
  4. Анализ данных
  5. Состав ML
  6. Показатель производительности
  7. Подготовка данных
  8. Моделирование
  9. Сравнение моделей
  10. Развертывание модели
  11. Будущие работы
  12. Профиль
  13. использованная литература

1. Обзор

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

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

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

Приложения для создания подписей к изображениям включают поиск изображений Google, создание медицинских отчетов и т. Д.

2. Предпосылки

Чтобы лучше понять блог, лучше иметь некоторое представление о таких темах, как нейронные сети, CNN, RNN, трансферное обучение, программирование на Python и библиотека Keras.

3. Деловая проблема

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

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

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

4. Анализ данных

Данные по этой проблеме предоставлены сетью больниц Университета Индианы. Данные состоят из двух частей.

  1. Рентгеновские снимки: http://academictorrents.com/details/5a3a439df24931f410fac269b87b050203d9467d
  2. Отчеты: https://academictorrents.com/details/66450ba52ba3f83fbf82ef9c91f2bde0e845aba9

Рентген содержит набор рентгеновских снимков грудной клетки для некоторых людей. Например,

На приведенном выше рисунке показан рентген грудной клетки одного человека. Идентификатор изображения этих изображений находится внизу изображений. Здесь «CXR1_1_1M-001» указывает идентификатор пациента. Первое изображение - это вид сбоку, а второе - вид спереди. Идентификатор этих изображений показан внизу изображений. Таким образом, может быть еще одно рентгеновское изображение, связанное с уникальной комбинацией человек-отчет.

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

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

Примерный набор данных будет выглядеть так:

5. Состав ML

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

6. Показатели эффективности

Для сравнения сгенерированных медицинских отчетов и фактических отчетов мы можем использовать балл BLEU (Bilingual Evaluation Understudy). Если оценка BLEU равна 1, то сгенерированный отчет и фактический отчет совпадают. Если оценка BLEU равна 0, то сгенерированный отчет и фактический отчет совершенно не соответствуют друг другу. Поскольку выход модели декодера представляет собой вектор с горячим кодированием, мы также можем использовать категориальную кросс-энтропию в качестве функции потерь.

7. Подготовка данных

Подготовка текстовых данных

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

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

Предварительная обработка текстовых данных

Давайте посмотрим несколько примеров отчетов в нашем наборе данных.

Пример 1: «Размер сердца нормальный, легкие чистые. Стабильное 5-миллиметровое правое среднее легкое позволяет выявить гранулему ».

Пример 2: «Нет сравнения сундук x-XXXX. Хорошо расширенные и чистые легкие. Контур средостения в пределах нормы. »

Мы видим, что эти отчеты содержат специальные символы, прописные и строчные буквы, цифры, нежелательные пробелы и т. Д. Итак, нам необходимо очистить и предварительно обработать отчеты, прежде чем вводить их в модель. Предварительно обработанные текстовые данные получают:

  • Преобразовать все буквы в нижний регистр
  • Слова типа "нет", "не делает" и т. Д. Расширяются.
  • Удалены все специальные символы, кроме «.»
  • Удалены такие слова, как «xx», «xxx» и т. Д.
  • Удалено несколько пробелов
  • Удалены слова, длина которых меньше или равна 2

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

Также отмечается, что длина каждого отчета разная. Перед загрузкой в ​​модель нам нужно сделать все отчеты одинаковой длины. Это делается с помощью последовательностей пэдов Keras.

Подготовка данных изображения

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

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

Структурированные данные будут выглядеть так:

Повышение качества изображения

Подобно тому, что мы обсуждали о кодировке текста, компьютер не сможет ничего понять из идентификатора изображения. Чтобы понять изображение, нам нужно преобразовать каждое изображение в векторы фиксированного размера. Это можно сделать с помощью трансферного обучения на любой предварительно обученной модели. Обычно во всех задачах компьютерного зрения используются модели CNN типа VGG-16, VGG-19, Inception V3 и т. Д.

Но трансферное обучение по этим моделям здесь не сработает. Почему?

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

Итак, нам нужна модель, которую предварительно обучили на рентгеновских снимках. Существует ли такая модель?

К счастью, да. Разрешите познакомить вас с моделью CheXNet. CheXNet - это 121-слойная сверточная нейронная сеть, обученная на ChestX-ray14, содержащая более 100000 фронтальных рентгеновских изображений с 14 заболеваниями. Чтобы получить характеристики изображения с помощью этой модели, мы удалим последний слой классификации и извлечем результат.

Вы можете скачать тренированные веса CheXNet здесь.

Модель извлечения признаков изображения для CheXNet будет выглядеть так.

Для облегчения понимания позвольте мне показать вам последние слои модели.

Мы изменяем размер изображений на (224,224,3) и передаем их модели CheXNet, чтобы получить вектор размером 1024. Если вы помните, в нашем наборе данных было по два изображения на каждого пациента. Итак, мы добавляем оба изображения в модель, чтобы получить две особенности изображения. Затем мы объединяем функции, чтобы получить окончательное изображение пациента.

Теперь, когда мы преобразовали как текстовые, так и графические данные в векторы, нам нужно разделить эти данные на обучающие и тестовые данные. Здесь мы разбиваем данные на 80% (поезд) и 20% (тест). Теперь перейдем к моделированию.

8. Моделирование

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

  • Кодировщик: эта модель используется для кодирования входных данных в векторы фиксированной длины.
  • Декодер: эта модель отображает векторное представление в целевую последовательность переменной длины.

В нашем случае или в случае какой-либо проблемы с подписью к изображениям кодировщик используется для преобразования изображений в векторы. Декодеры используют рекуррентные нейронные сети или LSTM или GRU для преобразования вывода кодировщика в целевые предложения. Рисунок ниже поможет лучше понять это.

Подробнее о моделях кодировщиков-декодеров для подписи изображений вы можете узнать здесь.

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

Модель 1: Простая модель кодировщика-декодера

Сначала рассмотрим простую модель кодировщика-декодера.

Модель кодировщика. Как обсуждалось ранее, модель кодировщика используется для кодирования изображения в векторы фиксированного размера. В этом тематическом исследовании мы рассмотрели модель CheXNet для извлечения функций изображения. Поскольку у нас есть два изображения на пациента, мы объединяем каждую функцию изображения, как показано ниже.

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

Модель декодера. Теперь нам нужно преобразовать этот вывод кодировщика в текст. Для этого мы используем сети LSTM, которые очень хорошо подходят для работы с текстовыми данными. Здесь мы используем LSTM как модель от последовательности к последовательности. Входные данные для сетей LSTM задаются с шагом во времени, и в каждый момент времени на выходе получается одно слово. На каждом временном шаге выходы кодера и вектор внедрения слова в момент времени (t-1) задаются в качестве входных данных, и уровень LSTM будет предсказывать векторное представление слова в момент времени t. Затем этот вектор проходит через слой softmax, который преобразует его в форму с горячим кодированием. Используя функцию argmax, мы получим соответствующее слово из нашего словаря

Слой внедрения: слой внедрения позволяет нам представлять слова в виде плотных векторов. Здесь каждое слово было отображено в 300-мерное представление с использованием предварительно обученной модели ПЕРЧАТКА.

Архитектура модели

Обучение модели

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

Оценка модели с использованием алгоритма жадного поиска

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

  1. Для данного пациента получить характеристики изображения с помощью модели кодировщика.
  2. Передайте выходные данные кодировщика и token_index слова «‹sos›» (начало предложения) в модель декодера, и это будет предсказывать распределение вероятностей каждого слова в словаре. Выбираем слово с максимальной вероятностью в качестве следующего слова
  3. Предсказанное слово вместе с вводом в декодер является следующим вводным предложением.
  4. Шаги 2 и 3 повторяются до тех пор, пока не будет достигнуто слово «‹eos›» (конец предложения).

Результаты от модели:

Пример 1: ФАКТИЧЕСКИЙ ОТЧЕТ: ‹sos› контуры сердца и средостения в пределах нормы. легкие чистые. костные структуры целы. ‹Eos›

ГЕНЕРИРОВАННЫЙ ОТЧЕТ: сердце нормальных размеров. средостение без особенностей. легкие чистые. ‹Eos›

Пример 2: ФАКТИЧЕСКИЙ ОТЧЕТ: ‹sos› гиперинфляционные легкие со сплющенной диафрагмой и увеличенным загрудинным воздушным пространством. Признаки альвеолярной консолидации, плевральный выпот, отек легких. размер сердца в пределах нормы. обызвествление правого корня грудной клетки предполагает предшествующий гранулематозный процесс. ‹Eos›

ОБЩИЙ ОТЧЕТ: размер сердца и силуэт средостения находятся в пределах нормы для контура. легкие чистые. пневмоторакс, плевральный выпот. они целы. ‹Eos›

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

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

Теперь перейдем к более продвинутой модели.

Модель 2: Модель декодера кодировщика с вниманием

Механизм внимания

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

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

Модель на основе внимания

Эта модель также имеет архитектуру кодировщика-декодера. Кодировщик такой же, как и в предыдущей модели, но в декодере есть дополнительный блок внимания.

Давайте посмотрим, как работает эта модель, основанная на внимании.

  1. Извлечение функций изображения из модели CheXNet
  2. Передайте функции модели кодировщика, которая выдает выходные данные кодировщика.
  3. Выходные данные кодировщика и предыдущее скрытое состояние декодера передаются модели внимания, которая вычисляет веса внимания.
  4. Веса внимания и выходные данные кодировщика используются для вычисления вектора контекста.
  5. Вектор контекста и вектор внедрения предыдущего ввода декодера объединяются и передаются блоку GRU.
  6. Вывод ГРУ передается на последний плотный слой

Это поток через модель. Рисунок ниже поможет лучше понять это.

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

Класс энкодера

Класс кодировщика преобразует функции изображения из модели CheXNet в тензор меньшей размерности.

Класс внимания

Класс внимания будет использовать предыдущее скрытое состояние модели декодера и выходные данные кодера для вычисления весов внимания и вектора контекста.

Одношаговый декодер и классы декодера

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

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

Модель кодера-декодера

На приведенном ниже графике показаны потери поезда и испытания модели.

Результаты алгоритма жадного поиска

Пример1:

ФАКТИЧЕСКИЙ ОТЧЕТ: ‹sos› легкие чисты. есть плевральный выпот, пневмоторакс. сердце и средостение в норме. скелетные структуры в норме. ‹Eos›

ОБЩИЙ ОТЧЕТ: размер сердца и легочная васкулярность находятся в пределах нормы. легкие чистые. есть плевральный выпот, пневмоторакс. ‹Eos›

Пример 2:

ФАКТИЧЕСКИЙ ОТЧЕТ: ‹sos› по средней линии трахеи. кардиомедиастинальный силуэт нормальных размеров и контура. легкие чистые, без признаков острого инфильтратного выпота. есть пневмоторакс. визуализированные костные структуры выявляют острые аномалии. ‹Eos›

ОБЩИЙ ОТЧЕТ: размер сердца и легочная васкулярность находятся в пределах нормы. легкие чистые. есть плевральный выпот, пневмоторакс. ‹Eos›

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

average bleu score on the test data is  0.6514907322500497
average time taken for evaluation is  0.833292394720447 seconds

Оценка модели с использованием алгоритма BeamSearch

Прогнозируем предложения с помощью Алгоритма поиска луча. Вместо того чтобы жадно выбирать наиболее вероятный результат для следующего шага, поиск луча расширяет все возможные результаты и сохраняет k наиболее вероятных или вероятных выходов. Здесь k известен как ширина луча, это параметр, определяемый пользователем, и он управляет количеством лучей или параллельным поиском по последовательности вероятностей. k = 1 - это не что иное, как сам алгоритм жадного поиска. По мере увеличения k производительность модели может быть улучшена, но временная сложность может быть увеличена. Так что это выбор между производительностью и временной сложностью.

В данном случае мы рассматриваем k = 3.

Пример:

АКТУАЛЬНЫЙ ОТЧЕТ: сердце нормального размера. средостение без особенностей. легкие чистые. свидетельство активного туберкулеза. ‹Eos›

ОБЩИЙ ОТЧЕТ: ‹sos› размер сердца и вид сбоку, размер сердца и контуры средостения находятся в пределах нормального отека легких.

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

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

При извлечении элементов изображения из модели Chexnet мы использовали объединение средних значений перед последним слоем, которое сглаживало вектор и игнорировало все пространственные характеристики.

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

Модель 3: Использование пространственных характеристик изображения в Модели 2

Здесь мы сохраняем пространственную информацию изображений при извлечении функций из модели CheXNet. Это позволяет модели определять пространственные закономерности (края, изменения оттенков, формы, объекты и т. Д.). Теперь давайте разберемся с выходом модели CheXNet.

Мы видим, что последний слой глобального среднего пула удаляется, а пространственная информация сохраняется. Мы удаляем последний слой активации, чтобы получить узкие места. Таким образом, для каждого входного изображения мы получим (7,7,1024) размерный вектор в качестве выходного. Поскольку у нас есть два изображения для каждого пациента, мы объединим эти функции, чтобы получить тензор размерностей (7,14,1024) в качестве окончательного вектора признаков. Здесь 7 и 14 представляют фактические местоположения, которые соответствуют определенным частям изображения, а 1024 указывает глубину. Мы можем думать об этом как о (7 * 14) местоположениях, каждое из которых имеет 1024-мерное представление. Итак, мы преобразуем тензоры в (98,1024).

Архитектура модели и обучение модели

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

Оценка с использованием поиска луча

Пример 1:

ФАКТИЧЕСКИЙ ОТЧЕТ: ‹sos› легкие чисты. есть плевральный выпот, пневмоторакс. сердце и средостение в норме. скелетные структуры в норме. ‹Eos›

ОБЩИЙ ОТЧЕТ: ‹sos› размер сердца в пределах нормы. легкие чистые. есть плевральный выпот.

Пример 2:

АКТУАЛЬНЫЙ СООБЩЕНИЕ: ‹sos› сердце и средостение в пределах нормы. отрицательный на очаговое легочное уплотнение, плевральный выпот, пневмоторакс. ‹Eos›

ОБЩИЙ ОТЧЕТ: ‹sos› размер сердца в пределах нормы. есть пневмоторакс, плевральный выпот, пневмоторакс.

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

average bleu score on the test data is  0.7181150122958847the average time for evaluating the attention model with beam search is 3.2034 seconds

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

Модель 4: Использование двунаправленного ГРУ на Модели 3

В предыдущей модели мы использовали однонаправленный ГРУ в классе декодера. Это дает хорошие результаты, но что, если мы сможем это улучшить?

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

Посмотрим на поезд и протестируем потери этой модели.

Мы видим, что потери меньше по сравнению с предыдущими моделями.

Оценка с использованием поиска луча

Пример 1:

ФАКТИЧЕСКИЙ ОТЧЕТ: ‹sos› размер сердца и кровоснабжение в норме. эти контуры нормальные. легкие чистые. плевральный выпот, пневмоторакс. ‹Eos›

ОБЩИЙ ОТЧЕТ: ‹sos› средостение в пределах нормального размера и пневмоторакс из плеврального выпота.

Пример 2:

ФАКТИЧЕСКИЙ ОТЧЕТ: ‹sos› легочное сердце и средостение в пределах нормы. есть плевральный выпот, пневмоторакс. там очаговое помутнение воздушного пространства наводит на мысль о пневмонии. есть минимальные дегенеративные изменения позвоночника. ‹Eos›

ОБЩИЙ ОТЧЕТ: ‹sos› средостение в пределах нормального размера и очаговое заболевание воздушного пространства.

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

average bleu score on the test data is  0.7454363912464719the average time for evaluating the attention model with beam search using bidirectinal GRU is  5.068260778931423 seconds

9. Сравнение моделей.

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

10. Развертывание модели

Коды для развертывания модели доступны в моем репозитории Github.

11. Будущие работы

  • У нас не было большого набора данных для этой задачи. Чем больше набор данных, тем лучше результаты

12. Профиль

Вы можете найти мое полное решение в моем репозитории Github, и если у вас есть какие-либо предложения, свяжитесь со мной через Linkedin

13. Ссылки