-стр. 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. zZ Пусть 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 ) . zZ 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- -