常用的梯度下降算法一般是Batch Gradient Descent,Mini-batch Gradient Descent和Stochastic Gradient Descent。

1. Batch Gradient Descent

1)优点:

  • 在训练过程中,使用固定的学习率,不必担心学习率衰退现象的出现。
  • 具有一条直接到最小值的轨迹线,并且当目标函数为凸函数时,理论上保证收敛到全局最小值,如果目标函数非凸则收敛到局部最小值
  • 它对梯度的估计是无偏的。样例越多,标准差越低。

2)缺点:

  • 尽管在计算过程中,使用了向量化计算,但是遍历全部样例仍需要大量时间,尤其是当数据集很大时。
  • 每次的更新都是在遍历全部样例之后发生的,这时才会发现一些例子可能是多余的且对参数更新没有太大的作用。

2. Mini-batch Gradient Descent

1)优点:

  • 计算速度比Batch Gradient Descent快,因为只遍历部分样例就可执行更新。
  • 随机选择样例有利于避免重复多余的样例和对参数更新较少贡献的样例。
  • 因为batch的大小小于数据集的总数,因此为学习过程增加了噪音,有助于提高泛化误差。
  • 具有更低的标准差。

2)缺点:

  • 在迭代的过程中,因为噪音的存在,学习过程会出现波动。因此,它在最小值的区域徘徊,永不会收敛。
  • 学习过程会有更多的振荡,为更接近最小值,需要增加学习率衰减项,以降低学习率,避免过度振荡。

                                             Batch Gradient Descent与Mini-batch Gradient Descent的损失函数

3. Stochastic Gradient Descent

Stochastic Gradient Descent与Mini-batch Gradient Descent的优缺点类似,存在一下特有的特点:

  • 对学习过程添加更多的噪音,提高了泛化误差,但是需要更多的计算时间。
  • 不能在一个样例中使用向量化计算,学习过程变得更慢。
  • 因为在每次学习过程中只使用一个样例,造成方差很大。

                                                              三种梯度下降算法得到最小值的轨迹线