Текст книги "Моделирование рассуждений. Опыт анализа мыслительных актов"
Автор книги: Дмитрий Поспелов
сообщить о нарушении
Текущая страница: 10 (всего у книги 14 страниц)
Управление выводом
Несколько изменим предшествующий рисунок. Будем считать, что информация из внешнего мира W поступает в базу знаний К, минуя рассуждающую систему R. Это позволит нам рассматривать лишь продукции типа АКВК. Не будем пока учитывать предусловия и условия. Все условия применимости продукций сосредоточим в А, а В будем трактовать как внесение некоторых изменений в базу знаний. Таким образом, как условия активизации продукции, так и результат ее выполнения связаны с информацией, хранящейся в базе знаний. Будем считать также, что интеллектуальная система функционирует в некоторые дискретные моменты времени t. В эти моменты времени в базу знаний из внешнего мира может поступать некоторая информация. В эти же такты времени происходит проверка выполнения условий срабатывания продукций.
Последнее допущение позволяет ввести понятие состояния базы знаний в момент времени t, которое будем обозначать dt. Одно состояние может смениться другим по двум причинам. В момент t+1 из внешнего мира в базу знаний может прийти новая информация. Или в этот момент времени в базу знаний будет занесена новая информация, возникающая в результате срабатывания некоторой продукции.
Если в некоторый момент t состояние dt таково, что в нем удовлетворяются условия для некоторого множества продукций, то все они образуют фронт готовых продукций. Основная задача управления состоит в выборе из этого фронта очередной продукции для исполнения.
Для выбора важен вопрос о влиянии порядка выбора на окончательный результат рассуждений. Если имеются две продукции и ситуация такова, что изменение состояния базы знаний, которое может возникнуть при срабатывании одной из них, сказывается на выполнимости условий срабатывания для другой, то такие продукции естественно назвать зависимыми. Если две продукции независимы, то порядок их выбора из фронта не может сказаться на результате рассуждения. Поэтому интерес представляют лишь зависимые продукции.
Как осуществлять выбор в этом случае? Для пояснения складывающейся ситуации рассмотрим следующий пример. Только что кончилась лекция, наступил двухчасовой перерыв и группа студентов обсуждает проблему: куда сейчас пойти? В имеющихся условиях есть две альтернативы: пойти в кино (но никто не знает, какая там идет картина) или пойти в кафе-мороженое (но ни у кого нет уверенности, что кафе работает). Ясно лишь одно, что выбор одного варианта исключает выбор другого, так как кино и кафе-мороженое находятся в разных концах города. Убедившись, что кафе не работает, нет надежды успеть в кино, а обнаружив, что в кино ничего интересного не идет, нет надежды поесть мороженое. В условиях, когда никто из студентов не имеет никакой информации о кино и кафе, единственным разумным способом выбора является известное бросание монетки, т.е. случайный выбор. Но если в момент обсуждения появляется их сокурсник, который говорит, что только что был в кино и ушел, не досмотрев скучную картину (тем самым он меняет состояние «баз знаний» остальных студентов), то выбор активизируемой «продукции», соответствующей программе достижения кафе-мороженого, станет однозначным.
Описанная ситуация является в некотором смысле экстремальной. Один выбор исключает другой. Чаще это не так – после неудачного выбора можно вернуться к альтернативному выбору и попробовать другой вариант. Чтобы так можно было делать в процессах рассуждений, необходимо сохранять состояние базы знаний в момент выбора. Для реализации этого при принятии решения об альтернативном выборе можно, например, запоминать не всю информацию, имеющуюся в данный момент в базе знаний, а только ту ее часть, которая меняется в результате применения продукций из выбранного варианта. Если вариант окажется удачным, то новое состояние базы знаний будет сформировано на основе полученной в ходе проверки варианта информации. Если попытка окажется безрезультатной, то произойдет возвращение к состоянию базы знаний в момент выбора, а информация, полученная в ходе плохого варианта, сотрется из памяти. Практически все системы моделирования рассуждений в интеллектуальных системах используют этот прием, который называется «бэктрекинг».
Но в любом случае остается проблема выбора продукции из готового фронта. Психологов весьма интересует вопрос, как это делают люди. К сожалению, однозначного ответа на этот вопрос пока нет. При экспериментах с программой «Логик-теоретик» ее авторы проводили сравнение работы программы с тем, как ведут себя в многочисленных возникающих по ходу доказательства случаях альтернативного выбора люди. В частности, последовательность, в которой перечислены различия в формулах, используемая для выбора преобразований в программе «Логик-теоретик», отражает экспериментально наблюдаемые приоритеты, демонстрируемые людьми.
Отсутствие точных психологических данных о способах выбора продукций из фронта людьми привело к тому, что в интеллектуальных системах стали использовать эвристические соображения, которые могут и не отражать особенности человеческих рассуждений. Так, весьма популярной стратегией выбора является принцип «стопки книг». Этот принцип описывает процедуру наиболее быстрого (в среднем) способа поиска нужной книги в стопке книг. Если каждый раз, использовав некоторую книгу, класть ее в стопку сверху, то часто используемые книги постепенно сосредоточатся в ее верхней части, а внизу будут лежать те, которые почти никогда не требовались. Если при поиске очередной нужной книги начинать просмотр стопки сверху, то она, как правило, встретится довольно скоро. Если продукции во фронте будут упорядочены по частоте их предшествующего успешного использования и активизироваться будет первая продукция этого фронта, то принцип стопки книг будет реализован.
У этого принципа есть определенный аналог в процедурах работы с информацией у человека. Если потребовать от испытуемых «не задумываться», говорить первое, что «приходит в голову», то на просьбу «Назовите поэта XIX века», как правило, будет дан ответ «Пушкин», а на просьбу «Назовите плодовое дерево» в подавляющем большинстве случаев ответ «Яблоня». Это, конечно, справедливо для испытуемых, живущих в средней полосе СССР. В других местах и социо-культурах возникнут свои приоритетные ответы. Человек как бы всегда имеет наготове, «на языке», подходящие отклики на часто встречающиеся ситуации.
Другой эвристический прием, заставляющий вспомнить герменевтические рассуждения, состоит в проверке в первую очередь продукции с самым длинным условием А. Такой прием обосновывается принципом «частное важнее общего» или «исключение важнее правил».
Но такие априорные внешние способы задания продукций, выбираемых из фронта, не всегда оправданы. В большинстве случаев тот или иной выбор зависит от текущего состояния базы знаний dt и того реального набора продукций, который образует в этот момент времени фронт. Для описания выбора при таких условиях в интеллектуальных системах часто используют так называемые метапродукции. Они вводятся в систему продукций специально для того, чтобы осуществлять приоритетный выбор тех или иных продукций из фронта в зависимости от предыстории развития процесса рассуждений, состава фронта и состояния базы знаний. Вот пример такой метапродукции, используемой в американской экспертной системе MYCIN – TEIRESIAS, диагностирующей инфекционные заболевания.
Мы специально не расшифровываем латинские термины, так как они совершенно не мешают понять суть работы метапродукции в данной экспертной системе.
Довольно часто возможность применения той или иной продукции зависит не только от того, какие именно продукции входят во фронт (как в только что приведенном примере метапродукции), но и от того, какие продукции в этот фронт не вошли. Другими словами, влияние может оказывать как «положительный», так и «отрицательный» контекст, в котором происходит выбор продукции из фронта готовых продукций.
Когда имеется выбор из нескольких продукций, то их можно выполнять последовательно, альтернативно или параллельно. Если считать, что в период реализации продукций из фронта время как бы останавливается (т.е. сохраняется неизменной база знаний со своим состоянием di), а влияния действий продукций друг на друга нейтрализуются тем, что все они работают в автономных участках памяти, не искажая информации в базе знаний, то порядок их выполнения роли не играет. Лишь после реализации всех продукций надо выбрать те из них, которые сформируют новый фронт (с учетом их возможного взаимодействия). Однако и эта задача оказывается весьма непростой и требует каких-то эвристических соображений.
Другой проблемой управления реализацией системы продукций является поиск наиболее эффективных способов проверки выполнения условий А в множестве продукций на текущем состоянии базы знаний di. При большой базе знаний эта переборная процедура весьма неэффективна. Каков аналог данного процесса у человека?
У психологов бытует термин «поле активного внимания». В это поле попадает та часть хранимой в памяти человека информации, которая обусловливает его текущие размышления или рассуждения. Как бы лучом прожектора эта информация выхватывается из огромного хранилища всевозможных знаний. Поле активного внимания скользит по памяти, не всегда подчиняясь нашему желанию. Как порой мучительно трудно выудить нужную информацию (например, вспомнить фамилию человека, лицо которого вам явно знакомо), как, отчаявшись, мы перестаем об этом думать, а оно «само, без видимых усилий» как бы всплывает из темных, неосвещенных глубин памяти.
Нечто аналогичное применяют специалисты в области баз знаний, вводя механизм окна активизации знаний. С помощью этого «окна» активизируются определенные фрагменты базы знаний. Эти фрагменты используются для проверки условий в продукциях. Для вычленения фрагментов удобно воспользоваться условиями Р, активизирующими ту область продукционной системы, которая оказывается тесно связанной с фрагментом знаний, попавшим в окно активизации знаний. Постусловия позволяют управлять перемещением окна по полю памяти, а также его размерами. Управлять «окном» могут и специальные метапродукции, подобные тем, которые используются для приоритетного выбора из фронта готовых продукций.
Мы рассматривали до сих пор лишь такие продукции, в которых В обязательно следовало при активизации продукции. Однако весьма часто продукции приходится использовать в условиях правдоподобного вывода. Собственно говоря, правдоподобные схемы рассуждений из четвертой главы уже демонстрируют продукции такого сорта. Тем не менее, приведем еще один пример, взяв его из уже упоминавшейся экспертной системы MYCIN. Поскольку в ряде случаев система не может выдать рекомендацию со стопроцентной уверенностью, то она выдает ее с оценкой правдоподобности, о которой мы говорили в предшествующей главе.
При работе с правдоподобными продукциями применяются приемы, аналогичные описанным в четвертой главе. Вместо числового значения оценки правдоподобия в таких продукциях могут встречаться нечеткие квантификаторы, как в D-силлогизмах.
Кроме обычных приемов вывода (как достоверного, так и правдоподобного) для систем продукций могут использоваться и иные способы получения результатов рассуждений. Один из них – это получающий в последнее время распространение вывод на семантической сети.
Вывод на семантической сети
Семантические сети – это наиболее общая модель представления знаний об окружающем интеллектуальную систему мире и способах действий в нем. В самом общем виде семантическая сеть есть множество вершин, каждая из которых соответствует определенному понятию, факту, явлению или процессу, а между вершинами заданы различные отношения, изображаемые дугами. Дуги снабжены именами или описаниями, задающими семантику отношений. Вершины также помечены именами или описаниями, содержащими нужную для понимания семантики вершины информацию.
Прибегнем, как всегда, к наглядному примеру. Известный роман Э. Хемингуэя «Острова в океане» начинается так:
«Дом был построен на самом высоком месте узкой косы между гаванью и открытым морем. Построен он был прочно, как корабль, и выдержал три урагана. Его защищали от солнца высокие кокосовые пальмы, пригнутые пассатами, а с океанской стороны крутой спуск вел прямо от двери к белому песчаному пляжу, который омывался Гольфстримом».
Попробуем отобразить информацию, содержащуюся в этом отрывке, в виде семантической сети. Введем систему понятий, которым для удобства присвоим имена по первым буквам соответствующего слова текста: Д – дом, СВМ – самое высокое место, К – коса, Г – гавань, ОМ – открытое море, КП – кокосовые пальмы, С – солнце, КС – крутой спуск, ДВ – дверь, П – пляж, Г – Гольфстрим. Теперь будем постепенно строить семантическую сеть, вводя нужные отношения и описания. На рис. 33, а показан фрагмент семантической сети, соответствующей первым двум фразам текста. Отношение R1 есть тернарное отношение «быть между». Двойная дужка на нашем рисунке объединяет между собой обе части этого соотношения. «Узкая» входит в описание понятия «коса». Отношение R2 есть отношение «принадлежать». Таким образом фиксируется тот факт, что СВМ принадлежит «косе». Отношение R3 интерпретируется как «находиться на», а текст около вершины, соответствующей понятию «дом», принадлежит описанию этой вершины. На рис. 33, б показан фрагмент сети, соответствующий остальной части текста. Отношения, использованные здесь, интерпретируются следующим образом: R4 – «защищать от», R5 – «соединять», R6 – «омывать». Полное описание текста в виде семантической сети получится, если в построенных двух фрагментах объединить вершины, соответствующие понятию «дом».
Рис. 33.
При переходе имеется определенный произвол в представлении текста, касающийся формирования описаний. Те или иные сведения можно отражать прямо в структуре сети, а можно и в описаниях. Например, в нашем случае не было введено понятие «ураган» или понятие «пассат». Сведения о них содержатся в описаниях. Но можно было бы ввести для них специальные вершины и отразить эти понятия в структуре семантической сети.
В зависимости от того, какую смысловую нагрузку несут отношения в семантической сети, их можно классифицировать по различным типам. Если они, например, отражают каузальные отношения, то мы имеем дело с семантическими сетями, называемыми сценариями, а если эти отношения отражают связи по включению (родовидовые, отношения «состоять из», отношения «элемент-класс» и т.п.), то такие семантические сети будут задавать классификации. Если же, наконец, интерпретация отношений в сети такова, что они связывают между собой аргументы и значения функции, вычисляемые при задании значений аргументов, то такие семантические сети принято называть вычислительными моделями. В последнем разделе третьей главы мы также говорили о семантических сетях, выделив из них тот класс сетей, который связан с задачей вывода. Именно о таких сетях и будем говорить далее, а интересующихся аппаратом семантических сетей в более широком объеме отсылаем к источникам, которые указаны в комментарии к последнему разделу третьей главы.
Вывод на семантической сети можно представить в продукционной системе, в которой каждая продукция имеет вид Fr1Fr2. Слева и справа в этой продукции стоят фрагменты семантической сети. В зависимости от типа продукции она может описывать изменения в базе знаний или результаты промежуточных шагов вывода в решателе. Но нас эти тонкости интересовать сейчас не будут, так как наша цель – описание самой процедуры вывода на семантической сети. В базах знаний реализация продукции Fr1Fr2 обычно называется процедурой поиска по образцу. В качестве образца при поиске выступает фрагмент Fr1. В зависимости от типа продукции ее выполнение может быть различным. Например, если в базе знаний найден фрагмент Fr1, то он удаляется из базы и в нее добавляется новый фрагмент Fr2. Или если в базе знаний обнаружен фрагмент Fr1, то в решателе утверждению, описываемому фрагментом Fr2, приписывается значение «истина». Возможны и иные варианты. Пусть для определенности тип продукции таков, что она описывает поиск в базе знаний некоторого фрагмента Fr1 и при обнаружении его исключает соответствующую информацию из базы, добавляя в нее информацию, описанную в Fr2.
Рис. 34.
На рис. 34 показана такая продукция. Знак вопроса означает, что в качестве имени вершины может выступать любое из тех, которые имеются в базе знаний. Но если знак вопроса заменен какой-то вершиной, то в правой части продукции появляется такое же имя. Исходное состояние базы знаний показано на рис. 35, а. Для облегчения дальнейших рассуждений будем считать, что вершины семантической сети соответствуют некоторым персонажам, отношение R1 имеет смысл «быть отцом», отношение R2 – «быть матерью», а отношение R3 – «носить фамилию». Тогда продукция, показанная на рис. 34, может интерпретироваться следующим образом: «Если в базе знаний есть сведения о детях, для которых D является отцом, а К – матерью, то эту информацию из базы надо убрать, добавив в нее информацию о том, что все эти дети носят фамилию М».
Рис. 35.
Обработка продукции идет следующим образом. В семантической сети, показанной на рис. 35, а, ищутся вершины с именами D1 и К. Если таких вершин (или одной из них) в базе нет, то поиск прекращается и выдается сигнал о неудаче поиска. Если вершины найдены, то из вершины D возбуждаются все отношения с именем R1, а из вершины К – все отношения с именем R2. Так возникают две волны возбуждения. Первая волна возбуждает вершины С, F, G и H, а вторая – вершины F, G, Н и I. Волны встречаются лишь в вершинах F, G и H. В вершинах C и I возбуждение угасает. На замещение знака «?» в продукции претендуют вершины с именами F, G и H. Эти же имена возникают в правой стороне продукции. На рис. 35, б показано результирующее состояние базы знаний после того, как продукция завершила свою работу.
В более сложно организованных образцах для поиска могут присутствовать условия применимости продукций, о которых говорилось при обсуждении общей формы продукции. Например, образец мог бы иметь вид «Если имеет место Fr1, то Fr2, иначе Fr3». Образцы такого типа задают альтернативные выводы в базах знаний. О них упоминалось в конце третьей главы.
Если при выводе на семантической сети фрагмент Fr2 добавляется в базу знаний без выбрасывания Fr1, то говорят о процедурах пополнения знаний. Человек в своей жизнедеятельности часто выполняет подобные процедуры, используя те знания о закономерностях внешнего мира, которые ему известны. Если, например, имеется текст «Поезд подошел к перрону. Через несколько минут Андрей уже обнимал Татьяну. Такси быстро домчало их до дома, и Татьяна почувствовала, что длительное путешествие ушло в прошлое», то человеку весьма нетрудно пополнить его событиями, которые в явном виде в этом тексте отсутствуют. Ясно, например, что между событием, описанным в первом предложении, и тем, которое зафиксировано как второе, имеется пропуск. Второе событие произойдет, если Андрей и Татьяна окажутся в одном месте. Один из них должен был войти в вагон или другой – выйти из вагона. (При чтении текста последовательно пока неясно, кто приехал и кто ожидал на перроне.) Поэтому восстановление пропущенных событий напоминает вывод с некоторыми оценками правдоподобия. Третье событие, зафиксированное в тексте, не может непосредственно следовать за вторым. Для его реализации надо, чтобы Андрей и Татьяна сели в такси, а если предположить, что Андрей обнимал Татьяну на перроне (что весьма правдоподобно), то надо было еще дойти до места посадки в такси. Наконец, четвертое событие, связанное с ощущением, охватившим Татьяну, увеличивает правдоподобность того, что из путешествия вернулась именно Татьяна, а не Андрей (хотя стопроцентно этого утверждать на основании текста нельзя). Кроме того, либо время четвертого события совпадает с временем третьего события, либо четвертое событие происходит позже третьего, когда Татьяна уже вышла из такси, а возможно, и вошла в свой дом.
Читатель должен почувствовать, что пополнение знаний – процедура весьма непростая. Приведенный простенький пример уже продемонстрировал необходимость в альтернативном выборе при пополнении, а также в правдоподобных рассуждениях.
Но самое главное – этот альтернативный выбор может оказаться источником всевозможных неверных выводов при дальнейшей работе с базой знаний.
Остановимся лишь на одном случае такой опасности, который среди специалистов по интеллектуальным системам получил название эффекта немонотонных рассуждений. Поясним его на популярном примере. До того, как европейцы узнали, что в Таиланде водятся белые слоны (так называемые королевские слоны), они были уверены, что все слоны серые. Это означало, что в модели знаний о слонах имел место фрагмент, показанный на рис. 36, а. В этом фрагменте R есть отношение, a Q – отношение «быть серого цвета». Если Тони – имя некоторого конкретного слона, то из информации, отраженной в данном фрагменте знаний, следует, что «Тони имеет серый цвет». Но при условии, что слон Клайд является королевским, для него такой вывод будет неверным. Это означает, что при появлении нового знания о том, что «Клайд – королевский слон», ранее сделанный относительно него вывод «Клайд имеет серый цвет» становится ложным. В этом и состоит немонотонность вывода.
Рис. 36.
В обычной логике вывод всегда бывает монотонным. Если из множества утверждений {Fi} следует утверждение F*, то как бы ни расширилось множество {Fi}, истинность утверждения F* не может измениться. А у нас имеется прямо противоположная ситуация. Появление нового утверждения «Клайд – королевский слон» отменяет истинность утверждения «Клайд имеет серый цвет».
На рис. 36, б показана семантическая сеть, в которой учтен новый факт, касающийся королевских слонов. Дуга R соответствует отношению «не принадлежит к классу», а дуга Q’ – отношению «быть белого цвета».
Возможность неоднозначного доопределения сетей, хранящихся в памяти, приводит к тому, что после доопределения выводиться могут различные утверждения, зависящие от сделанного пополнения. Поэтому проблема пополнения непроста. Поэтому переход к построению выводов, опирающихся на знания (а именно они активно используются в современных интеллектуальных системах), вызывает к жизни многие новые и не совсем привычные для традиционных логиков проблемы.