Лекция - Отсечение Системы, основанне на прецедентах

advertisement
6.1. Сокращение поиска: "отсечение"
Встроенный предикат "!" (произносится "отсечение") повышает эффективность выполнения
программы за счет сокращения поиска. Он ограничивает число альтернатив, которые Пролог исследует
как варианты при возвратах. При вызове в качестве цели предикат отсечения всегда успешно
согласуется и не может быть согласован повторно при возврате. При использовании в утверждении для
какой-нибудь процедуры отсечение имеет два побочных эффекта:
- Оно блокирует возврат к предшествующим ему подцелям в данном утверждении.
- Оно предотвращает использование всех утверждений, следующих за данным утверждением в
данной процедуре и которые могли бы быть использованы для согласования цели, соответствующей
данной процедуре.
Процесс1:-
Подцель1
Подцель2
Подцель3
Подцель4
цель
Согласуется
цель
согласуется
цель
Согласуется
цель
согласуется
Рис.6.1. Отсечение предотвращает возврат к более ранним подцелям в утверждении
Рисунок 6.1 иллюстрирует первый из указанных побочных эффектов. Отказ, который дает
подцель4, вызывает попытку Пролога вновь согласовать подцельЗ. Если подцельЗ не может быть
согласована повторно, Пролог осуществляет возврат к предикату отсечения. При этом цель процесс!
немедленно дает отказ, так как отсечение блокирует возврат к подцелям подцель2 и подцель!.
Второй побочный эффект демонстрируется на рис.6.2. Отсечение в первом утверждении для
предиката процесса блокирует возврат ко второму и третьему утверждениям. Вызов предиката
процесс 2 :-
Подцель1
подцель2
ЦЕЛЬ
СОГЛАСУЕТСЯ
ЦЕЛЬ
ДАЕТ ОТКАЗ
процесс2 :подцель.
!
подцель4.
процесс2 :-
Рис.6.2. Отсечение блокирует использование последующих утверждений процедуры
процесс2 будет давать отказ, если даст отказ подцель2. Важно видеть отличие данной ситуации от
той, которая показана на рис.6.3 и соответствует отказу подцели1.
подцель2
подцель1
ЦЕЛЬ ДАЕТ ОТКАЗ
!
подцель2
процесс2
Подцель1
ЦЕЛЬ
СОГЛАСУЕТСЯ
!
подцель 4
цель дает отказ
Процесс2:Подцель5
Рис.6.3. Отсечение в первом утверждении не достигнуто, поэтому можно использовать второе
утверждение
Так как отсечение в первом утверждении не будет достигнуто после того как даст отказ подцель!,
используется второе утверждение для процедуры процесса. При этом вызов предиката процесса будет
успешно согласован, если согласован вызов подцели4, и даст отказ в противном случае. Если же даст
отказ подцельЗ, то уже во втором утверждении не будет достигнуто отсечение и Пролог для того, чтобы
попытаться согласовать исходную цель, сможет использовать третье утверждение.
Приведенные соображения обусловливают следующие области применения отсечения.
- Предотвращение бесполезных
попыток
повторного
согласования
цели
при
знает, что цель не может быть согласована в принципе.
поиска
возвратах,
когда
путей
программист
- Обеспечение гарантии того, что только одно утверждение дает согласование цели в том случае,
когда анализ состояний требует соответствия между утверждениями и взаимно исключающими
состояниями. В последующих двух разделах мы проиллюстрируем указанные области применения.
Рассуждения, основанные на прецедентах
1. 22.1. База прецедентов
2. 22.2. Обучение с помощью компьютера: система САТО
3. 22.3. Формирование отчетов в системе FRANK
4. 22.4. Сравнение систем, основанных на правилах и прецедентах
5. Рекомендуемая литература
6. Упражнения
В главе 2 мы отмечали, что в ранних программах искусственного интеллекта отчетливо
прослеживалась тенденция использовать по возможности единообразные методы решения
проблем. Логические рассуждения строились на основе небольшого количества
предположений или аксиом, а множество правил, применяемых для формирования нового
состояния проблемы, также было невелико. Такие классические области искусственного
интеллекта, как игры и доказательство теорем, являются формальными системами, которые
по самой своей сути годятся для подобной комбинации логического анализа и эвристического
поиска. Хотя в подавляющем большинстве экспертных систем применяется большое
количество правил, специфичных для определенной предметной области, и используются
разнообразные методы решения проблем, способы поиска и организации логического вывода,
по сути, не очень отличаются от тех, что использовались в ранних программах искусственного
интеллекта.
Например, в процессе работы производящей системы представление состояния проблемы в
рабочей памяти последовательно изменяется, все более приближаясь к состоянию,
характеризующему искомое решение. Такой пошаговый процесс очень напоминает
последовательность ходов, дозволенных правилами игры, а отличие заключается в основном
в семантике используемых правил. Программа игры в шахматы, основанная на знаниях,
должна опираться не только на правила выполнения ходов, но и на информацию о стратегии,
типовых ситуациях на доске, способах распознавания стадий игры (дебют, миттельшпиль или
эндшпиль) и т.д.
Существует, однако, множество рутинных задач, выполняемых человеком, которые не
вписываются в эту парадигму. Трудно себе представить, что, решая задачу, куда пойти
сегодня вечером (в какой ресторан или кинотеатр), человек сознательно или подсознательно
выполняет логический анализ или эвристический поиск. Если обратиться к менее тривиальным
примерам, то также трудно поверить, будто судья, архитектор или ваш шеф, принимая
решение, всегда прибегают к логическому анализу. Скорее всего, в большинстве случаев в
основе наших действий в повседневных ситуациях лежит другой механизм рассуждений и
принятия решения.
В отличие от большинства машин, человек почти всегда чем-то занят или озабочен, а потому
при решении повседневных проблем уже на подсознательном уровне стремится сэкономить
время и силы. И здесь на помощь всегда приходят память и прежний опыт — для человека
проще распознать ситуацию и найти для нее аналог, чем заново формировать решение.
Но как все это можно реализовать в компьютерной модели рассуждений? Мы уже знаем, что
воспоминания и приобретенный опыт не так просто свести к набору правил, но можно
представить себе некоторую "библиотеку" ситуаций, встречавшихся в прошлом, которые
имеют отношение к возникшей проблеме, например "репертуар" указаний шефа, или судебные
решения, принятые в прошлом по аналогичным делам, или наброски архитектурных планов
для сооружений аналогичного назначения и т.п. Естественно, что такая библиотека должна
быть индексирована каким-то разумным способом, чтобы в массиве хранящихся описаний
ситуаций можно было довольно быстро распознать аналогичную текущей. Кроме того,
понадобится также и некоторый механизм, который позволит адаптировать ранее принятое
решение к новой проблеме (текущей ситуации).
Описанный подход получил наименование рассуждение, основанное на прецедентах (casebased reasoning). Мы рассмотрим эту новую технологию на трех примерах, взятых из разных
предметных областей, — кулинарии, юриспруденции и делопроизводства. После этого мы
вновь вернемся к сравнению рассуждений, основанных на прецедентах, с более привычной
технологией логического вывода в экспертных системах и покажем, что эти технологии не
противоречат, а дополняют друг друга. В главе 23 этот тезис будет подкреплен примерами и
дальнейшим анализом.
22.1. База прецедентов
Приведенная выше аналогия с библиотекой удобна, но является далеко не полной.
Прецеденты — это не книги; хотя их и связывают с книгами некоторые общие абстрактные
свойства, имеются и существенные отличия.



