-стр. 1 - 1 - -

advertisement
-стр. 1
-1-
Лекция №6
Адаптивное распознавание образов. Алгоритм с обучением.
В случае адаптивного распознавания образов вместо того, чтобы сразу
задавать фиксированную выборку X , подлежащую анализу, к устройству
распознавания образов поступает последовательность
S x  х (1) ,…, х (i ) ,…, х (t ) ,
при этом каждое возможное наблюдение может появляться бесконечно много раз. Последовательность S x можно получить повторяющимися
выборками х (i ) из множества возможных описаний объектов. При этом этапы распознавания и классификации образов совмещаются.
При появлении каждого элемента х (i ) проводится его классификация
по определённому правилу, и устройству распознавания образа сообщается о
верной классификации. Затем правило корректируется. Таким образом, решающее правило формируется не на основе анализа по конечной выборке, а
с помощью алгоритма последовательного приближения. Этот алгоритм принято называть алгоритмом с обучением. Его выходом будет последовательность решающих правил
S w  W (1) ,..., W (t ) ,
где i-ое правило применяется для классификации i-го наблюдения. Алгоритм с обучением называют сходящимся, если существует такое положительное число t  , что


W (t )  W (t  j ) , j  0.
Данное правило обучения в итоге устанавливает единственную, не меняющуюся процедуру классификации, которая максимизирует некоторый критерий качества классификации.
1.Определения и обозначения.
При рассмотрении алгоритма с обучением будем считать, что никогда
два класса не могут породить одинаковое наблюдение, т.е. каждый член последовательности принадлежит только одному из k  2 классов – каждая
точка х D относится к единственному классу. Вместо правила обучения
для последовательности S x построим правило для
S y  y (1) ,...,y (t ) ,
где y (i )  это (m +1) – мерный вектор, полученный из х (i ) добавлением 1
в качестве (m+1)- й компоненты. Будем считать, что
y (i ) принадлежит
классу j , если х (i ) - описание объекта из класса j . Очевидно, что правило
для классификации S y будет также классифицировать и S x .
Классы называются отделимыми, если существует такое множество
-1-
-
-стр. 2
функций g j , что

-2-

g j  ( y (i ) ) =max g j (y (i ) )
тогда и только тогда, когда y (i ) классу j  . Классы называются линейно отделимыми, если эти функции линейны:
m 1
g j(y ) = 
(i )
s 1
w js ys(i )
m
  w js xs(i )  w jm 1.
(6.1)
s 1
Если верно (6.1), то правило классификации w (i ) можно задать (k  (m  1)) матрицей, строки которой представляют собой векторы w j . Тогда (6.1)
можно записать в виде скалярного произведения
(6.2)
g j ( y (i ) ) =y (i ) w j .
Вообще говоря, уравнениям (6.1) и (6.2) удовлетворяет бесконечно много
матриц W. Будем предполагать, что некоторая матрица W существует, а
наша задача состоит в определении правила обучения, обеспечивающего
удовлетворительное правило классификации W (t ) .
Рассмотрим случай для количества взаимно исключающих классов
объектов k=2, который особо интересен по следующим причинам:
- он допускает подробный анализ;
- часто встречается на практике,
- это частный случай, к которому можно свести общий случай
при k>2.
Предположим, что некоторое множество линейных функций G  g1 , g 2 
удовлетворяет уравнениям (6.1) и (6.2). Тогда разделяющая функция
g   g1  g 2
существует и равна

g (y ) 
(i )
m 1

s 1
ws ys(i )

m 1
 (w1s  w2 s ) ys(i ) .
s 1
Поэтому неравенство
g  ( y (i ) ) >0
(6.3)
Справедливо тогда и только тогда, когда y принадлежит классу 1. Обозначим через Y1 и Y2 множество векторов, принадлежащих соответственно классам 1 и 2, и пусть
Z  Y1  (Y2 ).
(6.4)
Неравенство
g( z)  0)
(6.5)
(i )
справедливо для всех z Z . Принято говорить, что функция g  линейно содержит некоторое множество Z , если справедливо (6.5). Из способа построения Z следует, что если можно найти функцию, линейно содержащую Z, то
можно найти функцию, удовлетворяющую неравенству (6.3) и, значит,
линейно отделяющую Y1 и Y2 .
-2-
-
-стр. 3
-3-
2.Процедура обучения для двух классов
При построении правила обучения для двух классов будем полагать,
что существует множество векторов w , линейно отделяющих Y1 и Y2 . Это
будет сделано с помощью алгоритма, известного под названием процедуры
коррекции по ошибкам ( правило классификации совершенствуется с учётом
лишь ошибок).
Алгоритм коррекции по ошибкам для двух классов
(1) Пусть w (i ) -приближение, используемое для классификации y (i ) .
(2) w (i )  (0,...,0).
 
