3.1 KiB
status, type, tags, created, updated, title
| status | type | tags | created | updated | title |
|---|---|---|---|---|---|
| seed | concept | 2025-12-17 | 2026-05-07 | Алгоритм обратного распространения ошибки для произвольного числа слоев НС |
Алгоритм обратного распространения ошибки для произвольного числа слоев НС
Шаг 1: Прямой проход
Подать на входы сети один из возможных образцов и в режиме обычного функционирования НС, когда сигналы распространяются от входов к выходам, рассчитать значения последних.
Шаг 2: Дельта выходного слоя
Рассчитать \delta^{(N)} для выходного слоя:
\delta_j^{(N)} = (y_j - d_j) y_j'
где:
y_j— предсказание j-го выходного нейронаd_j— правильный ответy_j'— производная функции активации
Рассчитать изменения веса \Delta w^{(N)} слоя N:
\Delta w_{ij}^{(N)} = -\eta \delta_j^{(N)} y_i^{(N-1)}
где:
\eta— скорость обучения (learning rate)y_i^{(N-1)}— выход нейрона i из предыдущего слоя
Шаг 3: Дельта и изменения весов для остальных слоёв
Рассчитать \delta^{(n)} и \Delta w^{(n)} для всех остальных слоёв, n = N-1, \ldots, 1:
\delta_i^{(n)} = y_i^{(n)'} \sum_j \delta_j^{(n+1)} w_{ij}^{(n+1)}
где:
y_i^{(n)'}— производная функции активации нейрона i в слое n\sum_j \delta_j^{(n+1)} w_{ij}^{(n+1)}— сумма ошибок следующего слоя, взвешенных по соединяющим весам
\Delta w_{ij}^{(n+1)} = -\eta \delta_j^{(n+1)} y_i^{(n)}
Шаг 4: Коррекция всех весов в НС
w_{ij}^{(n)}(t) = w_{ij}^{(n)}(t-1) + \Delta w_{ij}^{(n)}(t)
где t — текущая итерация.
Шаг 5: Проверка сходимости
Если ошибка сети существенна, перейти на шаг 1.
Интерпретация
-
$\delta_j^{(N)}$ — локальная ошибка на выходном нейроне (разница между предсказанием и истиной, умноженная на крутизну активации)
-
$\delta_i^{(n)}$ — локальная ошибка на скрытом нейроне (ошибка распространяется назад через веса и производные функции активации)
-
$\Delta w_{ij}$ — направление и величина изменения веса (пропорциональны дельте и входу нейрона)
Ошибка течёт от выхода к входу, на каждом слое умножаясь на производную активации и веса следующего слоя.