Россия, Москва |
Задача линейного разделения двух классов
Настройка весового вектора
Мы требуем, чтобы вектор весов в расширенном пространстве был ортогонален
решающей
гиперплоскости, и плоскость проходила через начало координат. Обучающую выборку
(задачник) для нейрона можно рассматривать как множество пар , где
-
входной вектор,
- класс (выход, принимающий одно из двух
значений, например,
0 или 1), которому принадлежит
Такой тип обучения называется
обучением с
учителем, т.к. мы сообщаем сети, каким должен быть выходной сигнал
для каждого
вектора входных сигналов.
Пусть для некоторого выполняется
, но
выход сети
![y=f[(V,W)] = 0,](/sites/default/files/tex_cache/2c037a7c569c6a654e1afcc08bc9f49d.png)
где при
, и
при
, т.е.
(угол
на рис.2 между векторами
и
больше
). Чтобы исправить ситуацию, нужно
повернуть вектор весов
, приближая его направление к направлению
вектора
В то же время изменение не должно быть слишком резким, чтобы не испортить уже
выполненное обучение. Мы достигнем обеих целей, если добавим к вектору
часть
вектора
, чтобы получить новый вектор

Предположим теперь, что , а
(угол
на рис.2 между векторами
и
меньше
). Теперь нужно
увеличить угол между
и
, что
получается путем вычитания части
из
:

Результирующая запись имеет вид:

Параметр называется скоростью обучения.
Алгоритм обучения нейрона (персептрона) будет иметь вид:
repeat forbegin y = h[(W,V)];
end until