Добавил:
natribu.org Все что нашел в интернете скидываю сюда Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Точно Не проект 2 / Не books / Источник_1

.pdf
Скачиваний:
10
Добавлен:
01.02.2024
Размер:
20.67 Mб
Скачать

380

Глава 7

 

 

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

-существует большой разрыв между умением эксперта решать задачи и простым набором декларативных сведений заданной предметной области;

-теоретические и практические знания эксперта представляют собой индивидуальную модель “реального мира”, на формирование которой большое влияние оказывают многие факторы, в том числе и социальные;

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

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

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

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

На практике инженер по знаниям может использовать оба подхода, руководствуясь следующими приемами извлечения знаний [20]:

-наблюдение за экспертом в ходе решения задачи;

-обсуждение задач, подготовленных инженером по знаниям;

-описание типовых задач предметной области экспертом;

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

-проверка системы (прототипа), в ходе которой эксперт предлагает перечень задач для решения с помощью выявленных правил;

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

381

 

 

-оценивание прототипа системы экспертом;

-оценивание прототипа системы другими экспертами. Полученные от эксперта и из других источников знания фиксируют-

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

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

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

гией [12].

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

-универсальные инструменты для разработки ЭС, которые поддерживают основные модели представления знаний и соответст-

вующие механизмы вывода (OPSS, KEE, ART, Knowledge Graft [12,63] );

-проблемно-ориентированные системы приобретения знаний, характеризуемые определенными методами решения задач, пред-

382

Глава 7

 

 

ставлением знаний и формами ввода знаний (например, SALT – система приобретения знаний для задач конструирования [63]);

-предметно-ориентированные системы приобретения знаний, которые в дополнение к предыдущему классу инструментальных средств снабжаются основными предметными знаниями, напри-

мер, техническими терминами (OPAL – система приобретения медицинских знаний в области онкологии [63]).

Инструментальные средства приобретения знаний существенно отличаются друг от друга по показателю “время разработки – гибкость”. Универсальные средства характеризуются наибольшим временем разработки и большой гибкостью. Предметно-ориентированные системы, наоборот, характеризуются наименьшим временем на разработку и узкой, конкретной областью применения. Проблемно-ориентированные средства занимают промежуточное положение. Подробнее ознакомиться с вопросами приобретения знаний можно в [12].

7.4. Поиск и объяснение решений

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

База знаний ЭС продукционного типа состоит из множества правил

вида:

Если С то Х,

где С – последовательность выражений (образцов), определяющих условия активизации правила; Х – последовательность действий, которые могут модифицировать состояние рабочей памяти (рисунок 3.2). Продукционное правило напоминает условный оператор процедурных языков программирования. Однако, несмотря на внешнюю схожесть с условным оператором, продукционные правила характеризуются следующими отличительными признаками:

- действия Х выполняются, когда выражения (образцы) из С сопоставимы с соответствующими элементами (фактами) рабочей памяти;

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

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

383

 

 

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

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

носится правило; приоритет правила; фаза выполнения, в течение которой разрешается выполнять правило.

Алгоритм поиска решения в ЭС продукционного типа использует понятие списка конфликтных правил S. К конфликтным правилам относят все экземпляры правил, условная часть которых сопоставима с соответствующими элементами рабочей памяти. Обобщенный алгоритм прямого вывода на правилах-продукциях можно записать в виде:

Определить экземпляры конфликтных правил и

поместить их в список S; While S NIL Do

Begin

Выбрать экземпляр правила из S;

Изменить состояние рабочей памяти в соответствии с заключением правила;

Модифицировать список S, добавив или удалив

экземпляры правил в соответствии с изменением состояния рабочей памяти

End.

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

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

384

Глава 7

 

 

ко оставшиеся образцы из предпосылки экземпляра правила. Частичное сопоставление позволяет повысить скорость вывода.

Рассмотрим пример. Пусть имеется правило

( Р1 Р2 … Р8 ) Q.

