随机梯度下降和小批量梯度下降详解
@
目录
所谓随机梯度下降, 顾名思义, 就是随机选取数据来做随机梯度下降.
普通梯度下降
普通的梯度下降的计算公式为:
\[\omega = \omega - \lambda\frac{\partial J}{\omega}
\]
其中, \(J\)为损失函数, 而\(\omega\)就是我们需要求的参数, \(\lambda\)为步长, 也就是我们所说的学习率.
也就是说, 梯度下降法其实就是将相应的参数按照梯度下降的方向前进一点点, \(lambda\)限制了我们每次向梯度下降的方向所走的长度.
随机梯度下降(SGD, Stochastic Gradient Descent)
所谓梯度随机下降, 顾名思义, 就是随机选取数据来做梯度下降.
由于梯度下降法每次东欧需要计算所有的数据, 当数据的数量很大时, 那么计算一次梯度下降的时间就会很长, 因此随机梯度下降就产生了.
随机梯度下降每次使用一个数据进行梯度下降的训练, 其终止方法与普通的梯度下降法相同.
随机梯度下降的特点
优点
- 每一次的学习时间很快
- 如果目标函数有盆地区域, SGD会使优化的方向从当前局部极小值点跳到另一个更好的局部最小值点
- 最终收敛于一个较好的极值点甚至是全局极值点
缺点
- 每次更新可能并不会按照正确的方向进行, 参数具有高方差, 从而导致损害函数剧烈波动
小批量梯度下降(Mini_Batch Gradient Densent)
由于随机梯度下降算法每次使用一个训练数据, 因此随机梯度下降的方差会比较大, 因此, 小批量梯度下降就产生了. 小批量梯度下降与随机梯度下降不同的是: 小批量梯度下降每次使用一小部分数据进行梯度下降训练, 这样会使得其更具有代表性, 收敛速度比SGD更快, 也更加稳定.
小批量梯度下降的特点
- 收敛速度比SGD更快, 更稳定
- 在最优解附近跳动不会太大, 容易得到更好的解
本人博客: https://xiaoxiablogs.top