梯度下降法

梯度下降法主要分为三种,

  • 梯度下降法
  • 随机梯度下降
  • 小批量梯度下降

下面分别来介绍一下,这样更加有助于理解它们之间的联系。

梯度下降法

梯度下降使用整个训练数据集来计算梯度,因此它有时也被称为批量梯度下降

下面就以均方误差讲解一下,假设损失函数如下:

[公式]

其中 [公式] 是预测值, [公式] 是真实值,那么要最小化上面损失 [公式] ,需要对每个参数 [公式] 运用梯度下降法:

[公式]

其中 [公式] 是损失函数对参数 [公式] 的偏导数、 [公式] 是学习率,也是每一步更新的步长。

随机梯度下降法

在机器学习\深度学习中,目标函数的损失函数通常取各个样本损失函数的平均,那么假设目标函数为:

[公式]

其中 [公式] 是第 [公式] 个样本的目标函数,那么目标函数在在 [公式] 处的梯度为:

[公式]

如果使用梯度下降法(批量梯度下降法),那么每次迭代过程中都要对 [公式]个样本进行求梯度,所以开销非常大,随机梯度下降的思想就是随机采样一个样本 [公式]来更新参数,那么计算开销就从 [公式] 下降到 [公式]

小批量梯度下降法

随机梯度下降虽然提高了计算效率,降低了计算开销,但是由于每次迭代只随机选择一个样本,因此随机性比较大,所以下降过程中非常曲折(图片来自《动手学深度学习》),

imgimg

所以,样本的随机性会带来很多噪声,我们可以选取一定数目的样本组成一个小批量样本,然后用这个小批量更新梯度,这样不仅可以减少计算成本,还可以提高算法稳定性。小批量梯度下降的开销为 [公式] 其中 [公式]是批量大小。

*该怎么选择?*

当数据量不大的时候可以选择批量梯度下降法,当数据量很大时可以选择小批量梯度下降法。

参考链接:

https://www.zhihu.com/question/264189719

posted @ 2020-07-20 19:11  胖墩哥  阅读(362)  评论(0编辑  收藏  举报