Системы, основанные на знаниях. Системы, основанные на знаниях, и экспертные системы

3. Стратегии получения знаний

1. Знания, виды знаний, базы знаний, банки знаний

Существуют различные определения понятия «знания».

Знания – это основные закономерности предметной области, позволяющие человеку решать конкретные производственные, научные и другие задачи, то есть факты, понятия, взаимосвязи, оценки, правила, эвристики (иначе фактически знания), а также стратегии принятия решений в этой области (иначе стратегические знания)

Под «знаниями» понимают формализованную информацию, на которую ссылаются или которую используют в процессе решения задачи.

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

Выделяют несколько уровней формализации знания о предметной области:

Знания в памяти человека;

Знания в форме языковой модели предметной области, используемые человеком и зафиксированные на физических носителях с использованием контекстно-зависимых языков, графических образов и т.п.;

Знания, формализованные для их представления при использовании в ЭВМ;

Фактографические сведения или данные.

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

База знаний - это совокупность моделей, правил и факторов (данных), порождающих анализ и выводы для нахождения решений сложных задач в некоторой предметной области.


2. Модели представления знаний

Наиболее распространенными моделями представления знаний являются:

Продукционные системы;

Логические модели;

Семантические сети.

В продукционных системах знания представляются в виде совокупности специальных информационных единиц, имеющих следующую структуру. В общем случае продукционная система включает следующие компоненты:


Базу данных, содержащую множество фактов;

Базу правил, содержащую набор продукций;

Интерпретатор (механизм логического вывода) или правила работы с продукциями.

База правил и база данных образуют базу знаний.

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

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

Продукции по сравнению с другими формами представления знаний имеют следующие преимущества:

Модульность;

Единообразие структуры (основные компоненты продукционной системы могут применяться для построения интеллектуальных систем с различной проблемной ориентацией);

Естественность (вывод заключения в продукционной системе во многом аналогичен процессу рассуждений эксперта);

Гибкость родовидовой иерархии понятий, которая поддерживается только как связи между правилами (изменение правила влечет за собой изменение иерархии).

Однако продукционные системы не свободны от недостатков:

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

Этот процесс трудно поддается управлению;

Сложно представить родовидовую иерархию понятий.

Логические модели представления знаний реализуются средствами логики предикатов.

Предикатом называется функция, принимающая только два значения - истина и ложь – и предназначенная для выражения свойств объектов или связей между ними.

Выражение, в котором утверждается или отрицается наличие каких-либо свойств у объекта, называется высказыванием.

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

Семантическая сеть описывает знания в виде сетевых структур. В качестве вершин сети выступают понятия, факты, объекты, события и т.п., а в качестве дуг сети – отношения, которыми вершины связаны между собой.

3. Стратегии получения знаний

Существует несколько стратегий получения знаний. Наиболее распространенные:

  1. извлечение;
  2. приобретение;
  3. обнаружение (формирование).

Рисунок 1 - Три стратегии получения знаний

Извлечение знаний - это процедура взаимодействия инженера по знаниям с источником знаний, в результате которой становятся явными процесс рассуждений специалистов-экспертов при принятии решения и структура их представлений о предметной области.

Рисунок 2 - Классификация методов извлечения знаний

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

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


4. Свойства систем, основанных на знаниях

Рисунок 3 – Свойства систем, основанных на знаниях

5. Критерии целесообразности решения задач с помощью систем, основанных на знаниях

Рисунок 4 – Критерии целесообразности решения задач с помощью систем, основанных на знаниях

6. Области применения систем, основанных на знаниях

Области применения систем, основанных на знаниях, весьма разнообразны:

Производство;

Военные приложения;

Медицина;

Социология;

Геология;

Сельское хозяйство;

Управление;

Юриспруденция;

7. Типы решаемых задач с помощью систем, основанных на знаниях

Типы решаемых задач с помощью систем, основанных на знаниях:

Интерпретация символов или сигналов – составление смыслового описания по входным данным;

Диагностика – определение неисправностей (заболеваний) по симптомам;

Мониторинг – наблюдение за изменяющимся состоянием объекта и сравнение его показателей с установленными или желаемыми;

Проектирование – разработка объекта с заданными свойствами при соблюдении установленных ограничений;

Прогнозирование – определение последствий, наблюдаемых ситуаций;

Планирование – определение последовательности действий, приводящих к желаемому состоянию объекта;

Управление – воздействие на объект для достижения желаемого поведения;

Обучение – объяснение или консультации в той или иной области знаний.

Системы, основанные на знаниях, реализуются на базе следующих интеллектуальных алгоритмов:

Экспертные системы;

Нейронные сети;

Нечеткая логика;

Генетические алгоритмы.

Т.к. в системах, основанных на знаниях, используются интеллектуальные алгоритмы, то такие системы иногда называют системами искусственного интеллекта.

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

В экспертных системах для решения задач на уровне эксперта-человека широко используются специализированные знания. Термином "эксперт" обозначается личность, обладающая экспертными знаниями в определённой области. Это означает, что эксперт имеет знания или специальные навыки, которые неизвестны или недоступны для большинства людей. Эксперт способен решать задачи, которые большинство людей не способны решить вообще, или решает их гораздо более эффективно. После того как были впервые разработаны экспертные системы, они содержали исключительно только экспертные знания. Однако в наши дни термин "экспертная система " часто применяется по отношению к любой системе, в которой используется технология экспертных систем. Технология экспертных систем может включать специальные языки экспертных систем, а также программные и аппаратные средства, предназначенные для обеспечения разработки и эксплуатации экспертных систем.

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

