Processing math: 66%

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,步骤如下:

\begin{align} for & \; i = 1 \; to \; m: \\ &z^{(i)} = w^T x^{(i)} + b \\ &a^{(i)} = \sigma(z^{(i)}) \\ &J = J + L(a^{(i)}, y{(i)}) = J -[y^{(i)}\log{a^{(i)}} + (1 – y^{(i)})\log(1 – a^{(i)})] \\ &dz^{(i)} = a^{(i)} – y^{(i)} \\ &dw_1 = dw_1 + dw_1^{(i)} = dw_1 + x_1^{(i)} dz^{(i)} \\ &dw_2 = dw_2 + dw_2^{(i)} = dw_2 + x_2^{(i)} dz^{(i)} \\ &db = db + db^{(i)} = db + dz^{(i)} \\ \end{align}

  然后求平均:

\begin{equation} J /= m \\ dw_1 /= m \\ dw_2 /= m \\ db /= m \end{equation}

  上面 dw_1^{(i)} = x_1^{(i)} dz^{(i)}dw_2^{(i)} = x_2^{(i)} dz^{(i)}db^{(i)} = dz^{(i)} 取自前文 中式(10)、(11)、(12) 的结果。

  (3)得到 dw1dw2db 后,就可以对参数 w1w2b 进行更新,使得代价函数 J 向减小的方向移动一小步:

\begin{equation}   w_1 = w_1 – \alpha dw_1 \\   w_2 = w_2 – \alpha dw_2 \\   b = b – \alpha db \end{equation}

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