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

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

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

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

  • интеллектуальные информационно-поисковые системы;
  • экспертные системы (ЭС).

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

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

Базовая структура экспертной системы приведена на рисунке ниже.

Структурные элементы, составляющие экспертную систему, выполняют следующие функции.

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

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

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

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

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

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

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

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

Преимущества экспертных систем:

  • Постоянство. Экспертные системы ничего не забывают в отличие от человека-эксперта.
  • Воспроизводимость. Можно сделать любое количество копий экспертной системы, а обучение новых экспертов отнимает много времени и средств.
  • Эффективность. Может увеличить производительность и уменьшать затраты персонала.
  • Постоянство. С использованием экспертных системам подобные транзакции обрабатываются одним и тем же способом. Система будет делать сопоставимые рекомендации для похожих ситуаций.
  • Влияние на людей. Новый эффект (самая современная ин­фор­ма­ция, имеющая влияние на здравый смысл). Главный эффект (ранняя информация доминирует над здравым смыслом).
  • Документация. Экспертная система может документировать процесс решения.
  • Законченность. Экспертная система может выполнять обзор всех транзакций, a человек-эксперт сможет сделать обзор только отдельной выборки.
  • Своевременность. Погрешности в конструкциях и-или могут быть своевременно найдены.
  • Широта. Могут быть объединены знания многих экспертов, что дает системе больше широты, чем с вероятно может достичь один человек.
  • Снижение риска ведения дела благодаря последовательности принятия решения документированности и компетентности.

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

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

Экспертные системы не хороши, если решения не существует или когда проблема лежит вне области их компетенции.

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

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

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

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

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

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

Рис. 10.2. Технология разработки экспертных систем

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

При решении проблемы получения знаний выделяют три стратегии: приобретение знаний, извлечение знаний и обнаружение знаний.

Под приобретением (acquisition) знаний понимается способ автоматизированного наполнения базы знаний посредством диалога эксперта и специальной программы.

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

Термины «обнаружение знаний» (knowledge discovery), а также Data Mining связывают с созданием компьютерных систем, реализующие методы автоматического получения знаний.

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

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

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

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

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

Задача стадии тестирования — выявление ошибок и выработка рекомендаций по доводке прототипа экспертной системы до промышленного образца.

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

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

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

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

  • символьные языки программирования (LISP, INTERLISP, SMALLTALK);
  • языки инженерии знаний, то есть языки программирования, позволяющие реализовать один из способов представления знаний (OPS5, LOOPS, KES, Prolog);
  • оболочки экспертных систем (или пустые экспертные системы), то есть системы, не содержащие знаний ни о какой предметной области (EMYCIN, ЭКО, ЭКСПЕРТ, EXSYS RuleBook, Expert System Creator и др.)