Экспертная система — это программа для компьютера, которая оперирует со знаниями в определенной предметной области с целью выработки рекомендаций или решения проблем.
Экспертная система
Общие сведения
День сегодня с утра не задался. Вы только что установили новую версию текстового редактора, к которому давно привыкли, но после щелчка на его ярлыке компьютер реагирует совсем не так, как хотелось бы, — выводится сообщение вроде этого:
Call to Undefined Link (Вызов неопределенной связи).
Как и большинство сообщений об ошибках, это помогает не больше, чем предсказания судьбы по состоянию Марса. Вы применяете крайнюю меру — удаляете целый каталог и переинсталлируете программу, но результат от этого не меняется. Вы начинаете менять настройки в разных файлах инициализации, но это тоже не помогает.
Наконец, устав от безнадежных попыток, вы набираете номер сервисной службы поддержки пользователей. И только после этого фортуна поворачивается к вам лицом — на помощь приходит человек, который знает, о чем говорит. Он советует вам выбросить с полдюжины устаревших DLL-модулей в системном каталоге и вновь переустановить программу. Последовав его совету, вы уже через десяток минут можете нормально работать, и подскочившее недавно кровяное давление вновь возвращается к норме.
Какой бы уровень экспертного анализа не требовался в данной области, ясно, что специалист из сервисной службы способен его сделать, а вы — нет. Хотя в ящике стола у вас лежит диплом доктора философии по специальности "Информатика", и вы, возможно, прекрасно программируете задачи в своей области, но, не имея определенного опыта и подготовки, проблему устранения неисправности решить не смогли. Таким образом, способность выполнить экспертный анализ — это не только вопрос наличия определенных знаний и уровня квалификации. Для этого нужно обладать и очень специфическими навыками и умением разобраться в конкретной ситуации в данной предметной области. Таким образом, быть экспертом и иметь общее образование — это далеко не одно и то же.
Смысл экспертного анализа
Задумайтесь над таким вопросом: "При выполнении каких условий компьютерную программу можно назвать экспертом?"
- Вполне логично потребовать, чтобы такая программа обладала знаниями. Просто способность выполнять некоторый алгоритм, например производить анализ списка элементов на наличие какого-либо свойства, явно не отвечает этому требованию. Это все равно, что дать первому случайному прохожему список вопросов и ответов и ожидать от него успешного выполнения поиска и устранения неисправностей в системах определенного типа. Раньше или позже, но он обязательно столкнется с ситуацией, не предусмотренной в том списке, которым его снабдили.
- Знания, которыми обладает программа, должны быть сконцентрированы на определенную предметную область. Случайный набор имен, дат и мест событий, сентенций из классиков и т.п. — это отнюдь не те знания, которые могут послужить основой для программы, претендующей на способность выполнить экспертный анализ. Знания предполагают определенную организацию и интеграцию — то есть отдельные сведения должны соотноситься друг с другом и образовывать нечто вроде цепочки, в которой одно звено "тащит" за собой следующее.
- И, наконец, из этих знаний должно непосредственно вытекать решение проблем. Просто продемонстрировать свои знания, касающиеся, например, технического обслуживания компьютеров, — это далеко не то же самое, что привести компьютер в "чувство". Точно так же, получить доступ к оперативной документации — это совсем не то же самое, что заполучить в свое распоряжение специалиста (или программу), способного справиться с возникшими проблемами.
Теперь попробуем подытожить эти рассуждения в следующем формальном определении экспертной системы.
Экспертная система — это программа для компьютера, которая оперирует со знаниями в определенной предметной области с целью выработки рекомендаций или решения проблем.
Экспертная система может полностью взять на себя функции, выполнение которых обычно требует привлечения опыта человека-специалиста, или играть роль ассистента для человека, принимающего решение. Другими словами, система (техническая или социальная), требующая принятия решения, может получить его непосредственно от программы или через промежуточное звено — человека, который общается с программой. Тот, кто принимает решение, может быть экспертом со своими собственными правами, и в этом случае программа может "оправдать" свое существование, повышая эффективность его работы. Альтернативный вариант — человек, работающий в сотрудничестве с такой программой, может добиться с ее помощью результатов более высокого качества. Вообще говоря, правильное распределение функций между человеком и машиной является одним из ключевых условий высокой эффективности внедрения экспертных систем.
Знания, которыми обладает специалист в какой-либо области (дисциплине), можно разделить на формализованные (точные) и неформализованные (неточные). Формализованные знания формируются в книгах и руководствах в виде общих и строгих суждений (законов, формул, моделей, алгоритмов и т.п.), отражающих универсальные знания. Неформализованные знания, как правило, не попадают в книги и руководства в связи с их конкретностью, субъективностью и приблизительностью. Знания этого рода являются результатом обобщения многолетнего опыта работы и интуиции специалистов. Они обычно представляют многообразие эмпирических (эвристических) приемов и правил.
В зависимости от того, какие знания преобладают в той или иной области (дисциплине), ее относят к формализованным (если преобладают точные знания) или к неформализованным (если преобладают неточные знания) описательным областям. Задачи, решаемые на основе точных знаний, называют формализованными, а задачи, решаемые с помощью неточных знаний, — неформализованными. (Речь идет не о неформализуемых, а о неформализованных задачах, т.е. о задачах, которые, возможно, и формализуемы, но эта формализация пока неизвестна.)
Традиционное программирование в качестве основы для разработки программы использует алгоритм, т.е. формализованное значение. Поэтому до недавнего времени считалось, что ЭВМ не приспособлены для решения неформализованных задач. Расширение сферы использования ЭВМ показало, что неформализованные задачи составляют очень важный класс задач, вероятно, значительно больший, чем класс формализованных задач. Неумение решать неформализованные задачи сдерживает внедрение ЭВМ в описательные науки. По мнению авторитетов, основной задачей информатики является внедрение ее методов в описательные науки и дисциплины. На основании этого можно утверждать, что исследования в области ЭС занимают значительное место в информатике.
К неформализованным задачам относятся те, которые обладают одной или несколькими из следующих особенностей:
o алгоритмическое решение задачи неизвестно (хотя, возможно, и существует) или не может быть использовано из-за ограниченности ресурсов ЭВМ (времени, памяти);
o задача не может быть определена в числовой форме (требуется символьное представление);
o цели задачи не могут быть выражены в терминах точно определенной целевой функции.
Как правило, неформализованные задачи обладают неполнотой, ошибочностью, неоднозначностью и (или) противоречивостью знаний (как данных, так и используемых правил преобразования).
История
Наиболее известные ЭС, разработанные в 60-70-х годах, стали в своих областях уже классическими. По происхождению, предметным областям и по преемственности применяемых идей, методов и инструментальных программных средств их можно разделить на несколько семейств.
1. META-DENDRAL.Система DENDRAL позволяет определить наиболее вероятную структуру химического соединения по экспериментальным данным (масс- спектрографии, данным ядерном магнитного резонанса и др.).M-D автоматизирует процесс приобретения знаний для DENDRAL. Она генерирует правила построения фрагментов химических структур.
2. MYCIN-EMYCIN-TEIREIAS-PUFF-NEOMYCIN. Это семейство медицинских ЭС и сервисных программных средств для их построения.
3. PROSPECTOR-KAS. PROSPECTOR- предназначена для поиска (предсказания) месторождений на основе геологических анализов. KAS- система приобретения знаний для PROSPECTOR.
4. CASNET-EXPERT. Система CASNET- медицинская ЭС для диагностики выдачи рекомендаций по лечению глазных заболеваний. На ее основе разработан язык инженерии знаний EXPERT, с помощью которой создан ряд других медицинских диагностических систем.
5. HEARSAY-HEARSAY-2-HEARSAY-3-AGE. Первые две системы этого ряда являются развитием интеллектуальной системы распознавания слитной человеческой речи, слова которой берутся из заданного словаря. Эти системы отличаются оригинальной структурой, основанной на использовании доски объявлений- глобальной базы данных, содержащей текущие результаты работы системы. В дальнейшем на основе этих систем были созданы инструментальные системы HEARSAY-3 и AGE (Attempt to Generalize- попытка общения) для построения ЭС.
6. Системы AM (Artifical Mathematician - искусственный математик) и EURISCOбыли разработаны в Станфордском университете доктором Д. Ленатом для исследовательских и учебных целей. Ленат считает, что эффективность любой ЭС определяется закладываемыми в нее знаниями. По его мнению, чтобы система была способна к обучению, в нее должно быть введено около миллиона сведений общего характера. Это примерно соответствует объему информации, каким располагает четырехлетний ребенок со средними способностями. Ленат также считает, что путь создания узкоспециализированных ЭС с уменьшенным объемом знаний ведет к тупику.
В систему AM первоначально было заложено около 100 правил вывода и более 200 эвристических алгоритмов обучения, позволяющих строить произвольные математические теории и представления. Сначала результаты работы системы были весьма многообещающими. Она могла сформулировать понятия натурального ряда и простых чисел. Кроме того, она синтезировала вариант гипотезы Гольдбаха о том, что каждое четное число, большее двух, можно представить в виде суммы двух простых чисел. До сих пор не удалось ни найти доказательства данной гипотезы, ни опровергнуть ее. Дальнейшее развитие системы замедлилось и было отмечено, что несмотря на проявленные на первых порах “математические способности”, система не может синтезировать новых эвристических правил, т.е. ее возможности определяются только теми эвристиками, что были в нее изначально заложены.
При разработке системы EURISCO была предпринята попытка преодолеть указанные недостатки системы AM. Как и в начале эксплуатации AM, первые результаты, полученные с помощью EURISCO, были эффективными. Сообщалось, что система EURISCO может успешно участвовать в очень сложных играх. С ее помощью в военно-стратегической игре, проводимой ВМФ США, была разработана стратегия, содержащая ряд оригинальных тактических ходов. Согласно одному из них, например предлагалось взрывать свои корабли, получившие повреждения. При этом корабли, оставшиеся неповрежденными, получает необходимое пространство для выполнения маневра.
Однако через некоторое время обнаружилось, что система не всегда корректно переопределяет первоначально заложенные в нее правила. Так, например, она стала нарушать строгое предписание обращаться к программистам с вопросами только в определенное время суток. Т.о., система EURISCO, так же как и ее предшественница, остановилась в своем развитии, достигнув предела, определенного в конечном счете ее разработчиком.
С 1990 года доктор Ленат во главе исследовательской группы занят кодированием и вводом нескольких сот тысяч элементов знаний, необходимых, по его мнению, для создания “интеллектуальной” системы. Этот проект назван Cyc (“Цик”, от английского слова enciklopaedia).