Главная страница / 34. Базовые понятия ИИ: 34.2. Экспертные системы

34.2. Экспертные системы

Эффективность программы ИИ при решении задачи во многом зависит от знаний, которыми она обладает, а не только от формализации и схем вывода, которые она использует. В конце 70-х годов специалисты в области ИИ приняли принципиально новую концепцию программ ИИ: чтобы программу сделать интеллектуальной, ее нужно снабдить множеством высококачественных специальных знаний о некоторой предметной области. Понимание этого привело к развитию специализированных программных систем, каждая из которых является экспертом в некоторой узкой предметной области – экспертных систем (ЭС). Технологию построения ЭС часто называют инженерией знаний. Как правило, этот процесс требует специализированной формы взаимодействия создателя ЭС, которого называют инженером знаний, и одного или нескольких экспертов в некоторой предметной области. Инженер знаний «извлекает» из экспертов процедуры, стратегии, эмпирические правила, которые они используют при решении задач, и встраивает эти знания в ЭС. В результате появляется программа для ЭВМ, которая решает задачи во многом так же, как эксперты-люди.

Рассмотрим основные характеристики ЭС подробно. Сердцевину ЭС составляет база знаний (БЗ), которая накапливается в процессе ее построения. Знания выражены в явном виде и организованы так, чтобы упростить принятие решений. Важность этой особенности ЭС невозможно переоценить. Тот факт, что знания – основа ЭС – являются явными и доступными, отличает ЭС от большинства традиционных программ.

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

Другая важная черта ЭС – наличие у них прогностических возможностей. ЭС может функционировать в качестве теоретического инструмента обработки информации или модели решения задачи в заданной предметной области, давая ожидаемые ответы в конкретной ситуации и показывая, как изменятся эти ответы в новых ситуациях. ЭС может подробно объяснить, каким образом новая ситуация привела к изменениям.

Кроме того, важным свойством ЭС является то, что их можно использовать для обучения и тренировки работников. ЭС, как правило, разрабатываются с расчетом на подробный процесс обучения, так как они уже содержат необходимые знания и способны объяснить процесс своего рассуждения. Обычно разрабатывается интерфейс между обучаемым и ЭС: ЭС не только ищет ответ на поставленный вопрос, но и при необходимости может дать подробную пошаговую справку о том, как она искала решение.

Как было отмечено выше, основой ЭС является совокупность знаний, структурированных в целях упрощения процесса принятия решений ЭС. Для специалистов в области ИИ термин «знания» означает информацию, которая необходима программе, чтобы она вела себя «интеллектуально». Эта информация принимает обычно форму фактов или правил. Под фактом понимается утверждение, всегда являющееся истинным. Например:

  • «Резервуар №25 содержит серную кислоту».
  • «Истец был травмирован электропилой».

Под правилом понимается утверждение, принимающее истинное или ложное значение в зависимости от некоторых условий. Например:

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

Факты и правила, заложенные в ЭС, не всегда либо истинны, либо ложны. Иногда существует некоторая степень неуверенности в достоверности факта или точности правила. Если это сомнение выражено явно в численной форме, то оно носит название коэффициента уверенности.

Многие правила в ЭС являются эвристиками, т.е. эмпирическими правилами, которые эффективно ограничивают поиск решения. ЭС использует эвристики потому, что задачи, которые она решает (например, поиск новых месторождений в геологии или согласование исков в юриспруденции), как правило, трудны и не до конца понятны. Эти задачи не имеют строгого математического или алгоритмического решения. Алгоритмический метод гарантирует корректное или оптимальное решение задачи, в то время, как эвристический метод дает приемлемое решение в большинстве случаев. Использование эвристических правил делает поиск решения намного более легким и более практичным.

В ЭС знания организованы таким образом, чтобы можно было знания о предметной области отделить от других типов знаний системы, таких, как решать задачи или взаимодействовать с пользователем (например, редактировать или печатать текст в соответствии с командами пользователя). Выделенные знания о предметной области называются базой знаний (БЗ), тогда как общие знания о нахождении решений задач называются механизмом вывода. Программа, которая работает со знаниями, организованными подобным образом, называется системой, основанной на знаниях. Все ЭС являются системами, основанными на знаниях (но не наоборот – например, программу ИИ для игры в «крестики-нолики» нельзя считать ЭС, даже, если в ней знания о предметной области отделены от остальной программы).

База знаний ЭС содержит факты (данные) и правила (или другие представления знаний), использующие эти факты как основу для принятия решений. Механизм вывода содержит интерпретатор, определяющий, каким образом применять правила для вывода новых знаний, и диспетчер, устанавливающий порядок применения этих правил. Структура ЭС показана на рис. 34.1.

img341

Рис. 34.1. Структура ЭС

