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
一阶偏导求解并推广到一般情形
我们可以把神经网络视为一个复杂一点的函数,自变量
x
经过一系列函数的操作,输出因变量
y
,
y
是由
W
和
b
决定的,优化输出结果,需要调整
W
和
b
。
这里,先推导一个具体的权重,也就是最后一个隐层的第二个神经元跟输出层的第一个神经元之间的权重,然后再扩展到一般形式:
∂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
跟其他层有一点区别在于其
δp,kq
是直接的,其他层不是如此,需要推导一般形式对
Wlj,i
一阶偏导,也就是,推导其和后一层的各值的关系。先从
Wp−2
开始:注意,考虑到误差最小时应当设置
D=dp
,以免引起对
p
的不必要推导误会。
∂J(W,b)∂Wp−2j,i=∑k=1m∂∂Wp−2j,iJ(W,b;xk,yk)+λWp−2j,i=12∑k=1m∂∂Wp−2j,i(∑q=1D(ykq−f(zp,kq))2)+λWp−2j,i=∑k=1m∑q=1D(−(ykq−f(zp,kq))f′(zp,kq)∂zp,kq∂Wp−2j,i)+λWp−2j,i=∑k=1m∑q=1D(δp,kq∂zp,kq∂Wp−2j,i)+λWp−2j,i=∑k=1m∑q=1D(δp,kq∂zp,kq∂zp−1,kj∂zp−1,kj∂Wp−2j,i)+λWp−2j,i=∑k=1m∑q=1D(δp,kq∂zp,kq∂zp−1,kjap−2,ki)+λWp−2j,i=∑k=1map−2,ki(∑q=1D(δp,kq∂zp,kq∂zp−1,kj))+λWp−2j,i=∑k=1map−2,ki(∑q=1D(δp,kqf′(zp−1,kj)Wp−1q,j))+λWp−2j,i=∑k=1map−2,kif′(zp−1,kj)(∑q=1D(δp,kqWp−1q,j))+λWp−2j,i
更进一步地推导
Wl
和
Wl+1
的一阶偏导关系:
∂J(W,b)∂Wlj,i=∑k=1m∂∂Wlj,iJ(W,b;xk,yk)+λWlj,i=12∑k=1m∂∂Wlj,i(∑q=1D(ykq−f(zp,kq))2)+λWlj,i=∑k=1m∑q=1D(−(ykq−f(zp,kq))f′(zp,kq)∂zp,kq∂Wlj,i)+λWlj,i=∑k=1m∑q=1D(δp,kq∂zp,kq∂Wlj,i)+λWlj,i=∑k=1m∑q=1D(δp,kq∂zp,kq∂zl+1,kj∂zl+1,kj∂Wlj,i)+λWlj,i=∑k=1m∑q=1D(δp,kq∂zp,kq∂zl+1,kjal,ki)+λWlj,i=∑k=1mal,ki(∑q=1D(δp,kq∂zp,kq∂zl+1,kj))+λWlj,i
当
l=p−2
,结论同上文已经推导的一致。
当
l<p−2
,又有所不同:
∂J(W,b)∂Wlj,i=∑k=1mal,ki(∑q=1D(δp,kq∂zp,kq∂zl+1,kj))+λWlj,i=∑k=1mal,ki(∑q=1D(δp,kq∑r=1dl+2∂zp,kq∂zl+2,kr))+λWlj,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