В настоящее время по-прежнему актуальна проблема дифференциальной диагностики лихорадки неясного происхождения (ЛНП, ЛНГ) [1, 2].
Цель работы – демонстрация возможностей нейросетевого метода, разработанного на архитектуре многослойного персептрона, в деле экспресс-диагностики заболеваний на примере метода дифференциальной диагностики лихорадки неясного генеза.
Для достижения поставленной цели были поставлены следующие задачи.
1. Разработать нейросетевую модель многослойного перцептрона для дифференциальной диагностики лихорадки неясного генеза у пациента по ряду входных параметров. Подбирать оптимальное число слоев для модели так, чтобы она обладала достаточной точностью и верно разделяла поступающие данные.
2. Разработать удобный и стабильный в эксплуатации пользовательский интерфейс для готовой к использованию модели.
Материалы и методы исследования
Разработка модели производилась с применением языка программирования Python версии 3.6.6. Были использованы библиотеки для машинного обучения, такие как Tensor Flow и Keras. Веб-интерфейс был разработан на фреймворке для создания веб-приложений на языке Python – Flask.
На сегодняшний день можно отметить разнообразие нейросетевых архитектур, которые способны выполнять разнообразные задачи. Помимо этого, применяются разнообразные методики обучения нейросетей. Так, например, выделяют способ обучения с учителем и без.
В обучении с учителем данные, с которыми происходит работа модели, изначально содержат ответ, который ожидается от системы после завершения процесса обучения. При обучении без учителя системе необходимо прийти к балансу путем многократного повторения благодаря более однозначному выявлению с каждой итерацией различных зависимостей.
Для поставленной цели, связанной с обрабатываемым массивом данных, использовалась архитектура многослойного перцептрона. При разработке применялся фреймворк Keras, содержащий в своей основе фреймворк для Tensor Flow. Фреймворк Keras включает в себя множество алгоритмов для обучения нейросетевых моделей, а также позволяет конфигурировать разрабатываемую модель [3].
Для проведения первичной обработки данных была собрана выборка деперсонализированных историй болезни пациентов, проходящих лечение в некоторых инфекционных стационарах Российской Федерации, за 2018 и 2019 календарные годы. Данные историй болезней были разделены на две группы. В первой группе у пациентов удалось установить этиологию инфекционного процесса. У пациентов второй группы при наличии лихорадочного состояния после проведения ряда обследований не удалось выявить инфекционной причины патологии, вследствие чего они были отмечены как пациенты с лихорадкой неясного происхождения (генеза).
В ходе работы над выборкой данных были выделены основные показатели, позволяющие ориентировочно установить происхождение лихорадки:
– пол и возраст пациента;
– термометрические показатели тела пациента;
– наличие в анамнезе инсульта;
– присутствие синдрома хронической усталости в анамнезе;
– антропометрические показатели пациента;
– присутствие гипоталамической недостаточности;
– наличие нарушения чувствительности пирогенных рецепторов;
– показатель plt;
– значение СОЭ;
– количество NE;
– показатель EO;
– показатель LY %;
– значение hgb;
– значение ALP;
– уровень Creat.
Количество записей о пациентах, которые удалось корректно обработать, составляет 1000. Этого было достаточно, чтобы обучить модель с достаточно высокой точностью, при которой можно было бы классифицировать причины описанных выше лихорадок. Формат хранения полученных данных о пациентах – csv файл. Все записи содержат метку класса, т.е. обучение модели происходит с учителем, ответы будут оптимизировать веса нейронов внутри нейросети.
Для максимально эффективного обучения модели необходимо было разделить имеющийся набор данных на 3 выборки, по которым проводились дальнейшее обучение и проверка. Был написан скрипт, размещающий в случайном порядке записи о пациентах по 3 файлам:
– файл для обучения модели;
– файл для валидации модели;
– файл проверки модели на явление переобучения.
Результаты исследования и их обсуждение
Согласно данным Федеральной службы государственной статистики с 2000 г. по 2018 г. отмечается положительная тенденция к уменьшению случаев инфекционных заболеваний у жителей Российской Федерации (рис. 1). Так, за указанный промежуток времени случаи регистрировании пациентов с инфекционной патологией снизились на 24 % (рис. 2) [4].
Несмотря на снижение общего количества случаев инфекционных патологий, проблема дифференциальной диагностики лихорадок неясного происхождения не теряет своей актуальности.
Рис. 1. Изменение количества зарегистрированных случаев инфекционных заболеваний на территории РФ с 2000 по 2018 гг.
Рис. 2. Сравнение количества зарегистрированных случаев инфекционных заболеваний на территории РФ в 2000 и 2018 гг.
В соответствии с приказом Министерства здравоохранения и социального развития Российской Федерации от 31.01.2012 г. № 69н «Об утверждении Порядка оказания медицинской помощи взрослым больным при инфекционных заболеваниях» и согласно приказу Министерства здравоохранения Саратовской области от 10.04.2015 г. № 506 «О маршрутах госпитализации в стационары медицинских организаций, расположенных на территории города Саратова» пациенты с лихорадкой неясного происхождения госпитализируются бригадой скорой медицинской помощи в инфекционный стационар с целью проведения диагностических мероприятий и оказания медицинской помощи [5, 6].
Сложность дифференциальной диагностики заключается в том, что в реальных условиях достаточно часто лихорадка обусловлена неинфекционным процессом.
Пребывание в инфекционном стационаре пациентов с лихорадкой неясного происхождения повышает нагрузку на врачей и уменьшает количество койко-мест, рассчитанных на размещение пациентов с инфекционными заболеваниями. В связи с этим пациенты начинают получать адекватное лечение в более поздние сроки.
Разработанная система гипотетически позволяет выявить соотношение пациентов с лихорадкой, вызванной инфекционным процессом, и пациентов с лихорадкой другого происхождения [7]. Помимо этого, информационная система обладает удобным и понятным интерфейсом. Данный вид нейросетевой архитектуры наиболее подходит для анализа, дифференциации и классификации простых типов данных.
После исполнения скрипта и распределения записей по группам в файле для обучения модели оказалось 772 записи, в валидационном файле находилось 126 записей о пациентах, и в файле для проверки – 102 строки со сведениями о заболеваниях пациентов.
Следующим после распределения записей следовал этап разработки модели. Вначале требовалось корректно добавить слои и активационную функцию. Благодаря фреймворку Keras выполнить это не составило большого труда. Было добавлено 2 промежуточных слоя. Перцептрон представляет собой сужающуюся модель от входного слоя с описанными выше параметрами до 1 нейрона, с предсказанием по поводу типа лихорадки на выходном слое. Обучение происходило по частям. Это означает, что обучающее множество разбивается на кортежи по 20 строк, а затем общие для всей модели веса корректируются в конце итерации. Всего таких итераций обучения 400 [8, 9].
Обучение модели проходило на рабочей компьютерной станции с процессором Intel Core i7-8565U и 8 GB RAM. Затем модель была сохранена в специальном формате h5 для дальнейшего использования. На обучающем множестве была достигнута точность в 98 %. На тестовом множестве точность составила 93 %. Полученные показатели являются хорошим результатом.
На завершающем этапе разработки нужно было создать веб-интерфейс согласно поставленной ранее задаче.
Интерфейс должен обладать следующим минимальным функционалом:
– предоставлять возможность ввести данные о диагностируемом пациенте;
– показывать результат с процентным соотношением о типе лихорадки.
Для разработки был выбран фреймворк Flask. Данная технология обладает разными преимуществами, такими как: генератор шаблонов Jinja 2, наличие маршрутизатора Werkzeug. Эти достоинства позволяют быстро и качественно разработать веб-интерфейс.
Необходимо было разработать функцию, способную принимать поступившие данные от веб-формы и обрабатывать результат с помощью нейросетевой модели. Потребовалось выделить отдельный поток для данной функции, так как действие по обработке и классификации заболевания должно обрабатываться параллельно с HTTP-запросом. На рисунке показана такая функция [10].
После проведения теста системы весь исходный код был загружен на облачный хостинг Heroku. На данный момент система доступна по адресу: https://infection-classifier.herokuapp.com (рис. 3).
Демонстрируется интерфейс готовой информационной системы, опубликованной на хостинге Heroku (рис. 4).
Рис. 3. Функция, отвечающая за обработку веб-формы и классификацию причин лихорадок
Рис. 4. Веб-интерфейс информационной системы дифференциальной диагностики ЛНГ
После завершения разработки программного комплекса он был апробирован на 1500 обезличенных историях болезни, не входивших в учебную и тестовую выборки.
В результате проверки система выдала заключения, в 96 % случаев совпадающие с диагнозами, указанными в анализируемых историях болезни.
Заключение
Таким образом, в ходе работы была разработана и реализована нейросетевая модель многослойного перцептрона, которая выполняет функцию дифференцирования лихорадки, вызываемой инфекционными заболеваниями, от лихорадки неясного происхождения. К разработанной модели был создан веб-интерфейс [11].
Данные результаты указывают на перспективность дальнейших изысканий в данной сфере. Следует отметить, что предлагаемая нами система не заменяет работу врача, а лишь является одним из инструментов выбора в диагностике состояния пациента, однако методика дифференцировки, основанная на архитектуре многослойного персептрона, показала свой потенциал и может быть применима и в других диагностических проектах.