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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Коммерческие  успехи к фирмам-разработчикам систем искусственного интеллекта (СИИ) пришли не сразу. На протяжении 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) для ее функционирования требуются следующие знания:

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

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

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

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

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

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