УДК 51-7
П.Б. Татаринцев
Диагностика заболеваний методами нейросетевого моделирования
Введение
В последнее время сильно возрастает значение информационного обеспечения самых разных медицинских технологий. Оно становится критическим фактором развития практически во всех областях знания, поэтому разработка и внедрение информационных систем является на сегодняшний день одной из самых актуальных задач.
В медицинской науке встречаются задачи, в которых не представляется возможным учесть все реально имеющиеся условия, от которых зависит ответ, а можно лишь выделить приблизительный набор наиболее важных условий. Так как часть условий при этом не учитывается, ответ носит неточный, приблизительный характер, а алгоритм нахождения ответа не может быть выписан точно. Это задачи диагностики, дифференциальной диагностики, прогнозирования, выбора стратегии и тактики лечения и др. Медицинские задачи практически всегда имеют несколько способов решения и «нечеткий» характер ответа, совпадающий со способом выдачи результата нейронными сетями.
Наибольший интерес для практического здравоохранения представляют системы для диагностики и дифференциальной диагностики заболеваний. При этом для принятия решений могут использоваться самые разнообразные данные - анамнез, клинический осмотр, результаты лабораторных тестов и сложных функциональных методов. Список областей медицины, в которых начали применяться новые технологии, чрезвычайно обширен и продолжает расти.
Программа диагностики описторхоза методами нейросетевого моделирования
Описторхоз - это заболевание, вызываемое паразитами, которые живут в печени и вызывают широкий спектр патологических процессов у человека. Одна из наиболее сложных задач в практике врача при работе с больными описторхозом - это лабораторное подтверждение диагноза данного ин-
фекционного заболевания. Методы диагностики описторхоза, применяемые сегодня либо болезненны для пациента, либо обладают слабой чувствительностью. Целью данного исследования являлась разработка более простого и надежного метода диагностики данного заболевания на основе математической модели нейронной сети.
После предварительного сбора данных была получена выборка из 156 случаев. Она содержит данные группы заболевших - 80 случаев и данные контрольной группы (не болеющие описторхозом) - 76 случаев. В каждом случае брались анализы крови, и определялись клинические признаки. В результате для каждого пациента получен набор из 11 параметров (3 числовых, 8 - номинальных). Каждому пациенту выставлен достоверный диагноз. Диагноз формирует еще одну - двенадцатую переменную, которая является номинальной.
Требуется построить нейронную сеть, которая по измеренным значениям параметров определяла бы наличие заболевания у пациента. Коль скоро выходные значения всегда принадлежат ограниченной области, а вся информация должна быть представлена в числовом виде, очевидно, что при решении задачи требуется этап предварительной обработки препроцессирования - и заключительной обработки постпроцессирования данных.
Один из этапов препроцессирования, когда все значения номинальных переменных заменяются числовыми кодами. Каждая номинальная переменная может принимать только два значения - «признак имеется» и «признак отсутствует». В качестве числовых кодов выбраны числа 1 и -1 соответственно. Имеющиеся данные сохранены в файл, в котором каждая строка представляет собой отдельный случай. Значения переменных в строке отделяются пробелами.
Исходная выборка случайным образом поделена на две части. Первое множество - 118 случаев является обучающим, второе (38 случаев является тестовым. Создан файл с обучающими данными.
Диагностика заболеваний методами нейросетевого моделирования
Модель нейронной сети построена с помощью языка программирования TURBO PASCAL 7.0. Разработан алгоритм и интерфейс пользователя.
В программе реализована модель трехслойного персептрона. В первом слое - 11 нейронов, во втором - 2, в третьем 1 нейрон. Каждый нейрон представлен в памяти в виде записи со следующими полями: поле W -массив весовых коэффициентов нейрона, поле G - массив компонент вектора направления. Каждый слой в памяти представлен в виде записи со следующими полями: поле N - массив нейронов, поле X - массив ответов нейронов слоя. Нейронная сеть Network -это объект, содержащий массив слоев L и подпрограммы для работы с нейронами сети.
При первом запуске программы запускается подпрограмма обучения нейронной сети. Сначала выполняется чтение обучающих примеров из файла в память. Создается обучающий массив Examples (118 x 12). Затем значения числовых переменных нормируются (второй этап препроцессирования) - диапазон изменения приводится к интервалу [-1, 1]. Максимальные значения числовых переменных определены заранее и заложены в программу. Обучение нейронной сети производится методом обратного распространения. Требуется минимизировать функцию ошиб-
1 156
ки E(W) = (Net(X ) - Y )2 . Строится по-
2 г=1
следовательность {Е^^} не возрас-
тающая. W0 - выбирается случайным образом. На каждом шаге вычисляется вектор градиента функции Е по принципу двойственности (CalcGrad) и сохраняется в компонентах G нейронов. Запускается алгоритм частной минимизации вдоль выбранного направления G. Минимизируется функция Е+ aG1) на интервале [-1,0] методом золотого сечения. Обучение останавливается в одном из случаев: если достигнуто значение Е < 0,01, модуль градиента равен нулю или выполнено 64000 шагов. Весовые коэффициенты обученной сети сохраняются в файл.
С алгоритмом обратного распространения был сравнен алгоритм блужданий. Здесь в качестве направления минимизации выбирается случайное направление. Минимизация вдоль него производится также методом золотого сечения. Данный алгоритм сходится быстрее. Для его реализации не требуется вычисление производных. Данный алгоритм используется в конечной версии программы.
Диалог выполнения теста (см. рис.) содержит три числовых поля и 8 переключателей. После заполнения формы и нажатия кнопки «Тест» пользователь получает результат теста в виде текстового сообщения («положительный» или «отрицательный»), сопровождаемого численным ответом сети.
Рис. Интерфейс пользователя программы
Проверка с помощью тестового множества доказала состоятельность данного теста. Показатели чувствительности и специфичности теста для тестового и обучающего множеств составили 100%.
Сравнение качества классификации нейросетевой модели с качеством классификации дискриминантного анализа
Параллельно с разработкой нейросетевой экспертной системы было проведено исследование исходных данных при помощи дис-криминантного анализа. Тест, основанный на дискриминантных функциях, дал высо-
кие показатели чувствительности - 100% и специфичности - 89,9%. С помощью нейро-технологии удалось достичь более высокой специфичности теста, а, следовательно, и более высокой надежности экспертной системы. Преимущество нейронных сетей становится очевидным, если учесть что дис-криминантный анализ строит линейную модель разделения классов, тогда как нейронная сеть по своей природе является нелинейной моделью, а, следовательно, с ее помощью можно более точно разделить множество на классы нелинейными функциями классификации.