Processing math: 100%

Deep Learning Note: 1-3 m 个样本上的梯度下降

1. m 个样本上的梯度下降

  前文通过计算图得到了对于单个样本的各个参数的偏导,下面扩展到 m 个样本的情况,给出在 m 个样本上进行逻辑回归梯度下降的方法。

  回顾一下前面得到的逻辑回归的代价函数为:

J(w,b)=1mmi=1L(a(i),y(i))

  其中,

a(i)=ˆy(i)=σ(z(i))=σ(wTx(i)+b)

  前文通过计算图得到了只有两个特征(wT=[w1w2])的情况下,损失函数 L 对第 i 各样本的各参数的偏导 Lw(1)1Lw(1)2Lb(1),为了方便书写,将他们分别简写为 dw(i)1dw(i)2db(i)。由式 (1),可得对于参数 w1,有:

w1J(w,b)=1mmi=1w(i)1L(a(i),y(i))=1mmi=1dw(i)1

  即计算每个样本的 dw(i)1,再进行平均。类似地,可以得到 w2J(w,b)bJ(w,b)

w2J(w,b)=1mmi=1dw(i)2

bJ(w,b)=1mmi=1db(i)

2. 计算步骤

  得到了代价函数 J(w,b) 关于 w1w2b 的偏导后,就可以实现梯度下降了。为了方便书写,将 w1J(w,b)w2J(w,b)bJ(w,b) 分别简写为 dw1dw2db,梯度下降的具体步骤如下:

  (1)初始化 J=0dw1=0dw2=0db=0

  (2)计算 m 个样本的 L(a(i),y(i))dw(i)1dw(i)2db(i),累积到 Jdw1dw2db,步骤如下:

fori=1tom:z(i)=wTx(i)+ba(i)=σ(z(i))J=J+L(a(i),y(i))=J[y(i)loga(i)+(1y(i))log(1a(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)得到 dw1dw2db 后,就可以对参数 w1w2b 进行更新,使得代价函数 J 向减小的方向移动一小步:

  w1=w1αdw1  w2=w2αdw2  b=bαdb

  由此就完成了梯度下降的一步。之后需要不断重复此步骤,即不断调整参数 w1w2b,使得代价函数 J 不断向减小的方向移动,直到达到或接近一个所接受的极小值。如前所述,以上所使用的代价函数是一个凸函数,可以通过梯度下降达到全局最佳,即找到最佳的参数 w1w2b 使得代价函数达到最小值。