Назначение экспертных систем

Назначение  экспертных систем

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

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

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

 технология  ЭС является важнейшим средством  в решении глобальных проблем  традиционного программирования: длительность  и, следовательно, высокая стоимость  разработки сложных приложений;

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

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

По мнению ведущих  специалистов , в недалекой перспективе  ЭС найдут следующее применение:

 ЭС будут  играть ведущую роль во всех  фазах проектирования, разработки, производства, распределения, продажи,  поддержки и оказания услуг;

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

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

Неформализованные задачи обычно обладают следующими особенностями:

 ошибочностью, неоднозначностью, неполнотой и  противоречивостью исходных данных;

 ошибочностью, неоднозначностью, неполнотой и  противоречивостью знаний о проблемной  области и решаемой задаче;

 большой размерностью  пространства решения, т.е. перебор  при поиске решения весьма  велик;

 динамически  изменяющимися данными и знаниями.

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

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

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

Коммерческие  успехи к фирмам-разработчикам систем искусственного интеллекта (СИИ) пришли не сразу. На протяжении 1960 - 1985 гг. успехи ИИ касались в основном исследовательских  разработок, которые демонстрировали  пригодность СИИ для практического  использования. Начиная примерно с 1985 г. (в массовом масштабе с 1988 - 1990 гг.), в первую очередь ЭС, а в последние  годы системы, воспринимающие естественный язык (ЕЯ-системы), и нейронные сети (НС) стали активно использоваться в коммерческих приложениях.

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

Причины, приведшие  СИИ к коммерческому успеху, следующие.

Интегрированность. Разработаны инструментальные средства искусственного интеллекта (ИС ИИ), легко интегрирующиеся с другими информационными технологиями и средствами (с CASE, СУБД, контроллерами, концентраторами данных и т.п.).

Открытость  и переносимость. ИС ИИ разрабатываются с соблюдением стандартов, обеспечивающих открытость и переносимость [14].

Использование языков традиционного  программирования и  рабочих станций. Переход от ИС ИИ, реализованных на языках ИИ (Lisp, Prolog и т.п.), к ИС ИИ, реализованным на языках традиционного программирования (С, C++ и т.п.), упростил обеспечение интегриро-ванности, снизил требования приложений ИИ к быстродействию ЭВМ и объемам оперативной памяти. Использование рабочих станций (вместо ПК) резко увеличило круг приложений, которые могут быть выполнены на ЭВМ с использованием ИС ИИ.

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

Проблемно/предметно-ориентированные  ИС ИИ. Переход от разработок ИС ИИ общего назначения (хотя они не утратили свое значение как средство для создания ориентированных ИС) к проблемно/предметно-ориентированным ИС ИИ [9] обеспечивает: сокращение сроков разработки приложений; увеличение эффективности использования ИС; упрощение и ускорение работы эксперта; повторную используемость информационного и программного обеспечения (объекты,классы,правила,процедуры).

Структура экспертных систем

Типичная  статическая ЭС состоит из следующих  основных компонентов (рис. 1.):

  • решателя (интерпретатора);
  • рабочей памяти (РП), называемой также базой данных (БД);
  • базы знаний (БЗ);
  • компонентов приобретения знаний;
  • объяснительного компонента;
  • диалогового компонента.
 

 

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

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

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

Компонент приобретения знаний автоматизирует процесс наполнения ЭС знаниями, осуществляемый пользователем-экспертом.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

"Почему система  задает тот или иной вопрос?", "как ответ, собираемый системой, получен?".

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

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

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

Этапы разработки экспертных систем

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

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

1) существуют  эксперты в данной области,  которые решают задачу значительно  лучше, чем начинающие специалисты;

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

3) эксперты способны  вербализовать (выразить на естественном  языке) и объяснить используемые  ими методы, в противном случае  трудно рассчитывать на то, что  знания экспертов будут "извлечены"  и вложены в ЭС;

4) решение задачи  требует только рассуждений, а  не действий;

5) задача не  должна быть слишком трудной  (т.е. ее решение должно занимать  у эксперта несколько часов  или дней, а не недель);

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

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

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

 решение задачи  принесет значительный эффект, например  экономический;

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

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

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

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

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

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

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

4) задача должна  быть достаточно узкой, чтобы  решаться методами ЭС, и практически  значимой.

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

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

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

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

  

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

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

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

Интерфейс с конечным пользователем

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

RTworks не обладает  собственными средствами для  отображения текущего состояния  управляемого процесса. Разработчик  приложения вынужден использовать  систему Dataview фирмы VI Corporation, что  в значительной степени ограничивает  его возможности.

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

ограничивается  текстовым режимом работы.

Представление знаний в экспертных системах

Первый  и основной вопрос, который надо решить при представлении знаний, - это вопрос определения состава  знаний, т.е. определение того, "ЧТО  ПРЕДСТАВЛЯТЬ" в экспертной системе. Второй вопрос касается того, "КАК  ПРЕДСТАВЛЯТЬ" знания. Необходимо отметить, что эти две проблемы не являются независимыми. Действительно, выбранный  способ представления может оказаться  непригодным в принципе либо неэффективным  для выражения некоторых знаний.

По нашему мнению, вопрос "КАК ПРЕДСТАВЛЯТЬ" можно  разделить на две в значительной степени независимые задачи: как  организовать (структурировать) знания и как представить знания в  выбранном формализме.

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

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

    определение состава представляемых знаний;

    организацию знаний;

    представление знаний, т.е. определение модели представления. Состав знаний ЭС определяется следующими факторами:

    проблемной  средой;

    архитектурой  экспертной системы;

    потребностями и целями пользователей;

    языком общения.

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

 знания о  процессе решения задачи (т.е.  управляющие знания), используемые  интерпретатором (решателем); 

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

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

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

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

1) знания о  методах взаимодействия с внешним  окружением;

2) знания о  модели внешнего мира.

Зависимость состава  знаний от требований пользователя проявляется  в следующем:

 какие задачи (из общего набора задач) и  с какими данными хочет решать  пользователь;

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

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

 каковы требования  к языку общения и организации  диалога;

 какова степень  общности (конкретности) знаний о  проблемной области, доступная  пользователю;

 каковы цели  пользователей.

Состав знаний о языке общения зависит как  от языка общения, так и от требуемого уровня понимания.

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