Базовые функции экспертных систем
Поскольку теория экспертных систем выросла из более общей концепции искусственного интеллекта, то нет ничего удивительного в том, что проблематика этих областей имеет много общего. На некоторых из таких связей акцентируется внимание в последующих разделах при обзоре литературы. Вы также встретите в них ссылки на последующие главы этой книги, в которых та или иная тема будет рассмотрена подробно.
Что такое экспертная система?
· 1.1. Смысл экспертного анализа · 1.2. Характеристики экспертных систем · 1.3. Базовые функции экспертных систем · 1.4. Резюме и структура книги · Рекомендуемая литература · Упражнения
День сегодня с утра не задался. Вы только что установили новую версию текстового редактора, к которому давно привыкли, но после щелчка на его ярлыке компьютер реагирует совсем не так, как хотелось бы, — выводится сообщение вроде этого:
Call to Undefined Link (Вызов неопределенной связи).
Как и большинство сообщений об ошибках, это помогает не больше, чем предсказания судьбы по состоянию Марса. Вы применяете крайнюю меру — удаляете целый каталог и переинсталлируете программу, но результат от этого не меняется. Вы начинаете менять настройки в разных файлах инициализации, но это тоже не помогает.
Наконец, устав от безнадежных попыток, вы набираете номер сервисной службы поддержки пользователей. И только после этого фортуна поворачивается к вам лицом — на помощь приходит человек, который знает, о чем говорит. Он советует вам выбросить с полдюжины устаревших DLL-модулей в системном каталоге и вновь переустановить программу. Последовав его совету, вы.уже через десяток минут можете нормально работать, и подскочившее недавно кровяное давление вновь возвращается к норме.
Какой бы уровень экспертного анализа не требовался в данной области, ясно, что специалист из сервисной службы способен его сделать, а вы — нет. Хотя в ящике стола у вас лежит диплом доктора философии по специальности "Информатика", и вы, возможно, прекрасно программируете задачи в своей области, но, не имея определенного опыта и подготовки, проблему устранения неисправности решить не смогли. Таким образом, способность выполнить экспертный анализ — это не только вопрос наличия определенных знаний и уровня квалификации. Для этого нужно обладать и очень специфическими навыками и умением разобраться в конкретной ситуации в данной предметной области. Таким образом, быть экспертом и иметь общее образование — это далеко не одно и то же.
Характеристики экспертных систем
Экспертная система отличается от прочих прикладных программ наличием следующих признаков.
· Моделирует не столько физическую (или иную) природу определенной проблемной области, сколько механизм мышления человека применительно к решению задач в этой проблемной области. Это существенно отличает экспертные системы от систем математического моделирования или компьютерной анимации. Нельзя, конечно, сказать, что программа полностью воспроизводит психологическую модель специалиста в этой предметной области (эксперта), но важно, что основное внимание все-таки уделяется воспроизведению компьютерными средствами методики решения проблем, которая применяется экспертом, -т.е. выполнению некоторой части задач так же (или даже лучше), как это делает эксперт. · Система, помимо выполнения вычислительных операций, формирует определенные соображения и выводы, основываясь на тех знаниях, которыми она располагает. Знания в системе представлены, как правило, на некотором специальном языке и хранятся отдельно от собственно программного кода, который и формирует выводы и соображения. Этот компонент программы принято называть базой знаний. · При решении задач основными являются эвристические и приближенные методы, которые, в отличие от алгоритмических, не всегда гарантируют успех. Эвристика, по существу, является правилом влияния (rule of thumb), которое в машинном виде представляет некоторое знание, приобретенное человеком по мере накопления практического опыта решения аналогичных проблем. Такие методы являются приблизительными в том смысле, что, во-первых, они не требуют исчерпывающей исходной информации, и, во-вторых, существует определенная степень уверенности (или неуверенности) в том, что предлагаемое решение является верным.Экспертные системы отличаются и от других видов программ из области искусственного интеллекта.
· Экспертные системы имеют дело с предметами реального мира, операции с которыми обычно требуют наличия значительного опыта, накопленного человеком.Множество программ из области искусственного интеллекта являются сугубо исследовательскими и основное внимание в них уделяется абстрактным математическим проблемам или упрощенным вариантам реальных проблем (иногда их называют "игрушечными" проблемами), а целью выполнения такой программы является "повышение уровня интуиции" или отработка методики. Экспертные системы имеют ярко выраженную практическую направленность в научной или коммерческой области. · Одной из основных характеристик экспертной системы является ее производительность, т.е. скорость получения результата и его достоверность (надежность). Исследовательские программы искусственного интеллекта могут и не быть очень быстрыми, можно примириться и с существованием в них отказов в отдельных ситуациях, поскольку, в конце концов, — это инструмент исследования, а не программный продукт. А вот экспертная система должна за приемлемое время найти решение, которое было бы не хуже, чем то, которое может предложить специалист в этой предметной области. · Экспертная система должна обладать способностью объяснить, почему предложено именно такое решение, и доказать его обоснованность. Пользователь должен получить всю информацию, необходимую ему для того, чтобы быть уверенным, что решение принято "не с потолка". В отличие от этого, исследовательские программы "общаются" только со своим создателем, который и так (скорее всего) знает, на чем основывается ее результат. Экспертная система проектируется в расчете на взаимодействие с разными пользователями, для которых ее работа должна быть, по возможности, прозрачной. Зачастую термин система, основанная на знаниях (knowledge-based system), используется в качестве синонима термина экспертная система, хотя, строго говоря, экспертная система — это более широкое понятие. Система, основанная на знаниях, — это любая система, процесс работы которой основан на применении правил отношений к символическому представлению знаний, а не на использовании алгоритмических или статистических методов.
Таким образом, программа, способная рассуждать о погоде, будет системой, основанной на знаниях, даже в том случае, если она не способна выполнить метеорологическую экспертизу. А вот чтобы иметь право называться метеорологической экспертной системой, программа должна быть способна давать прогноз погоды (другой вопрос — насколько он будет достоверен).
Суммируя все сказанное, отметим — экспертная система содержит знания в определенной предметной области, накопленные в результате практической деятельности человека (или человечества), и использует их для решения проблем, специфичных для этой области. Этим экспертные системы отличаются от прочих, "традиционных" систем, в которых предпочтение отдается более общим и менее связанным с предметной областью теоретическим методам, чаще всего математическим. Процесс создания экспертной системы часто называют инженерией знаний (knowledge engineering) и он рассматривается в качестве "применения методов искусственного интеллекта" (см. [Feigenbaum, 1977]). Далее, в главах 2 и 3, мы более пристально рассмотрим отличие между общепринятым в программировании подходом к решению проблем и тем, который предлагается при проектировании экспертных систем.
В оставшейся части этой главы мы рассмотрим следующие вопросы. Сначала будут перечислены четыре базовые функции, которые реализуются в экспертных системах. Эти функции здесь будут рассмотрены очень поверхностно, с единственной целью дать читателю общее представление о них и познакомить с соответствующей терминологией. Последний раздел главы даст читателю представление об общей структуре материала в этой книге и о его распределении по главам
Представление знаний
Представление знаний — еще одна функция экспертной системы. Теория представления знаний — это отдельная область исследований, тесно связанная с философией формализма и когнитивной психологией. Предмет исследования в этой области — методы ассоциативного хранения информации, подобные тем, которые существуют в мозгу человека. При этом основное внимание, естественно, уделяется логической, а не биологической стороне процесса, опуская подробности физических преобразований.
1.2. Синтаксис и семантика представления семейных отношений
Основная часть представления знаний, на которую часто даже не обращают особого внимания, состоит в том, что представление должно каким-то образом "стандартизировать" семантическое разнообразие человеческого языка. Вот несколько предложений.
"Сэм — отец Билла". "Сэм — Биллов отец". "Биллов отец — Сэм".
"Отцом Билла является Сэм".
Все эти фразы выражают одну и ту же мысль (семантически идентичны). При машинном представлении этой мысли (знания) мы стараемся найти более простой метод сопоставления формы и содержания, чем в обычном человеческом языке, т.е. добиться того, чтобы выражения с одинаковым (или похожим) содержанием были одинаковыми и по форме. Например, все приведенные выше фразы могут быть сведены к выражению в такой форме:
отец (сэм, билл).
В семантике этого выражения должно быть специфицировано (наряду с прочими вещами) и то, что первое имя принадлежит родителю, а второе — потомку, а не наоборот.
Можно также заметить, что предложения
"Сэм — отец Джилла".
"Отцом Билла является Сэм".
имеют похожий смысл, но более очевидно ранжировать их в такой форме:
отец (сэм, билл). отец (сэм, джилл).
О синтаксисе и семантике мы поговорим более подробно в главах 3 и 8.
В 70-х годах исследования в области представления знаний развивались в направлениях раскрытия принципов работы памяти человека, создания теорий извлечения сведений из памяти, распознавания и восстановления.
Некоторые из достигнутых в теории результатов привели к созданию компьютерных программ, которые моделировали различные способы связывания понятий (концептов). Появились компьютерные приложения, которые могли некоторым образом отыскивать нужные "элементы" знания на определенном этапе решения некоторой проблемы. Со временем психологическая достоверность этих теорий отошла на второй план, а основное место, по крайней мере с точки зрения проблематики искусственного интеллекта, заняла их способность служить инструментом для работы с новыми информационными и управляющими структурами.
В общем, вопрос представления знания был и скорее всего останется вопросом противоречивым. Философы и психологи зачастую бывают шокированы бесцеремонностью специалистов по искусственному интеллекту, которые бойко болтают о человеческом знании на жаргоне, представляющем дикую смесь терминологии, взятой из логики, логистики, философии, психологии и информатики. С другой стороны, компьютерный формализм оказался новаторским средством постановки, а иногда и поиска ответов на трудные вопросы, над которыми столетиями бились метафизики.
В области экспертных систем представление знаний интересует нас в основном как средство отыскания методов формального описания больших массивов полезной информации с целью их последующей обработки с помощью символических вычислений. Формальное описание означает упорядочение в рамках какого-либо языка, обладающего достаточно четко формализованным синтаксисом построения выражений и такого же уровня семантикой, увязывающей смысл выражения с его формой. Мы отложим обсуждение вопросов синтаксиса и семантики до главы 3.
Символические вычисления означают выполнение нечисловых операций, в которых могут быть сконструированы символы и символьные структуры для представления различных концептов и отношений между ними. Обсуждение проблем символьных вычислений мы отложим до главы 4. Пример символического представления вы найдете во врезке 1.2.
В области искусственного интеллекта ведется интенсивная работа по созданию языков представления (representation languages). Под этим термином понимаются компьютерные языки, ориентированные на организацию описаний объектов и идей, в противовес статическим последовательностям инструкций или хранению простых элементов данных.
Основными критериями доступа к представлению знаний являются логическая адекватность, эвристическая мощность и естественность, органичность нотации. Эти термины, скорее всего, нуждаются в пояснениях.
· Логическая адекватность означает, что представление должно обладать способностью распознавать все отличия, которые вы закладываете в исходную сущность. Например, невозможно представить идею, что каждое лекарство имеет какой-либо побочный нежелательный эффект, если только нельзя будет провести отличие между предназначением конкретного лекарственного препарата и его побочным эффектом (например, аспирин усугубляет язвенную болезнь). В более общем виде выражение, передающее этот эффект, звучит так: "каждое лекарство обладает нежелательным побочным эффектом, специфическим для этого препарата".
· Эвристическая мощность означает, что наряду с наличием выразительного языка представления должно существовать некоторое средство использования представлений, сконструированных и интерпретируемых таким образом, чтобы с их помощью можно было решить проблему. Часто оказывается, что язык, обладающий большей выразительной способностью в терминах количества семантических отличий, оказывается и больше сложным в управлении описанием взаимосвязей в процессе решения проблемы. Способность к выражению у многих из найденных формализмов может оказаться достаточно ограниченной по сравнению с английским языком или даже стандартной логикой. Часто уровень эвристической мощности рассматривается по результату, т.е. по тому, насколько легко оказывается извлечь нужное знание применительно к конкретной ситуации. Знать, какие знания более всего подходят для решения конкретной проблемы, — это одно из качеств, которое отличает действительно специалиста, эксперта в определенной области, от новичка или просто начитанного человека.
· Естественность нотации следует рассматривать как некую добродетель системы, поскольку большинство приложений, построенных на базе экспертных систем, нуждается в накоплении большого объема знаний, а решить такую задачу довольно трудно, если соглашения в языке представления слишком сложны.
Любой специалист скажет вам, что при прочих равных характеристиках лучше та система, с которой проще работать. Выражения, которыми формально описываются знания, должны быть по возможности простыми для написания, а их смысл должен быть понятен даже тому, кто не знает, как же компьютер интерпретирует эти выражения. Примером может служить декларативный программный код, который сам по себе дает достаточно четкое представление о процессе его выполнения даже тому, кто не имеет представления о деталях реализации компьютером отдельных инструкций.
· За прошедшие годы было предложено немало соглашений, пригодных для кодирования знаний на языковом уровне. Среди них отметим порождающие правила (production rules) [Davis and King, 1977], структурированные объекты (structured objects) [Findler, 1979] и логические программы (logic programs) [Kowalski, 1979]. В большинстве экспертных систем используется один или несколько из перечисленных формализмов, а доводы в пользу и против любого из них до сих пор представляют собой тему для оживленных дискуссий среди теоретиков. Несколько формализмов такого рода критически рассмотрены в главах 5-8, а программные средства для их реализации — в главах 17-19.
Большинство фрагментов программного кода, приведенных в этой книге, написано на языке CLIPS, в котором используется комбинация порождающих правил и структурированных объектов. В Приложении вы найдете достаточно пространное описание основных концепций и программных конструкций языка CLIPS, которое сопровождается множеством примеров. Там же читатель сможет найти и нетривиальные программы, в которых продемонстрированы как многие интересные возможности языка, так и реализация его средствами методов искусственного интеллекта, обсуждаемых в главах 1-3.
Приобретение знаний
Бучанан следующим образом сформулировал функцию приобретения знаний [Buchanan et al, 1983]:
"[Приобретение знаний это] передача потенциального опыта решения проблемы от некоторого источника знаний и преобразование его в вид, который позволяет использовать эти знания в программе".
Передача знаний выполняется в процессе достаточно длительных и пространных собеседований между специалистом по проектированию экспертной системы (будем в дальнейшем называть его инженером по знаниям) и экспертом в определенной предметной области, способным достаточно четко сформулировать имеющийся у него опыт. По существующим оценкам, таким методом можно сформировать от двух до пяти "элементов знания" (например, правил влияния) в день. Конечно, это очень низкая скорость, а потому многие исследователи рассматривают функцию приобретения знаний в качестве одного из главных "узких мест" технологии экспертных систем [Feigenbaum, 1977].
Причин такой низкой производительности предостаточно. Ниже перечислены только некоторые из них.
· Специалисты в узкой области, как правило, пользуются собственным жаргоном, который трудно перевести на обычный "человеческий" язык (см. врезку 1.1). Но смысл жаргонного "словечка" отнюдь не очевиден, а потому требуется достаточно много дополнительных вопросов для уточнения его логического или математического значения. Например, специалисты по военной стратегии говорят об "агрессивной демонстрации" иностранной военной мощи, но при этом не могут объяснить, чем такая "агрессивная" демонстрация отличается от демонстрации, не несущей угрозы. · Факты и принципы, лежащие в основе многих специфических областей знания эксперта, не могут быть четко сформулированы в терминах математической теории или детерминированной модели, свойства которой хорошо понятны. Так, эксперту в финансовой области может быть известно, что определенные события могут стать причиной роста или снижения котировок на фондовой бирже, но он ничего вам не скажет точно о механизмах, которые приводят к такому эффекту, или о количественной оценке влияния этих факторов.Статистические модели могут помочь сделать общий долговременный прогноз, но, как правило, такие методы не работают в отношении курсов конкретных акций на коротких временных интервалах. · Для того чтобы решить проблему в определенной области, эксперту недостаточно просто обладать суммой знаний о фактах и принципах в этой области. Например, опытный специалист знает, какого рода информацией нужно располагать для формулировки того или иного суждения, насколько надежны различные источники информации и как можно расчленить сложную проблему на более простые, которые можно решать более или менее независимо. Выявить в процессе собеседования такого рода знания, основанные на личном опыте и плохо поддающиеся формализации, значительно сложнее, чем получить простой перечень каких-то фактов или общих принципов. · Экспертный анализ даже в очень узкой области, выполняемый человеком, очень часто нужно поместить в довольно обширный контекст, который включает и многие вещи, кажущиеся эксперту само собой разумеющимися, но для постороннего отнюдь таковыми не являющиеся. Возьмем для примера эксперта-юриста, который принимает участие в судебном процессе. Очень трудно очертить количество и природу знаний общего рода, которые оказываются вовлечены в расследование того или иного дела. 1.1. Забытый пароль
Если у вас память ненамного лучше моей, то вы, вероятно, тоже часто забываете свои пароли на разных компьютерах. Как системному администратору, назовем его Сэмом, восстановить ваш пароль? Наш начинающий инженер по знаниям Кен пытается выяснить у администратора, как он это делает.
Сэм: Так вот, если это YP-пароль, я первым делом регистрируюсь как "root" на YP-главном.
Кен: А что такое YP-главный?
Сэм: Это дисковая машина, на которой установлена база данных с информацией обо всей сети.
Кен: А "дисковая машина" означает...
Сэм: Что на ней ОС установлена на локальном диске.
Кен: Ах вот что. (Почесывает в затылке) Итак, ты регистрируешься на...
Сэм: Как "root". Затем я редактирую файл данных паролей, удаляю зашифрованный элемент и создаю новую карту паролей.
Кен: ...карту паролей. (Насмешливо) А что произойдет, если ты забудешь собственный пароль?
Сэм: На дисковой машине я мог бы перегрузиться и запуститься в однопользовательском режиме или можно было бы загрузить MINI ROOT. Тогда можно редактировать /etc/password. Или можно переустановить всю систему, но этого я скорее всего делать не буду. Корневые пароли обычно не включаются в YP. На бездисковой машине клиента я мог бы воспользоваться командой passwd.
Кен: Уф-ф-ф. (Сожалеет, что взялся за onpoc)
Конечно, бедный Кен старался, как мог. Возможно, ему было бы полегче, если бы перед разговором со специалистом он заглянул в Руководство системного администратора и освоился хотя бы с основной терминологией.
Неудовлетворительные результаты подобных собеседований пробудили у некоторых исследователей интерес к автоматизации процесса передачи знаний специалистом машине. Одно из направлений исследований в этой области — автоматизированное извлечение знаний (automated knowledge elicitation) — появилось как побочный продукт в развитии систем человеко-машинного диалога (см. главу 10). Другие исследователи полагают, что "расшить" это узкое место можно, двигаясь по пути машинного обучения (machine learning). Идея состоит в том, чтобы машина училась решать проблемы примерно так, как учится человек (см. главу 20).
Распределение материала книги по главам
В табл. 1.1 суммированы темы, обсуждавшиеся в разделе 1.3, и указаны главы, в которых'эти темы рассматриваются подробно. Рядовому читателю, скорее всего, будут интересны темы, касающиеся представления знания и управления процессом анализа, поскольку это ключевые проблемы в технологии экспертных систем. Темы восприятия знаний и объяснения принятого решения имеют не меньшее значение при построении экспертных систем, но они носят более прикладной характер.
В главах 2 и 3 рассматриваются базовые концепции технологии экспертных систем. В главе 2 дан краткий обзор нынешнего состояния исследований в области искусственного интеллекта, которые создали предпосылки для развития исследований по созданию экспертных систем. Глава 3 также имеет вводный характер и в ней описаны ранние разработки систем такого рода, рассматриваются цели их создания и принципы функционирования.
Таблица 1.1. Содержание глав
Тема | Определение | Главы | ||
Овладение знаниями | Передача опыта решения проблемы от человека программе | 10-15,20 | ||
Представление знаний | Кодирование информации об опыте решения проблем внутри машины | 2-9,21-23 | ||
Управление процессом поиска решения | Принятие решения о последовательности использования имеющихся знаний | 3, 11, 12, 17-19 | ||
Объяснение принятых решений | Передача информации о ходе решения проблемы пользователю | 3,5, 16,23 | ||
В главах 3-9 освещаются основные схемы представления проблемно-ориентированных знаний в программах и методы применения этих знаний к решению сложных проблем с помощью компьютера. Мы начнем с краткого обзора работ в области символических вычислений, а затем перейдем к анализу некоторых специализированных языков представления знаний, таких как CLIPS. Будут также рассмотрены и возможности использования для построения экспертных систем объектно-ориентированных языков общего назначения, подобных C++.
И в завершение этой части книги будет рассмотрена проблема приблизительных рассуждений и различные качественные и количественные методы оценки неопределенности.
В главах 10-16 речь пойдет о технических вопросах конструирования экспертных систем. Мы начнем с проблемы восприятия знаний, т.е. рассмотрим, каким образом можно передать технической системе знания, накопленные человеком-экспертом, как их преобразовать в форму, удобную для хранения и дальнейшего использования этой системой на основе методов, описанных в предыдущих главах. В последующих главах рассматриваются парадигмы решения проблем, которые целесообразно использовать для таких задач, как диагностика и конструирование. Этот материал будет проиллюстрирован примерами, описанными в разных источниках. При отборе примеров в расчет принимались скорее доводы педагогики, чем -технические характеристики систем, а потому те, которые описаны, не следует рассматривать, как самые лучшие в своем классе. Тем не менее в этих системах есть много поучительного, на что имеет смысл обратить внимание.
В главах 17-19 анализируются инструментарий и структура программного обеспечения экспертных систем. Мы начнем с критического обзора разного рода сред разработки, используемых при проектировании программного обеспечения экспертных систем. Затем будут описаны два типа структурной организации: системы с доской объявлений (blackboard systems) и системы обработки правдоподобия {truth maintenance systems).
В заключительных главах книги мы затронем более сложные темы: машинное обучение, сети доверия (правдоподобия), логический вывод, базирующийся на прецедентах, и гибридные экспертные системы.
Разъяснение принятого решения
Вопрос о том, как помочь пользователю понять структуру и функции некоторого сложного компонента программы, связан со сравнительно новой областью взаимодействия человека и машины, которая появилась на пересечении таких областей, как искусственный интеллект, промышленная технология, физиология и эргономика. На сегодня вклад в эту область исследователей, занимающихся экспертными системами, состоит в разработке методов представления информации о поведении программы в процессе формирования цепочки логических заключений при поиске решения.
Представление информации о поведении экспертной системы важно по многим причинам.
· Пользователи, работающие с системой, нуждаются в подтверждении того, что в каждом конкретном случае заключение, к которому пришла программа, в основном корректно. · Инженеры, имеющие дело с формированием базы знаний, должны убедиться, что сформулированные ими знания применены правильно, в том числе и в случае, когда существует прототип. · Экспертам в предметной области желательно проследить ход рассуждений и способ использования тех сведений, которые с их слов были введены в базу знаний. Это позволит судить, насколько корректно они применяются в данной ситуации. · Программистам, которые сопровождают, отлаживают и модернизируют систему, нужно иметь в своем распоряжении инструмент, позволяющий заглянуть в "ее нутро" на уровне более высоком, чем вызов отдельных языковых процедур. · Менеджер системы, использующей экспертную технологию, который в конце концов несет ответственность за последствия решения, принятого программой, также нуждается в подтверждении, что эти решения достаточно обоснованы.Способность системы объяснить методику принятия решения иногда называют прозрачностью системы. Под этим понимается, насколько просто персоналу выяснить, что делает программа и почему.
Эту характеристику системы следует рассматривать в совокупности с режимом управления, о котором шла речь в предыдущем разделе, поскольку последовательность этапов принятия решения тесно связана с заданной стратегией поведения. Более подробно связь этих характеристик будет рассмотрена в главе 16.
Отсутствие достаточной прозрачности поведения системы не позволит эксперту повлиять на ее производительность или дать совет, как можно ее повысить. Прослеживание и оценка поведения системы — задача довольно сложная и для ее решения необходимы совместные усилия эксперта и специалиста по информатике (подробно этот вопрос рассматривается в главах 3, 13 и 17).
1.4. Загадка одного портрета
В одной известной загадке человек смотрит на портрет и говорит:
"У меня нет братьев и сестер, но отец этого человека — это сын моего отца".
Спрашивается: 'Кто изображен на портрете?" Во-первых, потратьте пару минут и решите эту загадку. Во-вторых, представьте себе, как вы будете объяснять ход решения кому-нибудь постороннему, но при этом нельзя пользоваться никакими вспомогательными средствами вроде карандаша и бумаги. Для многих эта загадка представляется головоломной, причем немало и таких, которые не могут проследить за ходом уже описанного решения (Smullyan, 1978].
Ответ прост: отец смотрит на портрет сына (человек, который смотрит на портрет, — отец человека, изображенного на портрете). Как мы пришли к такому заключению, станет ясно после того, как мы воспользуемся логическим представлением. Пусть Пит — человек на портрете, а Люк — человек, который смотрит на портрет.
"...это сын моего отца".
сын(отец(люк)), отец(пит).
"У меня нет братьев и сестер..."
for all X,
if сын(отец(люк), X) then Х=люк.
Здесь сын — это отношение между двумя людьми, а отец — функция, поскольку каждый имеет только одного отца. Из этого утверждения после подстановки совершенно очевидно следует
отец(пит) = люк. Таким образом, Люк смотрит на портрет своего сына.
Правильное логическое представление зачастую значительно упрощает решение задачи и делает его более понятным.Но сформировать такое представление — это в значительной мере искусство. Объяснение не всегда имеет форму доказательства, как в данном случае, о чем будет подробно рассказано в главе 16
Рекомендуемая литература
Обзоры ранних исследований в области экспертных систем опубликованы в работах [Barr and Feigenbaum, 1982], [Hayes-Roth et al., 1983], [Buchanan and Shortliffe, 1984] и [Waterman, 1986].
Применение технологии экспертных систем в разных предметных областях описано в работах [Weiss and Kulikowski, 1983], [Klahr and Waterman, 1986], [Gale, 1986] и [Quinlan, 1987].
Читателям, интересующимся применением экспертных систем в промышленности, следует заглянуть в работу [Feigenbaum et al., 1988]. Кроме того, множество обзоров такого рода регулярно публикуется в отраслевых изданиях, в частности в Expert Systems Review for Business and Accounting.
Из работ последних лет следует обратить внимание на книги [Harmon and Sawyer, 1990], [Giarratano andRiley, 1994] и [Stefik, 1995].
o ГЛАВА 2. Обзор исследований в области искусственного интеллекта o 2.1. Классический период: игры и доказательство теорем § 2.1.1. Поиск в пространстве состояний § 2.1.2. Эвристический поиск o 2.2. Романтический период: компьютер начинает понимать § 2.2.1. Система SHRDLU § 2.2.2. Схемы представления знаний o 2.3. Период модернизма: технологии и приложения § 2.3.1. В знании сила § 2.3.2. Периоды "зимней спячки" и "пробуждения" в истории искусственного интеллекта o Рекомендуемая литература o Упражнения
Резюме и структура книги
В этой главе я старался не только обратить внимание на сильные стороны экспертных систем, но прямо указать на присущие им ограничения. Таким образом, читатель, не знакомый с этой проблематикой, должен, по крайней мере, получить представление о том, чего можно ожидать от такого типа систем и насколько возможно приложение описанных в этой книге идей в той области, в которой читатель работает. Ниже я дам обзор остального материала книги и скажу о том, на какие главы следует обратить внимание читателям разных категорий в зависимости от круга их интересов. Этот материал в значительной мере повторяет предисловие к данной книге, но поскольку большинство читателей, как правило, предисловие перелистывают, не читая (я в этом смысле не исключение), то думаю, такое повторение имеет определенный смысл
Смысл экспертного анализа
Задумайтесь над таким вопросом: "При выполнении каких условий компьютерную программу можно назвать экспертом?"
· Вполне логично потребовать, чтобы такая программа обладала знаниями. Просто способность выполнять некоторый алгоритм, например производить анализ списка элементов на наличие какого-либо свойства, явно не отвечает этому требованию. Это все равно, что дать первому случайному прохожему список вопросов и ответов и ожидать от него успешного выполнения поиска и устранения неисправностей в системах определенного типа. Раньше или позже, но он обязательно столкнется с ситуацией, не предусмотренной в том списке, которым его снабдили. · Знания, которыми обладает программа, должны быть сконцентрированы на определенную предметную область. Случайный набор имен, дат и мест событий, сентенций из классиков и т.п. — это отнюдь не те знания, которые могут послужить основой для программы, претендующей на способность выполнить экспертный анализ. Знания предполагают определенную организацию и интеграцию — то есть отдельные сведения должны соотноситься друг с другом и образовывать нечто вроде цепочки, в которой одно звено "тащит" за собой следующее. · И, наконец, из этих знаний должно непосредственно вытекать решение проблем. Просто продемонстрировать свои знания, касающиеся, например, технического обслуживания компьютеров, — это далеко не то же самое, что привести компьютер в "чувство". Точно так же, получить доступ к оперативной документации — это совсем не то же самое, что заполучить в свое распоряжение специалиста (или программу), способного справиться с возникшими проблемами.Теперь попробуем подытожить эти рассуждения в следующем формальном определении экспертной системы.
Экспертная система — это программа для компьютера, которая оперирует со знаниями в определенной предметной области с целью выработки рекомендаций или решения проблем.
Экспертная система может полностью взять на себя функции, выполнение которых обычно требует привлечения опыта человека-специалиста, или играть роль ассистента для человека, принимающего решение. Другими словами, система (техническая или социальная), требующая принятия решения, может получить его непосредственно от программы или через промежуточное звено — человека, который общается с программой. Тот, кто принимает решение, может быть экспертом со своими собственными правами, и в этом случае программа может "оправдать" свое существование, повышая эффективность его работы. Альтернативный вариант — человек, работающий в сотрудничестве с такой программой, может добиться с ее помощью результатов более высокого качества. Вообще говоря, правильное распределение функций между человеком и машиной является одним из ключевых условий высокой эффективности внедрения экспертных систем.
Технология экспертных систем является одним из направлений новой области исследования, которая получила наименование искусственного интеллекта (Artificial Intelligence — AI). Исследования в этой области сконцентрированы на разработке и внедрении компьютерных программ, способных эмулировать (имитировать, воспроизводить) те области деятельности человека, которые требуют мышления, определенного мастерства и накопленного опыта. К ним относятся задачи принятия решений, распознавания образов и понимания человеческого языка. Эта технология уже успешно применяется в некоторых областях техники и жизни общества — органической химии, поиске полезных ископаемых, медицинской диагностике. Перечень типовых задач, решаемых экспертными системами, включает:
извлечение информации из первичных данных (таких как сигналы, поступающие от гидролокатора); диагностика неисправностей (как в технических системах, так и в человеческом организме); структурный анализ сложных объектов (например, химических соединений); выбор конфигурации сложных многокомпонентных систем (например, распределенных компьютерных систем); планирование последовательности выполнения операций, приводящих к заданной цели (например, выполняемых промышленными роботами). Хотя известны и "обычные" программы, специализирующиеся на определенных задачах из представленного перечня (или аналогичных им в смежных областях), в следующей главе мы покажем, в чем состоит существенная разница между "обычным" подходом и прелагаемым в сфере искусственного интеллекта и почему экспертные системы можно выделить в отдельный, достаточно хорошо различимый класс программ.Четкого формального определения экспертной системы, которое всех бы удовлетворило, не существует — приведенное выше тоже довольно расплывчато. Но тем не менее существует довольно много важных признаков, присущих в той или иной степени всем экспертным системам
Текущее состояние проблемы
Потенциальный пользователь экспертной системы чаще всего задается вопросом: "А сможет ли она решить мои проблемы?" Ответ уклончивый: "Смотря какие". Существуют три фактора, от которых зависит окончательный ответ, — природа проблемы, наличие определенного опыта в той предметной области, к которой относится проблема, и возможность сопоставления результатов анализа проблемы и имеющегося опыта методом, доступным компьютерной программе. Потенциальному пользователю следует сначала задуматься над следующим: есть ли у него на примете эксперт, который
· способен решить проблему; · знает, как решается проблема; · способен объяснить другому, как решается проблема; · располагает временем, чтобы объяснить другому, как решается проблема; · имеет достаточные побудительные мотивы к активному участию в этом предприятии.Например, предсказание погоды — это не та задача, которую может решить кто-либо, даже умудренный большим опытом эксперт. Распознавание речи — это задача, которую решает практически каждый, но никто из нас (включая и профессиональных лингвистов) не может вразумительно объяснить, как это делается. А потому использовать для решения этой проблемы методы, основанные на анализе знаний, вряд ли удастся. Здесь большего следует ожидать от статистического моделирования. Даже имея на примете гениального эксперта, знающего, как решается задача, нельзя рассчитывать на успех, если этот эксперт не может или не желает подробно и вразумительно объяснить, как он это делает. Эксперт может быть не расположен к общению с посторонними или слишком занят, чтобы терять время на длительные собеседования с инженером, которому поручено проектирование базы знаний. Как правило, эксперт высокого класса не испытывает недостатка в предложениях работы в той области, с которой он хорошо знаком, а потому предпочитает выполнять ее, а не вести пространные беседы о том, как он это делает.
Есть еще и психологический фактор — многие эксперты весьма ревниво относятся к своему уникальному опыту и не склонны его разглашать, поскольку считают (и нам нечего возразить им), что, передавая опыт автоматизированным системам, они рубят сук, на котором сидят.
Но даже если удастся выполнить оговоренные выше условия, в задаче могут существовать факторы, ограничивающие возможность "машинного" воспроизведения человеческого опыта. Например:
· в процессе решения задачи используются способности органов чувств человека, недоступные на сегодняшний день в мире машин;
· в решение задачи вовлечены соображения здравого смысла человечества или большой объем знаний, само собой разумеющихся для любого человека (более подробно об этом — в главе 3).
Очень важно отделить те знания, владение которыми характерно именно для эксперта в определенной области, от тех знаний, которые известны любому, выполняющему в этой области рутинную работу. Управление автомобилем при езде по забитым транспортом улицам требует не столько знаний эксперта, сколько умения мгновенно оценивать ситуацию и быстро на нее реагировать. Хотя современные роботы такой скоростью и таким умением не владеют, вряд ли кто-нибудь назовет такого водителя "экспертом" (по крайней мере, в моем родном Рочестере, шт. Нью-Йорк).
Нельзя упускать из виду и огромный объем знаний об окружающем мире, которым мы все располагаем: знаниями о предметах и их свойствах, людях и мотивации их действий, взаимосвязях в физическом мире и наиболее вероятном течении событий в тех или иных условиях — список можно продолжать до бесконечности. Эту совокупность знаний мы не включаем в знания, отличающие эксперта, но до сих пор еще совсем не ясно, насколько они важны компьютеру для решения узкоспециальной проблемы. Таким образом, любая задача, которую не удается "инкапсулировать" в ограниченный перечень фактов и правил, на сегодняшний день не под силу экспертным системам.
С другой стороны, проблемы, которые могут быть решены перечислением ассоциативных связей между обозримыми совокупностями данных и классами событий, прекрасно подходят для экспертных систем. Например, проблемы, связанные с функционированием промышленных систем (тепловые, вентиляционные или кондиционирования)— диагностика, мониторинг состояния и т.д.,— могут решаться системами, основанными на анализе формальных правил, связывающих энергопотребление здания с параметрами окружающей среды. Уже на нынешнем этапе с помощью экспертных систем решаются задачи эскизного конструирования многокомпонентных объектов из заданного набора примитивов. С примерами такого рода систем вы познакомитесь в, главах 14 и 15
Управление процессом поиска решения
При проектировании экспертной системы серьезное внимание должно быть уделено и тому, как осуществляется доступ к знаниям и как они используются при поиске решения [Davis, 1980, а]. Знание о том, какие знания нужны в той или иной конкретной ситуации, и умение ими распорядиться — важная часть процесса функционирования экспертной системы. Такие знания получили наименование метазнаний — т.е. знаний о знаниях. Решение нетривиальных проблем требует и определенного уровня планирования и управления при выборе, какой вопрос нужно задать, какой тест выполнить, и т.д.
Использование разных стратегий перебора имеющихся знаний, как правило, оказывает довольно существенное влияние на характеристики эффективности программы. Эти стратегии определяют, каким способом программа отыскивает решение проблемы в некотором пространстве альтернатив (см. главы 2 и 3). Как правило, не бывает так, чтобы данные, которыми располагает программа работы с базой знаний, позволяли точно "выйти" на ту область в этом пространстве, где имеет смысл искать ответ.
Большинство формализмов представления знаний может быть использовано в разных режимах управления (см. врезку 1.3), и разработчики экспертных систем продолжают экспериментировать в этой области. В последующих главах будут описаны системы, которые специально подобраны таким образом, чтобы проиллюстрировать отличия в существующих подходах к решению проблемы управления. В каждой из представленных систем есть что-нибудь полезное для студентов, специализирующихся в области разработки и исследования экспертных систем.
1.3. Обслуживание автомобиля
Представьте себе, что ваш автомобиль с трудом заводится, а в пути явно чувствуется снижение мощности. Сами по себе эти симптомы недостаточны для того, чтобы принять решение, где же искать источник неисправности — в топливной или электросистеме автомобиля. Познания в устройстве автомобиля подсказывают — нужно еще поэкспериментировать, прежде чем звать на помощь механика. Возможно, плоха топливная смесь, поэтому присмотритесь к выхлопу и нагару на свечах.
Возможно, сбоит распределитель — посмотрите, не повреждена ли его крышка. Эти довольно специфические эвристики не гарантируют, что отыщется действительная причина, но вдруг вам улыбнется фортуна, и вы найдете неисправность без утомительной процедуры последовательной проверки всех систем.
Скорее всего, ваших знаний достаточно для того, чтобы выполнить общую проверку, прежде чем заниматься доскональным изучением отдельных узлов. Например, посмотреть, достаточно ли мощная искра в свече (если это так, то подозрения с электросистемы можно снять), прежде чем проверять аккумулятор. При отсутствии специальных эвристик, чем более методично вы будете действовать, тем больше шансов быстро найти причину неисправности. Общее эвристическое правило гласит:
"Сначала проверь весь узел, а уже потом приступай к проверке его компонентов".
Это правило можно считать частью режима управления — систематической стратегии применения имеющихся знаний. Другое эвристическое правило можно сформулировать, например, так:
"Сначала меняй более дешевые детали, а уже потом берись за более дорогие".
В некоторых случаях эти две эвристики могут противоречить друг другу, так что нужно заранее выбрать, какая из них имеет приоритет в случае, если обе включены в один и тот же режим управления.
При подготовке третьего издания книги
При подготовке третьего издания книги Введение в экспертные системы автор старался прежде всего учесть интересы и пожелания читателей четырех основных категорий:
· рядовых читателей, желающих познакомиться с новым классом информационных систем на достаточно высоком теоретическом и техническом уровне; · преподавателей и студентов, которым необходимо учебное пособие, охватывающее все основные темы исследования и проектирования экспертных систем, причем глубина изложения материала должна соответствовать программам старших курсов вузов и первого года обучения в аспирантуре; · инженеров-программистов, нуждающихся в практическом руководстве по экспертным системам, подкрепленном достаточно солидным теоретическим материалом; · научных работников и студентов, активно занимающихся научной работой, которых особенно интересует обзорный материал, касающийся новейших тенденций в разработке систем такого рода. Это введение послужит методическим руководством для каждой из перечисленных категорий при изучении материала данной книги.
Рядовым читателям
Я старался таким образом излагать материал в этой книге, чтобы начальные разделы каждой главы носили по возможности описательный характер, а уже в последующих разделах переходить к техническим деталям. Идея состояла в том, чтобы читатель, который желает получить общее представление о той или иной теме, мог без особого ущерба для себя быстро просмотреть или вообще опустить последние разделы. Некоторые разделы и целые главы, помеченные значком , можно также при желании пропустить, что не помешает получить достаточно полное представление об экспертных системах.
Читателям, желающим познакомиться с основной проблематикой экспертных систем, я рекомендую в первую очередь прочитать следующие главы.
1. Что такое экспертная система.
2. Обзор исследований в области искусственного интеллекта.
3. Представление знаний.
5. Системы, основанные названиях.
6. Ассоциативные сети и системы фреймов.
9. Представление неопределенности знаний и данных.
10. Приобретение знаний.
11. Эвристическая классификация (I).
14. Решение проблем конструирования (I).
16. Средства формирования пояснений.
17. Инструментальные средства разработки экспертных систем.
20. Формирование знаний на основе машинного обучения.
22. Рассуждения, основанные на прецедентах.
24. Заключение.
Материал остальных глав можно считать дополнительным, что, впрочем, зависит от индивидуальных интересов и наклонностей каждого отдельного читателя.
Студентам и преподавателям
Студентам старших курсов я бы рекомендовал выбрать для вводного курса по экспертным системам следующие главы.
1. Что такое экспертная система.
2. Обзор исследований в области искусственного интеллекта.
3. Представление знаний.
5. Системы, основанные на знаниях.
6. Ассоциативные сети и системы фреймов.
9. Представление неопределенности знаний и данных.
10. Приобретение знаний.
11. Эвристическая классификация (I).
14. Решение проблем конструирования (I).
16. Средства формирования пояснений.
17. Инструментальные средства разработки экспертных систем.
24. Заключение.
Приложение. Программирование на языке CLIPS.
Язык CLIPS послужит вам удобным инструментом для выполнения упражнений, поскольку он не требует разработки модулей кода значительного объема.
Для аспирантов, интересующихся проблемами искусственного интеллекта, особый интерес представляет материал следующих глав.
1. Что такое экспертная система.
5. Системы, основанные на знаниях.
6. Ассоциативные сети и системы фреймов.
9. Представление неопределенности знаний и данных.
10. Приобретение знаний.
11. Эвристическая классификация (I).
12. Эвристическая классификация (II).
14. Решение проблем конструирования (I).
15. Решение проблем конструирования (II).
16. Средства формирования пояснений.
17. Инструментальные средства разработки экспертных систем.
24. Заключение.
Приложение. Программирование на языке CLIPS.
Инженерам-программистам
Инженерам-программистам, которые интересуются прежде всего практическими вопросами проектирования экспертных систем, я бы рекомендовал в первую очередь обратить внимание на следующие главы.
4. Символические вычисления.
5. Системы, основанные на знаниях.
7. Объектно-ориентированное программирование.
8. Логическое программирование.
11. Эвристическая классификация (I).
12. Эвристическая классификация (II).
14. Решение проблем конструирования (I).
15. Решение проблем конструирования (II).
16. Средства формирования пояснений.
17. Инструментальные средства разработки экспертных систем.
18. Системы с доской объявлений,
19. Система отслеживания истинности предположений. Приложение. Программирование на языке CLIPS.
Остальные главы можно читать по мере необходимости.
Научным работникам
В последних главах книги описаны результаты новейших исследований в области структурной организации экспертных систем, поэтому их следует сопоставлять с материалом предыдущих глав. Я советую читателям этой категории обратить основное внимание на следующие главы.
3. Представление знаний.
5. Системы, основанные на знаниях.
6. Ассоциативные сети и системы фреймов.
8. Логическое программирование.
9. Представление- неопределенности знаний и данных.
10. Приобретение знаний.
13 Иерархическое построение и проверка гипотез.
16. Средства формирования пояснений.
18. Системы с доской объявлений.
19. Система отслеживания истинности предположений.
20. Формирование знаний на основе машинного обучения.
21. Сети доверия.
22. Рассуждения, основанные на прецедентах.
23. Гибридные системы.
Хочу обратить ваше внимание на то, что третье издание книги имеет менее прямолинейную структуру, чем первое и второе. При группировании материала во главу угла ставились не определенные модели экспертных систем, а используемые алгоритмы или методики. Я также включил в книгу множество примеров, в том числе и текстов программ, и различный дополнительный материал во врезках.
o ГЛАВА 1. Что такое экспертная система? o 1.1. Смысл экспертного анализа o 1.2. Характеристики экспертных систем o 1.3. Базовые функции экспертных систем § 1.3.1. Приобретение знаний § 1.3.2. Представление знаний § 1.3.3. Управление процессом поиска решения § 1.3.4. Разъяснение принятого решения o 1.4. Резюме и структура книги § 1.4.1. Текущее состояние проблемы § 1.4.2. Распределение материала книги по главам o Рекомендуемая литература o Упражнения