vault backup: 2026-05-07 15:22:11

This commit is contained in:
Dmitry
2026-05-07 15:22:12 +03:00
parent b0d9250fd9
commit dd141591a7
2 changed files with 113 additions and 1 deletions
+1 -1
View File
@@ -14,7 +14,7 @@
"type": "markdown",
"state": {
"file": "00 Inbox/Обратное распространение ошибки - вывод.md",
"mode": "preview",
"mode": "source",
"source": false,
"backlinks": false
},
@@ -37,4 +37,116 @@ $$\frac{dE}{dy_{l}} = y_{l}-d_{l}$$
(производная MSE):$$\frac{dy_{l}}{dS_{l}^{(2)}}=f^{'}(s_{l}^{(2)})=\frac{df(s_{l}^{(2)})}{ds_{l}^{(2)}}$$(производная функции активации):$$\frac{ds_{l}^{(2)}}{dw_{li}^{(2)}}=u_{i}$$
Собираем вместе:
$$\frac{dE}{dw_{li}^{(2)}}=(y_{l}-d_{l})*f^{'}(s_{l}^{(2)})*u_{i}$$
Введем сокращение $\delta_{l}^{(2)}$:
$$\delta_{l}^{(2)}=(y_{l}-d_{l})*f^{'}(s_{l}^{(2)})$$
Тогда:$$\frac{dE}{dw_{li}^{(2)}}=\delta_{l}^{(2)}*u_{i}$$
**Интерпретация:** $\delta_{l}^{(2)}$ — это "ошибка" на выходном нейроне $l$ (разница между предсказанием и истиной), помноженная на крутизну функции активации.
### Обратный проход (скрытый слой)
Теперь нужна производная ошибки по весу первого слоя:
$$\frac{\partial E}{\partial w_{ij}^{(1)}}$$
Проблема в том, что $w_{ij}^{(1)}$ влияет на $E$ не напрямую, а через все выходные нейроны:
$$w_{ij}^{(1)} \rightarrow u_i \rightarrow y_l \rightarrow E$$
По цепному правилу нужно просуммировать вклады всех путей от скрытого нейрона $i$ к выходным нейронам:
$$
\frac{\partial E}{\partial w_{ij}^{(1)}} =
\sum\limits_{l=1}^{m}
\frac{\partial E}{\partial y_l}
*
\frac{\partial y_l}{\partial u_i}
*
\frac{\partial u_i}{\partial w_{ij}^{(1)}}
$$
Разбираем каждый член:
$$\frac{\partial E}{\partial y_l}=y_l-d_l$$
Производная выхода $y_l$ по выходу скрытого нейрона $u_i$:
$$
\frac{\partial y_l}{\partial u_i}
=
\frac{\partial y_l}{\partial s_l^{(2)}}
*
\frac{\partial s_l^{(2)}}{\partial u_i}
$$
Так как:
$$s_l^{(2)}=\sum w_{li}^{(2)}u_i$$
То:
$$
\frac{\partial y_l}{\partial u_i}
=
f'(s_l^{(2)}) * w_{li}^{(2)}
$$
Производная выхода скрытого нейрона $u_i$ по весу $w_{ij}^{(1)}$:
$$
\frac{\partial u_i}{\partial w_{ij}^{(1)}}
=
\frac{\partial u_i}{\partial s_i^{(1)}}
*
\frac{\partial s_i^{(1)}}{\partial w_{ij}^{(1)}}
$$
Так как:
$$s_i^{(1)}=\sum w_{ij}^{(1)}x_j$$
То:
$$
\frac{\partial u_i}{\partial w_{ij}^{(1)}}
=
f'(s_i^{(1)}) * x_j
$$
Собираем:
$$
\frac{\partial E}{\partial w_{ij}^{(1)}} =
\sum\limits_{l=1}^{m}
(y_l-d_l)
*
f'(s_l^{(2)})
*
w_{li}^{(2)}
*
f'(s_i^{(1)})
*
x_j
$$
Вводим локальную ошибку скрытого нейрона $\delta_i^{(1)}$:
$$
\delta_i^{(1)}
=
\sum\limits_{l=1}^{m}
(y_l-d_l)
*
f'(s_l^{(2)})
*
w_{li}^{(2)}
*
f'(s_i^{(1)})
$$
Или через ошибку выходного слоя $\delta_l^{(2)}$:
$$
\delta_i^{(1)}
=
f'(s_i^{(1)})
*
\sum\limits_{l=1}^{m}
\delta_l^{(2)}
*
w_{li}^{(2)}
$$
Тогда:
$$
\frac{\partial E}{\partial w_{ij}^{(1)}}
=
\delta_i^{(1)} * x_j
$$
**Интерпретация:** ошибка выходного слоя $\delta_l^{(2)}$ проходит назад через вес $w_{li}^{(2)}$, суммируется по всем выходным нейронам и умножается на крутизну активации скрытого слоя. Так получается локальная ошибка $\delta_i^{(1)}$ для каждого скрытого нейрона.