Концепция механизма вывода зависит от специфики предметной области и от того, как знания структурированы и организованы в ЭС. Многие языки высокого уровня, предназначенные для построения ЭС, имеют свой механизм вывода. Например, механизм вывода, заложенный в языке PROLOG носит название «поиск в глубину с возвратом». Этот механизм уже реализован в самом программном обеспечении среды языка PROLOG: это означает, что разработчик ЭС, реализуемой на PROLOGе, не должен писать специальные программы поиска решения. Ему достаточно правильно сформулировать правила вывода на PROLOGе, а затем корректно задать цели для поиска решения. PROLOG сам, используя БЗ о предметной области, найдет решение и продемонстрирует его пользователю.

Рассмотрим, каким образом знания структурированы в ЭС, т. е. способы представления знаний. В современных ЭС чаще всего используют три способа представления знаний: правила (наиболее популярный), семантические сети и фреймы.

Методы, основанные на правилах

Представление знаний, основанное на правилах, построено на использовании выражений вида ЕСЛИ(условие) – ТО (действие). Например:

«ЕСЛИ пациент был по профессии изолировщиком,

ТО пациент работал с асбестом».

«ЕСЛИ пациент работал с асбестом И пациент находился при этом в закрытом помещении,

ТО пациент получил большую дозу асбестовой пыли».

Когда текущая ситуация (факты) в задаче удовлетворяет части правила ЕСЛИ или согласуется с нею, то выполняется действие, определяемое частью ТО. Это действие может оказаться воздействием на окружающую среду (например, вызовет распечатку текста), может повлиять на управление программой (например, вызвать проверку и запуск некоторого набора правил) или может сводиться к указанию системе о получении определенного заключения (например, необходимо добавить новый факт или гипотезу в БЗ).

Сопоставление частей ЕСЛИ правил с фактами может породить так называемую цепочку выводов. На рис. 34.2 изображена цепочка выводов, образованная последовательным применением правил из вышеприведенного примера. Эта цепочка показывает, как система использует правила для вывода о том, насколько серьезную дозу канцерогенного вещества получил пациент при работе с асбестом.

img342

Рис. 34.2. Цепочка выводов для получения заключения о накопленной пациентом дозе асбестовой пыли

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

В ЭС, основанных на правилах, предметные знания представляются набором правил, которые проверяются на группе фактов или знаний о текущей ситуации. Когда часть правила ЕСЛИ удовлетворяет фактам – действие, указанное в части ТО, выполняется. Когда это происходит, говорят, что правило выполнено. Интерпретатор правил сопоставляет части правила ЕСЛИ с фактами и выполняет правило, часть ЕСЛИ которого согласуется с фактами.

Действия правила могут состоять в модификации набора фактов в БЗ, например, в добавлении нового факта. Новые факты, добавленные к БЗ, сами могут быть использованы для сопоставления с частями правил ЕСЛИ. Действие, предпринимаемое при выполнении правила, может непосредственно взаимодействовать с внешней средой. В примере о накоплении пациентом асбестовой пыли к фактам можно отнести следующие утверждения:

  • «Пациент был по профессии изолировщиком».
  • «Пациент работал с асбестом».
  • «Пациент находился в закрытом помещении».

Набор известных фактов в ЭС называется базой данных.

Процесс сопоставления с фактами частей ЕСЛИ правил может порождать то, что называется цепочкой выводов. Цепочка выводов, полученная в результате выполнения правил из приведенного примера о накоплении асбестовой пыли, как раз и представлена на рис. 34.2. Эта цепочка выводов показывает, как система, используя правила, выводит заключение о полученной дозе пыли. Если предъявить пользователю цепочки выводов, то он сможет понять, как система достигает своих заключений. Этот механизм реализован во всех ЭС.

Методы, основанные на фреймах

В ИИ, в частности в теории построения ЭС, фреймы и семантические сети, как правило, рассматриваются как методы представления знаний, основанные на фреймах. Представление знаний, основанное на фреймах, использует сеть узлов, связанных отношениями и организованных иерархически. Фрейм – это сеть узлов и отношений, организованных иерархически, где верхние узлы представляют общие понятия, а нижние узлы – более частные случаи этих понятий. Каждый узел представляет собой блок, относящийся к определенному понятию, в состав этого блока входят набор атрибутов, относящихся к этому понятию, и значения атрибутов, связанных с этим понятием. Узлы, которые занимают более низкое положение в иерархии, автоматически наследуют свойства узлов, занимающих более высокое положение. Атрибуты называются слотами. Каждый слот может быть связан с процедурами (произвольными машинными программами), которые выполняются, когда информация в слотах (значения атрибутов) меняются. С каждым слотом может быть связано любое число процедур. В табл. 34.1 перечислены три типа процедур, чаще всего связываемых со слотами:

Таблица 34.1 Типы процедур, связываемых со слотами

№ п/п Название процедуры Условия исполнения процедуры
1 «ЕСЛИ – добавлено» Выполняется, когда новая информация помещается в слот
2 «ЕСЛИ – удалено» Выполняется, когда информация удаляется из слота
3 «ЕСЛИ – нужно» Выполняется, когда запрашивается информация из слота, а он пустой

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

Проиллюстрируем, как работает система, основанная на фреймах. На рис. 34.3 представлена иерархия отчета со всеми слотами, значениями и процедурами.

img343

Рис. 34.3. Представление отчета с помощью фреймов