Нейрокомпьютерные системы




Настройка весового вектора


Мы требуем, чтобы вектор весов в расширенном пространстве был ортогонален решающей гиперплоскости, и плоскость проходила через начало координат. Обучающую выборку (задачник) для нейрона можно рассматривать как множество пар

(V,d)
, где
V
- входной вектор,
d
- класс (выход, принимающий одно из двух значений, например, 0 или 1), которому принадлежит
V
. Такой тип обучения называется обучением с учителем, т.к. мы сообщаем сети, каким должен быть выходной сигнал для каждого вектора входных сигналов.

Пусть для некоторого

V
выполняется
d = 1
, но выход сети

 y=f[(V,W)] = 0,

где

f(u) = 1
при
u>0
, и
f(u) = 0
при
u < 0
, т.е.
(V,W) < 0
(угол
\varphi

на рис.2 между векторами

V
и
W
больше
\pi /2
). Чтобы исправить ситуацию, нужно повернуть вектор весов
W
, приближая его направление к направлению вектора
V
. В то же время изменение не должно быть слишком резким, чтобы не испортить уже выполненное обучение. Мы достигнем обеих целей, если добавим к вектору
W
часть вектора
V
, чтобы получить новый вектор

 W' = W + \alpha V, \quad 0 < \alpha < 1.

Предположим теперь, что

d = 0
, а
y = 1
(угол
\varphi
на рис.2 между векторами
V
и
W
меньше
\pi /2
). Теперь нужно увеличить угол между
W
и
V
, что получается путем вычитания части
V

из

W
:

 \begin{align*} W' = W - \alpha V. \end{align*}

Настройка вектора весов

увеличить изображение
Рис. 2.  Настройка вектора весов

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

 \begin{align*} W' = W + \alpha (d - y)V. \end{align*}

Параметр

\alpha
называется скоростью обучения.

Алгоритм обучения нейрона (персептрона) будет иметь вид:

repeat for

\ \forall (V,d)

begin y = h[(W,V)];

if y \neq d then W' = W + \alpha (d - y)V;

end until

(y = d\ for\ \forall (V,d))




Содержание  Назад  Вперед