Введение в экспертные системы

№1 Введение в экспертные системы

 

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

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

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

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

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

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

  1. задачи не могут быть заданы в числовой форме;
  2. цели не могут быть выражены в терминах точно определенной целевой функции;
  3. не существует алгоритмического решения задач;
  4. Неформализованные задачи обычно обладают:
  5. ошибочностью, неоднозначностью, неполнотой и противоречивостью исходных данных;
  6. ошибочностью, неоднозначностью, неполнотой и противоречивостью знаний о проблемной области и решаемой задаче;
  7. большой размерностью пространства решения, т.е. перебор при поиске решения весьма велик;
  8. динамически изменяющимися данными и знаниями.

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

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

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

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

Рисунок 1.1 отражает различные аспекты состояния рынка искусственного интелекта: инвестиции в разработку в области искусственного интелекта (США, Европа, Япония) (Рисунок 1.1, а); доля систем в информатике (программном обеспечении) (Рисунок 1.1, б); доходы от продаж традиционных языков программирования (Рисунок 1.1, в); инвестиции только в программное обеспечение (США) (Рисунок 1.1, г).

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

Рисунок 1.1 . Состояние и перспективы рынка искусственного интеллекта 

 

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

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

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

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

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

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

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

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

Рисунок 1.2 Основные компоненты ЕС 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Рисунок 1.3 Классификация  экспертных систем 

 

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

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

№ 3 Классификация экспертных систем

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

Интерпретация данных экспертных систем

 

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

  1. Обнаружение и идентификация различных типов океанских судов по результатам аэрокосмического сканирования – SIAP.
  2. Определение основных типов свойств личности по результатам психодиагностического тестирования в системах АВАНТЕСТ и МИКРОЛЮШЕР.

 
Рисунок 1.3 Классификация  экспертных систем

 

Диагностика экспертных систем

 

Диагностика – процесс соотнесения объекта с некоторым классом объектов и/или обнаружение неисправности в некоторой системе. Неисправность – это отклонение от нормы. Такая трактовка позволяет с единых теоретических позиций рассматривать и неисправность оборудования в технических системах, и заболевания живых организмов, и всевозможные природные аномалии. Важной спецификой является здесь необходимость понимание функциональной структуры («анатомии») диагностируемой системы. 
Примеры:

  1. Диагностика и терапия сужения коронарных сосудов – ANGY.
  2. Диагностика ошибок в аппаратуре и математическом обеспечении ЭВМ – CRIB.

Мониторинг экспертных систем

 

Основная  задача мониторинга – непрерывная  интерпретация данных в реальном масштабе времени и сигнализация о выходе тех или иных параметров за допустимые пределы. Главные проблемы – пропуск тревожной ситуации и инверсная задача «ложного» срабатывания. Сложность этих проблем в размытости симптомов тревожных ситуаций и необходимость учета временного контекста. 
Примеры:

  1. Контроль работы электростанций  СПРИНТ, помощь диспетчерам атомного реактора – REACTOR.
  2. Контроль аварийных датчиков на химическом заводе – FALCON.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

№ 4 Проектирование экспертных систем

 

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

  1. Проектирование конфигураций ЭВМ VAX-11/780 в системе XCON, проектирование БИС – CADHELP.
  2. Синтез электрических цепей – SYN.

 

                      Прогнозирование экспертных систем

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

  1. Предсказание погоды – WIILARD.
  2. Оценки будущего урожая – PLANT.
  3. Прогнозы в экономике – ECON.

 

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

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

  1. Планирование поведения робота – STRIPS.
  2. Планирование промышленных заказов – ISIS.
  3. Планирование эксперимента – MOLGEN.

 

 

Обучение экспертным системам

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

  1. Обучение языку программирования LISP в системе «учитель ЛИСПа».
  2. Обучение языку Паскаль – система PROUST.

 

 

                    Управление экспертными системами

 

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

  1. Помощь в управлении газовой котельной – GAS.
  2. Управление системой календарного планирования – Project Assistant.

 

 

Поддержка принятия решений в экспертных системах

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

  1. Выбор стратегии выхода фирмы из кризисной ситуации – CRYSIS.
  2. Помощь в выборе страховой компании или инвестора – CHOICE.

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

Классификация экспертных систем по связи с реальным временем

В экспертных системах классификация по связи с реальным временем существует:

Статические экспертные системы, квазидинамические экспертные системы и Динамические экспертные системы

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

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

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

  • Управление гибкими производственными комплексами, мониторинг в реанимационных палатах.

Программный инструментарий для разработки динамических систем – G2

 

 

 

 

№5 Классификация экспертных систем по типу ЭВМ

 

На сегодняшний  день существуют:

  1. Экспертные системы для уникальных стратегически важных задач на супер-ЭВМ –  CRAY, CONVEX.
  2. Экспертные системы на ЭВМ средней производительности типа Mainframe.
  3. Экспертные системы на символьных процессорах и рабочих станциях SUN, Silicon Graphics, APOLLO.
  4. Экспертные системы на мини- и супермини-ЭВМ VAX, micro-VAX.
  5. Экспертные системы на персональных компьютерах.

Классификация по степени интеграции с другими  программами

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

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

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

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

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

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

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

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

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

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

Введение в экспертные системы