На этапе инициализации для этого правила были успешно сопоставлены образцы Р1 , …, Р6 , и соответствующие подстановки запомнены машиной

вывода. После выполнения очередного правила из списка S, машина вывода определяет, имеются ли в рабочей памяти изменения, оказывающие влияние на результаты частичного сопоставления для рассматриваемого правила (т.е. на Р1 , …, Р6). Если изменения не касаются, например, образ-

цов Р1 , …, Р5, но делают невозможным сопоставление для образца Р6, то машина вывода сохраняет подстановки для образцов Р1 , …, Р5. Если же изменения не касаются образцов Р1 , …, Р6 и дополнительно успешно вы-

полняется сопоставление для образцов Р7 и Р8 , то рассматриваемое пра-

вило помещается в список активизируемых правил.

Дальнейшее повышение эффективности операции сопоставления основано на использовании алгоритма RETE, предложенного Форджи [64] Идея алгоритма базируется на распространении результатов частичного сопоставления между правилами. Это позволяет исключить многократное сопоставление, по сути, одних и тех же образцов, встречающихся в различных правилах. Пусть имеются два правила

Р0 Р1 Р2 Р3 Q1, Р0 Р1 Р4 Р2 Q2.

Тогда результаты частичного сопоставления образцов P0 и P1 для первого правила могут быть распространены на второе правило. Но подстановки, сделанные в ходе сопоставления образца P2 первого правила, не могут использоваться во втором правиле из-за того, что раньше должно выполняться сопоставление образца P4 , которое может сделать недопустимыми за-

помненные подстановки для P2 .

В соответствии с алгоритмом RETE, в результате компиляции правил формируется сеть, состоящая из двух частей. Первая часть сети представляет сеть образцов, а вторая часть – сеть объединения. Рассмотрим следующие правила, в которых образцы представлены триплетами “объект - атрибут - значение” [63]:

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

385

 

 

( P0 (длина ?х)(высота ?х))(P1 (длина ?х)(ширина ?y)) Q1 ,

( P0 (длина ?y)(высота ?y))(P1 (длина ?х)(ширина ?x)) Q2 .

В ходе сопоставления в переменные, начинающие символом ‘?’, выполняются подстановки. Вхождениям одной и той же переменной в различные образцы должны назначаться одинаковые значения. Если переменная входит несколько раз в один и тот же образец, то она получает значения в соответствии с сетью образцов. Если переменная входит в различные образцы, то значения назначаются с помощью сети объединения (рисунок

7.3)

Рисунок 7.3 – Сеть, формируемая алгоритмом RETE

Предположим, что в рабочей памяти имеются следующие факты, относящиеся к объектам P0 и P1 :

1)( P0

2)( P0

3)( P0

4)( P1

(длина 12)(высота 12));

(длина 15)(высота 10)); (длина 15)(высота 15)); (длина 15)(ширина 15));

386

Глава 7

 

 

5)( P1 (длина 15)(ширина 14));

6)( P1 (длина 12)(ширина 12)).

Тогда в результате сопоставления образцов и фактов рабочей памяти будут активизированы три экземпляра первого правила, с подстановками фактов {(1,6),(3,4),(3,5)}, и четыре экземпляра второго правила, с подстановками фактов {(1,4),(1,6),(3,4),(3,6)}. Из примера видно, что с помощью сети объединения подстановки распространяются между правилами, что исключает лишние сопоставления.

На каждом шаге машина вывода выбирает экземпляр правила из множества конфликтных правил S. Основные стратегии, используемые при этом, рассмотрены в § 3.3.2.

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

Для получения объяснений выводов пользователи ЭС могут задавать вопросы двух типов:

-почему система сочла необходимым задать пользователю определенный вопрос;

-как система пришла к соответствующему заключению.

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

Правило 1:

Если топливо_ поступает = ‘да’ и состояние_двигателя = ‘работает_с_перебоями’,

то

причина = ‘свечи’;

Правило 2:

Если состояние_двигателя = ‘не_запускается’ и состояние_освещения = ‘не_ работает’,

