Приобретение новых знаний на основе существующих 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Приобретение новых знаний на основе существующих



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

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

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

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

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

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

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

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

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

Рекомендуемая литература

В работе Ван Мелле [van Melle, 1981] подробно описана методика разработки систем на основе оболочки EMYCIN. Книга [Boose and Games, 1988] содержит подборку статей о методах приобретения знаний, включая и описание программы OPAL. Описание систем ETS и AQUINAS читатель найдет в работе [Boose and Bradshaw, 1987]. Обзор стратегий приобретения знаний, разработанных в 1980-х годах, включающий большой список источников, приводится в работах [Boose, 1989] и [Neale, 1988]. В статьях [Eriksson el al, 1995] и [Ти et al., 1995] читатель найдет подробное описание системы PROTEGE-II.

В Европе стандартом de facto в 1990-х годах стало использование при построении экспертных систем оболочки CommonKADS, хотя эксперименты с применением системы KADS проводились и в Соединенных Штатах (см., например, [Eriksson et al, 1995]}. Линстер и Мюсен также использовали CommonKADS для моделирования задач терапии раковых заболеваний, решаемых в экспертной системе ONCOCIN. Примеры модели проектирования на базе CommonKADS можно найти в ряде статей, опубликованных в последние годы, например [Kingston, 1995], [Kingston et al, 1995], [Kingston, 1997].

Упражнения

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

Например, руководство к пистолету "Кольт.45" включает шесть страниц советов, большинство из которых представлено в форме подобных таблиц.

           
  Где? Что? Проверить Примечание  
  Боек Зажимается Прямизну При необходимости заменить  
  Эжектор Неустойчивое выбрасывание Зажимается ли возвратная пружина Установить длинную направляющую  
  Экстрактор Неправильно направляет гильзу Угол установки дна При необходимости выровнять  
           

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

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

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

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

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

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

ключевые сущности и отношения, такие как компоненты и отношения часть-целое;

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

операции в предметной области, такие как замена, очистка, установка и т.п. II) Продолжите анализ предметной области и рассмотрите следующие вопросы:

насколько детальным должен быть анализ отношений часть-целое;

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

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

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

;; #################################

;; # Поиск неисправностей в револьвере

;; # Smith & Wesson

;; #################################

;; Класс REVOLVER, определение компонентов (defclass revolver

(is-a INITIAL_OBJECT)

(slot barrel Jcreate-accessor read-write))

(slot barrel-pin

(create-accessor read-write))

(slot cyl-stop

(create-accessor read-write))

(slot cyl (create-accessor read-write))

(slot handspring

(create-accessor read-write))

)

;; Экземпляр класса REVOLVER.

;; Предназначен для тестирования программы,

(definstance guns (Ml9 of revolver

(barrel 4499)

(barrel-pin 4499)

(cyl-stop 4499)

(cyl 4499)

(handspring 5022)))

;; МЕТОД. Получение номера детали револьвера

(def mas sage-handler revolver part-no (?part)

(dynamic-get?part))

;; ПОЛЕЗНЫЕ ФУНКЦИИ

;; Приглашение пользователю ввести данные

(deffunction prompt ()

(printout t crlf "USER> "))

;; Распечатка списка деталей.

;; Замечание: приведенный список правил касается

;; только неисправностей со стволом (barrel),

(deffunction parts-list () (printout t crlf

"barrel cylinder ejector trigger hammer

Firing-pin cylinder-stop

Cylinder-hand yoke

frame sideplate rear-sight front-sight" crlf))

;; Выбор из списка.

(deffunction choose-list ()

(printout t crlf "Please choose from the following list: "

Crlf))

;; Правила, которые относятся только к

;; револьверам модели 19.

(deffunction kind-list ()

(printout t crlf "M10 M12 M13 M14 M15 M16 M17 M18 M19 "

Crlf))

;; ШАБЛОНЫ РЕШЕНИЯ ПРОБЛЕМЫ

;; Формулировка проблемы включает узлы (part),

;; симптомы (symptom), возможно, детали (subpart),

;; входящие в состав узлов. С проблемой может

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

;; проверка (check), которые нужно провести,

(deftemplate problem

(field part (type SYMBOL) (default nil))

(field symptom (type SYMBOL) (default nil))

(field subpart (type SYMBOL) (default nil))

(field check(type SYMBOL) (default nil)))

Определение процедуры ремонта включает узел (part), операцию с этим узлом (action), возможно, детали (subpart), входящие в состав узлов, проверку (check), которую нужно провести, и поясняющее примечание, предназначенное для пользователя, (deftemplate problem

(field part (type SYMBOL)

(default nil)} (field action (type SYMBOL)

(default nil)) (field subpart (type SYMBOL)

(default nil)) (field check(type SYMBOL)

(default nil)) (field remarkftype STRING)

(default " "))

)

;;########################

;;

;; Порождающие правила

;; Правило START.

;; ЕСЛИ: начинается выполнение программы

;; ТО: определить поврежденный узел и

;; сформировать шаблон описания проблемы,

(defrule start

?start-token <- (initial-fact) =>

(retract?start-token)

(printout t crlf

"What part of the gun are you problem with?"

;; С каким узлом у вас проблемы?

(choose-list)

(part-list)

(prompt)

(bind?part (read))

(assert (problem (part?part))))

;; Правило FINISH:

;; ЕСЛИ: Неисправность устранена

;; TO: Прекратить работу программы.

(defrule finish

(repair (check done) (remark?rem&~" "))

=>

(printout t crlf?rem crlf)

(printout t crlf "Glad to be of service! " crlf)

;; Рад быть вам полезным!

(halt))

Правило CHECK-REPAIR:



Поделиться:


Последнее изменение этой страницы: 2016-04-07; просмотров: 271; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.116.40.177 (0.024 с.)