- •Раздел II. Распознавание образов Введение
- •Глава 1. Общие основы теории распознавания образов
- •1.1. Основные понятия теории распознавания образов
- •1.2. Основные задачи, возникающие при разработке систем распознавания образов
- •1.3. Основные принципы построения систем распознавания
- •1. Принцип перечисления членов класса
- •2. Принцип общности свойств
- •3. Принцип кластеризации
- •1. Эвристические методы
- •2. Математические методы
- •3. Лингвистические (синтаксические) методы
- •Глава 2. Решающие функции
- •2.1. Общие понятия
- •2.2. Линейные решающие функции
- •Глава 3. Классификаторы образов с самообучением
- •3.1. Классификация образов с помощью функций расстояния
- •3.2. Классификация образов по критерию минимума расстояния
- •1. Случай единственности эталона
- •2. Множественность эталонов
- •3.3. Обобщение принципов классификации по минимуму расстояния
- •Глава 4. Распознавание образов с помощью кластеров
- •4.1. Основные понятия кластерного анализа
- •4.2. Расстояние между образами и мера близости
- •4.3. Расстояние между кластерами
- •4.4. Функционалы качества разбиения
- •4.5. Иерархические процедуры
- •4.6. Эвристические методы и алгоритмы
- •4.7. Алгоритм k – внутригрупповых средних
- •Глава 5. Обучаемые классификаторы образов. Детерминистский подход
- •5.1. Классификация образов с помощью персептронного подхода
- •5.2. Принцип подкрепления - наказания
- •5.3. Сходимость принципа подкрепления - наказания
- •5.4. Обобщение алгоритма персептрона для классификации нескольких классов
- •Глава 6. Распознавание образов на основании метода потенциальных функций
- •6.1. Получение решающих функций
- •6 .2. Выбор потенциальных функций
- •6.3. Сходимость алгоритмов обучения
- •6.4. Обобщение алгоритма метода потенциальных функций на несколько классов
- •Глава 7. Структурное распознавание образов Введение
- •7.1. Синтаксический подход к распознаванию образов
- •7.2. Система синтаксического распознавания образов
- •7.3. Методы предварительной обработки
- •1. Кодирование и аппроксимация
- •2. Фильтрация, восстановление и улучшение
- •3. Сглаживание
- •4. Сегментация
- •7.4. Языки описания образов
- •1. Выбор непроизводных элементов
- •2 Выделение непроизводных элементов на границах
- •Задание для самостоятельной работы
- •7.5. Языки и порождающие грамматики
- •7.6. Обработка изображений
- •1. Классы изображений
- •2. Ввод изображений
- •3. Преобразование изображений
- •Литература
5.2. Принцип подкрепления - наказания
Обучающий алгоритм для персептрона, приведенного на рисунке 5.1, сводится к простой схеме итеративного определения векторов весов w. Рассмотрим краткое описание этой схемы, которую обычно называют алгоритмом персептрона.
Заданы два обучающих множества, представляющие классы ω1 и ω2 соответственно; пусть w(1) – начальный вектор весов, который выбирается произвольно. В таком случае k-й шаг обучения выглядит следующим образом.
Если
x(k)
ω1
и w´(k)x(k)≤0,
то вектор весов w(k)
заменяется вектором
,
(5.3)
где с – корректирующее приращение.
Если x(k) ω2 и w´(k)x(k)≥0, то w(k) заменяется вектором
.
(5.4)
В противном случае w(k) не изменяется, т.е.
.
Таким образом, алгоритм вносит изменения в вектор весов w в том и только том случае, если образ, предъявленный на k-м шаге обучения, был при выполнении этого шага неправильно квалифицирован с помощью соответствующего вектора весов. Корректирующее приращение должно быть положительным, и в данном случае предполагается, что оно постоянно.
Очевидно, что алгоритм персептрона является процедурой типа «подкрепление - наказание», причем, подкреплением за правильную классификацию образа, в сущности, служит отсутствие наказания. Иными словами, если образ классифицирован правильно, то система подкрепляется тем, что в вектор весов w не вносится никаких изменений. С другой стороны, если образ классифицируется неправильно и произведение w´(k)x(k) оказывается меньше нуля, когда оно должно быть больше нуля, система «наказывается» увеличением значения вектора весов w(k) на величину, пропорциональную x(k). Точно также, если произведение w´(k)x(k) оказывается больше нуля, когда оно должно быть меньше нуля, система «наказывается» противоположным образом. Сходимость алгоритма наступает при правильной классификации всех образов с помощью некоторого вектора весов.
Алгоритм персептрона можно представить в другой эквивалентной форме, умножив пополненные образы одного из классов на (-1). Таким образом, умножив все образы, например класса ω2, на (-1), алгоритм перцептрона можно записать как
,
(5.5)
где с – положительное корректирующее приращение.
5.3. Сходимость принципа подкрепления - наказания
В случае линейной разделимости рассматриваемых классов алгоритм, описанный выше, обеспечивает получение весового вектора решения за конечное число шагов. Для доказательства сходимости введем обозначения, которые упростят доказательство.
Пусть x1, x2,…, xN представляют обучающее множество образов, относящихся к двум заданным классам, причем все образы, принадлежащие классу ω2, умножены на (-1). Полагается, что в случае линейной разделимости классов алгоритм обучения (5.5) обеспечивает определение весового вектора решения w*, отличающегося тем, что
(5.6)
Выражение (5.6) можно представить в несколько более общем виде, введя неотрицательную пороговую величину Т, такую, что при линейной разделимости классов
(5.7)
При этих условиях алгоритм (5.5) принимает вид
,
(5.8)
причем вектор w(1) выбирается произвольным образом. Пусть для простоты с=1. Это допущение не нарушает общности рассуждений, так как любое другое значение с может быть введено в векторы образов в качестве нормирующей константы. Пороговая величина Т создает с обеих сторон гиперплоскости w´(k)x(k)=0 буферные области. Всякий образ, попадающий в эти области, квалифицируется неправильно.
Предполагается, что каждый образ предъявляется необходимое количество раз. Утверждается, что при линейной разделимости заданных классов, алгоритм (5.8) приведет за конечное число шагов к получению искомого результата. Доказательство существенно упростится, если помимо применения введенных выше обозначений принимать во внимание только те индексы k, при которых в процессе обучения имела место коррекция. Иначе говоря, если исключить те значения индекса k, которым соответствует правильная классификация образов, то, изменив снова запись индексов, можно прийти к выражению
(5.9)
и
(5.10)
для всех значений индекса k в обучающей последовательности, при которых происходила коррекция. Сходимость алгоритма на самом деле означает, что после некоторого конечного значения индекса km имеет место равенство
(5.11)
После введения всех этих упрощений доказательство сходимости алгоритма состоит в следующем. Из (5.9) получаем
.
(5.12)
Скалярное произведение вектора w* с обеими частями уравнения (5.12) дает
.
(5.13)
Так
как из условия (5.7) следует, что каждый
член
j=1,…,k,
больше пороговой величины Т, то
(5.14)
Неравенство Коши – Шварца (||a||2||b||2≥(a´b)2) приводит к выражению
(5.15)
где ||a||2 обозначает квадрат модуля вектора а. Неравенство (5.15) можно переписать в виде
(5.16)
После подстановки неравенства (5.14) в (5.16) получим неравенство
(5.17)
Другая
ветвь рассуждений приводит к противоречию,
касающемуся величины
.
Из (5.9) заключаем, что
(5.17)
или
.
(5.18)
Используя
неравенство (5.10) и полагая
,
придем к
(5.20)
Суммируя эти неравенства по всем j=1,2,…,k, получим
(5.21)
Сопоставление неравенств (5.17) и (5.21) показывает, что при достаточно больших значениях k границы, устанавливаемые для величины соответствующими неравенствами, противоречат друг другу. В самом деле, индекс k не может принимать значений, больших значения km, удовлетворяющего уравнению
(5.22)
Согласно (5.22), km – конечная величина, из чего следует сходимость алгоритма персептрона за конечное число шагов при условии линейной разделимости заданных классов. Это завершает доказательство сходимости алгоритма персептрона.
Алгоритм персептрона построен на основе метода адаптации посредством подкрепления и наказания. Этот алгоритм является представителем семейства итеративных процедур, которые можно строить с помощью метода градиента.
Пример. Рассмотрим образы, представленные на рис. 5.2. Применим к ним алгоритм персептрона с тем, чтобы определить весовой вектор решения.
Рис. 5.2. Иллюстрация принципа действия алгоритма персептрона
Из
рисунка видно, что классы линейно
разделимы, поэтому применение алгоритмам
должно оказаться успешным. Прежде чем
применять алгоритм пополним все образы.
Рассматриваемые классы будут
и
.
Задав c=1
и
,
получим по шагам:
Коррекция
вектора весов проводилась на 2-ом и 6-ом
шагах в соответствии с формулами (5.3) и
(5.4) в связи с ошибками классификации.
Полученный результат можно считать
искомым решением только тогда, когда
алгоритм осуществит без ошибок полный
цикл итерации по всем образам, то
обучающее множество следует предъявить
еще раз. Процесс обучения продолжается
при
Второй цикл итерации приводит к следующим
результатам:
-
ошибка;
-
ошибка;
Поскольку в данном цикле итерации совершено две ошибки, все образы предъявляются еще раз.
Нетрудно
убедиться в том, что в следующем
итеративном цикле все образы
классифицируются правильно. Итак, вектор
решения имеет вид
Этому вектору соответствует решающая
функция
Приравнивание этой функции нулю дает
уравнение разделяющей границы, приведенной
на рис. 5.2 б.
