小批量随机梯度下降(Mini-batch Stochastic Gradient Descent)

对于深度学习模型而言,人们所说的“随机梯度下降, SGD”,其实就是基于小批量(mini-batch)的随机梯度下降

小批量随机梯度是在梯度下降的基础上带有随机性

在我们的全部样本中随机选取b个样本,把这些样本组成一个新样本,用于我们的梯度下降。

 

步骤:

小批量随机梯度下降(Mini-batch Stochastic Gradient Descent)_第1张图片

 

  1.  时刻1时随机的取一个 w

  2. 持续时间到模型收敛(发现目标函数在每个样本平均的损失不再下降;或者是其他的指标基本上趋向平衡):

  • 在每一步里,在所有的样本中随机采样1个 l 出来,I 的大小是等于 b

  • l 当成是当前的训练样本去算目标函数,再通过这个损失函数进一步求得下一步得权重

  • 不断重复上面的两点直至收敛

优点:可以解决除了决策树之外的所有问题

 

缺点:对参数b以及学习率很敏感

 

mini-batch的SGD算法中一个关键参数是学习率。在实践中,有必要随着时间的推移逐渐降低学习率—学习率衰减(learning rate decay)

在梯度下降初期,采用较大的步长(学习率),可以以较快的速度进行梯度下降。当接近收敛时,我们希望步长小一点(即减小学习率),从而使结果在最小值附近小幅摆动。假设模型已经接近梯度较小的区域,若保持原来的学习率,只能在最优点附近徘徊。如果降低学习率,目标函数能够进一步降低,有助于算法的收敛,更容易接近最优解。

常用的学习率衰减的方法

小批量随机梯度下降(Mini-batch Stochastic Gradient Descent)_第2张图片

 

其中 β 为衰减率, 为epoch数量, 为常数, 为初始学习率。

你可能感兴趣的:(机器学习,深度学习)