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 равным константе.