Сам собою напрашивается вопрос: зачем разрабатывать экспертные системы? Не лучше ли обратиться к человеческому опыту?
Искусственная компетентность ЭС имеет ряд существенных преимуществ перед человеческой
Человеческая компетентность | Искусственная компетентность |
Непрочная, утрачиваемая при отсутствии практики | Постоянная |
Трудно передаваемая, т.к. обучение – долгий и дорогой процесс | Легко передаваемая посредством копирования программной системы |
Трудно документируемая | Легко документируемая, т.к. способ представления искусственной компетентности в системе отображен в описании этого представления на естественном языке |
Непредсказуемая, зависящая от эмоций эксперт-человек может принимать разные решения в тождественных ситуациях из-за эмоций, забыть в кризисной ситуации важное правило | Устойчивая |
Дорогая | Приемлемая по затратам, т.к. разработка ЭС дорога, это годы труда высокооплачиваемых инженеров знаний и экспертов но эксплуатация дешева. |
Но обычно ЭС используются как советчики экспертов-людей, не заменяя их.
“…Вероятно, можно отказаться от наиболее квалифицированного эксперта, но во многих ситуациях необходимо оставить в системе место для эксперта со средней квалификацией. Экспертные системы используются при этом для усиления и расширения профессиональных возможностей такого пользователя”[Уотермен, “Руководство по экспертным системам”].
В ряде областей деятельности человеческая компетентность превосходит искусственную.
Это не есть отражение фундаментальных ограничений ИИ, но характерно для его современного состояния.
Человеческая компетентность | Искусственная компетентность |
Творческая, использующая воображение, аналогии с ситуациями из других предметных областей. | Запрограммированная, ЭС тяготеет к рутинному поведению |
Приспосабливающаяся | Нуждается в подсказке, мало приспособлена к обучению новым концепциям и правилам |
Использует чувственное восприятие визуальной, звуковой, осязательной или обонятельной информации | Использует символьный ввод |
Широкая по охвату | Узконаправленная |
Использует общедоступные знания человек использует огромный объем общедоступных знаний, которые почти невозможно встроить в ЭС | Использует только специализированные знания |
Организация ЭС
Организация знаний
Для специалистов в области ИИ термин знания означает информацию, которая необходима программе, чтобы она вела себя «интеллектуально».
Эта информация представляется в форме фактов и правил.
ФАКТ: При включении станка получена травма.
ПРАВИЛО: Если не соблюдались требования безопасности, то применимо законодательство о неосторожном поведении, приведшем к несчастному случаю.
Факты и правила в экспертной системе не всегда либо истинны, либо ложны. Иногда существует некоторая степень неуверенности в достоверности факта или точности правила. Если это сомнение выражено явно, то оно называется «коэффициентом уверенности».
ФАКТ: Станок имеет дефект с коэффициентом уверенности 0.9
ПРАВИЛО: Если станок имеет дефект с коэффициентом уверенности >0.6, то теория строгой ответственности применима с коэффициентом уверенности 1.0.
Многие правила ЭС являются эвристиками, т.е. эмпирическими правилами, которые упрощают или ограничивают поиск решений, когда предметная область сложна или недостаточно изучена и решаемая задача не поддается строгому математическому анализу или алгоритмическому решению.
Рассмотрим различия между алгоритмическим и эвристическим методами на примере
Рис. 3.
Алгоритм полностью исключает возможность попадания оружия на борт самолета и предотвращает захват террористами самолета, но требует много времени, дорог и непопулярен. Эвристический метод более легок и практичен, но не обеспечивает 100% защиту.
Таким образом, алгоритмический метод гарантирует корректное решение задачи, тогда как эвристический метод дает приемлемое решение в большинстве случаев.
В экспертной системе существует четкое разделение знаний на:
§ знания о предметной области, называемые базой знаний;
§ знания о том, как решать задачи, называемые механизмом вывода;
§ знания о том, как взаимодействовать с пользователем.
Программа, которая работает со знаниями, организованными подобным образом(т.е. база знаний + мех-м вывода), называется системой, основанной на знаниях.
База знаний экспертной системы содержит факты и правила, использующие эти факты как основу для принятия решений.
Механизм вывода содержит:
§ интерпретатор, определяющий, как применять правила для вывода новых знаний;
§ диспетчер, устанавливающий порядок применения правил.
Чтобы приносить реальную пользу, экспертная система должна иметь базу знаний, содержащую высококачественные знания о предметной области, а ее механизм вывода должен содержать знания о том, как эффективно использовать знания о предметной области.
Разработка механизма вывода ЭС – нетривиальная задача, поскольку простой и общий метод организации логического вывода отсутствует.
Чтобы ясно понимать суть этой проблемы, необходимо, во-первых, понимать, что структура логического вывода зависит и от специфики предметной области и от того, как знания структурированы и организованы в ЭС, а во-вторых, осознавать возможности инструментальных средств построения экспертных систем.
Эти средства разделяются на четыре основных категории:
1. Языки программирования;
2. Языки инженерии знаний
3. Вспомогательные средства
4. Средства поддержки
Языки программирования, применяемые для работы в области экспертных систем – это или проблемно-ориентированные языки(Фортран, Паскаль) или языки обработки текстов (Лисп, Пролог). Проблемно-ориентированные языки разработаны для специального класса задач: например, Фортран удобен для выполнения алгебраических вычислений и чаще всего применяется в научных, математических и статистических исследованиях.
Наиболее широко используемым языком программирования для задач искусственного интеллекта является Лисп. Его популярность основывается на таких его свойствах, как легкое и гибкое манипулирование символами, автоматическое управление памятью, развитые редактирование и средства отладки, едином подходе к представлению программ и данных, что позволяет программе на Лиспе модифицировать свой собственный код так же просто, как и данные. Последнее качество благоприятно для написания программ, которые могут вводить новые или модифицировать уже существующие в базе знаний правила.
Рассмотрим, как записывается обычное высказывание на языке Лисп:
Естественный язык | Лисп |
Разлита нефть в строении №5 | (МЕСТОНАХОЖДЕНИЕ (РАЗЛИТА НЕФТЬ) (СТРОЕНИЕ №5)) |
Здесь элемент МЕСТОНАХОЖДЕНИЕ действует как отношение, которое указывает, что его первый аргумент размещается в его втором аргументе.
Подобные Лисп языки программирования представляют максимальную гибкость разработчику экспертной системы, но не указывают ему, как представлять знания или как построить механизм доступа к базе знаний.
Язык инженерии знаний – это язык построения экспертных систем, погруженный в обширное поддерживающее окружение. Языки инженерии знаний разделяются на скелетные и универсальные. Скелетный язык инженерии знаний – это экспертная система без специальных предметных знаний, включающая только механизм вывода и средства поддержки.
Примеры
Первая ЭС в геологии PROSPECTOR → скелетный язык диагностики и классификации KAS.
ЭС диагностики и лечения бактериальных инфекций MYCIN → скелетная система EMYCIN (EMPTY MYCIN).
Консультационная система по глаукоме CASNET → скелетная система EXPERT.
Скелетные системы обеспечивают структуризацию знаний и готовые механизмы вывода, которые делают разработку системы легкой и быстрой. Но они приложимы лишь к узкому классу проблем и сильно ограничивают возможности разработчика экспертных систем.
Универсальный язык инженерии знаний может быть применим к проблемам разного типа в разных прикладных областях. Он обеспечивает большие возможности управления поиском данных и доступом к ним, чем скелетные системы, но более сложен в использовании.
Все скелетные и универсальные языки находятся на уровне исследовательских разработок. Однако несколько компаний, специализирующихся в области искусственного интеллекта, продают версии языков инженерии знаний коммерческого уровня. Эти языки – между скелетными системами и универсальными языками; многие из них возникли из скелетных систем и были развиты для того, чтобы стать более общими и легко применимыми.
Вспомогательные средства – это программы, оказывающие помощь в приобретении знаний у эксперта-человека и представлении их, и программ, которые помогают разработать проекты экспертных систем.
Эти программы должны выполнять очень сложные задания, из них большинство являются пока что чисто исследовательскими разработками, которые лишь начали превращаться во что-то практически полезное, хотя некоторые системы уже предлагаются как законченные коммерческие продукты.
Средства поддержки(или поддерживающее окружение) представляют собой пакеты программ, которые прилагаются к языку инженерии знаний, чтобы упростить его использование, облегчить диалог и сделать его более эффективным. Подразделяются на средства отладки, средства ввода/вывода, средства объяснения, редакторы базы знаний.
Таким образом, существует два подхода к разработке механизма вывода ЭС:
1. Использование предназначенного для построения экспертных систем языка высокого уровня(EMYCIN, KAS, EXPERT), в который уже встроен механизм вывода. Это облегчает разработку ЭС, но ограничивает разработчика в выборе способа организации знаний и доступа к ним. Предлагаемая схема управления процессом поиска решения даже может быть негодна для данной предметной области.
2. Использование языка более низкого уровня(LISP, PROLOG, FORTRAN) без механизма вывода. Требует больших усилий на разработку, но позволяет разработать программные блоки для схемы управления процессом решения, который будет адекватен данной предметной области.
Представление знаний
В современных экспертных системах чаще всего используются три метода представления знаний:
§ правила (самый популярный);
§ семантические сети;
§ фреймы.