Прецеденты напоминают книги (конечно же, не из разряда беллетристики) тем, что
содержат определенную специфическую информацию, "вставленную" в некоторый
контекст. Содержимое прецедента — это знание, а контекст описывает некоторое
состояние внешнего мира, в котором это знание применяется. Однако прецедент
содержит знание в такой форме, которая может быть воспринята программой. Другими
словами, знания, содержащиеся в описании прецедента, "готовы к употреблению" в том
же смысле, в каком порождающие правила готовы к применению.
Прецедент должен представлять решение проблемы в определенном контексте и
описывать то состояние мира, которое получится, если будет принято предлагаемое в
нем решение. Это свойство часто можно встретить и в содержимом книг, но, опять же,
разница состоит в том, что информация не представлена в форме, удобной для
восприятия программой.
Хотя описания прецедентов и варьируются по размеру, они все-таки значительно
уступают книгам в этом смысле. Информация в описаниях прецедентов значительно
более сжата и представляется на каком-либо формальном языке.
Если прецедент — это модуль знаний, который может быть считан программой, то в чем его
отличие от других способов представления знаний, множество которых мы уже рассмотрели в
этой книге? Самый короткий ответ на этот вопрос — прецедент, как правило, реализуется в
виде фрейма (см. главу 6), в котором структурированы информация о проблеме, решение и
контекст. Так же, как фрейм или порождающее правило, описание прецедента может быть
сопоставлено с данными или описанием цели. Но для извлечения описания прецедента из
базы таких описаний используется совсем другой механизм, чем для извлечения фрейма или
порождающего правила. Первое, что делается в процессе применения прецедента, — его
адаптируют к текущей ситуации. Поэтому поиск описания прецедента требует использования
достаточно сложного механизма индексирования.
22.1.1. Программа CHEF
Для демонстрации возможностей экспертной системы, базирующейся на прецедентах,
рассмотрим систему CHEF, которая предназначалась для формирования кулинарных
рецептов [Hammond, 1986]. Эта программа принимает информацию о целевых
характеристиках блюда (тип, вкусовые качества, своеобразие) и формирует подходящий
рецепт. Например, программа может получить следующий "заказ":
блюдо из баранины (beef);
включает брокколи (broccoli);
использует поджаривание (stir-fry);
блюдо должно получиться хрустящим (crisp).
Заказ оформляется в виде выражения на специальном формальном языке:
dish(beef), include(broccoli), method(stir-frv), texture(crisp)
Результатом работы программы должен быть рецепт— последовательность операций,
позволяющая приготовить такое блюдо.
Получив заказ, программа просматривает свою базу прецедентов, отыскивает в ней рецепт
приготовления аналогичного блюда и адаптирует его в соответствии с особенностями
текущего заказа (проблемы). Например, если в базе уже имеется рецепт для баранины с
зеленым горошком, его можно скопировать и вместо горошка вставить брокколи. Этим, правда,
адаптация не исчерпывается, поскольку горошек варится, а не жарится, как указано в заказе.
Раз блюдо будет жариться, значит, брокколи придется сначала измельчить (если бы нужно
было варить, то качанчики брокколи можно было бросать в воду целиком), следовательно,
первоначальный план придется дополнить еще одной операцией. Кроме того, если кусочки
баранины и броколли жарить вместе, то броколли, вероятно, пропитается соком. Значит, в
системе нужно иметь правило, которое определит этот факт и изменит первоначальный
простой план, — предложит сначала обжарить брокколи, а затем вынуть их.
На рис. 22.1 представлена упрощенная схема той части программы CHEF, которая имеет
отношение к манипуляциям с базой прецедентов.
Рис. 22.1. Архитектура программы CHEF
Модель извлечения отыскивает в базе прецедентов рецепты, наиболее близкие к текущему
заказу. Очевидно, что этот модуль должен обладать способностью обращаться к базе
прецедентов как к памяти, адресуемой по содержанию, оценивать степень соответствия между
набором входных спецификаций и характеристиками выбранного прецедента и ранжировать
отобранные прецеденты на основании этой оценки.
Модуль модификации затем копирует и переименовывает выбранный прецедент и пытается
скорректировать его в соответствии с полученной целевой спецификацией. В приведенном
выше примере подстановка "брокколи" вместо "зеленый горошек" и модификация плана
выполняются именно этим модулем.
После выполнения всех необходимых коррекций новый рецепт записывается модулем
сохранения в базу прецедентов.
В программе CHEF корректировка неудачного плана (рецепта) в действительности
выполняется отдельным модулем, который имеет доступ к специальному словарю термов,
описывающих отказы, и индексированному множеству стратегий восстановления. Имеется
также и специальный "симулятор", который позволяет "проиграть" сформированный рецепт и
выявить в нем подводные камни, не заметные на первый взгляд. По основные модули работы
с прецедентами выполняют именно те функции, которые мы описали выше.
22.1.2. Методы извлечения и адаптации прецедентов
В системах формирования суждений на основе прецедентов используются разные схемы
извлечения прецедентов и их адаптации к новым проблемам.
В таких программах, как CHEF, сопоставляются описания имеющихся прецедентов и
полученная спецификация цели, причем в качестве основного средства сопоставления
выступает семантическая сеть (см. главу 6). В примере, рассмотренном в предыдущем
разделе, модулям извлечения и модификации известно, что и брокколи, и зеленый горошек —
это свежие овощи. Модуль извлечения использует эту информацию для вычисления оценки
степени близости прецедента и целевой спецификации, а модуль модификации использует
эту же информацию для подстановки в рецепт одного ингредиента вместо другого. Это
фоновое знание играет весьма существенную роль в решении обеих задач.
Сложность поиска решения и выявления различий между прецедентами в значительной
степени зависит от используемых термов индексации. По сути, прецеденты в базе
прецедентов конкурируют, пытаясь "привлечь" к себе внимание модуля извлечения, точно так
же, как порождающие правила конкурируют за доступ к интерпретатору. В обоих случаях
необходимо использовать какую-то стратегию разрешения конфликтов. С этой точки зрения
прецеденты должны обладать какими-то свойствами, которые, с одной стороны, связывают
прецедент с определенными классами проблем, а с другой — позволяют отличить
определенный прецедент от его "конкурентов". Например, в программе CHEF прецеденты
индексируются по таким атрибутам, как основной ингредиент блюда, гарнир, способ
приготовления и т.п., которые специфицируются в заказе.
Механизм сопоставления должен быть достаточно эффективным, поскольку исчерпывающий
поиск можно применять только при работе с базами прецедентов сравнительно небольшого
объема. Одним из популярных методов эффективного индексирования является
использование разделяемой сети свойств (shared feature network). При этом прецеденты, у
которых какие-либо свойства совпадают, включаются в один кластер, в результате чего
формируется таксономия типов прецедентов. Сопоставление в такой разделяемой сети
свойств выполняется с помощью алгоритма поиска в ширину без обратного прослеживания.
Поэтому время поиска связано с объемом пространства логарифмической зависимостью.
Индивидуальное сопоставление, как правило, выполняется следующим образом.
Каждому свойству (или размерности) присваивается определенный вес, соответствующий
степени "важности" этого свойства. Если, например, прецеденты включают счета
пользователей, то имя пользователя, скорее всего, не имеет значения при поиске группы
прецедентов с похожими счетами. Следовательно, свойство имя может иметь вес 0. А вот
остаток на счете (в долларах) имеет очень существенное значение и ему следует придать вес
1.0. Чаще всего значения весов — это действительные числа в интервале [0,1].
Из всех этих рассуждений вытекает простой алгоритм сопоставления прецедентов,
представленный ниже.
1.3.1. Приобретение знаний
Бучанан следующим образом сформулировал функцию приобретения знаний [Buchanan et al,
1983]:
"[Приобретение знаний это] передача потенциального опыта решения проблемы от
некоторого источника знаний и преобразование его в вид, который позволяет
использовать эти знания в программе".
Передача знаний выполняется в процессе достаточно длительных и пространных
собеседований между специалистом по проектированию экспертной системы (будем в
дальнейшем называть его инженером по знаниям) и экспертом в определенной предметной
области, способным достаточно четко сформулировать имеющийся у него опыт. По
существующим оценкам, таким методом можно сформировать от двух до пяти "элементов
знания" (например, правил влияния) в день. Конечно, это очень низкая скорость, а потому
многие исследователи рассматривают функцию приобретения знаний в качестве одного из
главных "узких мест" технологии экспертных систем [Feigenbaum, 1977].
Причин такой низкой производительности предостаточно. Ниже перечислены только
некоторые из них.



