diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index e306f16..ff9f656 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -247,8 +247,13 @@ }, "active": "c6a180b8f1049b08", "lastOpenFiles": [ - "99 System/Cache/Pasted image 20260514120654.png", "00 Inbox/Нейронная сеть хемминга.md", + "99 System/Archive/Функционирование сети Хопфилда.md", + "99 System/Archive/Нейронная сеть хемминга.md", + "90 Library/11 Machine Learning/Сеть Хэмминга.md", + "90 Library/11 Machine Learning/Сеть Хопфилда.md", + "CLAUDE.md", + "99 System/Cache/Pasted image 20260514120654.png", "00 Inbox/Untitled.md", "99 System/Cache/Pasted image 20260514115340.png", "00 Inbox/Функционирование сети Хопфилда.md", @@ -278,11 +283,7 @@ "90 Library/11 Machine Learning/Алгоритм обучения сети Кохонена.md", "03 Journal/2026/05 - May/08.05.26 - Friday.md", "03 Journal/2026/05 - May", - "04 Tools/SocialBase/04 Другие/Игорь Прохоров.md", - "99 System/Archive/Идея сети кохонена.md", "99 System/Cache/Pasted image 20260507230701.png", - "00 Inbox/Идея сети кохонена.md", - "90 Library/11 Machine Learning/Обратное распространение ошибки - вывод.md", "99 System/Cache/Pasted image 20260507222244.png", "99 System/Cache/Pasted image 20260507222234.png", "99 System/Cache/Pasted image 20260507214813.png", @@ -291,7 +292,6 @@ "90 Library/02 DevOps/Ansible/Ansible - основы.md.tmp.254945.1777751876503", "90 Library/03 Math/Статистика/Кластерный анализ/Классификация.md.tmp.254945.1777751799750", "90 Library/03 Math/Статистика/Кластерный анализ/Кластерный анализ.md.tmp.254945.1777751782184", - "90 Library/03 Math/Статистика/Временные ряды/Автокорреляционная (ACF) и частная автокорреляционная (PACF) функции.md.tmp.254945.1777751726019", - "99 System/Cache/Pasted image 20260430153712.png" + "90 Library/03 Math/Статистика/Временные ряды/Автокорреляционная (ACF) и частная автокорреляционная (PACF) функции.md.tmp.254945.1777751726019" ] } \ No newline at end of file diff --git a/90 Library/11 Machine Learning/Нейронные сети.md b/90 Library/11 Machine Learning/Нейронные сети.md index 73b7197..69068bf 100644 --- a/90 Library/11 Machine Learning/Нейронные сети.md +++ b/90 Library/11 Machine Learning/Нейронные сети.md @@ -165,7 +165,22 @@ $$ Преимущество нейронных сетей - обучаемость. Веса сети можно представить как набор матриц. Суть обучения сводится к настройке этих весов так, чтобы для входного объекта $X$ сеть выдавала выход $Y$, близкий к правильному ответу $D$. -Отдельный класс составляют сети ассоциативной памяти, например [[Сети Хопфилда и Хэмминга]]. В них веса могут задаваться один раз по эталонным образам, а дальнейшая работа сводится к восстановлению или выбору ближайшего сохранённого образа. +## Ассоциативная память + +Отдельный класс составляют сети ассоциативной памяти, например [[Сеть Хопфилда]] и [[Сеть Хэмминга]]. Они ориентированы на хранение эталонных образов и распознавание входного сигнала по близости к этим эталонам. + +Их особенность в том, что весовые коэффициенты рассчитываются один раз перед началом функционирования сети. После задания весов они обычно не корректируются: сеть не обучается итеративно в привычном смысле, а хранит набор эталонов и сопоставляет с ними входной образ. + +Пусть известен набор эталонных образов: изображений, звуков, бинарных векторов или других сигналов. Сеть должна по входному, возможно искажённому, сигналу восстановить соответствующий эталонный образ, указать номер наиболее близкого эталона или показать, что подходящего эталона нет. + +По смыслу входной образ работает как ключ, по которому сеть "вспоминает" ближайший сохранённый образ. + +| Сеть | Что выдаёт | Когда удобна | +|---|---|---| +| [[Сеть Хопфилда]] | восстановленный образ | когда нужно получить полный эталон | +| [[Сеть Хэмминга]] | номер ближайшего эталона | когда достаточно классифицировать вход | + +Обе сети относятся к моделям ассоциативной памяти, но решают задачу на разном уровне: сеть Хопфилда восстанавливает состояние, а сеть Хэмминга выбирает ближайший сохранённый образ. ## Обучение с учителем @@ -203,5 +218,6 @@ $$ - [[Обратное распространение ошибки]] - [[Backpropagation для многослойной нейронной сети]] -- [[Сети Хопфилда и Хэмминга]] +- [[Сеть Хопфилда]] +- [[Сеть Хэмминга]] - [[Линейные модели]] diff --git a/90 Library/11 Machine Learning/Сети Хопфилда и Хэмминга.md b/90 Library/11 Machine Learning/Сети Хопфилда и Хэмминга.md deleted file mode 100644 index 12c91cc..0000000 --- a/90 Library/11 Machine Learning/Сети Хопфилда и Хэмминга.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -status: seed -type: concept -tags: - - machine-learning - - neural-networks - - associative-memory -created: 2025-12-17 -updated: 2026-05-14 -title: Сети Хопфилда и Хэмминга ---- - -# Сети Хопфилда и Хэмминга - -**Сети Хопфилда и Хэмминга** - классические [[Нейронные сети|нейронные сети]], ориентированные на ассоциативную память и распознавание эталонных образов. - -Их особенность в том, что весовые коэффициенты рассчитываются один раз перед началом функционирования сети. После задания весов они обычно не корректируются: сеть не обучается итеративно в привычном смысле, а хранит набор эталонов и сопоставляет с ними входной образ. - -## Задача - -Пусть известен набор эталонных образов: изображений, звуков, бинарных векторов или других сигналов. Сеть должна по входному, возможно искажённому, сигналу: - -- восстановить соответствующий эталонный образ; -- или указать номер наиболее близкого эталона; -- или показать, что подходящего эталона нет. - -По смыслу такие сети удобны для задач ассоциативной памяти: входной образ работает как ключ, по которому сеть "вспоминает" ближайший сохранённый образ. - -![[Pasted image 20260508103342.png|500]] - -## Сеть Хопфилда - -Сеть Хопфилда - однослойная рекуррентная сеть с обратными связями. - -Основные свойства: - -- каждый нейрон связан с другими нейронами; -- выходы нейронов возвращаются на входы сети; -- связь нейрона с самим собой обычно исключается; -- состояние сети постепенно сходится к одному из устойчивых состояний. - -Инициализация сети задаёт начальные выходы нейронов. При функционировании сеть изменяет состояние до тех пор, пока не придёт к устойчивому образу. Если входной сигнал близок к одному из сохранённых эталонов, сеть восстанавливает этот эталон. - -В результате сеть Хопфилда выдаёт не просто номер класса, а сам восстановленный образ. - -## Сеть Хэмминга - -Сеть Хэмминга применяют, когда не нужно восстанавливать полный образ, а достаточно определить номер ближайшего эталона. - -Идея сети - сравнить входной образ со всеми сохранёнными эталонами и выбрать тот, который находится ближе всего. Для бинарных образов это связано с [[Расстояние между объектами|расстоянием Хэмминга]]: количеством несовпадающих компонентов между двумя векторами. - -## Архитектура сети Хэмминга - -Сеть Хэмминга обычно состоит из двух слоёв: - -- **первый слой** вычисляет близость входного вектора к каждому эталону; -- **второй слой** реализует конкуренцию между эталонами. - -Количество нейронов во втором слое равно количеству эталонных образов. Победить должен один нейрон - тот, который соответствует ближайшему эталону. - -![[Pasted image 20260508103431.png|420]] - -Нейроны второго слоя связаны обратными ингибиторными связями: - -- обратная связь нейрона с самим собой имеет вес $1$; -- связи с остальными нейронами имеют вес $-\varepsilon$. - -Параметр $\varepsilon$ - небольшое положительное число: - -$$ -0 < \varepsilon < \frac{1}{m} -$$ - -где $m$ - число эталонных образов. - -Ингибиторные связи подавляют менее подходящие варианты. После нескольких итераций активным остаётся нейрон, соответствующий ближайшему эталону. - -## Отличие Хопфилда и Хэмминга - -| Сеть | Что выдаёт | Когда удобна | -|---|---|---| -| Хопфилда | восстановленный образ | когда нужно получить полный эталон | -| Хэмминга | номер ближайшего эталона | когда достаточно классифицировать вход | - -Обе сети относятся к моделям ассоциативной памяти, но решают задачу на разном уровне: сеть Хопфилда восстанавливает состояние, а сеть Хэмминга выбирает ближайший сохранённый образ. - -## Связанные заметки - -- [[Нейронные сети]] -- [[Расстояние между объектами]] diff --git a/90 Library/11 Machine Learning/Сеть Хопфилда.md b/90 Library/11 Machine Learning/Сеть Хопфилда.md new file mode 100644 index 0000000..0508d66 --- /dev/null +++ b/90 Library/11 Machine Learning/Сеть Хопфилда.md @@ -0,0 +1,88 @@ +--- +status: seed +type: concept +tags: + - machine-learning + - neural-networks + - associative-memory +created: 2025-12-17 +updated: 2026-05-14 +title: Сеть Хопфилда +--- + +# Сеть Хопфилда + +**Сеть Хопфилда** - однослойная рекуррентная [[Нейронные сети|нейронная сеть]], используемая как ассоциативная память. Она получает входной, возможно искажённый, образ и постепенно приводит состояние сети к одному из сохранённых эталонов. + +В отличие от [[Сеть Хэмминга|сети Хэмминга]], сеть Хопфилда выдаёт не номер ближайшего образа, а сам восстановленный образ. + +## Идея + +Сеть хранит набор эталонных образов как устойчивые состояния. При подаче входного сигнала значения выходов нейронов инициализируются этим сигналом, после чего сеть итеративно пересчитывает состояния. Если вход близок к одному из эталонов, динамика сети должна сойтись к нему. + +По смыслу входной образ работает как ключ: сеть "вспоминает" наиболее близкий сохранённый образ. + +## Архитектура + +Основные свойства сети Хопфилда: + +- каждый нейрон связан с другими нейронами; +- выходы нейронов возвращаются на входы сети; +- связь нейрона с самим собой обычно исключается; +- веса задаются заранее по эталонным образам; +- состояние сети изменяется до стабилизации. + +Инициализация сети задаёт начальные выходы нейронов. При функционировании сеть изменяет состояние до тех пор, пока не придёт к устойчивому образу. Если входной сигнал близок к одному из сохранённых эталонов, сеть восстанавливает этот эталон. + +Для сети Хопфилда часто используется бинарная функция активации, описанная в [[Нейронные сети]]. + +## Алгоритм функционирования + +1. На вход подаётся неизвестный сигнал. Фактически ввод выполняется установкой начальных значений аксонов: + +$$ +y_i(0)=x_i,\quad i=0,\dots,n-1 +$$ + +Ноль в скобках обозначает нулевую итерацию работы сети. + +2. Рассчитывается новое состояние нейронов: + +$$ +s_j(p+1)=\sum\limits_{i=1}^{n-1}w_{ij}y_i(p),\quad j=0,\dots,n-1 +$$ + +После этого вычисляются новые значения аксонов: + +$$ +y_j(p+1)=f[s_j(p+1)] +$$ + +где $f$ - функция активации в виде скачка. + +![[Pasted image 20260514115340.png|300]] + +3. Проверяется, изменились ли выходные значения за последнюю итерацию. Если изменились, сеть возвращается к пересчёту состояний. Если выходы стабилизировались, работа завершается. + +Итоговый выходной вектор считается образом, который лучше всего соответствует входным данным. + +## Ограничения + +Сеть Хопфилда может не распознать образ корректно и выдать несуществующий эталон. Это связано с ограниченной ёмкостью ассоциативной памяти. + +Для сети Хопфилда число запоминаемых образов обычно не должно превышать: + +$$ +m \approx 0.15n +$$ + +где $n$ - число нейронов. + +Если два эталона слишком похожи, возможны перекрёстные ассоциации: предъявление первого образа может привести к восстановлению второго, и наоборот. + +Сеть Хопфилда хорошо подходит для восстановления или завершения образа, но не предназначена для явного сопоставления образа с номером класса. Для такой задачи удобнее [[Сеть Хэмминга]]. + +## Связанные заметки + +- [[Сеть Хэмминга]] +- [[Нейронные сети]] diff --git a/90 Library/11 Machine Learning/Сеть Хэмминга.md b/90 Library/11 Machine Learning/Сеть Хэмминга.md new file mode 100644 index 0000000..09f6bb1 --- /dev/null +++ b/90 Library/11 Machine Learning/Сеть Хэмминга.md @@ -0,0 +1,109 @@ +--- +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$ используется как пороговая функция. Порог должен быть выбран так, чтобы возможные значения аргумента не приводили к нежелательному насыщению. + +## Замечание о первом слое + +Роль первого слоя условна: после вычисления начальных значений сеть больше к нему не обращается. Поэтому первый слой можно заменить матрицей весовых коэффициентов. + +## Связанные заметки + +- [[Сеть Хопфилда]] +- [[Расстояние между объектами]] +- [[Нейронные сети]] diff --git a/00 Inbox/Нейронная сеть хемминга.md b/99 System/Archive/Нейронная сеть хемминга.md similarity index 90% rename from 00 Inbox/Нейронная сеть хемминга.md rename to 99 System/Archive/Нейронная сеть хемминга.md index 9eeca81..923e284 100644 --- a/00 Inbox/Нейронная сеть хемминга.md +++ b/99 System/Archive/Нейронная сеть хемминга.md @@ -37,4 +37,4 @@ $$T_{k}=\frac{n}{2},\ |\ k=0,\dots,m-1$$ **Замечание** -Роль первого слоя весьма условна \ No newline at end of file +Роль первого слоя весьма условна, воспользовавшись один раз на Шаге 1 значениями его весовых коэффициентов, сеть больше не обращается к нему, поэтому первый слой вообще может быть исключен из сети (заменен на матрицу весовых коэффициентов)Lf \ No newline at end of file diff --git a/00 Inbox/Функционирование сети Хопфилда.md b/99 System/Archive/Функционирование сети Хопфилда.md similarity index 100% rename from 00 Inbox/Функционирование сети Хопфилда.md rename to 99 System/Archive/Функционирование сети Хопфилда.md