Назначение и структура экспертной системы
Экспертная система — это программа, которая действует как эксперт в некоторой, обычно узкой прикладной области. К типичным ее приложениям относятся такие задачи, как медицинская диагностика, поиск причин неисправностей оборудования или интерпретация результатов измерений. Экспертные системы должны быть способными решать задачи, для которых требуются специальные знания в определенной области. Они должны обладать этими знаниями, представленными в определенной форме. Поэтому такие системы называют также системами, основанными на знаниях. Но не каждую систему, основанную на знаниях, можно рассматривать как экспертную. Мы придерживаемся той точки зрения, что экспертная система должна быть способна в определенной степени объяснять свое поведение и свои решения пользователю, как это делают люди-эксперты. Такие функции объяснения особенно необходимы в областях, характеризующихся значительной неопределенностью (как медицинские диагнозы), поскольку они позволяют укрепить доверие пользователя к рекомендациям системы и дают возможность обнаружить возможную ошибку в ее рассуждениях. Поэтому экспертные системы должны обладать способностью дружественного взаимодействия с пользователем, благодаря которому ход рассуждений системы становится прозрачным для пользователя.
I
Дополнительным свойством, которое также часто требуется от экспертной системы, является способность функционировать в условиях неопределенной и неполной информации. Информация о задаче, требующей решения, может быть неполной или ненадежной, а отношения в проблемной области могут быть определены приближенно. Например, иногда невозможно утверждать с полной уверенностью, что у пациента наблюдаются некоторые симптомы и что известная часть результатов измерений является абсолютно правильной; иногда прием некоторых лекарств может стать причиной определенных расстройств, но обычно этого не происходит. Все эти обстоятельства требуют, чтобы система проводила свои рассуждения в условиях неопределенности.
Для формирования полноценной экспертной системы необходимо, как правило, реализовать в ней следующие функции.
• Функции решения задач, позволяющие использовать специальные знания в проблемкой области (при этом может потребоваться обеспечить работу в условиях неопределенности).
• Функции взаимодействия с пользователем, которые, в частности, позволяют объяснить намерения и выводы системы в процессе решения задачи и по завершении этого процесса.
Каждая из этих функций может оказаться очень сложной, а способ их реализации может зависеть от проблемной области и практических требований. К тому же разработка и реализация проекта такой системы часто требует решения разнообразных и сложных проблем. К ним относится выбор способа представления знаний и соответствующих средств проведения рассуждений. В данной главе рассматриваются наиболее важные понятия в этой области, которые могут стать основой для дальнейшего усовершенствования. В главе 16 показано, как реализовать полнофункциональный командный интерпретатор экспертной системы, основанной на правилах. При этом вся сложность состоит в том, как поддерживать бесперебойное взаимодействие с пользователем в процессе проведения рассуждений.
Разработку экспертной системы удобно разделить на следующие три главных модуля (рис. 15.1).
1. База знаний.
2. Машина логического вывода.
3. Пользовательский интерфейс.
База знаний | Машина логического вывода | Пользовательский интерфейс | |||||
Командный интерпретатор | |||||||
Рис. 15.1. Структура типичной экспертной системы
База знаний содержит сведения, которые относятся к рассматриваемой прикладной области, в том числе такие информационные компоненты, как простые факты об этой области, правила или ограничения, которые описывают отношения, или феномены в этой области и возможно также методы, эвристики и идеи для решения задач в данной области. Машина логического вывода обладает способностью активно использовать знания, представленные в базе знаний. Пользовательский интерфейс обеспечивает бесперебойное взаимодействие пользователя и системы, а также дает возможность пользователю получить представление о том, как выполняется процесс решения задачи, осуществляемый машиной логического вывода. Машину логическо-
Глава 15. Представление знаний и экспертные системы
го вывода и пользовательский интерфейс удобно рассматривать как один модуль, который обычно называют командным интерпретатором экспертной системы, или для краткости просто командным интерпретатором.
В описанной выше схеме экспертной системы предусматривается разделение знаний и алгоритмов, с помощью которых используются эти знания. Такое разделение удобно по следующим причинам. С одной стороны, очевидно, что состав базы знаний зависит от приложения, С другой стороны, командный интерпретатор, по крайней мере в принципе, не зависит от проблемной области. Поэтому, если должны быть разработаны экспертные системы для нескольких приложений, целесообразно вначале создать командный интерпретатор универсального назначения, а затем подключать к нему новую базу знаний по мере разработки каждого нового приложения. Безусловно, при таком подходе все базы знаний должны соответствовать одним и тем же формальным требованиям, которые совместимы с командным интерпретатором. Но практический опыт создания сложных экспертных систем показывает, что подход, в котором используются один командный интерпретатор и много разных баз знаний, удается реализовать без особых затруднений, только если прикладные области действительно очень похожи друг на друга. Тем не менее, даже если и потребуется вносить изменения в командный интерпретатор при переходе от одной проблемной области к другой, то по крайней мере могут быть сохранены основные принципы формирования экспертных систем.
В данной главе описаны некоторые основные методы функционирования экспертных систем. В частности, здесь рассматриваются способы представления знаний с помощью правил вывода (правил "if-then"), главные механизмы логического вывода в экспертных системах на основе правил (такие как прямой или обратный логический вывод), усовершенствование представления на основе правил с учетом неопределенности, байесовские сети доверия, семантические сети и средства представления знаний с помощью фреймов.