Нейронная сеть Хэмминга

28.02.2023

Нейронная сеть Хэмминга — вид нейронной сети, использующийся для классификации бинарных векторов, основным критерием в которой является расстояние Хэмминга. Является развитием нейронной сети Хопфилда.

Сеть используется для того, чтобы соотнести бинарный вектор x = ( x 1 , x 2 , x 3 , . . . , x m ) {displaystyle x=(x_{1},x_{2},x_{3},...,x_{m})} , где x i = { − 1 , 1 } {displaystyle x_{i}={-1,1}} , с одним из эталонных образов (каждому классу соответствует свой образ), или же решить, что вектор не соответствует ни одному из эталонов. В отличие от сети Хопфилда, выдаёт не сам образец, а его номер.

Сеть предложена Ричардом Липпманном в 1987 году. Она позиционировалась как специализированное гетероассоциативное запоминающее устройство.

Архитектура

Сеть Хэмминга — трёхслойная нейронная сеть с обратной связью. Количество нейронов во втором и третьем слоях равно количеству классов классификации. Синапсы нейронов второго слоя соединены с каждым входом сети, нейроны третьего слоя связаны между собой отрицательными связями, кроме синапса, связанного с собственным аксоном каждого нейрона — он имеет положительную обратную связь.

Обучение сети

Матрица весовых коэффициентов первого слоя получается из матрицы эталонных образов X {displaystyle X} как w i j = x i j 2 {displaystyle w_{ij}={dfrac {x_{ij}}{2}}} , где матрица эталонных образов — это матрица K × M {displaystyle K imes M} , каждая строка которой — соответствующий эталонный бинарный вектор. Функция активации определяется как f ( s ) = { 0 , s ⩽ 0 , s , 0 < s ⩽ T ; T , s > T {displaystyle f(s)=left{{egin{matrix}0,&sleqslant 0,s,&0<sleqslant T;T,&s>Tend{matrix}} ight.}

где T = M 2 {displaystyle T={dfrac {M}{2}}}

Матрица весовых коэффициентов второго слоя имеет размер K × K {displaystyle K imes K} , и определяется как

[ 1 − ϵ ⋯ − ϵ − ϵ 1 ⋯ − ϵ ⋯ ⋯ ⋯ ⋯ − ϵ − ϵ ⋯ 1 ] , {displaystyle {egin{bmatrix}1&-epsilon &cdots &-epsilon -epsilon &1&cdots &-epsilon cdots &cdots &cdots &cdots -epsilon &-epsilon &cdots &1end{bmatrix}},}

где ϵ ∈ ( 0 , 1 K ] {displaystyle epsilon in (0,{dfrac {1}{K}}]}

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

Работа сети

На вход подаётся классифицируемый вектор x ∗ → {displaystyle {vec {x^{*}}}} . Состояние нейронов первого слоя рассчитывается как s 1 j = w j i x i ∗ {displaystyle s_{1j}=w_{ji}x_{i}^{*}} . Выход нейронов первого слоя получается путём применения функции активации к состоянию, и становится начальным значением соответствующих нейронов второго слоя. Далее, состояния нейронов второго слоя получаются из их предыдущего состояния, исходя из матрицы весовых коэффициентов второго слоя, и процедура повторяется итерационно до стабилизации вектора состояния второго слоя — пока норма разницы векторов двух последовательных итераций не станет меньше определённого значения E m a x {displaystyle E_{max}} (на практике достаточно значений порядка 0,1).

В случае, если в итоге один вектор положительный, а остальные отрицательные, то он указывает на подходящий образец. В случае же, если несколько векторов положительны, и при этом, не один из них не превышает E m a x {displaystyle E_{max}} , то это значит, что нейросеть не может отнести входящий вектор ни к одному из классов, однако положительные выходы указывают на наиболее схожие эталоны.

Примеры

Сеть может использоваться для распознавания изображений, состоящих лишь из чёрных и белых пикселей, например, индекс, написанный на кодовом штампе конверта.


Имя:*
E-Mail:
Комментарий: