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

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

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

410

Глава 7

 

 

топливо

– вопрос : ’Есть топливо в баке?’

– ответы : [1 : да, 2 : нет]

– – причины

: [2 : верно]

– – объяснения : ’Нет бензина. Заправьте автомобиль’.

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

найти(H, X):

(объект(H, вопрос, _),!, получить_ответ(H,О),

найти1(H,О,X).

найти1(H,О,X):

(объект(H, причины, R), (var(О),!,member(H1, R); member(О : H1, R)), найти2(H, H1, X).

найти2(Н, верно, Н). найти2(Н, Н1, Х): – найти(Н1, Х).

получить_ответ(Объект, О):- сообщено(Объект,О),!. получить_ответ(Объект, О):-спроси(Объект,О),

assert(сообщено(Объект,О)),!.

спроси(Объект,Ответ):- объект(Объект,вопрос, Вопрос), объект(Объект,ответы, Ответы), nl,write(Вопрос),

печать_списка(Ответы), nl,read(Ответ),!.

печать_списка([ ]).

печать_списка([H|T]):- nl, write(H), печать_списка(T).

При вызове предиката найти(H,X) переменная Н конкретизируется константой автомобиль. Предикат получить_ответ(H,О) обеспечивает ввод ответа О пользователя на вопрос, связанный с объектом Н, и запоминание его в базе данных. Полученный ответ обрабатывается с помощью предиката найти1(H,О,X). Данный предикат извлекает список R, элементами которого являются возможные обоснования (причины) гипотезы Н. Из списка R выбирается с помощью предиката member обоснование Н1, которое выступает в качестве новой подцели поиска. Если ответ О представляет собой не конкретизированную переменную, что проверяется вызовом var(О), то это означает, что вопросы относительно Н не формулировались.

Дальнейший поиск выполняется с помощью предиката найти2(Н,Н1,Х). Если подцель Н1 конкретизирована значением ‘верно’, то по-

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

411

 

 

иск заканчивается, иначе рекурсивно вызывается предикат найти(Н1,Х), и весь процесс повторяется. В результате поиска возвращается значение переменной Х, которое фиксирует возможную причину неисправности. Основной предикат, обеспечивающий запуск ЭС, можно определить следующим образом:

/* ЭС, основанная на фреймовой модели */

инициализация:- retractall(сообщено( _ , _ )), !. причина(автомобиль).

диагностика: – инициализация, причина(Н), /* гипотеза */ найти(Н, Х),

объект(Х, объяснения, Е), nl, write(E),

возврат.

диагностика: – nl, write(‘Больше нет гипотез’). возврат: – nl, nl, write(‘Следующее решение ?:’),

read(no).

Для приведенного фрагмента базы знаний можно получить следующее решение:

?- диагностика.

Что случилось с Вашим автомобилем?

1:не заводится

2:не едет

3:другое

1.

Температура ниже –20 ?

1:да

2:нет

1.

Низкая температура. Нагрейте двигатель. Следующее решение? да.

Больше нет гипотез.

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

412

Глава 7

 

 

Особенности реализации этих возможностей на языке Пролог рассмотрены в § 6.11.5.

Вопросы для самопроверки

1.Приведите определение экспертной системы.

2.Назовите основные отличительные свойства экспертных систем.

3.Перечислите типовые задачи, решаемые с помощью ЭС.

4.Назовите основные компоненты ЭС и объясните их функции

5.Каким требованиям должны удовлетворять задачи, для решения которых планируется разработка ЭС?

6.Какие специалисты принимают участие в разработке ЭС, и каковы их функции?

7.В чем заключается концепция создания “быстрого прототипа”?

8.Назовите основные этапы разработки ЭС, перечислите задачи, решаемые на каждом из этапов.

9.Объясните термины “приобретение знаний” и “извлечение знаний”.

10.Сформулируйте основные подходы, используемые в процессе извлечения знаний.

11.Какие приемы использует когнитолог в ходе извлечения знаний?

12.Какая проблема исследуется в рамках направления “формирование знаний”?

13.Сформулируйте обобщенный алгоритм прямого вывода на правилахпродукциях.

14.Объясните на примере, что понимают под частичным сопоставлением.

15.Объясните основную идею алгоритма RETE.

16.Объясните суть вопросов типов “почему” и “как”, используемых для формирования объяснений вывода в ЭС.

17.Объясните на примере механизм формирования ответа на вопрос типа “как”.

18.Объясните на примере механизм формирования ответа на вопрос типа “почему”.

19.Как можно представить базу продукционных правил на языке Лисп?

20.Какие правила положены в основу лисповской функции BACK-PROVE, осуществляющей обратный вывод?

21.Как можно представить базу продукционных правил на языке Пролог?

22.Какие правила положены в основу предиката найти(Н), осуществляющего обратный вывод на множестве продукционных правил?

23.Напишите на языке Пролог простейший вариант реализации предиката

найти(Н).

ГЛАВА 8

РАСПОЗНАВАНИЕ ОБРАЗОВ И ОБУЧЕНИЕ

Распознавание образов – одна из основных функций интеллектуальных систем. Любой интеллект, в том числе и искусственный, начинается с восприятия и распознавания объектов внешнего мира. Поэтому подсистемы распознавания образов называют “ушами и глазами” СИИ [55]. Существует большое множество задач ИИ, решение которых связано с автоматизацией процессов восприятия и распознавания образов. Например, автоматическое чтение рукописных текстов, распознавание речи, анализ изображений и сцен, дистанционная идентификация объектов, медицинская диагностика и др.

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

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

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

414

Глава 8

 

 

8.1. Основные сведения о распознавании образов

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

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

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

Выбор исходного описания образов – важнейшая задача, решаемая при построении систем распознавания образов. При введении понятия образа указывалось, что в образ объединяются объекты, имеющие общие свойства. Указанные свойства называют признаками образа (класса). Отметим диалектическое единство понятий образ и признак. Задание образов порождает признаки, а задание признаков порождает образы [10]. Для выделения признаков сигналы, получаемые от различных рецепторов (датчиков), подвергают предварительным преобразованиям.

Таким образом, распознавание образов можно определить как отнесение наблюдаемых данных к определенному классу на основе выделения существенных признаков, характеризующих эти данные. Этому определению соответствует обобщенная структурная схема, изображенная на рисунке 8.1.

Рисунок 8.1 – Обобщенная схема системы распознавания

Если предположить, что система имеет n рецепторов (датчиков), то любой объект может быть представлен вектором n – мерного пространст-

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

Распознавание образов и обучение

415

 

 

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

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

8.2. Геометрический метод распознавания

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

На рисунке 8.2 изображены векторы признаков, объединенные в два класса k1 и k2. Для наглядности использованы только два признака x1 и x2. Так как вектор x, представляющий некоторый объект, находится ближе к векторам класса k1, то объект принадлежит классу k1.

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

416

Глава 8

 

 

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

Рисунок 8.2 – Классификация объектов с помощью функции расстояния

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

x и соответствующего эталона может быть использовано расстояние Евклида [43]

Di

 

 

 

x zi

 

 

 

, i = 1, 2, …, M

(8.1)

 

 

 

 

Возведем (8.1) в квадрат

 

 

 

 

Di2 (x zi )T (x zi ) xT x 2xT zi ziT zi

xT x 2(xT zi

 

1

ziT zi ), (8.2)

 

 

 

2

 

где символ Т обозначает транспонирование.

Объект, представленный вектором x, относится к тому классу, который ближе к нему, т.е. классификация осуществляется по минимуму расстояния Di. Из (8.2) следует, что выбор минимального расстояния Di эквивалентен выбору максимального значения разности

 

di (x) xT zi

 

1

ziT zi ,

(8.3)

 

2

 

 

 

 

 

которое называют решающей функцией.

 

 

 

x отно-

Если di(x) dj (x)

для всех i j ,

j = 1, 2, …, М, то вектор

сится к классу ki. Отметим, что di(x) представляет собой гиперплоскость в n–мерном пространстве. При n=2 di(x) будет представлять прямую линию, отделяющую один класс от другого.

Распознавание образов и обучение

417

 

 

Если каждый класс характеризуется не единственным, а несколькими эталонами zi1,zi2,...,ziN , где N – количество эталонов, определяющих класс, то

D i min

 

 

 

x

zil

 

 

 

, l = 1, 2, …, N.

 

 

 

 

l

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В этом случае для каждого входного вектора x

вычисляется рас-

стояние Di. Вектор x относится к классу ki, если Di < Dj

для всех j i .

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

а) D(x,y) 0;

б) D(x,y) D(y,x) (симметрия);

в) D(x,y) D(x,z) D(z,y)(неравенство треугольника), где D(x, y)

– расстояние между векторами x и y .

Если известны статистические характеристики входных векторов, то в качестве меры сходства может быть использовано расстояние Махалано-

биса

 

 

 

 

 

 

 

(8.4)

D(x,m) (x

m)T C 1

(x

m),

где С – ковариационная матрица совокупности векторов признаков; m – вектор средних значений.

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

Рассмотрим два вектора x и y , элементами которых являются бинарные значения 0 и 1 или символы некоторого алфавита. Расстояние Хемминга DH между такими векторами равно количеству несовпадающих элементов векторов. Например, пусть x = (1, 0, 1, 1, 0) и y = (0, 1, 1, 1, 0). Тогда DH (x,y) 2. Или, пусть x=(о, б, р, а, з, е, ц) и y =(о, б, р, а, т, н, о). В этом случае DH (x,y) 3. Заметим, что расстояние Хемминга может быть определено только между векторами (строками) x и y , равной длины.

Расстояние Левенштейна между строками Х и У определяется как наименьшее число преобразований, требуемых для получения строки У из строки Х. Условно это можно записать в виде выражения [73]

418

Глава 8

 

 

DL(X,Y) min{a(i) b(i) c(i)},

