Как видно из диалога, система задает пользователю вопросы, касающиеся «примитивной» информации, например:
Это правда: «Пушок» ест мясо?
На подобные вопросы пользователь может отвечать двумя способами:
· сообщив системе в качестве ответа на вопрос необходимую информацию;
· спросив систему, почему эта информация необходима.
Последняя возможность позволяет пользователю заглянуть внутрь системы и увидеть ее намерения. Из объяснений системы пользователь поймет, стоит ли информация, которую запрашивает система, тех дополнительных усилий, которые необходимо приложить для ее приобретения. Для того, чтобы заглянуть внутрь системы, следует создать специальную надстройку над пролог - системой, которая будет включать в себя средства взаимодействия с пользователем.
Такая надстройка будет принимать вопрос и искать на него ответ. Язык правил допускает, чтобы в условной части правила была И/ИЛИ комбинация условий. Вопрос также может быть представлен в виде И/ИЛИ комбинаций подвопросов. Поэтому процесс поиска ответов на эти вопросы будет аналогичен процессу поиска в И/ИЛИ – графах.
Ответ на заданный вопрос можно найти несколькими способами в соответствии со следующими принципами:
· если В найден в базе знаний в виде факта, то Отв – это «В это правда»;
· если в базе знаний существует правило вида «если Условие то В», то для получения ответа Отв рассмотрите Условие;
· если вопрос В можно задавать пользователю, спросите пользователя об истинности В;
· если В имеет вид В1 и В2, то рассмотрите В1, а затем, если В1 ложно, то положите Отв равным «В это ложь», в противном случае рассмотрите В2 и получите Отв как соответствующую комбинацию ответов на вопросы В1 и В2;
· если В имеет вид В1 или В2, то рассмотрите В1, а затем, если В1 истинно, то положите Отв равным «В это правда», в противном случае рассмотрите В2 и получите Отв как соответствующую комбинацию ответов на вопросы В1 и В2.
5.7 Формирование ответа на вопрос «почему»
Объяснение экспертной системы в этом случае должно выглядеть примерно так:
потому, что
Я могу использовать a,
чтобы проверить по правилу 1, что b, и
Я могу использовать b,
чтобы проверить по правилу 2, что c, и
Я могу использовать c,
чтобы проверить по правилу 3, что d, и
…
Я могу использовать y,
чтобы проверить по правилуn, что z, и
z – это Ваш исходный вопрос.
Объяснение – это демонстрация того, как система намерена использовать информацию, которую она хочет получить от пользователя. Намерения системы демонстрируются в виде цепочки правил и целей, соединяющей эту информацию с исходным вопросом. Такая цепочка называется трассой. Трассу можно представить как цепочку правил, соединяющую в И/ИЛИ – дереве вопросов текущую цель с целью самого верхнего уровня так, как это показано на рисунке. Таким образом, для формирования ответа на вопрос «почему» нужно двигаться в пространстве поиска от текущей цели вверх вплоть до самой верхней цели. Для того, чтобы суметь это сделать, нам придется в процессе рассуждений сохранять трассу в явном виде.
5.8 Формирование ответа на вопрос «как»
Один из известных способов ответить на вопрос «как» – это представить доказательство, то есть те правила и подцели, которые использовались для достижения полученного заключения. Это доказательство имеет вид решающего И/ИЛИ – дерева. Поэтому наша машина логического вывода будет не просто отвечать на вопрос, соответствующий цели самого верхнего уровня, а будет выдавать в качестве ответа решающее И/ИЛИ – дерево, составленное из имен правил и подцелей. Затем это дерево можно отобразить на выходе системы в качестве объяснения типа «как». Объяснению можно придать удобную для восприятия форму, например:
«Пушок» это хищник
было выведено по правилу 3 из
«Пушок» это млекопитающее
было выведено по правилу 1 из
«Пушок» имеет шерсть
было сказано
и «Пушок» ест мясо
было сказано.
Описанная выше оболочка экспертной системы может работать только с такими вопросами (утверждениями), которые либо истинны, либо ложны. Правила базы знаний - «категорические импликации», однако многие области экспертных знаний не являются категорическими. Поэтому, как данные, относящиеся к конкретной задаче, так и импликации, содержащиеся в правилах, могут быть не вполне определенными. Неопределенность можно продемонстрировать, приписывая утверждениям некоторые характеристики, отличные от «истина» и «ложь». Характеристики могут иметь свое внешнее выражение в форме дескрипторов, таких как, например, верно, весьма вероятно, вероятно, маловероятно, невозможно. Другой способ представления – степень вероятности может выражаться в форме действительного числа, заключенного в некотором интервале, например между 0 и 1 или между –5 и +5. Такую характеристику называют по-разному- «коэффициент определенности», «степень доверия», «субъективная уверенность». Более естественным было бы использовать вероятности в математическом смысле слова, но попытки применить их на практике приводят к трудностям по следующим причинам:
· экспертам неудобно мыслить в терминах вероятностей. Их оценки правдоподобия не вполне соответствуют математическому определению вероятности;
· работа с вероятностями, корректная с точки зрения математики, потребовала бы каких-либо упрощающих допущений, не вполне оправданных с точки зрения практического приложения.
Поэтому, даже если выбранная мера правдоподобия лежит в интервале от 0 до 1, более правильным будет называть ее «субъективной уверенностью», подчеркивая этим, что имеется в виду оценка, данная экспертом. Вычисления над такими оценками могут отличаться от вычислений теории вероятностей, однако, они могут служить вполне адекватной моделью того, как человек оценивает достоверность своих выводов.
Для работы в условиях неопределенности было придумано множество различных механизмов, мы рассмотрим одну простую модель, которая не лишена недостатков, но была использована на практике в экспертных системах минералогической разведки и локализации неисправностей.
В данной системе достоверность событий моделируется с помощью действительных чисел, заключенных в интервале от 0 до 1. Отношения между событиями можно представить графически в виде «сети вывода», на которой события изображаются прямоугольниками, а отношения между ними стрелками. Овалами изображены комбинации событий (И, ИЛИ, НЕ). Отношения между событиями являются «мягкими импликациями».
Пусть имеются два события E и H, и пусть информация о том, что имело место событие E, оказывает влияние на нашу уверенность в том, что произошло событие H. Данному отношению можно приписать некоторую «силу», с которой оно действует:
если E, то H с силой S.
В данной системе сила моделируется при помощи двух параметров:
N =<коэффициент необходимости>;
S=<коэффициент достаточности>.
В сети вывода это изображается так:
(N, S)
p0 (E) p0(H), p0 – априорная вероятность;
p(E) p(H|E), p – апостериорная вероятность.
Два события, участвующие в отношении, часто называют “фактом” и “гипотезой”. Тогда, необходимо найти такой факт E, который мог бы подтвердить или опровергнуть гипотезу H. S показывает, в какой степени достаточно факта E для подтверждения гипотезы H, N – насколько необходим факт E для подтверждения гипотезы H. Если факт E имел место, то чем больше S, тем больше уверенности в H. С другой стороны, если не верно, что имел место факт E, то чем больше N, тем менее вероятно, что гипотеза H верна.
Для каждого события H сети вывода существует априорная вероятность p0 (H)- безусловная вероятность события H в состоянии, когда неизвестно ни одного положительного или отрицательного факта. Если становится известным какой-нибудь факт E, то вероятность H меняет свое значение с p0 (H) на p(H|E). Величина изменения зависит от «силы» стрелки, ведущей из E в H.
Таким образом, проверка гипотез начинается, исходя из априорных вероятностей. В дальнейшем происходит накопление информации о фактах, что находит свое отражение в изменении вероятностей событий сети. Эти изменения распространяются по сети событий в соответствии со связями между событиями. Логические комбинации отношений можно изобразить следующим образом:
E не E
p 1-p
p1 E1
E1 и E2 и E3
p2 E2
p3 E3 p= max (pi)
p1 E1 i
E1 или E2 или E3
p2 E2
p= min (pi)
p3 E3 i
На следующем рисунке представлен пример представления сети событий.
0.001 0.001 0.001
(0.001,2000)
(0.001,1000) (0.001,400)
0.005 0.005
(0.05,400) (0.001,10000) (0.5,200) (0.001, 800)
0.01 0.005 0.001 0.01
ть это избыточная информация.
Литература:
1. Адаменко А.Н., Кучуков А. Логическое программирование и Visual Prolog – Спб.: БХВ – Петербург, 2003.
2. Андрейчиков А.В., Андрейчикова О.Н.. Интеллектуальные информационные системы: Учебник. – М.: Финансы и статистика, 2006. – 424 с., ил.
3. Братко И. Алгоритмы искусственного интеллекта на языке Prolog. М.: Вильямс, 2004. – 637 с.
4. Марселлус Д. Программирование экспертных систем на Турбо Прологе: Пер. с англ. – М.: Финансы и статистика, 1994. – 256 с., ил.
5. Осовский С. Нейронные сети для обработки информации / Пер. с пол. И.Д. Рудинского. – М.: Финансы и статистика, 2002. – 344 с.: ил.
6. Солдатова О.П. Основы нейроинфоматики: учеб. пособие - Самара: Изд-во Самар. гос. аэрокосм. ун-та, 2006- 132 с. ил.
7. Стерлинг Л., Шапиро Э. Искусство программирования на языке Пролог: Пер. с англ. М.: Мир.1990.
8. Хайкин С. Нейронные сети: Полный курс: Пер. с англ. - 2-е изд. – М.: Вильямс, 2006. – 1104 с.: ил.