Существуют два принципиально различных класса ЭС: "основанные на знаниях" и "основанные на примерах". Первый класс ЭС применяется для работы с хорошо систематизированными элементами знаний и априори известными закономерностями, выраженными различного рода методиками, инструкциями, правилами и т.п. Принципы работы экспертной системы, основанной на знаниях , иллюстрируются на рис.11.15 .


Рис. 11.15.

Кроме того, разработаны полезные системы, основанные на знаниях, которые предназначены для использования в качестве интеллектуального помощника для эксперта - человека. Эти интеллектуальные помощники проектируются на основе технологии экспертных систем, поскольку такая технология обеспечивает значительные преимущества при разработке. Чем больше знаний будет введено в базу знаний интеллектуального помощника, тем в большей степени его действия будут напоминать действия эксперта. Разработка интеллектуального помощника может стать полезным промежуточным шагом перед созданием полноценной экспертной системы . К тому же интеллектуальный помощник позволяет освободить для эксперта больше полезного времени, поскольку его применение способствует ускоренному решению задач.

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

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

На данном рисунке область знаний полностью включена в предметную область. Часть, выходящая за пределы области знаний, символизирует область, в которой отсутствуют знания о какой-либо из задач, относящихся к данной предметной области.

В области знаний экспертная система проводит рассуждения или делает логические выводы по такому же принципу, как рассуждал бы эксперт - человек или приходил логическим путём к решению задачи.


Рис. 11.16.

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

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

Классическая экспертная система воплощает в себе неписанные знания, которые должны быть получены от эксперта с помощью интервью, проводимых инженером по знаниям в течение длительного периода времени. Такой процесс создания экспертной системы называется инженерией знаний и осуществляется инженером по знаниям. Инженерией знаний называют получение знаний от эксперта-человека или из других источников и последующее представление знаний в экспертной системе (рис.11.17).


Рис. 11.17.

Вначале инженер по знаниям устанавливает диалог с экспертом-человеком, чтобы выявить знания эксперта. Этот этап аналогичен этапу работы, выполняемому системным проектировщиком при обычном программировании в ходе обсуждения требований к системе с клиентом, для которого создается программа. Затем инженер по знаниям представляет знания в явном виде для внесения в базу знаний. После этого эксперт проводит оценку экспертной системы и передаёт критические замечания инженеру по знаниям. Такой процесс повторяется снова и снова, до тех пор, пока эксперт не оценит результаты работы системы как удовлетворительные.

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

Следовательно, инженерия знаний – это область информационной технологии, цель которой – накапливать и применять знания не как объект обработки их человеком, но как объект для обработки их на компьютере. Для этого необходимо проанализировать знания и особенности их обработки человеком и компьютером, а также разработать их машинное представление. К сожалению, точного и неоспоримого определения, что собой представляют знания, до сих пор не дано. Но, тем не менее, цель инженерии знаний – обеспечить использование знаний в компьютерных системах на более высоком уровне, чем до сих пор, – актуальна. Возможность использования знаний осуществима только тогда, когда эти знания существуют, что вполне объяснимо. Технология накопления и суммирования знаний идёт "бок о бок" с технологией использования знаний, где они взаимно дополняют друг друга, и ведут к созданию одной технологии, технологии обработки знаний.

Второй класс ЭС используется в ситуациях, когда отсутствуют какие-либо явные связи и закономерности между элементами знаний, а сами знания представлены в виде списков примеров, описывающих реализации тех или иных событий. Если первый класс ЭС работает с хорошо определёнными данными и знаниями, извлечёнными из экспертов - аналитиков инженерами знаний, то второй - формирует свои знания путём адаптации к предметной области, представленной примерами, причём как обучающая, так и анализируемая информация может быть искажена и неполна. В первом случае в основе механизмов вывода, как правило, лежат классические стратегии наследования и логического вывода, то во втором - различные методы индуктивного обобщения по примерам, в частности, свойства используемых для этого искусственных нейронных сетей .

В cистеме, основанной на правилах, знания в проблемной области, необходимые для решения задач, закодированы в форме правил и содержатся в базе знаний. Безусловно, для представления знаний наиболее широко применяются правила. Элементы типичной экспертной системы , основанной на правилах, показаны на рис.11.18 .


Рис. 11.18.

Экспертная система состоит из описанных ниже компонентов.

  • Пользовательский интерфейс. Механизм, с помощью которого происходит общение пользователя и экспертной системы .
  • Средство объяснения. Компонент, позволяющий объяснить пользователю ход рассуждений системы.
  • Рабочая память. Глобальная база фактов , используемых в правилах.
  • Машина логического вывода. Программный компонент, который обеспечивает формирование логического вывода (принимая решение о том, каким правилам удовлетворяют факты или объекты). Располагает выполняемые правила по приоритетам и выполняет правило с наивысшим приоритетом.
  • Рабочий список правил. Созданный машиной логического вывода и расположенный по приоритетам список правил, шаблоны которых удовлетворяют фактам или объектам, находящимся в рабочей памяти.
  • Средство приобретения знаний. Автоматизированный способ, позволяющий пользователю вводить знания в систему, а не привлекать к решению задачи явного кодирования знаний инженера по знаниям.

