--- status: seed type: concept tags: - machine-learning - neural-networks - associative-memory created: 2025-12-17 updated: 2026-05-14 title: Сеть Хэмминга --- # Сеть Хэмминга **Сеть Хэмминга** - нейронная сеть ассоциативной памяти, которая выбирает ближайший эталонный образ по входному сигналу. Она удобна, когда не нужно восстанавливать образ явно, а достаточно получить номер или класс ближайшего эталона. По сравнению с [[Сеть Хопфилда|сетью Хопфилда]], сеть Хэмминга обычно требует меньше памяти и вычислений. ## Идея Сеть сравнивает неизвестный входной образ со всеми сохранёнными эталонами. Для бинарных векторов близость связана с расстоянием Хэмминга: числом отличающихся битов в двух бинарных векторах. Сеть должна выбрать эталон с минимальным расстоянием до входного сигнала. В результате активным остаётся один выходной нейрон, соответствующий выбранному образу. В отличие от [[Сеть Хопфилда|сети Хопфилда]], сеть Хэмминга не пытается восстановить полный эталонный образ. Её цель - выбрать номер или класс ближайшего образца. ![[Pasted image 20260514120654.png]] ## Архитектура Сеть состоит из двух слоёв: - первый слой вычисляет близость входного вектора к каждому эталону; - второй слой реализует конкуренцию между эталонами. Количество нейронов во втором слое равно количеству эталонных образов. Победить должен один нейрон - тот, который соответствует ближайшему эталону. Первый и второй слои имеют по $m$ нейронов, где $m$ - число эталонных образов. Нейроны первого слоя имеют по $n$ синапсов, соединённых со входами сети. Эти входы можно рассматривать как фиксированный нулевой слой. Нейроны второго слоя связаны между собой ингибиторными обратными связями: - связь нейрона с самим собой имеет вес $+1$; - связи с другими нейронами имеют отрицательный вес $-\varepsilon$. Параметр $\varepsilon$ выбирают так, чтобы: $$ 0 < \varepsilon < \frac{1}{m} $$ Ингибиторные связи постепенно подавляют менее подходящие эталоны, пока активным не останется один победивший нейрон. Первый слой нужен для начального сравнения входа со всеми эталонами. Второй слой превращает эти оценки близости в результат классификации: за счёт взаимного торможения слабые кандидаты подавляются, а сильнейший остаётся активным. ## Алгоритм функционирования На стадии инициализации весовым коэффициентам первого слоя и порогам функции активации присваиваются значения: $$ w_{ik}=\frac{x_i^k}{2},\quad i=0,\dots,n-1,\quad k=0,\dots,m-1 $$ $$ T_k=\frac{n}{2},\quad k=0,\dots,m-1 $$ где $x_i^k$ - $i$-й элемент $k$-го эталонного образа. Весовые коэффициенты тормозящих синапсов второго слоя берут равными небольшой величине $\varepsilon$. Синапс нейрона, связанный с его же аксоном, имеет вес $+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)},\quad j=0,\dots,m-1 $$ 2. Вычисляются новые состояния нейронов второго слоя: $$ s_j^{(2)}(p+1)=y_j^{(2)}(p)-\varepsilon\sum\limits_{\substack{k=0\\k\neq j}}^{m-1}y_k^{(2)}(p),\quad j=0,\dots,m-1 $$ Затем вычисляются значения их аксонов: $$ y_j^{(2)}(p+1)=f[s_j^{(2)}(p+1)] $$ 3. Проверяется, изменились ли выходы нейронов второго слоя за последнюю итерацию. Если изменились, сеть возвращается к шагу 2. Если нет, работа завершается. Функция активации $f$ используется как пороговая функция. Порог должен быть выбран так, чтобы возможные значения аргумента не приводили к нежелательному насыщению. ## Замечание о первом слое Роль первого слоя условна: после вычисления начальных значений сеть больше к нему не обращается. Поэтому первый слой можно заменить матрицей весовых коэффициентов. Это подчёркивает практический смысл сети Хэмминга: первая часть вычисляет расстояния или меры похожести, а вторая выбирает победителя. ## Связанные заметки - [[Сеть Хопфилда]] - [[Расстояние между объектами]] - [[Нейронные сети]]