67 lines
3.1 KiB
Markdown
67 lines
3.1 KiB
Markdown
---
|
|
status: seed
|
|
type: concept
|
|
tags: []
|
|
created: 2025-12-17
|
|
updated: 2026-05-07
|
|
aliases:
|
|
- Алгоритм обратного распространения ошибки для произвольного числа слоев НС
|
|
---
|
|
# Алгоритм обратного распространения ошибки для произвольного числа слоев НС
|
|
|
|
## Шаг 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}$** — направление и величина изменения веса (пропорциональны дельте и входу нейрона)
|
|
|
|
Ошибка течёт от выхода к входу, на каждом слое умножаясь на производную активации и веса следующего слоя. |