vault backup: 2026-05-07 15:22:11
This commit is contained in:
@@ -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)}$ для каждого скрытого нейрона.
|
||||
|
||||
Reference in New Issue
Block a user