Русская Википедия:Нейронная сеть Хэмминга

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

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

Сеть используется для того, чтобы соотнести бинарный вектор <math> x = (x_1, x_2, x_3, ..., x_m)</math>, где <math>x_i=\{-1, 1\}</math>, с одним из эталонных образов (каждому классу соответствует свой образ), или же решить, что вектор не соответствует ни одному из эталонов. В отличие от сети Хопфилда, выдаёт не сам образец, а его номер.

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

Архитектура

Файл:Hamming net.png
Схема сети Хемминга

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

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

Матрица весовых коэффициентов первого слоя получается из матрицы эталонных образов <math>X</math> как <math>w_{ij} = \dfrac{x_{ij}}{2}</math>, где матрица эталонных образов — это матрица <math>K\times M</math>, каждая строка которой — соответствующий эталонный бинарный вектор. Функция активации определяется как <math>f(s)=\left\{\begin{matrix}

  0, & s\leqslant0, \\
  s, & 0 < s \leqslant T; \\
  T, & s > T\\

\end{matrix}\right.</math>

где <math>T = \dfrac{M}{2}</math>

Матрица весовых коэффициентов второго слоя имеет размер <math>K\times K</math>, и определяется как

<math>\begin{bmatrix}

1 & -\epsilon & \cdots & -\epsilon\\ -\epsilon & 1 & \cdots & -\epsilon\\ \cdots & \cdots & \cdots & \cdots \\ -\epsilon & -\epsilon &\cdots & 1 \end{bmatrix},</math>

где <math>\epsilon \in (0, \dfrac{1}{K}]</math>

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

Работа сети

На вход подаётся классифицируемый вектор <math>\vec{x^*}</math>. Состояние нейронов первого слоя рассчитывается как <math>s_{1j} = w_{ji}x^*_i</math>. Выход нейронов первого слоя получается путём применения функции активации к состоянию, и становится начальным значением соответствующих нейронов второго слоя. Далее, состояния нейронов второго слоя получаются из их предыдущего состояния, исходя из матрицы весовых коэффициентов второго слоя, и процедура повторяется итерационно до стабилизации вектора состояния второго слоя — пока норма разницы векторов двух последовательных итераций не станет меньше определённого значения <math>E_{max}</math>(на практике достаточно значений порядка 0,1).

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

Примеры

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

Примечания

Шаблон:Примечания

Литература

Шаблон:Нейросети Шаблон:Машинное обучение

  1. Richard Lippmann. 1987. An introduction to computing with neural nets. IEEE Assp magazine