Специалисты в узкой области, как правило, пользуются собственным жаргоном, который
трудно перевести на обычный "человеческий" язык (см. врезку 1.1). Но смысл
жаргонного "словечка" отнюдь не очевиден, а потому требуется достаточно много
дополнительных вопросов для уточнения его логического или математического
значения. Например, специалисты по военной стратегии говорят об "агрессивной
демонстрации" иностранной военной мощи, но при этом не могут объяснить, чем такая
"агрессивная" демонстрация отличается от демонстрации, не несущей угрозы.
Факты и принципы, лежащие в основе многих специфических областей знания эксперта,
не могут быть четко сформулированы в терминах математической теории или
детерминированной модели, свойства которой хорошо понятны. Так, эксперту в
финансовой области может быть известно, что определенные события могут стать
причиной роста или снижения котировок на фондовой бирже, но он ничего вам не скажет
точно о механизмах, которые приводят к такому эффекту, или о количественной оценке
влияния этих факторов. Статистические модели могут помочь сделать общий
долговременный прогноз, но, как правило, такие методы не работают в отношении
курсов конкретных акций на коротких временных интервалах.
Для того чтобы решить проблему в определенной области, эксперту недостаточно
просто обладать суммой знаний о фактах и принципах в этой области. Например,
опытный специалист знает, какого рода информацией нужно располагать для
формулировки того или иного суждения, насколько надежны различные источники
информации и как можно расчленить сложную проблему на более простые, которые
можно решать более или менее независимо. Выявить в процессе собеседования такого
рода знания, основанные на личном опыте и плохо поддающиеся формализации,
значительно сложнее, чем получить простой перечень каких-то фактов или общих
принципов.
Экспертный анализ даже в очень узкой области, выполняемый человеком, очень часто нужно
поместить в довольно обширный контекст, который включает и многие вещи, кажущиеся
эксперту само собой разумеющимися, но для постороннего отнюдь таковыми не являющиеся.
Возьмем для примера эксперта-юриста, который принимает участие в судебном процессе.
Очень трудно очертить количество и природу знаний общего рода, которые оказываются
вовлечены в расследование того или иного дела.
Download