Объясните понятие экспертных систем.
Искусственный интеллект, как научная дисциплина, состоит из нескольких крупных течений. Одно из них – экспертные системы.
Экспертные системы это направление исследований в области искусственного интеллекта по созданию вычислительных систем, умеющих принимать решения, схожие с решениями экспертов в заданной предметной области.
Современные экспертные системы широко используются для тиражирования опыта и знаний ведущих специалистов практически во всех сферах экономики. Традиционно знания существуют в двух видах — коллективный опыт и личный опыт. Если большая часть знаний в предлагаемой области представлена в виде коллективного опыта (например, высшая математика), эта предметная область не нуждается в экспертных системах. Если в предметной области большая часть знаний является личным опытом специалистов высокого уровня (экспертов), если эти знания по каким-либо причинам слабо структурированы, такая предметная область нуждается в экспертных системах.
Экспертные системы — это сложные программные комплексы, аккумулирующие знания специалистов в конкретных предметных областях и тиражирующие этот эмпирический опыт для консультаций менее квалифицированных пользователей. На рис. 13.1 изображены основные компоненты экспертной системы.
Рис. 13.1. Обобщенная структура экспертной системы |
Пользователь — специалист предметной области, для которого предназначена система. Обычно его квалификация недостаточно высока, и поэтому он нуждается в помощи и поддержке со стороны экспертной системы.
Инженер по знаниям — специалист по искусственному интеллекту, выступает в роли промежуточного звена между экспертом и базой знаний (инженер-интерпретатор).
Интерфейс пользователя — комплекс программ, реализующий диалог пользователя с экспертной системой на стадии как ввода информации, так и получения результатов.
База знаний — ядро экспертной системы, совокупности знаний предметной области, записанная на машинный носитель в форме, понятной эксперту и пользователю (обычно на некотором языке, приближенном к естественному). Параллельно такому «человеческому» представлению существует база знаний во внутреннем «машинном» представлении.
Решатель — программа, моделирующая ход рассуждений эксперта на основании знаний, имеющихся в базе знаний.
Подсистема объяснений — программа, позволяющая пользователю получить ответы на вопросы: «Как была получена та или иная информация?» и «Почему система приняла такое решение?». Ответ на вопрос «Как?» — это трассировка всего процесса получения решения с указанием использованных фрагментов базы знаний, то есть всех шагов цепи умозаключения. Ответ на вопрос «Почему?» — ссылка на умозаключение, непосредственно предшествовавшее полученному решению, то есть отход на один шаг назад.
Интеллектуальный редактор базы знаний — программа, представляющая инженеру по знаниям возможность создавать базы знаний в диалоговом режиме.
Инструментальные средства построения экспертных систем:
о связано с тем, что парадигма объектно-ориентированного программирования тесно связана с фреймовой моделью представления знаний, кроме того, традиционные языки используются для создания других классов инструментальных средств искусственного интеллекта.
Языки искусственного интеллекта. Lisp , Prolog . Универсальность этих языков меньшая, чем у традиционных языков, но это компенсируется богатыми воз можностями по работе с символьными и логическими данными, что крайне важно для задач искусственного интеллекта. На основе языков искусственного интеллекта создаются специализированные компьютеры (например, Лисп- машины).
«Оболочки» ( shells ) — «пустые» версии существующих экспертных систем, то есть готовые экспертные системы без базы знаний. Они вообще не требуют работы программистов для создания готовой экспертной системы. Требуются только специалисты в предметной области для заполнения базы знаний. Однако если некоторая предметная область плохо укладывается в модель, используемую
в некоторой оболочке, заполнить базу знаний в этом случае весьма непросто.
8 Приведите пример методов и моделей представления знаний в экспертных системах.
Логические модели представления знаний реализуются средствами логики предикатов. Предикатом называется функция, принимающая только два значения - истина и ложь - и предназначенная для выражения свойств объектов или связей между ними. Выражение, в котором утверждается или отрицается наличие каких-либо свойств у объекта, называется высказыванием.
Наиболее простым языком логики является исчисление высказываний, в котором отсутствуют переменные. Любому высказыванию можно приписать значение истинно или ложно. Отдельные высказывания могут соединяться связками И, ИЛИ, НЕ, которые называются булевыми операторами.
В общем случае модели, основанные на логике предикатов, описываются формальной системой, которая задается четверкой:
М=(Т,Р,А,П), где Т - множество базовых элементов или алфавит формальной системы;
Р - множество синтаксических правил, с помощью которых можно строить синтаксически корректные предложения; А - множество аксиом или некоторых синтаксически правильных предложений, заданных априорно; П - правила продукций (правила вывода или семантические правила), с помощью которых можно расширять множество А, добавляя в него синтаксически правильные предложения.
Главное преимущество логических моделей представления знаний заключается в возможности непосредственно запрограммировать механизм вывода синтаксически правильных высказываний.
Логические модели удобны для представления логических взаимосвязей между фактами, они формализованы, строги (теоретические), для их использования имеется удобный и адекватный инструментарий, например, язык логического программирования Пролог.
В основе логического способа представления знаний лежит идея описания знаний о предметной области в виде некоторого множества утверждений, выраженных в виде логических формул, и получение решения построением вывода в некоторой формальной (дедуктивной) системе.
Знания, которые могут быть представлены с помощью логики предикатов, являются либо фактами, либо правилами. При использовании логических методов сначала анализируется структура предметной области, затем выбираются соответствующие обозначения и в заключении формируются логические формулы, представляющие собой закономерности рассматриваемой области. Множество таких формул является логической программой, содержащей информацию о ПО.
Например, в качестве языка логического программирования можно использовать ПРОЛОГ, а совокупность логических формул, состоящую из запроса, множества предложений программы и интерпретатора языка, можно рассматривать как алгоритм решения задач приложений.
Продукционная модель, или модель, основанная на правилах, позволяет представить знания в виде предложений типа: Если (условие), то (действие).
Под условием понимается некоторое предложение-образец, по которому осуществляется поиск в базе знаний, а под действием — действия, выполняемые при успешном исходе поиска (они могут быть промежуточными, выступающими далее как условия, и терминальными или целевыми, завершающими работу системы).
Продукционные системы делят на два типа — с прямыми и обратными выводами. При прямом выводе рассуждение ведется от данных к поиску цели, а при обратном производится поиск доказательства или опровержения некоторой цели— к данным. Часто используются комбинации прямой и обратной цепи рассуждений. Данные — это исходные факты, на основании которых запускается машина вывода — программа, перебирающая правила из базы.
Продукции выгодны для выражения знаний, которые могут принимать форму перехода между состояниями: ситуация ® действие; посылка ® заключение; причина ® следствие.
Продукции по сравнению с другими формами представления знаний имеют следующие преимущества:
· модульность;
· наглядность;
· единообразие структуры (основные компоненты продукционной системы могут применяться для построения интеллектуальных систем с различной проблемной ориентацией);
· естественность (вывод заключения в продукционной системе во многом аналогичен процессу рассуждений эксперта);
· легкость внесения дополнений и простота механизма логического вывода;
· гибкость родовидовой иерархии понятий, которая поддерживается только как связи между правилами (изменение правила влечет за собой изменение в иерархии).
Недостатки:
· процесс вывода менее эффективен, чем в других системах, поскольку большая часть времени при выводе затрачивается на непроизводительную проверку применимости правил;
· этот процесс трудно поддается управлению;
· сложно представить родовидовую иерархию понятий.
Семантические сети
Термин семантическая означает смысловая, а сама семантика — это наука, устанавливающая отношения между символами и объектами, которые они обозначают, т.е. наука, определяющая смысл знаков.
Семантическая сеть — это ориентированный граф, вершины к оторого — понятия, а дуги — отношения между ними. Семантическая сеть описывает знания в виде сетевых структур.
Например, «программист сел за компьютер и отладил программу». Объектами являются: программист (А1), компьютер (А2), программа (А3). Объекты связаны отношениями: сел за компьютер (р1), отладил (р2), загружена в компьютер программа (р3). На рисунке 1 приведен пример этой простейшей семантической сети.
Рис. 1 Пример простейшей семантической сети.
Понятиями обычно выступают абстрактные или конкретные объекты, а отношения — это связи типа: "это" ("is"), "имеет частью" ("haspart"), "принадлежит", "любит". Характерной особенностью семантических сетей является обязательное наличие трех типов отношений:
· класс — элемент класса;
· свойство — значение;
· пример элемента класса.
Самыми распространенными являются следующие типы отношений:
· быть элементом класса, то есть объект входит в состав данного класса (ВАЗ 2106 является автомобилем);
· иметь свойства, то есть задаются свойства объектов (жираф имеет длинную шею);
· иметь значение, то есть задается значение свойств объектов (человек может иметь двух братьев);
· является следствием, то есть отражается причинно-следственная связь (астеническое состояние является следствием перенесенного простудного заболевания).
Проблема поиска решения в базе знаний типа семантической сети сводится к задаче поиска фрагмента сети, соответствующего некоторой подсети, отражающей поставленный запрос к базе.
Преимущества заключаются в простоте и наглядности описания предметной области. Однако последнее свойство с усложнением семантической сети теряется и, кроме того, существенно увеличивается время вывода. Также к недостаткам семантических сетей относят сложность обработка различного рода исключений.
Фреймы
Фрейм (англ. frame — каркас или рамка) предложен М.Минским в 70-е гг. как структура знаний для восприятия пространственных сцен. Фрейм (дословно — «рамка») — это единица представления знаний, детали которой могут изменяться в соответствии с текущей ситуацией. Фрейм - это минимально возможное описание сущности какого-либо явления, события, ситуации, процесса или объекта. Фрейм – это абстрактный образ для представления некоего стереотипа восприятия. В психологии и философии известно понятие абстрактного образа. В теории фреймов такой образ называется фреймом. Фреймом называется также и формализованная модель для отображения образа. Структуру фрейма можно представить так:
Имя фрейма:
(имя 1-го слота: значение 1-го слота)
(имя 2-го слота: значение 2-го слота)
. . . . . . . . . . . . . . . . . . . . . . . .
(имя N-го слота: значение N-го слота)
В качестве примера рассмотрим фрейм для понятия «взятие»:
«Взятие»:
(Субъект, X1);
(Объект, Х2);
(Место, ХЗ);
(Время, Х4);
(Условие, Х5).
В этом фрейме указаны имена слотов (субъект, объект и т.д.), но вместо их значений стоят переменные (XI, Х2 и т.д.). Такой фрейм называется фреймом-прототипом, или протофреймом. Протофреймы хранят знания о самом понятии. Например, понятие «взять» связано с наличием слотов с указанными именами. Взятие осуществляет X1 в месте ХЗ во время Х4, если выполнено условие Х5. Берет X1 нечто, обозначенное как Х2. Подставляя вместо всех переменных конкретные значения, получим конкретный факт-описание:
«Взятие»:
(Субъект, Робот);
(Объект, Деталь);
(Место, Приемный бункер);
(Время, Х4);
(Условие, В бункере есть деталь, а у робота ее нет).
Различают фреймы-образцы, или прототипы, хранящиеся в базе знаний, и фреймы-экземпляры, которые создаются для отображения реальных фактических ситуаций на основе поступающих данных. Модель фрейма является достаточно универсальной, поскольку позволяет отобразить все многообразие знаний о мире через:
· фреймы-структуры, использующиеся для обозначения объектов и понятий (заем, залог, вексель);
· фреймы-роли (менеджер, кассир, клиент);
· фреймы-сценарии (банкротство, собрание акционеров, празднование именин);
· фреймы-ситуации (тревога, авария, рабочий режим устройства) и др.
Важнейшим свойством теории фреймов является заимствованное из теории семантических сетей наследование свойств. И во фреймах, и в семантических сетях наследование происходит по АКО-связям (A-Kind-Of = это). Слот АКО указывает на фрейм более высокого уровня иерархии, откуда неявно наследуются, т.е. переносятся, значения аналогичных слотов.
Основным преимуществом фреймов как модели представления знаний является способность отражать концептуальную основу организации памяти человека, а также ее гибкость и наглядность.
Специальные языки представления знаний в сетях фреймов FRL (FrameRepresentationLanguage)и другие позволяют эффективно строить промышленные ЭС. Широко известны такие фреймо-ориентированные экспертные системы, как ANALYST, МОДИС