Основные концепции экспертных систем

Знания экспертной системы могут быть представлены различными способами - это могут быть правила, объекты и отношения между ними. Один из распространенных методов представления знаний в виде правил продукций типа ЕСЛИ – ТО, например

ЕСЛИ свет=красный ТО стоп

Если действительно свет красный, это соответствует шаблону "свет=красный". Это правило выполняется и выполняет свои действия "стоп". Хотя это очень простой пример, многие сложные экспертные системы были построены с представлением знаний экспертов в виде правил. Подход к разработке экспертных систем, основанный на знаниях, полностью вытеснил ранний подход к ИИ 1950-х и 1960-х годов, когда пытались использовать сложные методы рассуждений, без опоры на знания. Некоторые виды инструментальных сред для разработки ЭС, такие как CLIPS, Visual Prolog, позволяют использовать сочетание объектов и правил. Правила могут использовать шаблоны объектов, а также шаблоны фактов. Кроме того, объекты могут функционировать независимо от правил.

В настоящее время разработано множество экспертных систем, основанных на знаниях. Большие системы, содержащие тысячи правил, таких, как XCON/RL системы Digital Equipment Corporation, «знают» гораздо больше, чем любой отдельный человек-эксперт по настройке компьютерных систем. Ряд небольших систем для решения специализированных задач были также построены на основе нескольких сотен правил. Эти небольшие системы не могут работать на уровне экспертов, но предназначены для использования преимуществ технологии экспертных систем для выполнения наукоемких задач. Систем знаний этих небольших могут содержаться в книгах, журналах, или из других общедоступных документах.

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

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

 

 

Рисунок 1.4 – Процесс построения ЭС

 

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

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

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

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

Человек-эксперт знает предел своих и качество своих советов. Человек-эксперт также знает, когда можно "нарушить правила".

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

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

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

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