Теоретический материал к лабораторным работам №6 и №7 МЕДИЦИНСКАЯ ДИАГНОСТИКА

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

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

Задавшись целью смоделировать деятельность врача с помощью пер- септрона, мы прежде всего должны определиться с входным вектором X и выходным вектором D , задав их размерности, и условиться о содержимом каждого компонента. В векторе X логично предусмотреть параметры, кото- рые врач выясняет у больного. Например, в качестве компоненты x1 можно

задать дату рождения, в качестве x2 – закодировать пол (например нулем или единицей), в качестве x3 – вес больного, x4 – артериальное давление, x5

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

Естественно, что размерность вектора D можно существенно снизить, если моделировать врача, специализирующегося в узкой области медицины. Так, если мы выбрали врача-кардиолога, то в векторе D следует кодировать только кардиологические заболевания. Например, можно принять d1 =1, если

у больного инфаркт, и d1 = 0 , если инфаркта нет. Аналогично с помощью d2 можно закодировать наличие или отсутствие порока сердца, d3 – ишемиче-

ской болезни сердца и т.д.

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

балльной шкале. Тогда на этапе подготовки обучающего множества приме- ров с помощью баллов можно будет учитывать степень уверенности врача в правильности его диагноза или степень развитости заболевания, а на этапе эксплуатации – вероятность правильного ответа персептрона. Например, ес- ли врач подозревает, что у больного инфаркт миокарда, знает, что у больного нет порока сердца и уверен, что больной страдает ишемической болезнью сердца, то он может указать: d1 = 20%, d2 = 0 %, d3 =100 %.

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

Итак, в результате длительной работы коллектива специалистов- медиков и программистов будет накоплено множество обучающих примеров, состоящее из множества пар векторов Xq и Dq (q =1,2, ..., Q). Теперь задача

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

В результате персептрон должен научиться отображать любой вектор обучающего множества Xq на вектор Yq , совпадающий (либо почти совпа-

дающий) с вектором Dq . Кроме того, при появлении нового пациента, харак-

теризующегося новым входным вектором X , персептрон должен вычислить для него новый вектор Y , содержащий правильный диагноз, поставленный персептроном уже без помощи врача-эксперта. Другими словами, персептрон должен уметь обобщать переданный ему опыт на новые примеры предмет- ной области – ставить диагнозы болезней новым, не встречавшимся ранее пациентам.

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

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