Deep Learning Note: 1-3 m 个样本上的梯度下降
Contents [show]
1. m 个样本上的梯度下降
前文通过计算图得到了对于单个样本的各个参数的偏导,下面扩展到 m 个样本的情况,给出在 m 个样本上进行逻辑回归梯度下降的方法。
回顾一下前面得到的逻辑回归的代价函数为:
J(w,b)=1mm∑i=1L(a(i),y(i))
其中,
a(i)=ˆy(i)=σ(z(i))=σ(wTx(i)+b)
前文通过计算图得到了只有两个特征(wT=[w1w2])的情况下,损失函数 L 对第 i 各样本的各参数的偏导 ∂L∂w(1)1,∂L∂w(1)2,∂L∂b(1),为了方便书写,将他们分别简写为 dw(i)1、dw(i)2、db(i)。由式 (1),可得对于参数 w1,有:
∂∂w1J(w,b)=1mm∑i=1∂∂w(i)1L(a(i),y(i))=1mm∑i=1dw(i)1
即计算每个样本的 dw(i)1,再进行平均。类似地,可以得到 ∂∂w2J(w,b) 和 ∂∂bJ(w,b):
∂∂w2J(w,b)=1mm∑i=1dw(i)2
∂∂bJ(w,b)=1mm∑i=1db(i)
2. 计算步骤
得到了代价函数 J(w,b) 关于 w1、w2 和 b 的偏导后,就可以实现梯度下降了。为了方便书写,将 ∂∂w1J(w,b)、∂∂w2J(w,b)、∂∂bJ(w,b) 分别简写为 dw1、 dw2 和 db,梯度下降的具体步骤如下:
(1)初始化 J=0,dw1=0,dw2=0,db=0
(2)计算 m 个样本的 L(a(i),y(i))、 dw(i)1、 dw(i)2 和 db(i),累积到 J、dw1、dw2、db,步骤如下:
fori=1tom:z(i)=wTx(i)+ba(i)=σ(z(i))J=J+L(a(i),y(i))=J−[y(i)loga(i)+(1–y(i))log(1–a(i))]dz(i)=a(i)–y(i)dw1=dw1+dw(i)1=dw1+x(i)1dz(i)dw2=dw2+dw(i)2=dw2+x(i)2dz(i)db=db+db(i)=db+dz(i)
然后求平均:
J/=mdw1/=mdw2/=mdb/=m
上面 dw(i)1=x(i)1dz(i)、dw(i)2=x(i)2dz(i)、db(i)=dz(i) 取自前文 中式(10)、(11)、(12) 的结果。
(3)得到 dw1、dw2、db 后,就可以对参数 w1、w2、b 进行更新,使得代价函数 J 向减小的方向移动一小步:
w1=w1–αdw1 w2=w2–αdw2 b=b–αdb
由此就完成了梯度下降的一步。之后需要不断重复此步骤,即不断调整参数 w1、w2、b,使得代价函数 J 不断向减小的方向移动,直到达到或接近一个所接受的极小值。如前所述,以上所使用的代价函数是一个凸函数,可以通过梯度下降达到全局最佳,即找到最佳的参数 w1、w2、b 使得代价函数达到最小值。