Имя материала: Организация работы с документами

Автор: Кудряев В.А

21.5. инструментальные средства построения

           экспертных систем

 

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

1) языки программирования;

2) среды программирования;

3) пустые ЭС (оболочки).

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

Создание экспертных систем с широким спектром возможностей, являющихся не механическими исполнителями воли человека, а его равноправными партнерами при поиске решений в сложных ситуациях, требует привлечения эффективных инструментальных средств программирования. К числу таких средств относятся языки обработки символьной информации, наиболее известными из которых являются Пролог и Лисп. Пролог — язык высокого уровня, имеющий строгое теоретической  обоснование и ориентированный на использование концепций и методов математической логики. Как следует из его названия, Пролог предназначен для программирования в терминах логики. Основной особенностью Пролога, отличающей его от всех других языков, является декларативный характер написанных на нем программ. Язык Лисп изобретен в Массачусетском технологическом институте и обладает способностью обрабатывать списковые структуры. Языки программирования Лисп и Пролог имеют встроенные механизмы для манипулирования знаниями.

Помимо Лиспа и Пролога создано множество других языков, ориентированных на обработку символьной информации и разработку ЭС: Smalltalk, FRL, Interlisp. Кроме этих специализированных языков для разработки экспертных систем используются и обычные языки программирования общего назначения: Си, Ассемблер, Паскаль, Фортран, Бейсик и др.

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

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

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

Типичным представителем второй и третьей групп инструментальных средств является пакет EXSYS Professional 5.0 for Windows (оболочка — по определению разработчика - компании Exsys Inc., США), предназначенный для создания прикладных экспертных систем в различных предметных областях. Система построена на использовании сложных правил вида ЕСЛИ-ТО-ИНАЧЕ. Для выбора стратегии получения заключения в системе по умолчании используется обратная цепочка вывода. Прямая цепочка может быть задана при настройке системы. Система обладает развитым графическим интерфейсом, способна обращаться к внешним базам данных, проверять правила на непротиворечивость. При определенной настройке может работать с русскоязычными текстами.

 

21.6. Инженерия знаний

 

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

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

Построение базы знаний включает три этапа:

описание предметной области;

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

приобретение знаний.

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

определить характер решаемых задач;

выделить объекты предметной области;

установить связи между объектами;

выбрать модель представления знаний;

выявить специфические особенности предметной области.

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

Выделение предметной области представляет собой первый шаг абстрагирования реального мира.

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

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

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

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

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

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

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

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

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

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

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

2. Определите точно цель решения задачи.

3. Вникните как можно глубже в существо задачи.

4. Установите подцели, разбив задачу на подзадачи.

5. Выявите специфические особенности предметной области.

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

7. Участвуя вместе с экспертом в решении нескольких прикладных задач, выявите приемы, которые он применяет. Подробно их опишите.

8. Выберите инструментальные средства, необходимые вам для создания системы. Этот выбор будет зависеть от типа решаемой задачи, ваших финансовых возможностей и сложности предметной области.

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

10. Приступите к созданию базы знаний. Выявите объекты предметной области, взаимосвязи между ними, виды иерархий, разбейте объекты на классы. Структурируйте базу знаний в соответствии с представлением эксперта о строении предметной области.

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

12. Разработайте документацию на систему.

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

 

Страница: | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 |