7.4 KiB
created, updated, title
| created | updated | title |
|---|---|---|
| 2026-05-14 | 2026-05-14 | КР — Нейронные сети: все темы |
КР — Нейронные сети: все темы
1. Персептрон
Схема персептрона
!Pasted image 20260514152232.png
u_{i}=f\!\left(\sum_{j=0}^{n}w_{ij}^{(1)}x_{j}\right),\quad i=\overline{1,k}
y_{l}=f\!\left(\sum_{i=0}^{k}w_{li}^{(2)}u_{i}\right),\quad l=\overline{1,m}
y_{l}=f\!\left(\sum_{i=0}^{k}w_{li}^{(2)}f\!\left(\sum_{j=0}^{n}w_{ij}^{(1)}x_{j}\right)\right)
Формальный нейрон
Нейрон состоит из трёх элементов: умножителей (синапсов), сумматора и нелинейного преобразователя.
!Drawing 2026-05-14 15.06.37.excalidraw
y_{i}=\sum_{j=1}^{N}w_{ij}x_{j}
Алгоритм обратного распространения ошибки (ОРО)
- Прямой проход сети. Инициализация весов маленькими значениями.
- На последнем слое:
\delta_{j}^{(N)}=(y_{j}-d_{j})\,y_{j}^{\prime};\qquad\Delta w_{ij}^{(N)}=-\eta\,\delta_{j}^{(N)}\,y_{i}^{(N-1)} - При обратном распространении (
n<N):\delta_{i}^{(n)}=y_{i}^{\prime(n)}\sum_{j}\delta_{j}^{(n+1)}w_{ij}^{(n+1)};\qquad\Delta w_{ij}^{(n)}=-\eta\,\delta_{j}^{(n)}\,y_{i}^{(n-1)} - Меняем веса:
w_{ij}^{(n)}(t+1)=w_{ij}^{(n)}(t)+\Delta w_{ij}^{(n)}(t) - Останов, если исчерпаны эпохи или
\Delta E < \varepsilon:E(w)=\frac{1}{2}\sum_{j}(y_{j}-d_{j})^{2}
Задача прогнозирования
По скользящему окну: первые k последовательных элементов → предсказать следующий.
Пример (окно 3):
90\ 92\ 95\ 98\ 99\ 100
$$\begin{align}
90\ 92\ 95\ &\to 98 \
92\ 95\ 98\ &\to 99 \
95\ 98\ 99\ &\to 100
\end{align}$$
Задача с одним нейроном
!Drawing 2026-05-14 17.02.08.excalidraw
y_{j}^{\prime}=\delta\,(1-\delta)
w_{11}(t+1)=w_{11}^{(N)}+\Delta w_{11}^{(N)}(t)
\delta^{(N-1)}=y^{\prime}\cdot\bigl(\delta_{1}^{(N)}w_{11}^{(N)}+\delta_{2}^{(N)}w_{12}^{(N)}+\cdots+\delta_{5}^{(N)}w_{15}^{(N)}\bigr)
2. Сеть Кохонена
Схема
!Drawing 2026-05-14 17.10.42.excalidraw
Смысл D_1,\dots,D_k — к какому кластеру принадлежит образец.
Алгоритм
- Инициализация весов случайными маленькими значениями.
- Нормировка:
w_{ij}=\frac{w_{ij}}{\sqrt{\sum_{l=1}^{n}w_{lj}^{2}}},\qquad x_{i}=\frac{x_{i}}{\sqrt{\sum_{l=1}^{n}x_{l}^{2}}} - Выбор нейрона-победителя по одному из критериев:
S_{j}=\sum_{i=1}^{n}x_{i}w_{ij}=\|x\|\cdot\|w^{j}\|\cdot\cos\varphi\to\maxD_{j}=\sqrt{\sum_{i=1}^{n}(x_{i}-w_{ij})^{2}}\to\min - Корректировка весов только нейрона-победителя:
w_{ij}(t+1)=w_{ij}(t)+\alpha\,(x_{i}-w_{ij}(t)) - Останов при стабилизации весов или достижении максимального числа эпох.
Рисунок Кохонен
!Drawing 2026-05-14 17.24.16.excalidraw
3. Сеть Хопфилда
Назначение
Рекуррентная сеть ассоциативной памяти. Хранит эталонные бинарные образы и по искажённому входу восстанавливает ближайший эталон.
Архитектура
- Один слой нейронов; каждый связан со всеми остальными.
- Выходы возвращаются на входы (рекуррентность).
- Связи нейрона с самим собой нет:
w_{ii}=0. - Веса задаются один раз по эталонам.
X=(x_1,\dots,x_n),\quad x_i\in\{-1,1\}
Инициализация весов
w_{ij}=\sum_{k=1}^{m}x_i^k x_j^k,\quad i\neq j;\qquad w_{ii}=0
Смысл: признаки, совпадающие по знаку в эталонах, усиливают связь; разные знаки — ослабляют.
Алгоритм функционирования
- Начальное состояние:
y_i(0)=x_i. - Пересчёт активации каждого нейрона:
s_j(p+1)=\sum_{i=1}^{n}w_{ij}\,y_i(p) - Применение пороговой функции:
y_j(p+1)=f(s_j(p+1)),\qquad f(s)=\begin{cases}1,&s\ge 0\\-1,&s<0\end{cases} - Повторять до стабилизации. Если успешно:
Y=X^k.
Ограничения
- Ёмкость:
m\approx 0.15\,n. - Возможны ложные устойчивые состояния при схожих или многочисленных эталонах.
Отличие от сети Хэмминга
| Сеть | Что выдаёт | Когда нужна |
|---|---|---|
| Хопфилда | восстановленный образ | нужно воспроизвести полный эталон |
| Хэмминга | номер ближайшего эталона | нужно определить класс |
4. Сеть Хэмминга
Назначение
Сеть ассоциативной памяти для классификации: определяет, какому из m эталонов ближе входной образ (по расстоянию Хэмминга).
Расстояние Хэмминга
Число позиций, в которых два бинарных вектора отличаются:
d_H(X,Y)=\sum_{i=1}^{n}[x_i\neq y_i]
Пример: X=(1,0,1,1), Y=(1,1,0,1) — отличаются 2 позиции, d_H=2.
Архитектура
Два слоя, в каждом m нейронов.
Первый слой — вычисляет близость входа к каждому эталону.
Второй слой — конкуренция (winner-takes-all):
- Самосвязь:
+1. - Связи между разными нейронами:
-\varepsilon, где0<\varepsilon<\dfrac{1}{m}.
Инициализация
Веса первого слоя и пороги:
w_{ik}=\frac{x_i^k}{2},\qquad T_k=\frac{n}{2}
Алгоритм функционирования
- Вход:
X=\{x_i:i=0,\dots,n-1\}. - Первый слой:
y_j^{(1)}=s_j^{(1)}=\sum_{i=1}^{n-1}w_{ij}x_i+T_j - Передача во второй слой:
y_j^{(2)}=y_j^{(1)}. - Итерации второго слоя:
s_j^{(2)}(p+1)=y_j^{(2)}(p)-\varepsilon\sum_{\substack{k=0\\k\neq j}}^{m-1}y_k^{(2)}(p) - Пороговая функция и повтор до стабилизации.
В итоге активен один нейрон — его номер соответствует ближайшему эталону.
Смысл второго слоя
Нейроны взаимно тормозят друг друга: чем сильнее активен один кандидат, тем сильнее он подавляет остальных. Побеждает нейрон с максимальной похожестью (минимальным d_H).