то

причина = ‘аккумулятор’;

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

387

 

 

Правило 3:

Если состояние_двигателя = ‘не_запускается’ и состояние_освещения = ‘работает’,

то

причина = ‘стартер’;

Правило 4:

Если наличие_топлива_в_баке = ‘да’ и

наличие_топлива_в_карбюраторе = ‘да’,

то

топливо_поступает = ‘да’.

Процесс вывода начинается с ввода в рабочую память цели

причина = Х,

где Х – переменная, которая может быть сопоставлена с любой строкой. Значение переменной Х, полученное в ходе вывода, будет указывать причину неисправности двигателя. Если предположить, что правила активизируются в порядке их записи, то на первом шаге, в результате сопоставления с заключением первого правила, Х получит значение ‘свечи’. Затем система в соответствии с предпосылками правила 1 попытается установить, поступает ли топливо и как работает двигатель. Для решения первой подзадачи будет активизировано правило 4. Так как факты нали-

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

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

Наличие_топлива_в_баке (да/нет)?

да

Наличие_топлива_в_карбюраторе (да/нет)?

да

Состояние_двигателя (работает_с_перебоями, не_запускается)?

работает_с_перебоями

После чего система сообщает причину неисправности двигателя: причина = ‘свечи’. Если пользователь желает выяснить, почему система задает тот или иной вопрос, то в качестве ответа вводится слово “почему”. Например:

388

Глава 7

 

 

Состояние_двигателя (работает_с_перебоями, не_запускается)?

почему

Врезультате будет получен ответ:

1)топливо_поступает = ‘да’,

следовательно, если

2)состояние_двигателя = ‘работает_с_перебоями’,

то причина = ‘свечи’.

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

Чтобы ответить на вопрос “как” в системе сохраняется стек всех решений, принятых в течение сеанса работы. Просматривая стек, можно выяснить, достижение каких подцелей привело к данному решению. Например, при вводе вопроса

Как получено решение топливо_поступает =‘да’

будет получен ответ:

Это следует из правила 4:

Если наличие_топлива_в_баке =‘да’ и наличие_топлива_в_карбюраторе =‘да’,

то

топливо_поступает = ‘да’;

Факт наличие_топлива_в_баке = ‘да’ введен пользователем; Факт наличие_топлива_в_карбюраторе =‘да’ введен пользователем.

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

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

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

389

 

 

7.5. Реализация экспертной системы на языке Лисп

Рассмотрим реализацию обратного вывода в ЭС, основанной на правилах, на примере “игрушечной” задачи классификации животных [94]. Будем представлять правила классификации в форме списка языка Лисп:

(ЕСЛИ

условие1 И

 

условие2 И

 

...

 

 

условиеМ

ТО

вывод1

И

 

вывод2

И

 

...

 

 

выводN).

 

База знаний ЭС будет состоять из 15 правил, обеспечивающих классификацию животных по внешним признакам на 7 групп. Хранение базы знаний осуществим в глобальной переменной *БАЗА_ЗНАНИЙ* 1):

(defvar *база-знаний*)

(setq *база-знаний*

(правило1 правило2 правило3 правило4 правило5 правило6 правило7 правило8 правило9 правило10 правило11 правило12

правило13 правило14 правило15)) (setq правило1

(если Х имеет шерсть то Х млекопитающее)) (setq правило2

(если Х кормит детенышей молоком то Х млекопитающее))

(setq правило3

(если Х имеет перья то Х птица))

(setq правило4

(если Х летает и

Х откладывает яйца

то Х птица)) (setq правило5

(если Х млекопитающее и

Х ест мясо

то Х хищник)) (setq правило6

(если Х млекопитающее и

Химеет острые зубы и

Химеет острые когти и

1)В программе используются обозначения переменных на русском языке с целью упрощения её понимания. При вводе программы в ЭВМ соответствующие обозначения необходимо заменить англоязычными.

Соседние файлы в папке Не books