Основы теории нейронных сетей



         

Кодировка ассоциаций


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

A
и
B
. Процесс обучения реализуется в форме вычислений; это означает, что весовая матрица вычисляется как сумма произведений всех векторных пар обучающего набора. B символьной форме запишем

 W=\sum_i A_i^T B_i.

Предположим, что все запомненные образы представляют собой двоичные векторы. Это ограничение будет выглядеть менее строгим, если вспомнить, что все содержимое Библиотеки Университета может быть закодировано в один очень длинный двоичный вектор. Показано, что более высокая производительность достигается при использовании биполярных векторов. При этом векторная компонента, большая чем 0, становится

+1
, а компонента, меньшая или равная 0, становится
-1
.

Предположим, что требуется обучить сеть с целью запоминания трех пар двоичных векторов, причем векторы

A_i
имеют размерность такую же, как и векторы
B_i
. Надо отметить, что это не является необходимым условием для работы алгоритма; ассоциации могут быть сформированы и между векторами различной размерности.

Исходный векторАссоциированный векторБинарная версия
A_1=(1,0,0)
B_1=(0,0,1)
A_1'=(1,-1,-1)
B_1'=(-1,-1,1)
A_2=(0,1,0)
B_2=(0,1,0)
A_2'=(-1,1,-1)
B_2'=(-1,1,-1)
A_3=(0,0,1)
B_3=(1,0,0)
A_3'=(-1,-1,1)
B_1'=(1,-1,-1)

Вычисляем весовую матрицу:

 W=A_1'{}^TB_1'+A_2'{}^TB_2'+A_3'^TB_3'.

 \begin{array}{|c|c|c|} \hline 1 & 1 & \\ \hline & & 1 \\ \hline & & 1\\ \hline \end{array} \quad \begin{array}{|c|c|c|} \hline & 1 & \\ \hline 1& & 1 \\ \hline & 1 &\\ \hline \end{array} \quad \begin{array}{|c|c|c|} \hline 1 & & \\ \hline 1 & 1 & \\ \hline & 1 & 1\\ \hline \end{array} \quad \begin{array}{|c|c|c|} \hline 1 & 1 & \\ \hline 1& & 1 \\ \hline & 1 & 1\\ \hline \end{array}

Далее, прикладывая входной вектор

A = (1,0,0)
, вычисляем выходной вектор
O
:

 O=A_1' W^T=(1,0,0)x\quad \begin{array}{|c|c|c|} \hline & 1 & \\ \hline 1 & & 1 \\ \hline &1 & 1\\ \hline \end{array}\quad (-1,-1,3)

Используя пороговое правило,

b_i=1
, если
o_i > 0
,
b_i = 0
, если
o_i < 0
,

bi = 0
, не изменяется, если
o_i = 0
,

вычисляем

 B_1'=(0,0,1),

что является требуемой ассоциацией. Затем, подавая вектор

B_1'

через обратную связь на вход первого слоя к

W^t
, получаем

 O=B_1' W^T=(1,0,0)x\quad \begin{array}{|c|c|c|} \hline & 1 & \\ \hline 1 & & 1 \\ \hline &1 & 1\\ \hline \end{array}\quad (3,-1,-1)

что дает значение

(1,0,0)
после применения пороговой функции и образует величину вектора
A_1
.

Этот пример показывает, как входной вектор

A
с использованием матрицы
W
производит выходной вектор
B
. В свою очередь, вектор
B

с использованием матрицы

W^t
производит вектор
A
, и таким образом в системе формируется устойчивое состояние и резонанс.

ДАП обладает способностью к обобщению. Например, если незавершенный или частично искаженный вектор подается в качестве

A
, сеть имеет тенденцию к выработке запомненного вектора
B
, который, в свою очередь, стремится исправить ошибки в
A
. Возможно, для этого потребуется несколько проходов, но сеть сходится к воспроизведению ближайшего запомненного образа.




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