Сеть Хемминга
Сеть Хемминга включает в себя три слоя (рис.2).
Первый слой имеет однонаправленное распространение сигналов от входа к выходу и фиксированные значения весов.
Второй слой состоит из нейронов, связанных обратными связями по принципу "каждый с каждым", при этом в каждом нейроне слоя существует автосвязь (связь входа нейрона со своим собственным выходом). Разные нейроны в слое связаны отрицательной (тормозящей) обратной связью с весом
![](../../../../img/tex/e/7/5/e75f9ba711660b68aeb13fba26625b1a.png)
![](../../../../img/tex/9/5/7/957fc2b4df25d8cb5bc72a7b3ab7393c.png)
![](../../../../img/tex/1/d/0/1d00f0daa6ed3b4c5209e8506e48a272.png)
Выходной однонаправленный слой формирует выходной вектор, соответствующий входному вектору.
![](image/10-2sm.gif)
увеличить изображение
Рис. 2. Структура сети Хемминга
Сеть Хемминга считается гетероассоциативным запоминающим устройством с парой связанных между собой векторов
![](../../../../img/tex/7/b/9/7b90092d53a74b6984d7bfbd9ae3deb1.png)
![](../../../../img/tex/b/3/f/b3fc0a7864bf485e90cbf1058ac73417.png)
![](../../../../img/tex/1/e/6/1e680bf8ef024c47142678bf92805277.png)
Веса первого слоя соответствуют векторам
![](../../../../img/tex/0/3/b/03b176bf31701642b72cb9d304d653e6.png)
![](../../../../img/tex/2/5/d/25d471e18cc3c5acf748480bbc44b746.png)
Аналогично, веса выходного слоя соответствуют векторам образов
![](../../../../img/tex/6/e/3/6e380910eec157ce4698a89415c331c8.png)
![](../../../../img/tex/d/3/6/d36abcda692aa3b5788a2302ad877551.png)
![](../../../../img/tex/d/f/c/dfc2821eea302263ee8b220390ab3576.png)
Во втором слое (MAXNET), функционирующем в режиме WTA (Winner Takes ALL - "Победитель забирает все"), каждый нейрон должен усиливать собственный сигнал и ослаблять сигналы остальных нейронов. Для этого принимается
![](../../../../img/tex/a/7/4/a74a44b69013bd3c9c32f92ca1aa898d.png)
а также
![](../../../../img/tex/c/8/2/c82f4d7b3de4adc7c591ce4fb4f023b7.png)
Для обеспечения сходимости итерационного процесса во втором слое веса
![](../../../../img/tex/9/c/a/9cae1b526fd596d289e9407f260d0a38.png)
где
![](../../../../img/tex/3/0/3/30330d8d404034f3ef41132e68201537.png)
![](../../../../img/tex/c/e/d/cedb0a659fdadab93937359a50f7daa3.png)
Нейроны первого слоя рассчитывают расстояния Хемминга
![](../../../../img/tex/8/a/f/8af0e3366df3096916f4cff35507b8f0.png)
между поданным на вход сети вектором
![](../../../../img/tex/b/3/f/b3fc0a7864bf485e90cbf1058ac73417.png)
![](../../../../img/tex/d/9/4/d94dfa986d2589011a1419c1defeabae.png)
нейронов этого слоя. Значения выходных сигналов нейронов первого слоя определяются по формуле
![](../../../../img/tex/5/0/5/50513fb0acb8cd33957657fe90ace03d.png)
где
![](../../../../img/tex/f/a/4/fa498c300aca793855cfc25f5d734a90.png)
![](../../../../img/tex/b/3/f/b3fc0a7864bf485e90cbf1058ac73417.png)
Сигналы
![](../../../../img/tex/b/2/5/b251e86ee784ac9e5e07df362dcf2768.png)
Такой нейрон указывает на вектор образа с минимальным расстоянием Хемминга до входного вектора
![](../../../../img/tex/b/3/f/b3fc0a7864bf485e90cbf1058ac73417.png)
![](../../../../img/tex/7/a/a/7aa8ba55aaca251883c26c3c6c2ced4c.png)
Итерационный процесс во втором слое завершается, когда активным остается только один нейрон (победитель), тогда как остальные нейроны пребывают в нулевом состоянии. Победитель через веса
![](../../../../img/tex/2/d/b/2db00cc259ed57a885cf0112d1a9fc19.png)
![](../../../../img/tex/6/e/3/6e380910eec157ce4698a89415c331c8.png)
![](../../../../img/tex/d/3/6/d36abcda692aa3b5788a2302ad877551.png)
![](../../../../img/tex/b/3/f/b3fc0a7864bf485e90cbf1058ac73417.png)
Достоинством сети Хемминга считается небольшое количество взвешенных связей между нейронами. Многочисленные эксперименты доказали, что сеть Хемминга дает лучшие результаты, чем сеть Хопфилда. Единственная проблема, связанная с сетью Хемминга, проявляется в случае, когда зашумленные образы находятся на одинаковом (в смысле Хемминга) расстоянии от двух или более эталонов. В этом случае выбор сетью Хемминга одного из эталонов становится случайным.