Часть вторая. ПРЕДСТАВЛЕНИЕ ЗНАНИЙ. Представление знаний как язык описания мира

Часто мы называем умным того человека, который много знает. Как много маленький ребенок задает вопросов обо всем вокруг, инстинктивно нуждаясь в знаниях! Немного утрируя, можно сказать, что мышление совсем без знаний вряд ли возможно, а при их наличии — и не особо нужно. Зная таблицу умножения, человек легко ответит на вопрос, сколько будет шестью девять, тогда как выполнить в уме элементарный алгоритм по перемножению двух трехзначных чисел сможет не каждый. Также и при игре в шахматы гроссмейстер, не тратя времени на раздумья во время сеанса одновременной игры, выиграет за счет своих знаний у десятка новичков, сколько бы они ни перебирали варианты. Выходит, главное для интеллекта — знания? Ведь мы очень часто человеку, который нас поражает своими широкими знаниями, говорим: «Какой ты умный!» С другой стороны, мы уже отмечали, что в тестах на уровень интеллекта вопросы на знания нам кажутся не вполне уместными. Так как же интеллект и знания соотносятся между собой?

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

formula_14

 

Потребность в модели мира для интеллектуальной программы выглядит правдоподобной, но насколько вероятно то, что человеческий разум использует модель мира для осуществления мышления? Многие психологи, лингвисты и философы пытаются опровергнуть гипотезу использования моделей. Однако можно сказать, что даже в поведении по схеме «стимул — реакция» должна быть заложена некоторая информация о мире, чтобы это поведение было адекватным. Таким образом, спор идет не о том, использует ли человек информацию о мире в процессе мышления (с этим было бы очень странно спорить), а о том, в каком виде она представляется: строится ли модель мира в явном виде или нет, является ли она единой или состоит из многих независимых фрагментов и т. д. Это вопросы о способе представления (языке описания) модели мира.

Вопросы построения и использования моделей активнее всего изучались в науке, где наибольшее значение с давних пор придавалось математическим моделям. По сути, вся математика развивалась как средство моделирования мира. Однако, к сожалению, наиболее строгие математические модели удавалось разрабатывать лишь для «простых» физических процессов. При переходе же на все более высокие уровни организации материи полнота математических моделей все более снижается. От интеллектуальных же систем требуется работать на наиболее высоком уровне организации мира — человеческом социуме.

Представьте себя разработчиком компьютерных игр, которому нужно написать программу управления компьютерным персонажем в игре, имитирующей школьную жизнь. Как должна эта программа выглядеть? Как объяснить компьютеру, что в рамках данной игровой реальности школьники (компьютерные персонажи) должны перед звонком подходить к партам, занимать свои места, а на большой перемене бежать в буфет и вставать в очередь, а также выполнять множество других действий? Вряд ли поведение школьн-ка можно описать набором каких-то уравнений, если не абстрагироваться слишком уж сильно или, напротив, не делать описание слишком уж подробным. Но программе для реализации поведения требуется символьная модель этого мира. В каком виде ее можно представить?

Можно, конечно, написать программу в стиле приводившейся при обсуждении эвристического программирования программы, играющей в «крестики-нолики» на поле 3×3, т. е. перечислить все возможные ситуации и нужные в них действия. Но вручную описать можно лишь немного ситуаций. Хотелось бы, чтобы ситуации, хотя бы как в шахматах, возникали по каким-то правилам, создающим большое разнообразие ситуаций, в которых действие компьютерного персонажа выбиралось из структуры самой ситуации и заложенной в него оценивающей функции путем «рассуждений» с использованием модели мира. В модель этого мира необходимо включить описание всех объектов и взаимосвязей между ними. Можно попробовать представить себе такое описание… В частности, у персонажа в оценивающую функцию может входить степень сытости; при этом он должен «знать», что для утоления голода в любой момент может пойти в буфет, но также «знать», какие последствия может иметь прогул урока и т. д. Каждый программист (особенно тот, который не знаком с технологиями ИИ) вынужден придумывать какой-то свой способ представления таких «знаний».

 

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

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

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

Проблема представления знаний выделилась в отдельную область исследований в рамках ИИ в 1970-х годах. При этом исследования представлений знаний в ИИ были сильно связаны с изучением природы языка и проблемой компьютерного понимания естественноязыковых высказываний, а также с изучением проблемы ментальных репрезентаций (представлений) в когнитивной психологии (от cognition — познание). В связи с этим представления знаний ориентированы на описание преимущественно осознаваемых и вербализуемых (выражаемых в словах) сведений, закладываемых в компьютер человеком. В таких системах знаний описывается лишь верхний уровень модели мира, являющийся производным от более низких уровней. При этом модель мира не следует также низводить до уровня «физических законов». Как мы видели на примере шахмат, одного лишь знания правил игры оказывается вовсе недостаточно для эффективного мышления; нужны производные описания. Тем более модель физического мира, основанная на законах квантовой механики, даже если бы и могла точно описывать поведение всех элементарных частиц, была бы бесполезной для совершения каких-либо действий, поскольку подразумевала бы невообразимо большой перебор вариантов. Знания позволяют сокращать перебор вариантов, иногда полностью устраняя его, если число возможных ситуаций невелико. И, наоборот, более глубокий перебор вариантов позволяет обходиться меньшим объемом знаний, особенно если недостающие знания дедуктивно следуют, например, из правил игры. Таким образом, важность знаний не опровергает лабиринтную гипотезу, а дополняет ее. Сейчас нередко полагают, что способность к представлению и использованию знаний для сильного ИИ является необходимой.

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

К представлениям знаний предъявляются противоречивые требования. С одной стороны, они должны быть максимально выразительными, что требует порой весьма изощренных представлений. С другой стороны, они должны предоставлять удобные средства для проведения рассуждений (манипулирования знаниями или их обработки). В связи с этим, а также с тем, что проблема представления знаний связана с самыми разнообразными науками — математикой, лингвистикой, психологией и рядом других, — было предложено большое количество способов представления знаний, среди которых наиболее известными являются следующие:

  • логические модели;
  • системы продукций;
  • семантические сети;
  • фреймы;
  • объектно-ориентированные представления;
  • сценарии и ряд других.

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