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



Содержание

 

 

Введение

 

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

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

В настоящее  время ЭС применяются в различных  областях человеческой деятельности. Наибольшее распространение ЭС получили в проектировании интегральных микросхем, в поиске неисправностей, в военных приложениях и автоматизации программирования. Применение ЭС позволяет: 1) при проектировании интегральных микросхем повысить производительность труда в 3-6 раз, при этом выполнение некоторых операций ускоряется в 10-15 раз; 2) ускорить поиск неисправностей в устройствах в 5-10 раз; 3) повысить производительность труда программистов в 5 раз; 4) при профессиональной подготовке сократить (без потери качества) в 8-12 раз затраты на индивидуальную работу с обучаемым.

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

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

 

1. ОБЩАЯ ХАРАКТЕРИСТИКА ЭС

 

Экспертная  система – наиболее известный и распространенный вид интеллектуальных систем.

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

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

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

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

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

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

 

2. СТРУКТУРА И РЕЖИМЫ ИСПОЛЬЗОВАНИЯ ЭС

 

Типичная ЭС состоит из следующих основных компонентов: решателя (интерпретатора), рабочей памяти (РП), называемой также базой данных (БД), базы знаний (БЗ), компонентов приобретения знаний, объяснительного и диалогового компонентов (рис. 1).

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

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

 


 

 

 

 

 

 

Рис. 1. Типовая  структура экспертной системы

 

Решатель, используя  исходные данные из РП и знания из БЗ формирует такую последовательность правил, которые, будучи применёнными к исходным данным, приводят к решению задачи.

Объяснительный  компонент объясняет, как система получила решение задачи (или почему она не получила решения) и какие знания она при этом использовала, что облегчает эксперту тестирование системы и повышает доверие пользователя к подученному результату.

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

В разработке ЭС участвуют представители следующих специальностей:

эксперт в той  проблемной области, задачи которой будет решать ЭС;

инженер по знаниям – специалист по разработке ЭС;

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

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

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

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

Экспертная  система работает в двух режимах; приобретения знаний и решения задач (называемом также режимом консультации или режимом использования ЭС).

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

Важную роль в режиме приобретения знаний играет объяснительный компонент. Именно благодаря ему эксперт на этапе тестирования локализует причины неудачной работы ЭС, что позволяет эксперту целенаправленно модифицировать старые или вводить новые знания. Обычно объяснительный компонент сообщает следующее: как правильно используют информацию пользователя; почему использовались или не использовались данные или правила; какие были сделаны выводы и т.д. Все объяснения делаются, как правило на ограниченном естественном языке или языке графики.

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

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

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

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

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

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

После обработки  данные поступают в РП. На основе входных данных в РП, общих данных о проблемной области и правил из БЗ решатель (интерпретатор) формирует решение задачи.

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

 

3. КЛАССИФИКАЦИЯ ИНСТРУМЕНТАЛЬНЫХ СРЕДСТВ ЭС

 

В широком толковании в инструментарий включают и аппаратуру, ориентированную на разработку ЭС (аппаратурный инструментарий).

На проектирование и создание одной ЭС раньше требовалось 20-30 чел.-лет. В настоящее время имеется ряд средств, ускоряющих создание ЭС. Эти средства называются инструментальными (ИС), или инструментарием. Использование ИС сокращает время разработки ЭС в 3-5 раз.

Экспертные  системы выполняются на ЭВМ следующих  типов: общего назначения; ПЭВМ; интеллектуальные рабочие станции; последовательные символьные ЭВМ типа ЛИСП-машин и ПРОЛОГ-машин; параллельные символьные ЭВМ.

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

Назначение  определяет, для работы в каких  проблемных областях и для создания какой стадий ЭС предназначено ИС.

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

По типу ИС классифицируются следующим образом:

  1. символьные языки программирования, ориентированные на создание ЭС и систем ИИ (например, LISP, INTERLISP, SMALLTALK);
  2. языки инженерных знаний, т.е. языки высокого уровня, ориентированные на построение ЭС (например, OPS-5, LOOPS, KES, ПРОЛОГ);
  3. системы, автоматизирующие разработку (проектирование) ЭС (например, KEE, ART, TEIRESIAS, AGE, TIMM), их часто называют окружением (environment) для разработки систем ИИ, ориентированных на знания;
  4. оболочки ЭС (или пустые ЭС) – ЭС не содержащие знаний ни о какой проблемной области (например, ЭКСПЕРТИЗА, EMYCIN, ЭКО, ЭКСПЕРТ).

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

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

Развитие систем, автоматизирующих разработку ЭС, приводит к появлению ИС, которые можно назвать настраиваемыми оболочками. Эти ИС позволяют разработчик использовать оболочку не как нечто неизменное, а генерировать оболочку из множества механизмов, имеющихся в ИС. Типичными таймерами таких ИС являются KEE, ART, ЭКСПЕРТИЗА, ГЛОБ.

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

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

Универсальность задаётся совокупностью двух параметров; универсальностью представления знаний и универсальностью функционирования. Универсальность представления характеризует способ (модель) представления знаний в ИС и принимает следующие значения: единое представление – ИС использует одну модель; интегральное представление – ИС допускает интегральное использование нескольких моделей; универсальное – ИС допускает интегральное использование всех основных моделей представления. К основным моделям представления относятся: правила; фреймы или семантические сети; логические модели (исчисление предикатов). Примерами ИС, в которых используется единое представление, является ПРОЛОГ, интегральное представление – CENTAUR, а универсальное – KEE, ART.

Универсальность функционирования характеризует механизмы (парадигмы), определяющие, как в ИС задается поведение (функционирование) системы, и принимает следующие значения: единый механизм функционирования – ИС использует один механизм функционирования; интегральное функционирование – ИС допускает интегральное использование нескольких механизмов функционирования; универсальное функционирование – ИС допускает интегральное использование всех основных механизмов. К основным механизмам (парадигмам программирования) относятся: процедурное программирование; обратное программирование; программирование, ориентированное на данные; программирование, ориентированное на правила.

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

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

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

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

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

Основные свойства определяют особенности ИС с точки  зрения реализации компонентов ЭС. Среда функционирования определяет тип ЭВМ, на которой реализовано ИС, тип операционной системы, в среде которой ИС работает, и используемый язык программирования.

 

4. ОРГАНИЗАЦИЯ ЗНАНИЙ В ЭС

 

Для специалистов в области ИИ термин знания означает информацию, которая необходима программе, чтобы ока вела себя «интеллектуально». Эта информация принимает форму фактов или правил.

Факты и правила в экспертной системе не всегда либо истинны, либо ложны; иногда существует некоторая степень неуверенности в достоверности факта или точности правила. Если это сомнение выражено явно, то оно называется “коэффициентом уверенности”.

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

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

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


 

 

 

 

 

 

 

 

 

 

 

Рис. 2. Алгоритмические и эвристические модели данных

 

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

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


 

 

 

 

 

 

 

 

 

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

 

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

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


 

 

 

 

 

 

 

 

Рис. 4. Состав экспертной системы

 

Обычно ясно, как знания предметной области могут  быть записаны в виде фактов и правил, но далеко не ясно, каким образом  конструировать и использовать так называемый “механизм вывода”. Эта неясность происходит из-за отсутствия простого и общего метода организации логического вывода. Его структура зависит и от специфики предметной области и от того, как знания структурированы и организованы в ЭС. Многие языки высокого уровня, предназначенные для построения экспертных систем, например ЕМYCIN, имеют механизм вывода, в некотором смысле встроенный в язык как его часть.

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

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