Теоретический материал к лабораторным работам №6 и №7 МЕДИЦИНСКАЯ ДИАГНОСТИКА
В средствах информации и научной литературе имеются сообщения об удачном опыте применения нейронных сетей для медицинской диагностики. Рассмотрим, как строятся и обучаются такие сети.
Проведем наблюдение за тем, как врач ставит диагноз болезни пациен- та. Прежде всего он выясняет и записывает имя, возраст, пол, место работы, затем, как правило, измеряет давление, проводит внешний осмотр, выслуши- вает жалобы больного, знакомится с историей его болезни, результатами анализов, изучает электрокардиограмму. В результате у врача накапливается от 20 до 100 и более параметров, характеризующих пациента и его состояние здоровья. Это и есть исходные параметры, обработав которые с помощью своих медицинских знаний и опыта, врач делает заключение о заболевании пациента – ставит диагноз его болезни.
Задавшись целью смоделировать деятельность врача с помощью пер- септрона, мы прежде всего должны определиться с входным вектором X и выходным вектором D , задав их размерности, и условиться о содержимом каждого компонента. В векторе X логично предусмотреть параметры, кото- рые врач выясняет у больного. Например, в качестве компоненты x1 можно
задать дату рождения, в качестве x2 – закодировать пол (например нулем или единицей), в качестве x3 – вес больного, x4 – артериальное давление, x5 –
температуру тела и т.д. Нелишне учесть также цвет глаз, цвет волос, знак зо- диака и другие данные, определяющие особенности организма и, следова- тельно, влияющие на вероятность возникновения тех или иных заболеваний. В выходном векторе D следует закодировать все возможные диагнозы бо- лезней, которые способен обнаружить врач.
Естественно, что размерность вектора D можно существенно снизить, если моделировать врача, специализирующегося в узкой области медицины. Так, если мы выбрали
у больного инфаркт, и d1 = 0 , если инфаркта нет. Аналогично с помощью d2 можно закодировать наличие или отсутствие порока сердца, d3 – ишемиче-
ской болезни сердца и т.д.
Таким образом, выходной вектор персептрона D будет состоять из множества нулей и одной или нескольких единиц (если болезней несколько). Однако диагнозы болезней лучше кодировать по
балльной шкале. Тогда на этапе подготовки обучающего множества приме- ров с помощью баллов можно будет учитывать степень уверенности врача в правильности его диагноза или степень развитости заболевания, а на этапе эксплуатации – вероятность правильного ответа персептрона. Например, ес- ли врач подозревает, что у больного инфаркт миокарда, знает, что у больного нет порока сердца и уверен, что больной страдает ишемической болезнью сердца, то он может указать: d1 = 20%, d2 = 0 %, d3 =100 %.
Далее следует подготовить множество обучающих примеров. Мы воз- держимся от своих советов по организации совместного труда
Итак, в результате длительной работы коллектива специалистов- медиков и программистов будет накоплено множество обучающих примеров, состоящее из множества пар векторов Xq и Dq (q =1,2, ..., Q). Теперь задача
состоит в том, чтобы спроектировать персептрон и путем обучения передать ему знания и опыт, содержащийся во множестве обучающих примеров. Во- просы проектирования персептронов, т.е. подбора количества скрытых слоев, содержащихся в них нейронов и типов активационных функций, будут рас- сматриваться при дальнейшем изучении курса, поэтому сейчас мы этим за- ниматься не будем. В качестве метода обучения персептрона можно исполь- зовать рассмотренный ранее алгоритм обратного распространения ошибки.
В результате персептрон должен научиться отображать любой вектор обучающего множества Xq на вектор Yq , совпадающий (либо почти совпа-
дающий) с вектором Dq . Кроме того, при появлении нового пациента, харак-
теризующегося новым входным вектором X , персептрон должен вычислить для него новый вектор Y , содержащий правильный диагноз, поставленный персептроном уже без помощи
В заключение еще раз укажем причины, на основании которых можно ожидать, что искусственный врач превзойдет натурального.