Во многих системах имеется необязательное средство приобретения знаний, Это инструментальное средство в некоторых экспертных системах способно обучаться, осуществляя вывод правил по методу индукции на основании примеров, и автоматически вырабатывать правила. Для выработки правил в машинном обучении применялись также другие методы и алгоритмы, такие как искусственные нейронные сети и генетические алгоритмы . Основная проблема, возникающая при использовании машинного обучения для выработки правил, состоит в том, что отсутствует какое-либо объяснение, почему были созданы эти правила. В отличие от человека, способного объяснить причины, по которым было выбрано то или иное правило, системы машинного обучения никогда не были в состоянии объяснить свои действия, а это может повлечь за собой появление непредсказуемых результатов. Однако в целом для создания деревьев решений лучше всего подходят примеры, представленные в виде простых таблиц. Общие правила, подготовленные инженером по знаниям, могут быть намного сложнее по сравнению с простыми правилами, полученными путём вывода правил по методу индукции.

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

горит красный свет -> стоять

горит зеленый свет -> двигаться

Продукционные правила могут быть выражены в эквивалентном формате псевдокода IF-THEN следующим образом:

Правило: red__light

IF горит красный свет THEN стоять

Правило: green_light

IF горит зеленый свет THEN двигаться

Каждое правило обозначается именем. Вслед за именем находится часть IF правила. Участок правила между частями IF и THEN правила упоминается под разными именами, такими как антецедент, условная часть, часть шаблона или левая часть (left-hand-side - LHS). Такое отдельно взятое условие, как

"горит красный свет" называется условным элементом, или шаблоном.

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

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

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

В зависимости от проекта экспертной системы в машине логического вывода осуществляется либо прямой, либо обратный логический вывод, либо обе эти формы логического вывода. Например, язык CLIPS спроектирован в расчёте на применение прямого логического вывода, в языке PROLOG осуществляется обратный логический вывод, а в версии CLIPS, называемой Eclipse, разработанной Полом Хэйли (Paul Haley), осуществляется и прямой, и обратный логический выводы. Выбор машины логического вывода зависит от типа задачи. Диагностические задачи лучше всего решать с помощью обратного логического вывода, в то время как задачи прогнозирования, текущего контроля и управления проще всего поддаются решению с помощью прямого логического вывода.

Рабочая память может содержать факты, касающиеся текущего состояния светофора, такие как "горит зелёный свет" или "горит красный свет". В рабочей памяти может присутствовать любой из этих фактов или оба факта одновременно. Если светофор работает нормально, то в рабочей памяти будет находиться только один факт. Но возможно также, что в рабочей памяти будут присутствовать оба факта, если светофор неисправен. В чём состоит различие между базой знаний и рабочей памятью? Факты не взаимодействуют друг с другом. Факт "горит зелёный свет" не воздействует на факт "горит красный свет". С другой стороны, знания о работе светофоров говорят о том, что если одновременно присутствуют оба факта, то светофор неисправен.

Если в рабочей памяти имеется факт "горит зеленый свет", машина логического вывода обнаруживает, что этот факт удовлетворяет условной части правила green_light и помещает это правило в рабочий список правил. А если правило имеет несколько шаблонов, то все эти шаблоны должны быть удовлетворены одновременно для того, чтобы правило можно было поместить в рабочий список правил. В качестве условия удовлетворения некоторых шаблонов можно даже указать отсутствие определённых фактов в рабочей памяти.

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

Вслед за частью THEN правила находится список действий, которые должны быть выполнены после запуска правила. Эта часть правила называется консеквентом, или правой частью (Right-Hand Side - RHS). Если происходит запуск правила red_light, выполняется его действие "стоять". Аналогичным образом после запуска правила green_light его действием становится "двигаться". В состав конкретных действий обычно входит добавление или удаление фактов из рабочей памяти либо вывод результатов. Формат описания этих действий зависит от синтаксиса языка экспертной системы . Например, в языке CLIPS действие по добавлению в рабочую память нового факта, называемого "stop" (стоять), принимает вид (assert stop).

Машина логического вывода работает в режиме осуществления циклов "распознавание – действие". Для описания указанного режима работы применяются также другие термины, такие как цикл "выборка - выполнение", цикл "ситуация - отклик" и цикл "ситуация - действие". Но как бы ни назывался такой цикл, машина логического вывода снова и снова выполняет некоторые группы задач до выявления определённых критериев, которые вызывают прекращение выполнения. При этом решаются общие задачи, обозначенные в приведённом ниже псевдокоде как разрешение конфликтов, действие, согласование и проверка условий останова.

WHILE работа не закончена

Разрешение конфликтов. Если имеются активизированные правила, то выбрать правило с наивысшим приоритетом; в противном случае работа закончена.

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

Согласование. Обновить рабочий список правил путём проверки того, выполняется ли левая часть каких-либо правил. В случае положительного ответа активизировать соответствующие правила. Удалить активизированные правила, если левая часть соответствующих правил больше не выполняется.

Проверка условий останова. Если осуществлено действие halt или дана команда break, то работа закончена.

Принять новую команду пользователя.

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

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

В рабочем списке правил возникают конфликты, если различные активизированные правила имеют одинаковый приоритет и машина логического вывода должна принять решение о том, какое из этих правил необходимо запустить. В различных командных интерпретаторах для решения этой проблемы применяются разные способы. Ньюэлл и Саймон использовали такой подход, что правила, введённые в систему в первую очередь, приобретают по умолчанию наивысший приоритет. В языке CLIPS правила имеют по умолчанию одинаковый приоритет, если каким-то из них не присваивается другой приоритет инженером по знаниям.

После завершения выполнения всех правил управление возвращается к интерпретатору команд верхнего уровня, чтобы пользователь мог выдать командному интерпретатору экспертной системы дополнительные инструкции. Работа в режиме верхнего уровня соответствует применяемому по умолчанию режиму, в котором пользователь взаимодействует с экспертной системой , и обозначается как задача "Accept a new user command" (Принять новую команду пользователя). Приём новых команд происходит именно на верхнем уровне.

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

Главной особенностью экспертной системы является предусмотренное в ней средство объяснения, которое даёт возможность пользователю задавать вопросы о том, как система пришла к определённому заключению и для чего ей требуется определённая информация. Система, основанная на правилах, способна легко ответить на вопрос о том, как было получено определённое заключение, поскольку хронология активизации правил и содержимое рабочей памяти можно сохранять в стеке. Но такая возможность не столь легко достижима при использовании искусственных нейронных сетей , генетических алгоритмов или других систем, разработка которых ещё продолжается. Безусловно, были сделаны попытки предусмотреть в некоторых системах возможность объяснения, но созданные при этом средства объяснения не могут сравниться по своей наглядности со средствами любой экспертной системы , спроектированной человеком. Развитые средства объяснения могут дать возможность пользователю задавать вопросы типа "что, если" и изучать альтернативные пути формирования рассуждений по принципу гипотетических рассуждений.

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

Каждый из четырех типов информационных систем, рассмотренных нами, подходит для специфической цели. Ни один из них не пригоден для всех типов информации, используемой на всех уровнях менеджмента.

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

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

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

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

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

Информационные системы далеко не всегда сразу пригодны для использования, и менеджеры часто должны создавать индивидуальные информационные системы.

Построение информационных систем

В начале применения компьютерных систем, особенно в простых организациях, развитие компьютерных программ был бессистемной делом. Например, многие программисты начинали программное кодирование так быстро, как это возможно - часто до того, как становилось ясным, что собой представляет программа, которую необходимо разработать. Из-за этого возникали проблемы, и проектанты начали наводить некоторый порядок в данном процессе. Это породило модель, названную жизненным циклом развития системы.

А. Определяющая стадия

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

Первая состоит в проблеме определения.

Вторая - в решении, возможно ли вообще построение системы. Осуществление оценки в жизненном цикле развития системы делается, как правило, когда имеется минимум информации. Это может вызвать проблемы, такие, как пропуск важных понятий.

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

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

Бы. Стадия развития

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

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

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

Стадия установления и введения в действие

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

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

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

Системы, основанные на знаниях

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

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

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

□ принятие решений, диагностика, планирование систем и ситуаций с использо­ванием экспертных систем или нейронных сетей;

□ прогнозирование развития сложных систем с помощью генетических алгоритмов;

□ изучение предыдущего опыта (иногда единственного примера) и принятие на его основе решения по текущей ситуации средствами систем, основанных на прецедентах;

□ распознание рукописного ввода или графического изображения путем модели­рования в нейронных сетях;

□ установление причинно-следственных связей между наборами данных с помо­щью механизмов извлечения данных (тем самым можно идентифицировать при­чинно-следственные связи в реальном мире, из которого эти данные поступили);

□ симуляция самостоятельного поведения компьютерной программы, реализуе­мая с помощью технологии интеллектуальных агентов.

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

Системы, основанные на знаниях, - это компьютерные программы, спроек­тированные таким образом, чтобы воспроизводить работу экспертов в заданных областях знания.

Есть семь основных типов систем, основанных на знаниях.

1. Экспертные системы моделируют процесс принятия решения, свойственный человеческому мозгу. Они используются для того, чтобы действовать подобно экспертам-людям, помогая руководителям или специалистам принять решение, основываясь на экспертных знаниях. Типичные области применения экспертных систем - планирование, составление расписаний, диагностика. Хотя экспертные системы служат для того, чтобы воспроизвести процесс принятия решений, свойственный человеку, алгоритмы и правила, на основе которых принимаются решения, являются статическими. Это значит, что экспертная система не может самостоятельно модифицировать логику своей работы и не является самообу­чающейся.

2. Нейронные сети моделируют работу человеческого мозга на биологическом уровне (на уровне поведения отдельных клеток мозга, нейронов). Это означает, что нейронные сети обладают встроенной способностью к самообучению: они могут учиться распознавать шаблоны, а затем на основе шаблонов распознавать образы. Благодаря способности к самообучению, нейронные сети могут быть в некоторой степени использованы для решения задач прогнозирования на ос­нове прошлого опыта (например, для прогнозирования суточного распределения затрат электроэнергии в энергосистеме).

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

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

5. Интеллектуальные агенты - это программы, для которых задана конечная цель, но они могут самостоятельно выбирать пути достижения этой цели, гибко изме­няя алгоритм своего поведения. Большинство интеллектуальных агентов явля­ются фоновыми программами, ведущими черновую работу, и выходят на перед­ний план только тогда, когда нужно передать пользователю результат. В качестве примеров интеллектуальных агентов можно назвать интернет-роботы поисковых систем, которые непрерывно просеивают миллионы страниц различных сай­тов, чтобы поддерживать данные поисковой машины в актуальном состоянии.

6. Системы добычи данных. Термин «добыча данных» используют для того, чтобы описать процесс обнаружения знаний путем нахождения ранее неизвестных взаимосвязей между данными. В базах, в которых хранятся большие массивы данных, можно выявить неявные закономерности, имеющие практическую пользу. Например, анализируя продажи в супермаркете, можно выяснить, что летом в один и тот же временной интервал резко возрастает продажа лимонада, мороженного и семечек. Эти товары надо расположить в торговом зале рядом и обеспечить их бесперебойное поступление. Такие меры позволят значительно увеличить продажу этих продуктов.

