Реккурентные сети: сеть Хэмминга

Рекуррентные нейронные сети (Recurrent neural network; RNN) — вид нейронных сетей, в которых имеется обратная связь. При этом под обратной связью подразумевается связь от логически более удалённого элемента к менее удалённому. Наличие обратных связей позволяет запоминать и воспроизводить целые последовательности реакций на один стимул. Сеть Хемминга (Hamming) - расширение сети Хопфилда. Эта сеть была разработана Ричардом Липпманом (Richard Lippman) в середине 80-х гг.

Сеть Хемминга реализует классификатор, базирующийся на наименьшей погрешности для векторов двоичных входов, где погрешность определяется расстоянием Хемминга. Расстояние Хемминга определяется как число бит, отличающихся между двумя соответствующими входными векторами фиксированной длины. Один входной вектор является не зашумленым примером образа, другой - испорченным образом. Вектор выходов обучающего множества является вектором классов, к которым принадлежат образы. В режиме обучения входные векторы распределяются по категориям, для которых расстояние между образцовыми входными векторами и текущим входным вектором является минимальным.

Это одна из наиболее многообещающих распознающих и классифицирующих нейронных сетей. В этой сети черно-белые изображения представляются в виде m- мерных биполярных векторов. Свое название она получила от расстояния Хемминга.

1. Расстоянием Хемминга между двумя двоичными векторами называется число компонент, в которых векторы различны.

2. Хеммингово расстояния – это количество отличающихся позиций в бинарных векторах. Результатом работы сети является нахождение образа с наименьшим расстоянием.

Сеть Хемминга имеет три слоя: входной слой с количеством узлов, сколько имеется отдельных двоичных признаков; слой категорий (слой Хопфилда), с количеством узлов, сколько имеется категорий или классов; выходной слой, который отвечает числу узлов в слое категорий.

Алгоритм работы:

1. На стадии инициализации весовым коэффициентам первой слоя и порогу передаточной функции присваиваются такие значения:

Wik = xIk /2, i=0...n-1, k=0...m-1

bk = n / 2, k = 0...m-1

Здесь xik - i -ый элемент k -ого образца.

Весовые коэффициенты тормозящих синапсов в втором слое берут равными некоторой величине 0 < v < 1/m. Синапс нейрона, связанный с его же выходом имеет вес +1.

2. На входы сети подается неизвестный вектор x 1, xi, xn... Рассчитываются состояния нейронов первого слоя (верхний индекс в скобках указывает номер слоя):

, j=0...m-1

После этого получения значения инициализируют значения выходов второго слоя:

yj(2) = yj(1), j = 0...m-1

3. Вычисляются новые состояния нейронов второго слоя:

и значения их выходов:

Передаточная функция f имеет вид порога, причем величина b должна быть достаточно большой, чтобы любые возможные значения аргумента не приводили к насыщению.

4. Проверяется, изменились ли выходы нейронов второго слоя за последнюю итерацию. Если да - перейти к шагу 3. Иначе алгоритм заканчивает свою работу.

Область применения:

* Распознавание образов, классификация, ассоциативная память, надежная передача сигналов в условиях помех.

* Задача оптического распознавания символов (OСR). Действительно, так оно и есть. При решении этой задачи сети Хэмминга активно используются. Но это, так сказать, лежит на поверхности. На практике они используются для восстановления зашумленного исходного сигнала, задачах оптимизации и во многих других случаях.

* Нечеткий поиск.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: