Files
SecondBrain/99 System/Archive/Нейронная сеть хемминга.md
2026-05-31 10:18:48 +03:00

4.7 KiB

status, type, tags, created, updated, aliases
status type tags created updated aliases
seed concept
2025-12-17 2026-05-14
Нейронная сеть хемминга

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

Когда нет необходимости, чтобы сеть в явном виде выдавала образ, а достаточно, например, получать номер образа, ассоциативную память успешно реализует сеть Хемминга. Данная сеть характеризуется, по сравнению с сетью Хопфилда, меньшими затратами на память и объемом вычислений. Идея работы сети состоит в нахождении расстояния Хемминга (Манхеттенского) от тестируемого образа до всех образов. Расстоянем Хемминга называется число отличающихся битов в двух бинарных векторах. Сеть должна выбрать образ с минимальным расстоянием до неизветного входного сигнала, в результате чего будет активирован только ОДИН выход сети, который соответствует этому образу.

!Pasted image 20260514120654.png

Сеть состоит из двух слоев. Первый и второй слои имеют по m нейронов, где m - число образов. Нейроны первого слоя имеют по n синапсов, соединенных со входами сети (образуют фиксивный нулевой слой). Нейроны второго уровня связаны между собой ингибиторными (отрицательными обратным) синаптическими связями.

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

Алгоритм функционирования

На стадии инициализации, весовым коэффициентам первого слоя и порогу функции активации присваиваются следующие значения: w_{ik}=\frac{x_{i}^{k}}{2},\ |\ i=0,\dots,n-1,|\ k=0,\dots,m-1

T_{k}=\frac{n}{2},\ |\ k=0,\dots,m-1

Здесь, x_{i}^{k} - i-ый элемент k-ого образца. Весовые коэффициенты тормозящих синапсов во втором слое берут равными некоторой величине 0 < \epsilon < \frac{1}{m} Синапс нейрона, связанный с его же аксоном, имеет вес +1.

  1. На входы сети подается неизвестный вектор X=\{x_{i}:i=0,\dots,n-1\}, исходя из которого рассчитыватся состояния нейронов первого слоя (верхний индекс в скобках указывает номер слоя)y_{j}^{(1)}=s_{j}^{(1)}=\sum\limits_{i=1}^{n-1}w_{ij}x_{i}+T_{j} После, полученными щачениями инициализиру.т значения акоснов второго слоя: y_{j}^{(2)}=y_{j}^{(1)},\ j=0,\dots,m-1
  2. Вычислить новые состояния нейронов второго слоя s_{j}^{(2)}(p+1)=y_{j}(p)-\epsilon\sum\limits_{k=1}^{m-1}y_{k}^{(2)}(p),\ |\ k \neq j,\ |\ j=0,\dots,m-1 И значения их аксонов: y_{j}^{(2)}(p+1)=f[s_{j}^{(2)}(p+1)],\ j=0,\dots,m-1 Активационная функция f имеет вид порога, причем величина f должна быть достаточно большой, чтобы любые возможные значения аргумента не приводили к насыщению (что такое насыщение?)
  3. Проверить, изменились ли выходы нейронов второго слоя за последнюю итерацию, если да, то к шагу 2, иначе - конец.

Замечание

Роль первого слоя весьма условна, воспользовавшись один раз на Шаге 1 значениями его весовых коэффициентов, сеть больше не обращается к нему, поэтому первый слой вообще может быть исключен из сети (заменен на матрицу весовых коэффициентов)Lf