(3) При заданном векторе w (i ) необходимо поступать согласно следующим правилам.
Случай 1: (y) (i ) принадлежит множеству векторов Y 1 ,
относящихся к классу 1.
(а) Если y (i ) w (i ) >0, то w (i 1) =w (i ) .
(b) Если y (i ) w (i )  0, то w (i 1)  w (i )  y (i ) .
Случай 2: (y) (i ) принадлежит множеству векторов Y 2 ,
относящихся к классу 2.
(а) Если y (i ) w (i ) <0, то w (i 1)  w (i ) .
(b) Если y (i ) w (i )  0, то w (i 1)  w (i ) -y (i ) .
Можно было бы доказать соответствующие теоремы о несколько более
общем алгоритме, в котором w (1) -произвольный вектор, а коррекция по
ошибкам заключается в добавлении  c y (i ) , где c -любая положительная
постоянная, но это неоправданно усложнит изложение материала.
Теорема обучения для двух классов. Если Y1 и Y2 линейно отделимы и для определения w (i ) используется указанный алгоритм коррекции
по ошибкам для двух классов, то существует такое целое число t , что
w (i ) линейно отделяет Y1 и Y2; следовательно, w (t  j )  w (i ) для всех j  0.
В теореме утверждается, что приведенный выше алгоритм работает
правильно.
Определим вектор w (i ) , линейно содержащий множество Z, определённое соотношением (6.4). Пусть S z -последовательность векторов z, соответствующих элементам из S y . Приведённый выше алгоритм преобразуем
сначала в процедуру, работающую с S z .
Преобразованный алгоритм для двух классов
(1)w (1)  (0,...,0), как и ранее.
(2)w (i 1)  w (i ) , если z (i ) w (i )  0 .
В исходном алгоритме это соответствует случаям верной классификации.
-3-
-
-стр. 4
-4-
(3) w (i 1)  w (i )  z (i ) , если z (i ) w (i )  0.
В исходном алгоритме это соответствует случаям ошибочной
классификации.
Пусть S e - последовательность e 1 ,..., e j , где e j - есть j-я ошибка в классификации. Таким образом, S e - подмножество множества S z , а e j - вектор, вызывающий j-е обращение к шагу 3 модифицированного алгоритма. Если
множество S e конечно, то число обращений к шагу 3 также конечно, и последнее обращение даёт правило w (t ) , которое дальше не изменяется. Однако по предположению S z - бесконечная последовательность, в которую любая
возможная экспериментальная точка входит бесконечно много раз; поэтому
правило w (t ) должно классифицировать все точки и тем самым линейно отделить Y 1 и Y 2 . Итак, надо показать, что множество S e конечно.
По предположению существует вектор w  , линейно содержащий Z.
Поэтому найдется такое положительное число a , что
min z  w  a  0.
zZ


Пусть w(t) будет этим весовым вектором, построенным после t-й ошибки.
Согласно алгоритму,
t
w(t)=  ej ,
j 1
откуда

t
w(t) w =  ej w   ta.
(6.6)
j 1
С помощью соотношения (6.6) можно установить нижнюю границу величины w2(t). Применим неравенство Шварца (произведение квадратов двух векторов не меньше квадрата их скалярного произведения):
w(t)2(w  )2  [w(t) w  ]2,
(6.7)
или
 2
2 (w (t )  w )
( w(t) ) 
(6.8)
.
(w  ) 2
Объединяя (6.6) и (6.8), получаем
a 2 t 2
2
 t 2  M1,
( w(t) ) 
(6.9)
 2
(w )
где M1 – неизвестная постоянная, значение которой зависит от w  . Нам не
обязательно знать значение M1 ;мы хотели лишь показать, что нижняя граница для (w(t))2 пропорциональна t2 .
Теперь покажем, что верхняя граница для (w(t))2 пропорциональна t.
В соответствии с алгоритмом,
w(t+1) = w(t)+et+1.
(6.10)
-4-
-
-стр. 5
-5-
Возведём обе части равенства (6.9) в квадрат:
(w(t+1))2= (w(t))2+2w(t) et+1+(et+1)2.
Так как использование вектора w(t) привело к ошибке et+1, то w(t) et+1  0, и
потому
(w(t+1))2-(w(t))2  (et+1)2.
(6.11)
Суммируя (6.11) для j= 1,…,t, находим
(w(t  1))
2
 



t 1
 (w(t))2  (w(t )) 2  (w(t  1 )) 2  ...  (w (1)) 2  (w (0)) 2   (e j ) 2 .
j 1
Поскольку w(0)=w =0, а все средние члены взаимно уничтожаются, остаётся
(1)
t 1
(w(t+1))2   (e j ) 2 ,
j 1
или, что эквивалентно,
t
(w(t))2   (e j ) 2 .
(6.12)
j 1
Поскольку множество Z конечно, оно должно обладать наибольшим вектором. Так как S e  S z , длина этого вектора не меньше длины наибольшего
вектора в S e :
 
 
M 2  max (z 2 )  max (ei2 ) .
zZ
e i S e
(6.13)
Объединяя (6.12) и (6.13), получаем
t
(w (t )) 2   (e j ) 2  tM 2 ,
j 1
а с учётом (6.9), имеем
M 1t 2  (w (t )) 2  M 2t.
Это справедливо только тогда, когда
M
t 2 ,
M1
т.е. мы получили верхнюю границу для величины t . Отсюда заключаем, что
множество S e конечно, т.е., существует последняя ошибка. Алгоритм должен
сходиться к некоторому вектору w(t) , линейно содержащему Z . Теорема доказана.
Необходимо сделать два замечания. Во-первых, хотя t конечно, его
нельзя вычислить, не зная w  . Поскольку цель алгоритма- найти какойнибудь вектор w  , то нельзя установить априорно требуемый объём вычислений. Во-вторых, предположение, что каждый вектор из выборок Y входит
в S y бесконечно много раз, занимает центральное место во всём предыдущем
обсуждении. Если обучающая последовательность состоит из заданных повторяющихся выборок Y   Y , то с помощью алгоритма можно определить
-5-
-
-стр. 6
-6-
вектор w  , достаточный для классификации Y  ; классификация же вне множества Y  ,т.е. в множестве Y  Y  , может быть ошибочной.
-6-
-
Download