(8.4)

где а(i) – количество замен символов при выполнении i -го варианта преобразований символов; b(i) – количество вставок символов; с(i) – количество удалений.

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

DWL(X,Y) min{pa(i) qb(i) rc(i)},

где p(c1,c2)– стоимость замены символа с1 на с2; q(с1) – стоимость вставки символа с1; r(с1) – стоимость удаления символа с1.

Взвешенное расстояние Левенштейна между строками X (x1,x2,...,xn ) и Y (y1,y2,...,ym) вычисляется на основе алгоритма динамического программирования:

D [ 0, 0 ] : = 0;

For i : = 1 To n Do

D [ i, 0 ] : = D [ i - 1, 0 ] + r ( X [ i ] ); For j : = 1 To m Do

D [ 0, j ] : = D [ 0, j – 1 ] + q ( Y [ j ] ); For i : = 1 To n Do

For j : = 1 To m Do Begin

р1 : = D [ i – 1, j – 1 ] + р ( X [ i ], Y [ j ] ); р2 : = D [ i, j – 1 ] + q ( Y [ j ] );

р3 : = D [ i – 1, j ] + r ( X [ i ] ); D [ i, j ] : = min ( р1, р2, р3 )

End

DWL : = D [ n, m ];

Простой пример вычисления расстояния Левенштейна показан на рисунке 8.3. Здесь полагается, что стоимости элементарных операций вставки и удаления символов равны 1. Стоимость операции замены символа равна 1, если сравниваемые символы строк различны. Если сравнивае-

Распознавание образов и обучение

419

 

 

мые символы строк одинаковы, то замена не выполняется, и стоимость операции равна 0.

Рисунок 8.3 – Преобразование строки “ELIZA” в строку “ELSA”

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

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

Решение задачи выделения кластеров требует введения критерия качества кластеризации. Наиболее часто используют сумму квадратов отклонений входных векторов x от центров кластеров mj [43]

 

N c

 

 

x

 

m

 

 

2

 

J

 

 

 

 

 

 

(8.5)

 

 

j

 

,

 

j 1 x s

j

 

 

 

 

 

 

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