3.2 梯度下降
训练神经网络,就是让
J(W,b)
的值最小。解法就是梯度下降,或者随机梯度下降。
梯度下降法的迭代公式是:
(Wlj,i)s+1=(Wlj,i)s?η?J(W,b)?Wlj,i∣Wlj,i=(Wlj,i)s
(blj)s+1=(blj)s?η?J(W,b)?blj∣bli=(blj)s
其中,
s
是迭代次数,
η
是学习速率。
上两式的一阶偏导又可以写成:
?J(W,b)?Wlj,i=∑k=1m??Wlj,iJ(W,b;xk,yk)+λWlj,i
?J(W,b)?blj=∑k=1m??bljJ(W,b;xk,yk)
3.2.1 输出层
Lp
和隐层
Lp?1
之间的权重矩阵
Wp?1
一阶偏导求解并推广到一般情形
先推导一个具体的权重,也就是最后一个隐层的第二个神经元跟输出层的第一个神经元之间的权重,然后再扩展到一般形式:
?J(W,b)?Wp?11,2=∑k=1m??Wp?11,2J(W,b;xk,yk)+λWp?11,2=12∑k=1m??Wp?11,2(∑q=1dp(ykq?f(zp,kq))2)+λWp?11,2=∑k=1m∑q=1dp(?(ykq?f(zp,kq))f′(zp,kq)?zp,kq?Wp?11,2)+λWp?11,2=∑k=1m∑q=1dp(δp,kq?zp,kq?Wp?11,2)+λWp?11,2=∑k=1mδp,k1ap?1,k2+λWp?11,2
其中,
δp,kq=?(ykq?f(zp,kq))f′(zp,kq)
是简便写法。
进一步地,
Wp?1
的权重系数一阶偏导如下:
?J(W,b)?Wp?1j,i=∑k=1mδp,kjap?1,ki+λWp?1j,i
更进一步地,
Wl
的权重系数一阶偏导如下:
?J(W,b)?Wlj,i=∑k=1mδl+1,kjal,ki+λWlj,i
3.2.2 输出层
Lp
和隐层
Lp?1
之间的bias矩阵
bp?1
一阶偏导求解并推广到一般情形
先推导一个具体的bias,也就是最后一个隐层的第二个神经元跟输出层的第一个神经元之间的bias,然后再扩展到一般形式:
?J(W,b)?bp?11=∑k=1m??bp?11J(W,b;xk,yk)=∑k=1m??bp?11(12∑q=1dp(ykq?f(zp,kq))2)=∑k=1m∑q=1dp(?(ykq?f(zp,kq))f′(zkq)?zkq?bp?11)=∑k=1m(?(ykq?f(zp,k1))f′(zk1)?zk1?bp?11)=∑k=1mδp,k1
进一步地,输出层和隐层之间的bias矩阵一阶偏导的一般形式是:
?J(W,b)?bp?1j=∑k=1mδp,kj
更进一步地,所有层的bias矩阵一阶偏导的一般形式是:
?J(W,b)?blj=∑k=1mδl+1,kj
3.2.3 梯度下降法最终迭代公式
(Wlj,i)s+1=(Wlj,i)s?η(∑k=1mδl+1,kjal,ki+λWlj,i)∣Wlj,i=(Wlj,i)s
(blj)s+1=(blj)s?η(∑k=1mδl+1,kj)∣Wlj,i=(Wlj,i)s