Модели представления знаний
Следует отметить, что во многих случаях для принятия решений в той или иной области человеческой деятельности неизвестен алгоритм решения, т.е. отсутствует четкая последовательность действий, заведомо приводящих к необходимому результату. В любой предметной области есть свои понятия и связи между ними, своя терминология, свои законы, связывающие между собой объекты данных предметной области, свои процессы и события. Кроме того, каждая предметная область имеет свои методы решения задач.Все это обуславливает выбор модели представления знаний. Основными моделями представления знаний являются:· продукционные модели;· семантические сети;· фреймовые модели;· формальные логические модели·Продукционные модели.
Продукционная модель, или модель, основанная на правилах, позволяет представлять знания в виде предложений типа:
Если (условие), то (действие).
Записываются эти правила обычно в виде:
ЕСЛИ А1,А2,…,Аn ТО В.
В качестве условия может выступать любая совокупность суждений, соединенных логическими связками И, ИЛИ.
Под условием понимается некоторое предложение – образ, по которому осуществляется поиск в базе знаний, а под действием – действия, выполняемые при успешном исходе поиска (они м.б. промежуточными, выступающими далее как условие, и терминальными или целевыми, завершающими работу системы).
«Условие» называют иногда «Посылкой», а «Действие» - «Выводом» или «Заключением».
Условия А1,А2,…,Аn обычно называют фактами. С помощью фактов описывается текущее состояние предметной области. Факты могут быть истинными, ложными, либо, в общем случае, правдоподобными, когда истинность факта допускается с некоторой степенью уверенности.
Действие В трактуется как добавление нового факта в описание текущего состояния предметной области.
В упрощенном виде описание предметной области с помощью правил (продукций) базируется на следующих основных предположениях об устройстве предметной области:
Предметная область может быть описана в виде множества фактов и множества правил. Факты – это истинные высказывания (повествовательные предложения) об объектах или явлениях предметной области.
Правила описывают причинно-следственные связи между фактами (в общем случае и между правилами тоже) - как истинность одних фактов влияет на истинность других.
Продукционные модели могут отражать следующие виды отношений:
ситуация - > действие,
посылка -> заключение,
причина -> следствие.
В продукционных системах используются два основных способа реализации механизма вывода:
· прямой вывод, или вывод от данных;
· обратный вывод, или вывод от цели.
В первом случае идут от известных данных (фактов) и на каждом шаге вывода к этим фактам применяют все возможные правила, которые порождают новые факты, и так до тех пор, пока не будет порожден факт-цель. Возможны несколько проходов для проверки правил.
Для применения правила используется процесс сопоставления известных фактов с правилами и, если факты согласуются с посылками в правиле, то правило применяется.
Во втором случае вывод идет в обратном направлении – от поставленной цели. Если цель согласуется с заключением правила, то посылку правила принимают за подцель или гипотезу, и этот процесс повторяется до тех пор, пока не будет получено совпадение подцели с известными фактами.
Продукционная модель чаще всего применяется в промышленных ЭС.
Она привлекает разработчиков своей наглядностью, высокой модульностью, легкостью внесения дополнений и изменений и простотой механизма логического вывода.
Продукционная модель обладает тем недостатком, что при накоплении достаточно большого числа (порядка нескольких сотен) продукций они начинают противоречить друг другу.
Имеется большое число программных средств, реализующих продукционный подход. Например, экспертные системы ЭКСПЕРТ, ЭКО и др.
Семантические сети.
Семантическая сеть – это модель, в которой структура знаний предметной области формализуется в виде ориентированного графа с помеченными вершинами и дугами. Вершины графа обозначают понятия различных категорий: объекты, события, свойства, операции, а дуги – отношения между ними.
(Семантика - значение единиц языка).
Семантические сети вначале использовались для представления смысла выражений естественного языка человека, откуда и появилось название этого класса сетей. Теперь же они используются в качестве структуры, пригодной для представления информации общего вида, – узлы представляют некоторые концепты (понятия), а связи – отношения между концептами. При построении семантической сети отсутствуют ограничения на число связей и на сложность сети. Поэтому систематизация отношений между объектами в сети необходима для дальнейшей формализации.
В качестве понятий выступают абстрактные или конкретные объекты.
Наиболее часто в семантических сетях используются следующие отношения:
1) связи типа “часть-целое” (например, “класс-подкласс'', “элемент-множество” и т.п.);
2) функциональные связи, определяемые обычно глаголами (производит, влияет и др.);
3) количественные (>, <, = и др.);
4) пространственные (далеко от, близко от, за, под, на и др.);
5) временные (раньше, позже, в течение и др.);
6) атрибутивные (иметь свойство, иметь значение и др.);
7) логические (и, или, не);
8) лингвистические и др.
Поиск решения в базе знаний типа семантической сети сводится к задаче поиска фрагмента сети, соответствующего некоторой подсети, отражающий поставленный запрос к базе.
Пример
Рис.19 Пример семантической сети
Для реализации семантических сетей существуют специальные сетевые языки: NET, язык реализации систем SIMER+MIR и др. Широко известны экспертные системы, использующие семантические сети в качестве языка представления знаний: PROSPECTOR, CASNET, TORUS. Семантические сети получили широкое применение в системах распознавания речи и экспертных системах.
Фреймовые модели.
Теории представления знаний фреймами была разработана М.Минским в 70-е годы XX века. В ее основе лежит восприятие фактов посредством сопоставления полученной извне информации с рамками, определенными для каждого объекта в памяти человека.
Слово "фрейм" в переводе с английского языка означает "рамка". Фрейм является единицей представления знаний об объекте, которую можно описать некоторой совокупностью понятий и сущностей.
Под фреймом понимается абстрактный образ или ситуация. В психологии и философии известно понятие абстрактного образа. Например, слово «комната» вызывает у слушателя образ комнаты: «жилое помещение с четырьмя стенами, полом, потолком, окнами и дверью, площадью 6-20 м2». Из этого описания ничего нельзя убрать (например, убрав окна, мы получим чулан, а не комнату), но в нем есть «дырки», или «слоты», - это незаполненные значения некоторых атрибутов – количество окон, цвет стен, высота потолка, покрытие пола и т.д.
Фрейм имеет определённую внутреннюю структуру, состоящую из множества элементов, называемых слотами. Каждый слот в свою очередь, представляется определенной структурой данных, процедурой, или может быть связан с другим фреймом. Значением слота может быть практически что угодно (числа или математические соотношения, тексты на естественном языке или программы, правила вывода или ссылки на другие слоты данного фрейма или других фреймов).
Фрейм можно определить и как формализованную модель для отображения образа.
Во фреймовых моделях фиксируется жестка структура информационных единиц, которая называется протофреймом (фреймы-образцы)
В качестве значения слота может выступать набор слотов более низкого уровня, что позволяет во фреймовых представлениях реализовать "принцип матрешки".
При конкретизации фрейма ему и слотам присваиваются конкретные имена и происходит заполнение слотов. Таким образом, из протофреймов получаются фреймы - экземпляры. Переход от исходного протофрейма к фрейму - экземпляру может быть многошаговым, за счет постепенного уточнения значений слотов.
Структуру фрейма можно представить так:
ИМЯ ФРЕЙМА:
(имя 1-го слота: значение 1-го слота),
(имя 2-го слота: значение 2-го слота),
…………………………………………,
(имя N-го слота: значение N-го слота).
Фрейм может содержать процедуры, которые будут выполняться при определенных условиях (при записи или удалении информации из слота, при обращении к слоту, в котором отсутствуют данные и т.д.) С каждым слотом может быть связано любое количество процедур. Процедуры, связанные с определенным слотом фрейма, зависят от конкретной прикладной системы, использующей фреймовые структуры для представления знаний. Если представить, что фрейм «Клиенты» используется в системе управления клиентами, то процедура, вызывающаяся при внесении значения в слот «Улица», могла бы уведомлять менеджера об изменении адреса.
Существует несколько способов получения слотом значений во фрейме-экземпляре:
· по умолчанию от фрейма-образца;
· через наследование свойств от фрейма, указанного в слоте АКО (A-Kind-Оf, это);
· по формуле, указанной в слоте;
· через присоединенную процедуру;
· явно из диалога с пользователем;
· из базы данных.
В качестве значения слота может выступать имя другого фрейма. Тогда образуются сети фреймов.
Таким образом, структуру фрейма-экземпляра можно представить в виде следующей таблицы:
Имя слота | Значение слота | Способ получения значения слота | Присоединенная процедура |
Существование сетей фреймов обусловлено тем, что между различными объектами можно провести некоторые аналогии. Поэтому фреймы, представляющие такие образы, выстраиваются в иерархическую систему. При этом сложные объекты представляются комбинацией нескольких подчиненных фреймов.
В сетях фреймов происходит наследование свойств по АКО-связям. Слот АКО указывает на фрейм более высокого уровня, откуда неявно наследуются (переносятся) значения слотов.