3.2. Процедура обучения с коррекцией ошибок
Очевидно,
что для случая двух классов ошибка может
существовать, если
.
Тогда нам необходимо подвинуть весовой вектор в положительную сторону гиперплоскости для , другими словами передвигаем вектор W в область правильного решения. Наиболее прямой путь сделать это - передвинуть W в направлении перпендикулярном к гиперплоскости (т.е. в направлении от или - ). Вообще коррекция W может быть сформулирована следующим образом:
заменить W(k) на W(k+1) , так что
,
если
,
если
,
если
классифицировано
правильно,
где
и
- весовые вектора на k-ом
и (k+1)-ом
шагу коррекции, соответственно. Добавление
корректирующего члена
заставляет вектор
двигаться
в направлении
.
Аналогично,
вычитание корректирующего члена
передвигает вектор
направлении
-
.
В течение этой обучающей процедуры образы представляются по одному, всего N=N1 + N2 прототипов (обучающих образов). После одной итерации все образы представляются снова в той же последовательности, чтобы получить новую итерацию.
Существует несколько правил выбора величины С:
- правило с фиксированной коррекцией,
- правило абсолютной коррекции,
- правило частичной коррекции.
3.2.1. Правило с фиксированной коррекцией
В
этом алгоритме С - выбирается как
фиксированная положительная константа.
Этот алгоритм начинается с любого w(0)
и выражение (3.10) применяется к обучающей
последовательности P,
P
=
.
В целом процесс настройки весов будет закончен за конечное число шагов. Выбор С для этого процесса не очень важен. Если теорема сходимости справедлива для С=1, то она будет справедлива для любого С 1, так как изменение С фактически масштабирует все образы без изменения их разделимости.
3.2.2. Правило абсолютной коррекции
В
этом алгоритме С
выбирается
как наименьшее целое
число,
которое передвигает
поперек гиперплоскости образа в область
решения w
каждый раз как классификатор делает
ошибку. Пусть
- среднее из векторов, которые не
удовлетворяют неравенству w
z
T
. Константа С выбирается так, что
,
поэтому
Если
Т=0,
должно быть больше 0 или
. Взяв абсолютную величину в (3.3) получаем
.
Правило абсолютной коррекции также дает решающий весовой вектор за конечное число шагов.
3.2.3. Правило с частичной коррекцией
В
W
пространстве расширенный вектор образа
Z
-
перпендикулярен гиперплоскости
и направлен в положительном направлении,
как показано на рис.3.3.
Расстояние от до желаемой гиперплоскости будет:
(3.15)
Когда находится на другой стороне гиперплоскости
В
алгоритме с частичной коррекцией С -
выбрано так, что
двигается на часть расстояния в
направлении нормали к желаемой
гиперплоскости. То есть
и
-
=
Если порог положить равным 0, то:
можно видеть, что когда =1 коррекция происходит до гиперплоскости (правило абсолютной коррекции) и когда 1 коррекция короче, чем до гиперплоскости (under relaxation), когда 1 коррекция больше чем до гиперплоскости, (over relaxation).
Для 02 правило частичной коррекции будет или заканчиваться на весовом векторе в конечное число шагов или сходиться к точке на границе решающего пространства весов.
Процедура обучения для всех перечисленных 3-х алгоритмов выглядит следующим образом:
1) Взять любой из обучающей последовательности и проверить d(z), для определения класса (предполагается М=2).
2) Если получен правильный ответ, переходим к следующему
3) Если имеет место ошибочная классификация, изменяем w(k) на w(k+1).
4) После того, как будут проверены все из обучающей последовательности, повторяем все процедуры заново в том же порядке. Если линейно разделимы , все три алгоритма будут сходиться к правильному .
На рис 3.4. показаны шаги коррекции для трех различных алогритмов. Абсолютная коррекция заканчивается за 3 шага, в то время как частичная за 4 шага.
Рис 3.4.
Для количества классов больше 2 (M2) может быть предложена подобная процедура. Предположим, что мы имеем обучающую последовательность для всех образов классов wi i=1,2,...,M.
Вычислим дискриминантные функции
di(
)=
,
i=1,2,...,M
Очевидно, мы желаем:
di(
)dj(
)
3.3. Градиентные методы
3.3.1. Общий метод градиентного спуска
Метод градиентного спуска является другим приближением к обучающим системам. Градиентный вектор обладает важным свойством указывающий максимальную скорость увеличения функции по мере увеличения аргумента. Процедура настройки весов может быть сформулирована как:
=
(3.25)
где J(w) - критерий качества, который минимизируется настройкой . Минимум J(w) может быть достигнут передвижением в направлении отрицательного градиента. Процедура может быть описана следующим образом:
1.
Начать с некоторого произвольно
выбранного вектора w(1)
и вычислить градиентный вектор
2. Получаем следующую величину w(2) передвигаясь на некоторое расстояние от w(1) в направлении наиболее крутого спуска.
k в уравнении (3.25) - положительный скалярный множитель, который устанавливает размер шага. Для его оптимального выбора предполагаем, что J(w) может быть аппоксимирован как:
(3.26)
где
подставляя (3.25) в (3.26) получим:
(3.27)
Полагая
для минимизации
мы получим
(3.28)
или
,
(3.29)
которое эквивалентно алгоритму Ньютона для оптимального спуска, в котором
k = D -1.
Некоторые проблемы могут возникнуть с этим оптимальным k ; D -1 в (3.29) может не существовать; используемые матричные операции требуют значительных временных затрат; предположение поверхности второго порядка может быть некорректным. Исходя из этих соображений лучшим выходом будет положить k равным константе.
