神经网络(三)—— BP算法基本推导

BP算法

前情回顾

上回我们说到,单层的线性神经网络权值的迭代公式是:
w : = w − η X T ( f ( w X ) − y ) f ′ ( w X ) w:=w-\eta X^T(f(wX)-y)f'(wX) w:=wηXT(f(wX)y)f(wX)
其中呢,这个 ( f ( w X ) − y ) f ′ ( w X ) (f(wX)-y)f'(wX) (f(wX)y)f(wX)我们称它为 δ \delta δ,于是
w : = w − η X T δ w:=w-\eta X^T\delta w:=wηXTδ
不用必须是线性神经网络,其他激活函数也适用于这个公式,只不过线性的话就可以把f’(wX)这一项去掉。

对于多层的神经网络来说,每一层的权值怎么更新呢?

下面以二层的网络为例给出推导。

基本推导

二层网络

损失函数自然就是
E = 1 2 ( O − Y ) 2 E=\frac12(O-Y)^2 E=21(OY)2
这个二层的网络是如何工作的?

我们把它看成两个单层的就好。

一开始我们初始化了两层的权值V和W。

假设我们的激活函数是f(x).

中间层的输出就可以计算:
M = f ( V X ) M = f(VX) M=f(VX)
然后我们把 M作为下一层的输入,就可以得到预测值O:
O = f ( W M ) O=f(WM) O=f(WM)
接下来将损失函数对W求导我们就能得到W的迭代方程:
W : = W − η M T δ 2 W:=W-\eta M^T\delta_2 W:=WηMTδ2
其中的 δ 2 \delta_2 δ2就是 ( O − Y ) ∗ f ′ ( W M ) (O-Y)*f'(WM) (OY)f(WM),也同样可以写成 ∂ E ∂ ( W M ) \frac{\partial E}{\partial (WM)} (WM)E

这样一来我们就更新了 W W W,记作 W 2 W_2 W2

通过迭代W之后,我们知道现在的 W 2 W_2 W2可以使得f(WM)更加接近Y。

同样的想法我们要改变V使得f(VX)更加接近M的‘真实值’,从而使得 f ( W 2 M 2 ) f(W_2M_2) f(W2M2)更接近Y。

同理:
V : = V − η X T δ 1 V:=V-\eta X^T\delta_1 V:=VηXTδ1
δ 1 \delta_1 δ1可以写成 ∂ E ∂ ( V X ) \frac{\partial E}{\partial (VX)} (VX)E,根据链式求导法则
δ 1 = ∂ E ∂ ( V X ) = ∂ E ∂ ( W M ) ⋅ ∂ ( W M ) ∂ M ⋅ ∂ M ∂ ( V X ) = δ 2 ⋅ W 2 ⋅ f ′ ( V X ) \delta_1=\frac{\partial E}{\partial (VX)}=\frac{\partial E}{\partial (WM)}\cdot\frac{\partial (WM)}{\partial M}\cdot\frac{\partial M}{\partial (VX)}\\=\delta_2\cdot W_2\cdot f'(VX)\\ δ1=(VX)E=(WM)EM(WM)(VX)M=δ2W2f(VX)
求出 δ 1 \delta_1 δ1后,V权值也能更新了。

这个公式当然还能更加一般化:
δ i = δ i + 1 ⋅ W i + 1 ⋅ f ′ ( W i O i ) \delta_i=\delta_{i+1}\cdot W_{i+1}\cdot f'(W_iO_i) δi=δi+1Wi+1f(WiOi)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值