3.4.1. Экспертные системы

Экспертные системы должны обладать некоторыми специфическими характе­ристиками: для своей работы экспертная система использует знания, которые она должна уметь сохранять в базе знаний, извлекать и обрабатывать определенным образом для решения проблемы. Другими словами, экспертная система должна полностью заменять эксперта-человека в какой-либо специфической области деятельности.


Экспертные системы создаются при помощи языков программирования, под­держивающих программирование, основанное на правилах. Обычно в качестве таких языков выступают Prolog и Lisp.

Два требования являются особенно важными для экспертных систем:

□ Достаточно узкая предметная область. Чем уже предметная область, в которой реализуются функции экспертной системы, тем легче создать для нее набор правил и тем эффективнее выданное экспертное заключение.

□ Возможность обратного вывода (см. ранее пример продукционной модели) позволяет отследить, на основе каких исходных данных вырабатывалась экс­пертная рекомендация.

Основными элементами экспертной системы являются (рис. 3.5):

□ модуль хранения знаний (база знаний), в котором знания сохраняются в раз­личных форматах представления;

□ механизм логического вывода, который использует базу знаний для решения проблем;

□ интерфейс пользователя, через который пользователь применяет экспертную систему, формулирует проблему и получает ее решение;

□ механизм получения знаний, при помощи которого формируются базы знаний различного назначения (для различных предметных областей).

Рис. 3.5. Элементы экспертной системы

Достоинства экспертных систем можно отнести:

□ процесс принятия решения происходит на основе заранее установленных правил;

□ раздельное использование базы знаний и механизма логического вывода по­зволяет раздельно модифицировать то и другое;

□ возможность узнать, как было получено решение;

□ быстрота получение решения;

□ наличие стандартной процедуры вывода;

□ возможность многократного решения типовых задач с освобождением от этой работы экспертов-людей;

□ расширение возможностей пользователей до возможностей опытных экспертов в определенной области.

Недостатки экспертных систем:

□ ориентация на узкую область знаний, на решение проблем с ограниченной спецификой;

□ потребность в экспертах для приобретения знаний;

□ частая потребность в эксперте для окончательного заключения;

□ высокая степень формализации, неспособность применять в рассуждениях «простой здравый смысл»;

□ высокая стоимость разработки и обслуживания;

□ высокая степень механистичности выводов, отсутствие «творческих способ­ностей»;

□ потребность в постоянном пополнении базы знаний в соответствии с измене­ниями в экспертной области;

□ трудоемкость получения знаний от экспертов и особые требования к инже­неру по знаниям (процесс перевода интуиции эксперта в символы и выра­жения формальной логики может занимать много времени и быть очень до­рогим)..

Экспертные системы применяются там, где

□ решаемые проблемы настолько важны, что применение экспертной системы помогает сэкономить время и деньги или то и другое;

□ правила экспертизы стабильны и хорошо известны (иными словами, есть доступные эксперты, от которых достаточно легко получить знания, что по­зволяет построить экспертную систему, предназначенную для многократного и длительного применения);

□ создать и содержать экспертную систему дешевле, чем содержать в штате экс­пертов-людей;

□ есть много потребителей, нуждающихся именно в такой экспертной системе (в этом случае однажды созданная экспертная система может быть многократно воспроизведена и применена разными потребителями);

□ легче и дешевле создать экспертную систему, чем обучать персонал новой об­ласти деятельности;

□ решение легко формализуется и принимается на основе устойчивых правил (без привнесения интуиции или плохо формализуемых знаний).

Различные по стоимости, мощности, объему базы знаний и аппаратной реализации экспертные системы используются для принятия решений, полу­чения дополнительных сведений, повышения надежности или снижения стоимо­сти решения проблем в разных отраслях науки, техники, экономики, медицины и т. д. На рис. 3.6 приведена классификация экспертных систем по разным при­знакам.


Экспертные системы


- Обучение - На суперЭВМ - Автономные

__ На символьных ____ Гибридные

Глава 1. Системы, основанные на знаниях.

Глава 2. Введение в инженерию знаний.

ГЛАВА 1. Системы, основанные на знаниях.

^ 1.1. Знания и данные

Если у вас есть проблема или задача, которую нельзя решить самостоятельно - вы обращаетесь к знающим людям, или к экспертам, к тем, кто обла­дает ЗНАНИЯМИ. Термин "системы, основанные на знаниях" (knowledge-based systems) появился в 1976 году одновременно с первыми системами, аккумулирующими опыт и знания экспертов. Это были экспертные системы (expert systems) MYCIN и DENDRAL для медицины и химии. Они ставили диагноз при инфекционных заболеваниях крови и расшифровывали данные масс-спектрографического анализа.

Экспертные системы появились в рамках исследований по искусственному интеллекту (ИИ) (artificial intelligence) в тот период, когда эта наука пережи­вала серьезный кризис, и требовался существенный прорыв в развитии практических приложений. Этот прорыв произошел, когда на смену поис­кам универсального алгоритма мышления и решения задач исследователям пришла идея моделировать конкретные знания специалистов-экспертов. Так в США появились первые коммерческие системы, основанные на знани­ях, или экспертные системы (ЭС). Эти системы по праву стали первыми ин­теллектуальными системами, и до сих пор единственным критерием интел­лектуальности является наличие механизмов работы со знаниями.

Так появился новый подход к решению задач искусственного интеллекта - представление знаний.

