Медицинская нейроинформатика
В создании самообучающейся системы также можно выделить несколько этапов, часть из которых совпадает с этапами создания традиционных систем.
- Постановка задачи. То же, что и для традиционных систем плюс выбор оптимальной структуры нейронной сети и методов обучения (для большинства задач структура и методы стандартны).
- Сбор обучающих данных. Набор примеров для обучения сети, каждый из которых представляет массив входных данных и соответствующий ему заранее известный ответ.
- Создание и обучение нейросети. Данный этап не требует проведения статистических вычислений, а если задача укладывается в стандартную схему (в большинстве случаев), то и программистской работы. Если задача нестандартная, требуется адаптация структуры нейросети и метода вычисления оценки при обучении. Обучение нейросети в большинстве стандартных случаев представляет собой автоматический процесс, который только после его окончания требует участия специалиста для оценки результатов. Естественно, часто может требоваться корректировка, создание дополнительных сетей с другими параметрами и т.д., однако всегда есть возможность оценить работу системы на любом этапе обучения, протестировав контрольную выборку. Разрабатывая методологию создания нейросетевых экспертных систем, мы исходили из возможности разработки наиболее индивидуализированных (рассчитанных на одного конкретного пользователя-специалиста) систем самим этим специалистом. Конечно, ничто не мешает объединять в одной системе индивидуальный опыт нескольких специалистов. Отсутствие "математических" этапов реализует такие возможности. Предметный специалист в состоянии самостоятельно поставить задачу, более того, никто, кроме него, не сможет сделать это лучше. Сбор материала также должен осуществлять предметный специалист. Схемы постановки задач, способы представления данных и способы продукции ответа нейросетью разработаны таким образом, что большинство задач во многих областях укладываются в эти стандартные схемы. Поэтому при наличии хорошо продуманных инструментальных программных средств работы с нейронными сетями и документации к ним большинство специалистов способны самостоятельно разрабатывать не очень сложные нейросетевые приложения.
- Создание интерфейса. То же, что и для традиционных экспертных систем.
- Отладка и тестирование. Этап включает в основном отладку работы программы, т.к. тестирование часто проводится в процессе обучения сетей.
- Доучивание. Этап, характерный только для обучающихся систем. При создании нейроэкспертных программ довольно редко возможно сразу собрать достаточное количество данных для хорошего обучения сети. Поэтому, создавая нейросистему, исследователи определяют наилучшие параметры сетей и проводят стартовое обучение. В последующем пользователи доучивают систему в условиях реальной работы и реальных данных, передавая ей опыт. Более того, коренное отличие методологии создания нейросетевых систем от традиционных состоит именно в том, что система никогда не создается сразу готовой, и более того, никогда не является полностью законченной, продолжая накапливать опыт в процессе эксплуатации.
Резюмируем имеющиеся преимущества нейросетевых экспертных систем перед обычными, которые, как уже говорилось, проявляются только при решении трудноалгоритмируемых задач.
- Нейросети принимают решения на основе опыта, приобретаемого ими самостоятельно. "Самостоятельно" в данном случае означает то, что создателю экспертной системы не требуется устанавливать взаимосвязи между входными данными и необходимым решением, затрачивая время на разнообразную статобработку, подбор математического аппарата, создание и проверку математических моделей.
- Решение, принимаемое нейросетью, не является категоричным. Сеть выдает решение вместе со степенью уверенности в нем, что оставляет пользователю возможность критически оценивать ее ответ.
- Нейросеть позволяет моделировать ситуацию принятия решения.
- Нейросети дают ответ очень быстро (доли секунды), что позволяет использовать их в различных динамических системах, требующих незамедлительного принятия решения.
- Возможности нейросетей (коррекция классификационной модели, минимизация обучающих параметров и др.) позволяют упрощать процесс создания экспертных систем, определять направления научного поиска.
Главным критерием работы нейросетевых экспертных систем должна быть практика - многократные испытания и проверки в самых различных условиях.
Определенным препятствием использования нейросетей может является все же некоторая ограниченность задач, решаемых ими. Иногда в блоке трудноалгоритмируемых задач, решаемых с помощью самообучающейся экспертной системы, могут присутствовать элементы четких правил. В таком случае совершенно логично комбинировать в одной экспертной системе несколько нейросетей или даже обычные математические методы и строить из них иерархические блоки, одни из которых используют для своих действий результаты работы других. Следует подчеркнуть, что применение неявных алгоритмов не противоречит и не отменяет использование формальных методов, а может дополняться ими при необходимости. Например, если с помощью нейросети определяется оптимальная комбинация лекарственных препаратов для лечения пациента, и имеется совершенно четкое противопоказание к назначению определенного препарата, в экспертную систему может быть введен простой логический блок, препятствующий назначению этого лекарства независимо от решения нейросетей.
Ниже мы рассмотрим принципы и особенности создания нейросетевых экспертных систем для биологии и медицины.
Постановка задачи
Постановка задачи всегда является прерогативой предметных специалистов.
Прежде всего, необходимо определить, что представляет собой акт работы экспертной системы, начинающийся со ввода данных (условия задачи) пользователем и заканчивающийся выдачей ответа. Например, в медицинских диагностических задачах акт работы системы чаще всего начинается с введения в ЭВМ данных о пациенте (симптоматика, анамнез, результаты анализов и т.д.) и заканчивается выдачей возможного диагноза и/или прогноза. Часто одна задача компонуется из нескольких подзадач. В этом случае каждой подзадаче может соответствовать отдельный акт работы системы, хотя для пользователя это может быть совершенно незаметным. Например, по данным о пациенте требуется установить диагноз и назначить соответствующее лечение. Установление диагноза на базе введенных параметров - первая подзадача, назначение терапии - вторая, при этом для назначения терапии нужны не только исходные данные, но и результат решения предыдущей задачи - диагноз.
Полезно сразу же для каждой подзадачи определить ее тип (классификация, предикция, векторная предикция).
Обычно каждая подзадача решается одной нейросетью или несколькими нейросетями, объединенными в один функциональный блок (малые эксперты [5.46]). При этом введенные данные подаются последовательно на каждую нейросеть блока и каждая нейросеть выдает ответ. Ответы могут различаться, поэтому в такой ситуации требуется разработать способ получения единственного ответа. Это можно сделать двумя способами:
- Путем логических правил. Например, если 5 нейросетей выдали ответ "здоров", а 2 - "болен", то общее решение - "здоров", т.к. за него проголосовало большее число нейросетей-экспертов. Если не удается формализовать правило, можно принимать решение на основании степеней уверенности каждой из сетей.
- Путем надстройки над блоком малых экспертов нейросети-"супервизора", которая обучена принимать решение по результатам работы этих малых экспертов.
После определения акта работы системы и разбивки (если требуется) задачи на подзадачи следует разработка схемы обучающих примеров для каждой из подзадач. Схема примера включает список входных и выходных параметров для данной подзадачи.
Определение списка входных данных - квалифицированная работа предметного специалиста, требующая знания изучаемой области и ориентировочной важности тех или иных параметров, необходимых для получения ответа. Желательно в начале работы над проектом задать некоторую избыточность списка входных данных. В дальнейшем "лишние" параметры можно будет легко исключить из работы системы, добавить же новые несколько труднее, прежде всего потому, что потребуется вновь обращаться за этими параметрами к источникам данных.
Рис. 5.5. Схема движения информации для экспертной cистемы с 5 нейросетями-экспертами, решающими одну и ту же задачу и логическим блоком, осуществляющим голосование для выдачи заключительного решения
Далее желательно составить наглядную схему движения информации в экспертной системе начиная со ввода данных из внешнего мира и заканчивая выводом ответа (ответов) пользователю. Пример такой схемы приведен на рисунке 5.5.
Необходимо определить ориентировочные размеры обучающих выборок. Так, в классификационных задачах (подзадачах) желательно, чтобы каждый класс ответа был представлен достаточным количеством примеров. Необязательно, но желательно, чтобы количества примеров каждого класса не различались слишком сильно (более, чем на порядок).
Предварительное обучение и тестирование нейросетей можно проводить на небольшом количестве примеров с целью определения дальнейшей стратегии и тактики обучения, а также уточнения общего размера обучающей выборки.