Особенности экспертных систем
Экспертная система — наиболее известный и распространенный вид интеллектуальных систем.
Выделяют следующие характеристики ЭС [85]: назначение, проблемная область, глубина анализа проблемной области, тип используемых методов и знаний, класс системы, стадия существования, инструментальные средства.
Назначение определяется следующей совокупностью параметров: цель создания экспертной системы — для обучения специалистов, для решения задач, для автоматизации рутинных работ, для тиражирования знаний экспертов и т. п.; основной пользователь — не специалист в области экспертизы, специалист, учащийся.
Проблемная область может быть определена совокупностью параметров предметной области и задач, решаемых в ней. Каждый из параметров можно рассматривать с точки зрения как конечного пользователя, так и разработчика экспертной системы.
С точки зрения пользователя предметную область можно характеризовать ее описанием в терминах пользователя, включающим наименование области, перечень и взаимоотношения подобластей и т.п., а задачи, решаемые существующими экспертными системами, — их типом. Обычно выделяют следующие типы задач:
интерпретация символов или сигналов — составление смыслового описания по входным данным;
диагностика — определение неисправностей (заболеваний) по симптомам;
предсказание — определение последствий наблюдаемых ситуаций;
конструирование — разработка объекта с заданными свойствами при соблюдении установленных ограничений;
планирование — определение последовательности действий, приводящих к желаемому состоянию объекта;
слежение — наблюдение за изменяющимся состоянием объекта и сравнение его показателей с установленными или желаемыми;
управление — воздействие на объект для достижения желаемого поведения.
Структура и режимы использования ЭС
Типичная ЭС состоит из следующих основных компонентов: решателя (интерпретатора), рабочей памяти (РП), называемой также базой данных (БД), базы знаний (БЗ), компонентов приобретения знаний, объяснительного и диалогового компонентов (рис. 5.1).
База данных предназначена для хранения исходных и промежуточных данных решаемой в текущий момент задачи. Этот термин совпадает по названию, но не по смыслу с термином, применяемым в информационно-поисковых системах (ИПС) и системах управления базами данных (СУБД) для обозначения всех данных (и в первую очередь не текущих, а долгосрочных), хранимых в системе.
База знаний в ЭС предназначена для хранения долгосрочных данных, описывающих рассматриваемую область (а не текущих данных), и правил, описывающих целесообразные преобразования данных этой области.
Рис. 5.1.
Типовая структура экспертной системы
Решатель, используя исходные данные из РП и знания из БЗ, формирует такую последовательность правил, которые, будучи примененными к исходным данным, приводят к решению задачи.
Объяснительный компонент объясняет, как система получила решение задачи (или почему она не получила решения) и какие знания она при этом использовала, — это облегчает эксперту тестирование системы и повышает доверие пользователя к полученному результату.
Диалоговый компонент ориентирован на организацию дружелюбного общения со всеми категориями пользователей как в ходе решения задач, так и приобретения знаний, объяснения результатов работы.
В разработке ЭС участвуют представители следующих специальностей:
эксперт в той проблемной области, задачи которой будет решать ЭС;
инженер по знаниям — специалист по разработке ЭС;
программист — специалист по разработке инструментальных средств.
Необходимо отметить, что отсутствие среди участников разработки инженера по знаниям (т.е. его замена программистом) либо приводит к неудаче процесс создания ЭС, либо значительно удлиняет его. Эксперт определяет знания (данные и правила), характеризующие проблемную область, обеспечивает полноту и правильность введения в ЭС знаний.
Инженер по знаниям помогает эксперту выявить и структурировать знания, необходимые для работы ЭС. Он осуществляет выбор того ИС, которое наиболее подходит для данной проблемной области, и определяет способ того представления знаний в этом ИС, выделяет и программирует (традиционными средствами) те стандартные функции (типичные для данной проблемной области), которые будут использоваться в правилах, вводимых экспертом.
Программист разрабатывает ИС, содержащее в пределе все основные компоненты ЭС, осуществляет сопряжение ИС с той средой, в которой оно будет использовано.
Экспертная система работает в двух режимах: приобретения знаний и решения задач (называемом также режимом консультации или режимом использования ЭС).
В режиме приобретения знаний общение с ЭС осуществляется через посредничество инженера по знаниям. Эксперт описывает проблемную область в виде совокупности данных и правил. Данные определяют объекты, их характеристики и значения, существующие в области экспертизы. Правила определяют способы манипулирования данными, характерные для рассматриваемой проблемной области. Эксперт, используя компонент приобретения знаний, наполняет систему знаниями, которые позволяют ЭС в режиме решения самостоятельно (без эксперта) решать задачи из проблемной области.
Важную роль в режиме приобретения знаний играет объяснительный компонент. Именно благодаря ему эксперт на этапе тестирования локализует причины неудачной работы ЭС, что позволяет эксперту целенаправленно модифицировать старые или вводить новые знания. Обычно объяснительный компонент сообщает следующее: как правильно используют информацию пользователя; почему использовались или не использовались данные или правила; какие были сделаны выводы и т. д. Все объяснения делаются, как правило, на ограниченном естественном языке или языке графики.
Режиму приобретения знаний при традиционном подходе к разработке программ соответствуют этапы алгоритмизации, программирования и отладки, выполняемые программистом. В отличие от традиционного подхода разработку программ осуществляет эксперт (с помощью ЭС), не владеющий программированием, а не программист.
В режиме консультации общение с ЭС осуществляет конечный пользователь, которого интересует результат и (или) способ получения решения. Пользователь в зависимости от назначения ЭС может не быть специалистом в данной проблемной области — в этом случае он обращается к ЭС за советом, не умея получить ответ сам; либо пользователь является специалистом — тогда он обращается к ЭС, чтобы либо ускорить процесс получения результата, либо возложить на ЭС рутинную работу. Термин "пользователь" подразумевает, что таковым может быть и эксперт, и инженер по знаниям, и программист. Поэтому, когда хотят подчеркнуть, что речь идет о том, для кого делалась ЭС, используют термин "конечный пользователь".
В режиме консультации данные о задаче пользователя обрабатываются диалоговым компонентом, который выполняет следующие действия:
распределяет роли участников (пользователя и ЭС) и организует их взаимодействие в процессе кооперативного решения задачи;
преобразует данные пользователя о задаче, представленные на привычном для пользователя языке, на внутренний язык системы;
преобразует сообщения системы, представленные на внутреннем языке, в сообщения на языке, привычном для пользователя (обычно это ограниченный естественный язык или язык графики).
После обработки данные поступают в РП. На основе входных данных в РП, общих данных о проблемной области и правил из БЗ решатель (интерпретатор) формирует решение задачи.
В отличие от традиционных программ ЭС в режиме решения задачи не только исполняет предписанную последовательность операций, но и предварительно формирует ее. Если ответ ЭС непонятен пользователю, то он может потребовать объяснения того, как ответ получен.
Организация знаний в ЭС
Для специалистов в области ИИ термин знания означает информацию, которая необходима программе, чтобы она вела себя "интеллектуально". Эта информация принимает форму фактов или правил.
Факты и правила в экспертной системе не всегда либо истинны, либо ложны; иногда существует некоторая степень неуверенности в достоверности факта или точности правила. Если это сомнение выражено явно, то оно называется "коэффициентом уверенности".
Многие правила экспертной системы являются эвристиками, т. е. эмпирическими правилами или упрощениями, которые эффективно ограничивают поиск решения. Экспертная система использует эвристики, потому что задачи, которые она решает, будь то поиск новых месторождений или согласование исков, как правило, трудны и не до конца понятны. Эти задачи не поддаются строгому математическому анализу или алгоритмическому решению. Алгоритмический метод гарантирует корректное или оптимальное решение задачи, тогда как эвристический метод дает приемлемое решение в большинстве случаев.
На рис. 5.2 показано различие между алгоритмическим и эвристическим методами. Здесь сравнивается алгоритм предотвращения захвата самолетов на коммерческих авиалиниях с эвристическим методом, предназначенным для той же цели [85].
Алгоритм обеспечивает полную гарантию предотвращения захвата самолета, потому что в принципе полностью исключает возможность проникновения оружия на борт самолета. К сожалению, он требует слишком много времени, слишком дорог и, что еще важнее, слишком непопулярен, чтобы иметь какую-либо практическую ценность.
Приведенный эвристический метод также может предотвратить большинство попыток захвата самолетов, но не гарантирует, что они вообще не возникнут. Использование эвристических правил делает поиск решения намного более легким и более практичным.
Рис. 5.2.
Алгоритмические и эвристические модели данных
Знания в ЭС организованы таким образом, чтобы знания о предметной области отделить от других типов знаний системы, таких, как общие знания о том, как решать задачи, или знания о том, как взаимодействовать с пользователем, например как печатать текст на терминале пользователя или как изменить текст в соответствии с командами пользователя. Выделенные знания о предметной области называются базой знаний, тогда как общие знания о нахождении решений задач называются механизмом вывода. Программа, которая работает со знаниями, организованными подобным образом, называется системой, основанной на знаниях.
Как показано на рис. 5.3, в сущности, все экспертные системы являются системами, основанными на знаниях, но не наоборот. Программу ИИ для игры в "крестики и нолики" нельзя будет считать экспертной системой, даже если в ней знания о предметной области отделить от остальной программы.
Рис. 5.3.
Экспертные системы как системы, основанные на знаниях
База знаний ЭС содержит факты (данные) и правила (или другие представления знаний), использующие эти факты как основу для принятия решений. Механизм вывода содержит интерпретатор, определяющий, каким образом применять правила для вывода новых знаний, и диспетчер, устанавливающий порядок применения этих правил. Такая структура экспертной системы показана на рис. 5.4.
Выделение знаний о предметной области облегчает инженеру по знаниям разработку процедур для манипулирования ими. Имеет первостепенное значение, каким образом система использует свои знания, поскольку ЭС должна иметь и адекватные знания, и средства для их эффективного применения, чтобы ее можно было считать умелой в каком-либо виде деятельности. Следовательно, для того, чтобы быть умелой, ЭС должна иметь базу знаний, содержащую высококачественные знания о предметной области, а ее механизм
Рис. 5.4.
Состав экспертной системы
вывода должен содержать знания о том, как эффективно использовать знания о предметной области.
Концепция механизма вывода ЭС часто вызывает некоторое недоумение среди начинающих разработчиков. Обычно ясно, как знания предметной области могут быть записаны в виде фактов и правил, но далеко не ясно, каким образом конструировать и использовать так называемый "механизм вывода". Это недоумение возникает от отсутствия простого и общего метода организации логического вывода. Его структура зависит и от специфики предметной области, и от того, как знания структурированы и организованы в ЭС.
Многие языки высокого уровня, предназначенные для построения экспертных систем, например EMYCIN, имеют механизм вывода, в некотором смысле встроенный в язык как его часть.
Другим примером может служить язык программирования ПРОЛОГ со встроенным в него механизмом логического вывода, который может быть непосредственно использован при создании простых ЭС.
Языки более низкого уровня, например LISP, требуют, чтобы создатель ЭС спроектировал и реализовал механизм вывода.
Оба подхода имеют свои достоинства и недостатки. Язык высокого уровня со встроенным механизмом вывода облегчает работу создателя экспертной системы. В то же время у него, очевидно, меньше возможностей определять способы организации знаний и доступа к ним, и ему следует очень внимательно рассмотреть вопрос о том, годится или нет на самом деле предлагаемая схема управления процессом поиска решения для данной предметной области. Использование языка более низкого уровня без механизма вывода требует больших усилий на разработку, но позволяет создать нужные программные блоки, — разработчик может встроить их в схему управления процессом решения, который будет адекватен данной предметной области.
Что касается механизма вывода, то здесь дело не ограничивается выбором "все или ничего". Так, некоторые инструменты построения экспертных систем имеют набор встроенных механизмов вывода, но позволяют разработчику модифицировать или переопределять их для большего соответствия с предметной областью.
В [10] рассматривается, каким образом знания структурированы в программах, т. е. способы представления знаний. Существует много стандартных способов представления знаний, и при построении ЭС может быть использован любой из них, сам по себе или в сочетании с другими. Каждый способ позволяет получить программу с некоторыми преимуществами — делает ее более эффективной, облегчает ее понимание и модификацию. Широкий обзор наиболее важных способов можно найти в "Справочнике по искусственному интеллекту". В современных ЭС чаще всего применяются три самых важных метода представления знаний: правила (самый популярный), семантические сети и фреймы.
Представление знаний, основанное на правилах, построено на использовании выражений вида ЕСЛИ (условие) — ТО (действие). Например:
[1] Если пациент был по профессии изолировщиком до 1988 г., то пациент непосредственно работал с асбестом.
[2] Если пациент непосредственно работал с асбестом и находился при этом в закрытом помещении, то пациент получил большую дозу асбестовой пыли.
Когда текущая ситуация (факты) в задаче удовлетворяет или согласуется с частью правила ЕСЛИ, выполняется действие, определяемое частью ТО. Это действие может оказаться воздействием на окружающий мир (например, вызовет распечатку текста на терминале пользователя), или же повлиять на управление программой (например, вызвать проверку и запуск некоторого набора правил), или может сводиться к указанию системе о получении определенного заключения (например, необходимо добавить новый факт или гипотезу в базу данных).
Сопоставление частей ЕСЛИ правил с фактами может породить так называемую цепочку выводов. Цепочка выводов, образованная последовательным применением правил 1 и 2, изображена на рис. 5.5. Эта цепочка показывает, как система использует правила для вывода о том, насколько серьезную дозу канцерогенного вещества пациент получил при работе с асбестом.
Рис. 5.5.
Цепочка вывода для получения заключения о накопленной дозе асбестовой пыли
Правила обеспечивают естественный способ описания процессов, управляемых сложной и быстро изменяющейся внешней средой. Через правила можно определять, как программа должна реагировать на изменение данных; при этом не нужно заранее знать блок-схему управления обработкой данных. В программе традиционного типа схема передачи управления и использования данных предопределена в самой программе. Обработка здесь осуществляется последовательными шагами, а ветвление происходит только в заранее выбранных точках. Этот способ управления хорошо работает в случае задач, допускающих алгоритмическое решение, если к тому же при этом данные меняются достаточно медленно, например, при решении систем линейных уравнений. Для задач, ход решения которых управляется самими данными, где ветвление скорее норма, чем исключение, этот способ малоэффективен. В задачах такого рода правила дают возможность на каждом шаге оценить ситуацию и предпринять соответствующие действия. Применение правил упрощает объяснение того, что и как сделала программа, т. е. каким способом она пришла к конкретному заключению.
Представление знаний, основанное на фреймах, использует сеть узлов, связанных отношениями и организованных иерархически. Каждый узел представляет собой концепцию, которая может быть описана атрибутами и значениями, связанными с этим узлом. Узлы, которые занимают более низкое положение в иерархии, автоматически наследуют свойства узлов, занимающих более высокое положение. Эти методы обеспечивают естественный и эффективный путь классификации и построения таксономии, например, залежей руд или различных заболеваний.
Наиболее важные термины настоящей главы собраны в таблице 5.1.
Таблица 5.1. |
|
Термин
|
Значение
|
Алгоритм | Формальная процедура, которая гарантирует получение оптимального или корректного решения |
База знаний | Часть системы, основанной на знаниях, или экспертной системы, содержащей предметные знания |
Диспетчер | Часть механизма вывода, которая решает, когда и в каком порядке применять различные "куски" предметных знаний Знания Информация, необходимая программе для того, чтобы эта программа вела себя интеллектуально |
Интерпретатор | Часть механизма вывода, которая решает, каким образом применять предметные знания |
Коэффициент уверенности | Число, обозначающее вероятность или степень уверенности, с которой можно считать данный факт или правило достоверным или справедливым |
Механизм вывода | Та часть ЭС, в которой содержатся общие знания о схеме управления решением задач |
Правило | Предметные знания, знания о предметной области |
Представление знаний | Процесс структурирования предметных знаний с целью облегчить поиск решения задачи |
Семантическая сеть | Метод представления знаний посредством сети узлов, соответствующих концепциям или объектам — последние связаны дугами, которые описывают отношения между узлами |
Система, основанная на знаниях | Программа, в которой предметные знания представлены в явном виде и отделены от прочих знаний программы |
Фрейм | Метод представления знаний, когда свойства связываются с вершинами, представляющими концепции или объекты. Свойства описываются в терминах атрибутов (называемых слотами) и их значений |
Эвристики | Правило, упрощающее или ограничивающее поиск решений в предметной области, которая является сложной или недостаточно изученной |
Отличие ЭС от традиционных программ
Еще один способ определить ЭС — это сравнить их с обычными программами. Главное различие состоит в том, что ЭС манипулируют знаниями, тогда как обычные программы манипулируют данными. Фирма Teknowledge, которая занимается производством коммерческих экспертных систем, описывает эти различия, как показано в таблице 6.1 [81].
Таблица 6.1. |
|
Обработка данных
|
Инженерия знаний
|
Представление и использование данных Алгоритмы Повторный прогон Эффективная обработка больших баз данных |
Представление и использование знаний Эвристики Процесс логического вывода Эффективная обработка баз знаний |
Специалисты в области ИИ имеют несколько более узкое (и более сложное) представление о том, что такое ЭС. Под экспертной системой понимается программа для ЭВМ, которая обладает свойствами, изображенными на рис. 6.1.
Рассмотрим эти характеристики более подробно.
6.1.1. Компетентность ЭС
Экспертная система должна демонстрировать компетентность, т. е. достигать в конкретной предметной области того же уровня профессионализма, что и эксперты-люди. Но просто уметь находить хорошие решения еще недостаточно. Настоящие эксперты не только находят хорошие решения, но часто находят их очень быстро, тогда как новичкам для нахождения тех же решений, как правило, требуется намного больше времени. Следовательно, ЭС должна быть умелой — она должна применять знания для получения решений эффективно и быстро, используя приемы и ухищрения, какие применяют эксперты-люди, чтобы избежать громоздких или ненужных вычислений.
Для того чтобы по-настоящему подражать поведению эксперта-человека, ЭС должна обладать робастностью.
Это подразумевает не только глубокое, но и достаточно широкое понимание предмета. А этого можно достичь, используя общие знания и методы нахождения решений проблем, чтобы уметь рассуждать исходя из фундаментальных принципов в случае некорректных данных или неполных наборов правил. Это один из наименее разработанных методов в современных ЭС, но именно им успешно пользуются эксперты-люди.
Рис. 6.1.
Особенности ЭС, отличающие ее от обычных программ
6.1.2. Символьные рассуждения в ЭС
Эксперты, решая какие-то задачи (особенно такого типа, для решения которых применяются ЭС), обходятся без решения систем уравнений или других трудоемких математических вычислений. Вместо этого они с помощью символов представляют понятия предметной области и применяют различные стратегии и эвристики в процессе манипулирования этими понятиями. В ЭС знания тоже представляются в символьном виде, т. е. наборами символов, соответствующих понятиям предметной области. На языке ИИ символ — это строка знаков, соответствующая содержанию некоторого понятия реального мира.
Примеры символов:
продукт;
ответчик;
0.8.
Эти символы объединяют, чтобы выразить отношения между ними. Когда эти отношения представле
Примеры символьных структур:
(ДЕФЕКТНЫЙ продукт) (ВЫПУЩЕННЫЙ ответчиком продукт) (РАВНО (ОТВЕТСТВЕННОСТЬ ответчик) 0.8).
Эти структуры можно интерпретировать следующим образом: "продукт является дефектным", "продукт был выпущен в продажу ответчиком" и "ответственность ответчика равна 0.8".
При решении задачи ЭС вместо выполнения стандартных математических вычислений манипулирует этими символами. Нельзя сказать, что ЭС вообще не производит математических расчетов — она их делает, но в основном она приспособлена для манипулирования символами. Вследствие подобного подхода представление знаний — выбор, форма и интерпретация используемых символов — становится очень важным. Кроме того, эксперты могут получить задачу, сформулированную неким произвольным образом, и преобразовать ее к тому виду, который в наибольшей степени соответствует быстрому получению решения или гарантирует его максимальную эффективность. Эта способность переформулирования задачи — как раз то свойство, которое должно быть присуще ЭС для того, чтобы приблизить их мастерство к уровню экспертов-людей. К сожалению, большинство существующих в настоящее время ЭС не обладают этим умением.
6.1.3. Глубина ЭС
Экспертная система должна иметь глубокие знания; это значит, что она способна работать эффективно в узкой предметной области, содержащей трудные, нетривиальные задачи. Поэтому правила в ЭС с необходимостью должны быть сложными либо в смысле сложности каждого правила, либо в смысле их обилия. Экспертные системы, как правило, работают с предметными областями реального мира, а не с тем, что специалисты в области ИИ называют игрушечными предметными областями. В предметной области реального мира тот, кто решает задачу, применяет фактическую информацию к практической проблеме и находит решения, которые являются ценными с точки зрения некоторого критерия, определяющего соотношение стоимости и эффективности. В игрушечной предметной области либо задача подвергается чрезвычайному упрощению, либо производится нереалистическая адаптация некоторой сложной проблемы реального мира. Тот, кто решает такую проблему, обрабатывает искусственную информацию, которая в целях облегчения решения упрощена и порождает решения, имеющие чисто теоретический интерес.
В тех случаях, когда по отношению к сложной задаче или данным о ней сделаны существенные упрощения, полученное решение может оказаться неприменимым в масштабах, которые характерны для реальной проблемы. Рекомендации, методы представления знаний, организация знаний, необходимые для применения методов решения задач к этим знаниям, часто связаны с объемом и сложностью пространства поиска, т. е. множества возможных промежуточных и окончательных решений задачи. Если проблема сверхупрощена или нереалистична, то размерность пространства поиска будет, скорее всего, резко уменьшена, и не возникнет проблем с быстродействием и эффективностью, столь характерных для реальных задач. Эта проблема размерности возникает столь естественно и неуловимо, что даже искушенные в ИИ специалисты могут не оценить ее истинные масштабы.
6.1.4. Самосознание ЭС
Экспертные системы имеют знания, позволяющие им рассуждать об их собственных действиях, и структуру, упрощающую такие рассуждения. Например, если ЭС основана на правилах, то ей легко просмотреть цепочки выводов, которые она порождает, чтобы прийти к решению задачи. Если заданы еще и специальные правила, из которых ясно, что можно сделать с этими цепочками выводов, то можно использовать эти знания для проверки точности, устойчивости и правдоподобия решений задачи и даже построить доводы, оправдывающие или объясняющие процесс рассуждения. Это знание системы о том, как она рассуждает, называется метазнанием, что означает всего лишь знания о знаниях.
У большинства ныне существующих ЭС есть так называемый механизм объяснения. Это знания, необходимые для объяснения того, каким образом система пришла к данным решениям. Большинство этих объяснений включают демонстрацию цепочек выводов и доводов, объясняющих, на каком основании было применено каждое правило в цепочке. Возможность проверять собственные процессы рассуждения и объяснять свои действия — это одно из самых новаторских и важных свойств ЭС. Но почему это свойство так важно?
"Самосознание" так важно для ЭС потому, что:
пользователи начинают больше доверять результатам, испытывать большую уверенность в системе;
ускоряется развитие системы, так как систему легче отлаживать;
предположения, положенные в основу работы системы, становятся явными, а не подразумеваемыми;
легче предсказывать и выявлять влияние изменений на работу системы.
Умение объяснить — это всего лишь один из аспектов самосознания. В будущем самосознание позволит ЭС делать даже больше. Они сами смогут создавать обоснования отдельных правил путем рассуждения, исходящего из основных принципов. Они будут приспосабливать свои объяснения к требованиям пользователя. Они смогут изменять собственную внутреннюю структуру путем коррекции правил, реорганизации базы знаний и реконфигурации системы.
Первый шаг в этом направлении — выделить метазнания и сделать их явными, точно так же как знания о предметной области выделены и сделаны явными. Ниже приведен пример метазнания — знания о том, как использовать предметные знания.
ЕСЛИ: к данной ситуации применимо несколько правил,
ТО: использовать сначала правила, предложенные экспертами, прежде чем прибегнуть к правилам, предложенным новичками.
Это метаправило говорит ЭС, каким образом она должна выбирать те правила, которые надо выполнить. Специалисты по ИИ еще только начинают экспериментировать с формами представления метазнаний и их организацией в ЭС.
6.1.5. Ошибки экспертных систем
Существует еще одно очень важное отличие ЭС от традиционных программ. Традиционные программы разрабатываются таким образом, чтобы каждый раз порождать правильный результат, но ЭС заведомо создаются так, чтобы вести себя как эксперты, которые, как правило, дают правильные ответы, но иногда способны ошибаться.
На первый взгляд кажется, что в этом отношении традиционные программы имеют явное преимущество. Однако это преимущество мнимое. Традиционные программы для решения сложных задач, напоминающих те, которые подходят для ЭС, тоже могут делать ошибки. Но их ошибки чрезвычайно трудно исправлять, поскольку стратегии, эвристики и принципы, лежащие в основе этих программ, не сформулированы явно в их тексте. Следовательно, эти ошибки нелегко определить и исправить. Подобно людям, ЭС могут ошибаться. Но в отличие от обычных программ, они имеют потенциальную способность учиться на своих ошибках. С помощью компетентных пользователей можно заставить экспертные системы совершенствовать свое умение решать задачи в ходе практической работы.
Классификация экспертных систем
Одним из наиболее значительных достижений искусственного интеллекта стала разработка мощных компьютерных систем, получивших название "экспертных", или основанных на "знаниях" систем. В современном обществе при решении задач управления сложными многопараметрическими и сильносвязанными системами, объектами, производственными и технологическими процессами приходится сталкиваться с решением неформализуемых либо трудноформализуемых задач. Такие задачи часто возникают в следующих областях: авиация, космос и оборона, нефтеперерабатывающая промышленность и транспортировка нефтепродуктов, химия, энергетика, металлургия, целлюлозно-бумажная промышленность, телекоммуникации и связь, пищевая промышленность, машиностроение, производство цемента, бетона и т. п. транспорт, медицина и фармацевтическое производство, административное управление, прогнозирование и мониторинг. Наиболее значительными достижениями в этой области стало создание систем, которые ставят диагноз заболевания, предсказывают месторождения полезных ископаемых, помогают в проектировании электронных устройств, машин и механизмов, решают задачи управления реакторами и другие задачи [11, 73].
Итак, под экспертной системой (ЭС) понимают программу, которая использует знания специалистов (экспертов) о некоторой конкретной узкоспециализированной предметной области и в пределах этой области способна принимать решения на уровне эксперта-профессионала.
Осознание полезности систем, которые могут копировать дорогостоящие или редко встречающиеся человеческие знания, привело к широкому внедрению и расцвету этой технологии в 1980-1990-е годы прошлого века. Основу успеха ЭС составили два важных свойства, отмечаемые рядом исследователей [85, 79]:
в ЭС знания отделены от данных, и мощность экспертной системы обусловлена в первую очередь мощностью базы знаний и только во вторую очередь — используемыми методами решения задач;
решаемые ЭС задачи являются неформализованными или слабоформализованными и используют эвристические, экспериментальные, субъективные знания экспертов в определенной предметной области.
Основными категориями решаемых ЭС задач являются: диагностика, управление (в том числе технологическими процессами), интерпретация, прогнозирование, проектирование, отладка и ремонт, планирование, наблюдение (мониторинг), обучение.
Обобщенная схема ЭС приведена на рис. 6.2, здесь она более подробная, чем в предыдущей лекции. Основу ЭС составляет подсистема логического вывода, которая использует информацию из базы знаний (БЗ), генерирует рекомендации по решению искомой задачи. Чаще всего для представления знаний в ЭС применяются системы продукций и семантические сети. Допустим, БЗ состоит из фактов и правил (если <посылка>, то <заключение>). Если ЭС определяет, что посылка верна, то правило признается подходящим для данной консультации и запускается в действие. Запуск правила означает принятие заключения данного правила в качестве составной части процесса консультации.
Обязательными частями любой ЭС являются также модуль приобретения знаний, модуль отображения и объяснения решений. В большинстве случаев реальные ЭС в промышленной эксплуатации работают также на основе баз данных (БД).
Рис. 6.2.
Структура экспертной системы
Только одновременная работа со знаниями и большими объемами информации из БД позволяет ЭС получить неординарные результаты, например, поставить сложный диагноз (медицинский или технический), открыть месторождение полезных ископаемых, управлять ядерным реактором в реальном времени.
Важную роль при создании ЭС играют инструментальные средства. Среди инструментальных средств для создания ЭС наиболее популярны такие языки программирования, как LISP и PROLOG, а также экспертные системы-оболочки (ЭСО): KEE, CENTAUR, G2 и GDA, CLIPS, АТ_ТЕХНОЛОГИЯ, предоставляющие в распоряжение разработчика — инженера по знаниям широкий набор для комбинирования систем представления знаний, языков программирования, объектов и процедур [66, 103].
Рассмотрим различные способы классификации ЭС.
По назначению ЭС делятся на:
ЭС общего назначения;
специализированные ЭС.
В свою очередь, специализированные ЭС делятся на:
проблемно-ориентированные для задач диагностики, проектирования, прогнозирования;
предметно-ориентированные для специфических задач, например, контроля ситуаций на атомных электростанциях.
По степени зависимости от внешней среды выделяют:
статические ЭС, не зависящие от внешней среды;
динамические, учитывающие динамику внешней среды и предназначенные для решения задач в реальном времени. Время реакции в таких системах может задаваться в миллисекундах, и эти системы реализуются, как правило, на языке С++.
По типу использования различают:
изолированные ЭС;
ЭС на входе/выходе других систем;
гибридные ЭС или, иначе говоря, ЭС, интегрированные с базами данных и другими программными продуктами (приложениями).
По сложности решаемых задач различают:
простые ЭС — до 1000 простых правил;
средние ЭС — от 1000 до 10000 структурированных правил;
сложные ЭС — более 10000 структурированных правил.
По стадии создания выделяют:
исследовательский образец ЭС, разработанный за 1-2 месяца с минимальной БЗ;
демонстрационный образец ЭС, разработанный за 2-4 месяца, например, на языке типа LISP, PROLOG, CLIPS;
промышленный образец ЭС, разработанный за 4-8 месяцев, например на языке типа CLIPS с полной БЗ;
коммерческий образец ЭС, разработанный за 1,5-2 года, например на языке типа С++, Java с полной БЗ.
6.3. Трудности при разработке экспертных систем
Разработка ЭС связана с определенными трудностями, которые необходимо хорошо знать, так же как и способы их преодоления. Рассмотрим подробнее эти проблемы.
Проблема извлечения знаний экспертов. Ни один специалист никогда просто так не раскроет секреты своего профессионального мастерства, свои сокровенные знания в профессиональной области. Он должен быть заинтересован материально или морально, причем хорошо заинтересован. Никто не хочет рубить сук, на котором сидит. Часто такой специалист опасается, что, раскрыв все свои секреты, он будет не нужен компании. Вместо него будет работать экспертная система. Избежать этого поможет выбор высококвалифицированного эксперта, заинтересованного в сотрудничестве.
Проблема формализации знаний экспертов. Эксперты-специалисты в определенной области, как правило, не в состоянии формализовать свои знания. Часто они принимают правильные решения на интуитивном уровне и не могут аргументированно объяснить, почему принято то или иное решение. Иногда эксперты не могут прийти к взаимопониманию (фраза "встретились два геолога, у них было три мнения" — не шутка, а жизненная реальность). В таких ситуациях поможет выбор эксперта, умеющего ясно формулировать свои мысли и легко объяснять другим свои идеи.
Проблема нехватки времени у эксперта. Выбранный для разработки эксперт не может найти достаточно времени для выполнения проекта. Он слишком занят. Он всем нужен. У него есть проблемы. Чтобы избежать этой ситуации, необходимо получить от эксперта, прежде чем начнется проект, согласие тратить на проект время в определенном фиксированном объеме.
Правила, формализованные экспертом, не дают необходимой точности. Этого можно избежать, если решать вместе с экспертом реальные задачи. Не надо придумывать "игрушечных" ситуаций или задач. В условиях задач нужно использовать реальные данные, такие как лабораторные данные, отчеты, дневники и другую информацию, взятую из практических задач. Постарайтесь говорить с экспертом на одном языке, применяя единую терминологию. Эксперт, как правило, легче понимает правила, записанные на языке, близком к естественному, а не на языке типа LISP или PROLOG.
Недостаток ресурсов. В качестве ресурсов выступают персонал (инженеры знаний, разработчики инструментальных средств, эксперты) и средства построения ЭС (средства разработки и средства поддержки). Недостаток благожелательных и грамотных администраторов порождает скептицизм и нетерпение у руководителей. Повышенное внимание в прессе и преувеличения вызвали нереалистические ожидания, которые приводят к разочарованию в отношении экспертных систем. ЭС могут давать не самые лучшие решения на границе их применимости, при работе с противоречивыми знаниями и в рассуждениях на основе здравого смысла. Могут потребоваться значительные усилия, чтобы добиться небольшого увеличения качества работы ЭС. Экспертные системы требуют много времени на разработку. Так, создание системы PUFF для интерпретации функциональных тестов легких потребовало 5 человеко-лет, на разработку системы PROCPECTOR для разведки рудных месторождений ушло 30 человеко-лет, система XCON для расчета конфигурации компьютерных систем на основе VAX 11/780 потребовала 8 человеко-лет. ЭС последних времен разрабатываются более быстрыми темпами за счет развития технологий ЭС, но проблемы остались. Удвоение персонала не сокращает время разработки наполовину, потому что процесс создания ЭС — это процесс со множеством обратных связей. Все это необходимо учитывать при планировании создания ЭС.
Неадекватность инструментальных средств решаемой задаче. Часто определенные типы знаний (например, временные или пространственные) не могут быть легко представлены на одном языке ПЗ, так же как и разные схемы представления (например, фреймы и продукции) не могут быть достаточно эффективно реализованы на одном языке ПЗ. Некоторые задачи могут быть непригодными для решения по технологии ЭС (например, отдельные задачи анализа сцен). Необходим тщательный анализ решаемых задач, чтобы определить пригодность предлагаемых инструментальных средств и сделать правильный выбор.
О других трудностях и ловушках при создании ЭС более подробно можно прочитать в учебнике [21].
6.4. Методология построения экспертных систем
Рассмотрим методику формализации экспертных знаний на примере создания экспертных диагностических систем (ЭДС).
Целью создания ЭДС является определение состояния объекта диагностирования (ОД) и имеющихся в нем неисправностей.
Состояниями ОД могут быть: "исправно", "неисправно", "работоспособно". Неисправностями, например, радиоэлектронных ОД являются обрыв связи, замыкание проводников, неправильное функционирование элементов и т. д.
Число неисправностей может быть достаточно велико (несколько тысяч). В ОД может быть одновременно несколько неисправностей. В этом случае говорят, что неисправности кратные.
Вводят следующие определения:
Разные неисправности ОД проявляются во внешней среде информационными параметрами. Совокупность значений информационных параметров определяет "информационный образ" (ИО) неисправности ОД. ИО может быть полным, то есть содержать всю необходимую информацию для постановки диагноза, или, соответственно, неполным. В случае неполного ИО постановка диагноза носит вероятностный характер.
Основой для построения эффективных ЭДС являются знания эксперта для постановки диагноза, записанные в виде информационных образов, и система представления знаний, встраиваемая в информационные системы обеспечения функционирования и контроля ОД, которые интегрируются с соответствующей технической аппаратурой.
Для описания своих знаний эксперт с помощью инженера по знаниям должен выполнить следующее:
Выделить множество всех неисправностей ОД, которые должна различать ЭДС.
Выделить множество информативных (существенных) параметров, значения которых позволяют различить каждую неисправность ОД и поставить диагноз с некоторой вероятностью.
Для выбранных параметров следует выделить информативные значения или информативные диапазоны значений, которые могут быть как количественными, так и качественными. Например, точные количественные значения могут быть записаны так: задержка 25 насек, задержка 30 насек и т. д. Количественный диапазон значений может быть записан так: задержка 25-40 насек, 40-50 насек, 50 насек и выше. Качественный диапазон значений может быть записан так: индикаторная лампа светится ярко, светится слабо, не светится.
В современных ЭДС применяются различные стратегии поиска решения и постановки диагноза, которые позволяют определить необходимые последовательности тестовых процедур. Однако приоритет в ЭС отдается прежде всего знаниям и опыту, а лишь затем логическому выводу.
6.5. Примеры экспертных систем
Для начала совершим краткий экскурс в историю создания ранних и наиболее известных ЭС. В большинстве этих ЭС в качестве СПЗ использовались системы продукций (правила) и прямая цепочка рассуждений. Медицинская ЭС MYCIN разработана в Стэнфордском университете в середине 1970-х годов для диагностики и лечения инфекционных заболеваний крови. MYCIN в настоящее время применяется для обучения врачей.
ЭС DENDRAL разработана в Стэнфордском университете в середине 1960-х годов для определения топологических структур органических молекул. Система выводит молекулярную структуру химических веществ по данным масс-спектрометрии и ядерного магнитного резонанса.
ЭС PROSPECTOR разработана в Стэнфордском университете в 1974-1983 годах для оценки геологами потенциальной рудоносности района. Система содержит более 1000 правил и реализована на INTERLISP. Программа сравнивает наблюдения геологов с моделями разного рода залежей руд. Программа вовлекает геолога в диалог для извлечения дополнительной информации. В 1984 году она точно предсказала существование молибденового месторождения, оцененного в многомиллионную сумму.
Рассмотрим экспертную систему диагностирования (ЭСД) цифровых и цифроаналоговых устройств [108, 96, 44], в которой использовались системы продукций и фреймы, а также прямая и обратная цепочки рассуждений одновременно. В качестве объекта диагностирования (ОД) в ЭСД могут применяться цифровые устройства (ЦУ), БИС, цифро-аналоговые устройства. На рис. 6.3 показано, что такая ЭСД работает совместно с автоматизированной системой контроля и диагностирования (АКД), которая подает в динамике воздействия на ОД (десятки, сотни и тысячи воздействий в секунду), анализирует выходные реакции и дает заключение: годен или не годен. В случае если реакция проверяемого ОД не соответствует эталонным значениям, подключается основанная на знаниях подсистема диагностирования. ЭСД запрашивает значения сигналов в определенных контрольных точках и ведет оператора по схеме ОД, рекомендуя ему произвести измерения в определенных контрольных точках или подтвердить промежуточный диагноз, и в результате приводит его к месту неисправности.
Исходными данными для работы ЭСД являются результаты машинного моделирования ОД на этапе проектирования. Эти результаты моделирования передаются в ЭСД на магнитных носителях в виде тысяч продукционных правил. Движение по контрольным точкам осуществляется на основе модели, записанной в виде сети фреймов для ОД.
Такая ЭСД не была бы интеллектуальной системой, если бы она не накапливала опыт. Она запоминает найденную неисправность для данного типа ОД. В следующий раз при диагностике неисправности ОД этого типа она предлагает проверить сразу же эту неисправность, если реакция ОД говорит о том, что такая неисправность возможна.
Рис. 6.3.
Общая структура экспертной системы диагностирования
Так поступают опытные мастера радиоэлектронной аппаратуры (РЭА), знающие "слабые" места в конкретных типах РЭА и проверяющие их в первую очередь. ЭСД накапливает вероятностные знания о конкретных неисправностях с целью их использования при логическом выводе. При движении по дереву поиска решений на очередном шаге используется критерий — максимум отношения вероятности (коэффициента уверенности) постановки диагноза к трудоемкости распознавания неисправности. Коэффициенты уверенности автоматически корректируются во время работы ЭСД при каждом подтверждении или неподтверждении диагноза для конкретных ситуаций.
ЭСД не была реализована в виде ИРС по экономическим соображениям. Небольшая серийность проверяемой аппаратуры, недостаточная унификация и дешевая рабочая сила (последний фактор и в наше время играет в России немаловажную роль) помешали реализовать полностью автоматическое диагностирование