Россия, Москва |
Задача линейного разделения двух классов
Настройка весового вектора
Мы требуем, чтобы вектор весов в расширенном пространстве был ортогонален решающей гиперплоскости, и плоскость проходила через начало координат. Обучающую выборку (задачник) для нейрона можно рассматривать как множество пар , где - входной вектор, - класс (выход, принимающий одно из двух значений, например, 0 или 1), которому принадлежит Такой тип обучения называется обучением с учителем, т.к. мы сообщаем сети, каким должен быть выходной сигнал для каждого вектора входных сигналов.
Пусть для некоторого выполняется , но выход сети
где при , и при , т.е. (угол на рис.2 между векторами и больше ). Чтобы исправить ситуацию, нужно повернуть вектор весов , приближая его направление к направлению вектора В то же время изменение не должно быть слишком резким, чтобы не испортить уже выполненное обучение. Мы достигнем обеих целей, если добавим к вектору часть вектора , чтобы получить новый вектор
Предположим теперь, что , а (угол на рис.2 между векторами и меньше ). Теперь нужно увеличить угол между и , что получается путем вычитания части из :
Результирующая запись имеет вид:
Параметр называется скоростью обучения.
Алгоритм обучения нейрона (персептрона) будет иметь вид:
repeat for begin y = h[(W,V)]; end until