Экспертные системы (ЭС)
Назначение экспертных систем.. 1
Структура экспертных систем.. 1
Участники разработки. 2
Режимы работы.. 3
Продукционная модель знаний. 3
Фреймовая модель знаний. 4
Семантические сети для представления знаний. 6
Сравнение моделей знаний. 6
Приобретение знаний. 7
Назначение экспертных систем
В начале 80-х годов в исследованиях по искусственному интеллекту сформировалось самостоятельное направление, получившее название «экспертные системы» (инженерия знаний).
Экспертные системы предназначены для решения неформализованных задач.
Такие задачи характеризуются:
ошибочностью, неоднозначностью, неполнотой и противоречивостью данных и знаний о предметной области и решаемой задаче;
большой размерностью пространства решения;
динамической изменчивостью данных и знаний.
Экспертные системы основаны на эвристическом поиске решения, а не на исполнении известного алгоритма.
Технология экспертных систем используется для решения самых различных задач (интерпретация, предсказание, диагностика, планирование, конструирование, контроль, отладка, инструктаж, управление и др.) в самых различных областях (финансы, нефтяная и газовая промышленность, энергетика, транспорт, фармацевтическое производство, космос, металлургия, горное дело, химия, образование, целлюлозно-бумажная промышленность, телекоммуникации и связь и др.).
Коммерческие успехи к фирмам-разработчикам систем искусственного интеллекта пришли не сразу. На протяжении 1960-1985 гг. успехи искусственного интеллекта касались в основном исследовательских разработок. Начиная примерно с 1985 г., а в массовом масштабе с 1988-1990 гг., экспертные системы стали активно использоваться в коммерческих приложениях.
|
Структура экспертных систем
Экспертные системы разделяются на статические и динамические.
Статическая экспертная система имеет следующую структуру:
Рабочая память, называемая также базой данных, предназначена для хранения исходных и промежуточных данных решаемой в текущий момент задачи.
База знаний предназначена для хранения долгосрочных данных, описывающих предметную область, и правил, описывающих целесообразные преобразования данных этой области.
Решатель, называемый также интерпретатором, используя исходные данные из рабочей памяти и знания из базы знаний, формирует правила, применение которых к исходным данным приводит к решению задачи.
Компонент приобретения знаний автоматизирует процесс наполнения экспертной системы знаниями эксперта.
Объяснительный компонент объясняет, как система получила решение задачи или почему она это решение не получила, и какие знания она при этом использовала. Компонент облегчает эксперту тестирование системы и повышает доверие пользователя к полученному результату.
Диалоговый компонент обеспечивает дружественный интерфейс с пользователем как в ходе решения задачи, так и в процессе приобретения знаний и объяснения результатов работы.
Статические экспертные системы используются в тех приложениях, где можно не учитывать изменения окружающего мира, происходящие во время решения задачи. Первые экспертные системы, получившие практическое применение, были статическими.
|
В структуру динамической экспертной системы дополнительно вводятся два компонента: подсистема моделирования внешнего мира и подсистема связи с внешним окружением. Последняя осуществляет связи с внешним миром через систему датчиков и контроллеров.
Участники разработки
В разработке экспертной системы участвуют представители следующих специальностей: эксперт, инженер по знаниям, программист.
Эксперт – это специалист в предметной области, задачи которой будет решать экспертная система.
Инженер по знаниям – это специалист по разработке экспертных систем. Используемые им технологию и методы называют технологией и методами инженерии знаний. Инженер по знаниям помогает эксперту выявить и структурировать знания, необходимые для работы экспертной системы. Отсутствие среди участников разработки инженеров по знаниям, то есть замена их программистами, либо приводит к неудаче проекта создания экспертной системы, либо значительно увеличивает сроки ее разработки.
Режимы работы
Экспертная система работает в двух режимах: в режиме приобретения знаний и в режиме решения задачи, называемом также режимом консультации или режимом использования экспертной системы.
В режиме приобретения знаний общение с экспертной системой осуществляет эксперт при посредничестве инженера по знаниям. В этом режиме эксперт, используя компонент приобретения знаний, наполняет систему знаниями, которые позволяют системе в режиме решения уже без участия эксперта решать задачи из предметной области.
|
В режиме консультации общение с экспертной системой осуществляет конечный пользователь, которого интересует результат и, возможно, способ его получения. В этом режиме данные о задаче пользователя после обработки их диалоговым компонентом поступают в рабочую память. Решатель на основе входных данных из рабочей памяти и заложенных в систему знаний формирует решение задачи.
Продукционная модель знаний
Продукционная модель является одним из популярных средств представления знаний в системах искусственного интеллекта. С одной стороны, продукции близки к логическим моделям, что позволяет организовывать эффективные процедуры логического вывода. С другой стороны, продукции в сравнении с логическими моделями более наглядно отражают знания.
Продукционная модель включает:
набор правил (продукций), представляющих базу знаний (в продукционной системе);
рабочую память, в которой хранятся исходные факты и факты, выведенные из них;
механизм логического вывода, позволяющий из имеющихся фактов согласно имеющимся правилам выводить новые факты.
Каждое правило содержит условную и заключительную части.
В условной части правила находится либо одиночный факт, либо несколько фактов (условий), соединенных конъюнкцией.
В заключительной части правила находятся факты, которыми необходимо пополнить рабочую память, если условная часть правила является истинной.
В общем случае под продукцией понимается выражение следующего вида:
(i) Q; Р; А => В; N
Здесь i – имя продукции или ее порядковый номер, с помощью которого данная продукция выделяется из всего множества продукций. В качестве имени может выступать некоторая лексема, отражающая суть данной продукции, например, «покупка книги» или «набор кода замка».
Элемент Q характеризует сферу применения продукции. Такие сферы легко выделяются в сознании человека. Например, в одной сфере хранятся знания о том, как надо готовить пищу, в другой – как добраться до работы. Разделение знаний на отдельные сферы позволяет экономить время на поиск нужных продукций.
Основным элементом продукции является ее ядро А => В, которое читается как «ЕСЛИ A, ТО B». Более сложные конструкции ядра допускают в правой части альтернативный выбор «ЕСЛИ А, ТО B1, ИНАЧЕ B2». Интерпретация ядра продукции может быть различной и зависит от того, что стоит слева и справа от знака секвенции =>. При одной из интерпретаций ядра продукции секвенция может истолковываться в обычном логическом смысле как знак логического следования В из истинного А. Возможны и другие интерпретации ядра продукции. Так, например, A может описывать условие, выполнение которого необходимо для того, чтобы можно было совершить действие В.
Элемент Р есть условие применимости ядра продукции. Если Р истинно, то ядро продукции активизируется. В противном случае ядро не может быть активизировано.
Рассмотрим, например, продукцию «Наличие денег; Если хочешь купить вещь X, то заплати в кассу ее стоимость и отдай чек продавцу». Если в этой продукции условие применимости ядра продукции ложно, то есть денег нет, то применить ядро продукции невозможно.
Элемент N есть постусловие продукции. Постусловие задает действия и процедуры, которые необходимо выполнить после реализации ядра продукции. Например, после покупки вещи в магазине необходимо в описи товаров этого магазина уменьшить на единицу количество вещей такого типа.
Представление знаний в виде набора правил имеет следующие преимущества:
простота создания и понимания отдельных правил,
простота механизма логического вывода.
Основной недостаток – это неясность взаимных отношений правил.
Фреймовая модель знаний
В основе теории фреймов лежит фиксация знаний путем сопоставления новых фактов с рамками, определенными для каждого объекта в сознании человека.
Структура в памяти компьютера, представляющая эти рамки, называется фреймом. Все фреймы взаимосвязаны и образуют единую фреймовую систему, в которой объединены и процедурные знания. Каждый фрейм описывает один концептуальный объект. Конкретные свойства этого объекта и факты, относящиеся к нему, описываются в структурных элементах данного фрейма, называемых слотами.
В состав слота входят
имя слота,
указатель наследования,
указатель типа данных,
значение слота,
определения демонов,
присоединенная процедура.
Имя слота должно быть уникальным во фрейме, к которому он принадлежит. Ряд имен слотов резервируется для служебных целей (для редактирования базы знаний, управления выводом). Среди таких слотов, называемых системными, отметим
слот, указывающий родительский фрейм данного фрейма,
слот со списком дочерних фреймов,
слоты для ввода имени пользователя, определяющего фрейм, дат создания и модификации фрейма, комментария.
Указатель наследования касается только фреймовых систем иерархического типа, основанных на отношениях «абстрактное-конкретное». В простейшем случае позволяет разрешить или запретить перекрытие неопределенного значения данного слота на значение слота с тем же именем из родительского фрейма.
Указатель типа данных определяет тип значения слота:
integer, real, bool, text,
list, table, expression – список, таблица, выражение,
LISP – присоединенная процедура,
frame –указатель (имя) другого фрейма,
и т.д.
Значением слота может быть практически что угодно: числа или математические соотношения, тексты на естественном языке или программы, правила вывода или ссылки на другие слоты данного фрейма или других фреймов. В качестве значения слота может выступать набор слотов более низкого уровня, что позволяет во фреймовых представлениях реализовать «принцип матрешки».
Демон – это процедура, разрабатываемая пользователем, но вызываемая автоматически при выполнении различных операций над значением слота. Типичные демоны:
if-needed – вызывается, если в момент обращения к слоту его значение не было определено,
if-added – вызывается при подстановке в слот значения,
if-removed – вызывается при стирании значения слота.
Присоединенная процедура разрабатывается пользователем и вызывается по сообщению, переданному из другого фрейма. Демон является разновидностью присоединенной процедуры.
Приведем упрощенный пример фрейма:
Служащий
(ФИО (Иванов И. И.),
Должность (инженер),
Категория (2)
)
Если значения слотов не определены, то фрейм называют фреймом-прототипом, в противном случае – экземпляром фрейма.
В моделях представления знаний фреймами объединяются не только декларативные, но и процедурные знания, носителями которых являются демоны и присоединенные процедуры. Они позволяют запрограммировать любую процедуру вывода из фреймовой сети.
Механизм управления выводом организуется следующим образом. Сначала запускается одна из присоединенных процедур некоторого фрейма, называемого образцом. Образец – это, по сути, фрейм-прототип, т.е. у него заполнены не все слоты, а только те, которые описывают связи данного фрейма с другими. Затем в силу необходимости, посредством пересылки сообщений, последовательно запускаются присоединенные процедуры других фреймов и, таким образом, осуществляется вывод.
Фреймовую модель без механизма присоединенных процедур, а следовательно, и без механизма пересылки сообщений, часто используют как базу данных системы продукций.
Из систем программирования, поддерживающих концепцию фреймов, отметим язык представления знаний KRL (Knowledge Representation Language) и язык представления фреймов FRL (Frame Representation Language).
Преимущества фреймовых систем над продукционными:
знания организованы на основе концептуальных объектов;
допускается комбинация представления декларативных (как устроен объект) и процедурных (как взаимодействует объект) знаний;
иерархия фреймов вполне соответствует классификации понятий, привычной для восприятия человеком;
система фреймов легко расширяется и модифицируется.
Трудности применения фреймовой модели знаний в основном связаны с программированием присоединенных процедур.