Подробнее об истории искусственного интеллекта можно почитать в [Поспелов, 1986; Джексон, 2001; Гаврилова, Хорошевский, 2001; Эндрю, 1985|.

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

Определение 1.1

Данные - это информация, полученная в результате наблюдений или измерений отдельных свойств (атрибутов), характеризующих объекты, процессы и явления предметной области.

Иначе, данные - это конкретные факты, такие как температура воздуха, высота здания, фамилия сотрудника, адрес сайта и пр.

При обработке на ЭВМ данные трансформируются, условно проходя следующие этапы:


  • D1 - данные как результат измерений и наблюдений;

  • D2 - данные на материальных носителях информации (таблицы, протоколы, справочники);

  • D3 - модели (структуры) данных в виде диаграмм, графиков, функций;

  • D4 - данные в компьютере на языке описания данных;

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

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

Определение 1.2

Знаний - это связи и закономерности предметной области (принципы, модели, законы), полученные в результате практической деятельности и профессионального опыта, позволяющего специалистам ставить и решать задачи в данной области.

При обработке на ЭВМ знания трансформируются аналогично данным:


  • Z1 - знания в памяти человека как результат анализа опыта и мышления;

  • Z2 - материальные носители знаний (специальная литература, учебники, методические пособия);

  • Z3 - поле знаний - условное описание основных объектов предметной области, их атрибутов и закономерностей, их связывающих;

  • Z4 - знания, описанные на языках представления знаний (продукцион­ные языки, семантические сети, фреймы - см. далее);

  • Z5 - база знаний на машинных носителях информации. Часто используется и такое определение знаний:
Знания - это хорошо структурированные данные, или данные о данных, или метаданные.

Ключевым этапом при работе со знаниями является формирование поля знаний (третий этап Z3), эта нетривиальная задача включает выявление и определение объектов и понятий предметной области, их свойств и связей между ними, а также представление их в наглядной и интуитивно понятной форме. Этот термин впервые был введен при практической разработке экспертной системы по психодиагностике АВТАНТЕСТ [Гаврилова, 1984] и теперь широко используется разработчиками ЭС.

Без тщательной проработки поля знаний не может быть речи о создании базы знаний.

Существенным для понимания природы знаний являются способы опреде­ления понятий. Один из широко применяемых способов основан на идее интенсионала и экстенсионала.

Определение 1.3

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

Например, интенсионал понятия "МЕБЕЛЬ": "предметы, предназначенные для обеспечения комфортного проживания человека и загромождающие дом".

Определение 1.4

Экстенсионал - это определение понятия через перечисление его конкретных примеров, т. е. понятий более низкого уровня абстракции.

Экстенсионал понятия "МЕБЕЛЬ": "Шкаф, диван, стол, стул и т. д.".

Интенсионалы формируют знания об объектах, в то время как экстенсионал объединяет данные. Вместе они формируют элементы поля знаний конкретной предметной области.

Для хранения данных используются базы данных (для них характерны большой объем и относительно небольшая удельная стоимость информа­ции), для хранения знаний - базы знаний (небольшого объема, но исклю­чительно дорогие информационные массивы).

База знаний - основа любой интеллектуальной системы, где знания описа­ны на некотором языке представления знаний, приближенном к естественному.

Знания можно разделить на:


  • глубинные;

  • поверхностные.
Поверхностные - знания о видимых взаимосвязях между отдельными событиями и фактами в предметной области.

Глубинные - абстракции, аналогии, схемы, отображающие структуру и при­роду процессов, протекающих в предметной области. Эти знания объясняют явления и могут использоваться для прогнозирования поведения объектов.

Поверхностные знания

"Если ввести правильный пароль, на экране компьютера появится изображение рабочего стола".

Глубинные знания

"Понимание принципов работы операционной системы и знания на уровне квалифицированного системного администратора".

Современные экспертные системы работают, в основном, с поверхностны­ми знаниями. Это связано с тем, что на данный момент нет универсальных методик, позволяющих выявлять глубинные структуры знаний и работать с ними.

Кроме того, в учебниках по ИИ знания традиционно делят на процедурные и декларативные. Исторически первичными были процедурные знания, т. е. знания, "растворенные" в алгоритмах. Они управляли данными. Для их из­менения требовалось изменять текст программ. Однако с развитием информатики и программного обеспечения все большая часть знаний сосредота­чивалась в структурах данных (таблицы, списки, абстрактные типы данных), т. е. увеличивалась роль декларативных знаний.

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

Один из пионеров ИИ Алан Ньюэлл проиллюстрировал эволюцию средств общения человека с компьютером как переход от машинных кодов через символьные языки программирования к языкам представления знаний (рис. 1.1).

^ 1.2. Модели представления знаний

В настоящее время разработаны десятки моделей (или языков) представле­ния знаний для различных предметных областей. Большинство из них мо­жет быть сведено к следующим классам:


  • продукционные модели;

  • семантические сети;

  • фреймы;

  • формальные логические модели.
В свою очередь это множество классов можно разбить на две большие группы (рис. 1.2):

  • модульные;

  • сетевые.
Модульные языки оперируют отдельными (не связанными) элементами зна­ний, будь то правила или аксиомы предметной области.

Сетевые языки предоставляют возможность связывать эти элементы или фрагменты знаний через отношения в семантические сети или сети фреймов.

Рассмотрим подробнее наиболее популярные у разработчиков языки пред­ставления знаний (ЯПЗ).

^ 1.2.1. Продукционная модель

ЯПЗ, основанные на правилах (rule-based), являются наиболее распростра­ненными и более 80% ЭС используют именно их.

Определение 1.5

Продукционная модель или модель, основанная на правилах, позволяет представить знания в виде предложений типа "Если (условие), то (действие)".

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

Чаще всего вывод на такой базе знаний бывает прямой (от данных к поиску цели) или обратный (от цели для ее подтверждения - к данным). Дан­ные - это исходные факты, хранящиеся в базе фактов, на основании кото­рых запускается машина вывода или интерпретатор правил, перебирающий правила из продукционной базы знаний (см. разд. 1.3).

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

Имеется большое число программных средств, реализующих продукцион­ный подход (например, языки высокого уровня CLIPS и OPS 5; "оболочки" или "пустые" ЭС - EXSYS Professional и Карра, инструментштьные системы КЕЕ, ARTS, PIES [Хорошевский, 1993]), а также промышленных ЭС на его основе (например, ЭС, созданных средствами G2 [Попов, 1996]). Подробнее см. [Попов, Фоминых и др., 1996; Хорошевский, 1993; Гаврилова, Хорошев­ский, 2001; Durkin, 1998].

^ 1.2.2.Семантические сети

Термин "семантическая" означает "смысловая", а сама семантика - это нау­ка, устанавливающая отношения между символами и объектами, которые они обозначают, т. е. наука, определяющая смысл знаков. Модель на основе семантических сетей была предложена американским психологом Куиллиа-ном. Основным ее преимуществом является то, что она более других соот­ветствует современным представлениям об организации долговременной памяти человека [Скрэгг, 1983].

Определение 1.6

Семантическая сеть - это ориентированный граф, вершины которого - по­нятия, а дуги - отношения между ними.

В качестве понятий обычно выступают абстрактные или конкретные объек­ты, а отношения это связи типа: "это" ("АКО - A-Kind-Of, "is" или "эле­мент класса"), "имеет частью" ("has part"), "принадлежит", "любит".

Можно предложить несколько классификаций семантических сетей, связанных с типами отношений между понятиями.

По количеству типов отношений:


  • однородные (с единственным типом отношений);

  • неоднородные (с различными типами отношений).
-По типам отношений:

  • бинарные (в которых отношения связывают два объекта);
N-арные (в которых есть специальные отношения, связывающие более двух понятий).

Наиболее часто в семантических сетях используются следующие отношения:


  • элемент класса (роза это цветок);

  • атрибутивные связи /иметь свойство (память имеет свойство - объем);

  • значение свойства (цвет имеет значение - желтый);

  • пример элемента класса (роза, например - чайная);

  • связи типа "часть-целое" (велосипед включает руль);

  • функциональные связи (определяемые обычно глаголами "производит", "влияет"...);

  • количественные (больше, меньше, равно...);

  • пространственные (далеко от, близко от, за, под, над...);

  • временные (раньше, позже, в течение...);

  • логические связи (и, или, не) и др.
Минимальный состав отношений в семантической сети таков:

  • элемент класса или АКО;

  • атрибутивные связи /иметь свойство;

  • значение свойства.
Недостатком этой модели является сложность организации процедуры орга­низации вывода на семантической сети.

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

На рис. 1.3 изображен пример семантической сети. В качестве вершин тут выступают понятия "человек", "т. Смирнов", "Audi A4", "автомобиль", "вид транспорта" и "двигатель".

Рис. 1.3. Семантическая сеть

Для реализации семантических сетей существуют специальные сетевые языки, например, NET [Цейтин, 1985], язык реализации систем SIMER + MIR [Осипов, 1997] и др. Широко известны экспертные системы, использую­щие семантические сети в качестве языка представления знаний - PROSPECTOR, CASNET, TORUS [Хейес-Рот и др., 1987; Durkin, 1998].

1.2.3. Фреймы

Термин фрейм (от англ. frame - "каркас" или "рамка") был предложен Марвином Минским [Минский, 1979], одним из пионеров ИИ, в 70-е годы для обозначения структуры знаний для восприятия пространственных сцен. Эта модель, как и семантическая сеть, имеет глубокое психологическое обоснование.

Определение 1.7

Фрейм - это абстрактный образ для представления стереотипа объекта, понятия или ситуации.

Интуитивно понятно, что под абстрактным образом понимается некоторая обобщенная и упрощенная модель или структура. Например, произнесение вслух слова "комната" порождает у слушающих образ комнаты: "жилое по­мещение с четырьмя стенами, полом, потолком, окнами и дверью, площадью 6-20 м 2 ". Из этого описания ничего нельзя убрать (например, убрав окна, мы получим уже чулан, а не комнату), но в нем есть "дырки" или "слоты"- это незаполненные значения некоторых атрибутов - например, количество окон, цвет стен, высота потолка, покрытие пола и др.

В теории фреймов такой образ комнаты называется фреймом комнаты. Фреймом также называется и формализованная модель для отображения образа.

Различают фреймы-образцы или прототипы, хранящиеся в базе знаний, и фреймы-экземпляры, которые создаются для отображения реальных фактиче­ских ситуаций на основе поступающих данных. Модель фрейма является достаточно универсальной, поскольку позволяет отобразить все многообразие знаний о мире через:


  • фреймы-структуры, использующиеся для обозначения объектов и поня­тий (заем, залог, вексель);

  • фреймы-роли (менеджер, кассир, клиент);

  • фреймы-сценарии (банкротство, собрание акционеров, празднование именин);

  • фреймы-ситуации (тревога, авария, рабочий режим устройства) и др.
Традиционно структура фрейма может быть представлена как список свойств:

^ (ИМЯ ФРЕЙМА:

(имя 1-го слота: значение 1-го слота),

(имя 2-го слота: значение 2-го слота),

…………….

(имя N-гo слота: значение N-го слота)).

Ту же запись можно представить в виде таблицы (см. табл. 1.1), дополнив ее двумя столбцами.

Таблица 1.1. Структура фрейма


Имя фрейма

Имя слота

Значение слота

Способ получения значения

Присоединенная процедура

В таблице дополнительные столбцы (3-й и 4-й) предназначены для описа­ния способа получения слотом его значения и возможного присоединения к тому или иному слоту специальных процедур, что допускается в теории фреймов. В качестве значения слота может выступать имя другого фрейма, так образуются сети фреймов.

Существует несколько способов получения слотом значений во фрейме-экземпляре:


  • по умолчанию от фрейма-образца (Default-значение);

  • через наследование свойств от фрейма, указанного в слоте АКО;

  • по формуле, указанной в слоте;

  • через присоединенную процедуру;

  • явно из диалога с пользователем;

  • из базы данных.
Важнейшим свойством теории фреймов является заимствование из теории семантических сетей - так называемое наследование свойств. И во фрей­мах, и в семантических сетях наследование происходит по АКО-связям (A-Kind-Of = это). Слот АКО указывает на фрейм более высокого уровня иерархии, откуда неявно наследуются, т. е. переносятся, значения анало­гичных слотов.

Например, в сети фреймов на рис. 1.4 понятие "ученик" наследует свойства фреймов "ребенок" и "человек", которые находятся на более высоком уровне иерархии. На вопрос "любят ли ученики сладкое?" следует ответ "да", т. к. этим свойством обладают все дети, что указано во фрейме "ребенок". Наследование свойств может быть частичным: возраст для учеников не насле­дуется из фрейма "ребенок", поскольку указан явно в своем собственном фрейме.


Рис. 1.4. Сеть фреймов

Основным преимуществом фреймов как модели представления знаний яв­ляется то, что она отражает концептуальную основу организации памяти человека [Шенк, Хантер, 1987], а также ее гибкость и наглядность.

Специальные языки представления знаний в сетях фреймов FRL (Frame Representation Language) [Байдун, Бунин, 1990], KRL (Knowledge Representa­tion Language) [Уотермен, 1989], фреймовая "оболочка" Kappa [Стрельников, Борисов, 1997] и другие программные средства позволяют эффективно строить промышленные ЭС. Широко известны такие фрейм-ориентирован­ные экспертные системы, как ANALYST, МОДИС, TRISTAN, ALTERID [Ковригин, Перфильев, 1988; Николов, 1988; Sisodia, Warkentin, 1992].

^ 1.2.4. Формальные логические модели

Традиционно в представлении знаний выделяют формальные логические мо­дели, основанные на классическом исчислении предикатов 1-го порядка, когда предметная область или задача описывается в виде набора аксиом. Реально исчисление предикатов 1-го порядка в промышленных экспертных системах практически не используется. Эта логическая модель применима в основ­ном в исследовательских "игрушечных" системах, т. к. предъявляет очень высокие требования и ограничения к предметной области. В промышлен­ных же экспертных системах используются различные ее модификации и расширения, изложение которых выходит за рамки этой книги. См. [Ада-менко, Кучуков, 2003].

^ 1.3. Вывод на знаниях

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

Определение 1.8

Машина вывода (интерпретатор правил) - это программа, имитирующая логический вывод эксперта, пользующегося данной продукционной базой знаний для интерпретации поступивших в систему данных.

Обычно она выполняет две функции:

Просмотр существующих данных (фактов) из рабочей памяти (базы дан­ных) и правил из базы знаний и добавление (по мере возможности) в ра­бочую память новых фактов;

Определение порядка просмотра и применения правил. Этот механизм управляет процессом консультации, сохраняя для пользователя инфор­мацию о полученных заключениях, и запрашивает у него информацию, когда для срабатывания очередного правила в рабочей памяти оказывает­ся недостаточно данных [Осуга, Саэки, 1990].

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

Действие компонента вывода основано на применении правила, называемого modus ponens: "Если известно, что истинно утверждение А, и существует правило вида "ЕСЛИ А, ТО В", тогда утверждение В также истинно".

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

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

^ Управляющий компонент определяет порядок применения правил и выполняет четыре функции:


  1. Сопоставление- образец правила сопоставляется с имеющимися фактами.

  2. Выбор - если в конкретной ситуации могут быть применены сразу несколько правил, то из них выбирается одно, наиболее подходящее по заданному критерию (разрешение конфликта).

  3. Срабатывание - если образец правила при сопоставлении совпал с какими-либо фактами из рабочей памяти, то правило срабатывает.

  4. Действие - рабочая память подвергается изменению путем добавления в нее заключения сработавшего правила. Если в правой части правила содержится указание на какое-либо действие, то оно выполняется (как, например, в системах обеспечения безопасности информации).
Интерпретатор продукций работает циклически. В каждом цикле он про­сматривает все правила, чтобы выявить те, посылки которых совпадают с известными на данный момент фактами из рабочей памяти. После выбора правило срабатывает, его заключение заносится в рабочую память, и затем цикл повторяется сначала.

В одном цикле может сработать только одно правило. Если несколько пра­вил успешно сопоставлены с фактами, то интерпретатор производит выбор по определенному критерию единственного правила, которое срабатывает в данном цикле. Цикл работы интерпретатора схематически представлен на рис. 1.5.

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