《动手学深度学习》优化算法学习&习题

优化算法

梯度下降类

  • 小批量随机梯度下降,通过平均梯度来减小方差

动量法

基础

泄露平均法:用来取代梯度的计算
《动手学深度学习》优化算法学习&习题_第1张图片

  • β \beta β这个参数控制了取多久时间的平均值

在这里插入图片描述
上述推理构成了”加速”梯度方法的基础,例如具有动量的梯度。

  • 在优化问题条件不佳的情况下(例如,有些方向的进展比其他方向慢得多,类似狭窄的峡谷)”加速”梯度还额外享受更有效的好处。
  • 此外,它们允许我们对随后的梯度计算平均值,以获得更稳定的下降方向。 诚然,即使是对于无噪声凸问题,加速度这方面也是动量如此起效的关键原因之一。

动量法原理

《动手学深度学习》优化算法学习&习题_第2张图片

  • 动量法用过去梯度的平均值来替换梯度,这大大加快了收敛速度。

  • 对于无噪声梯度下降和嘈杂随机梯度下降,动量法都是可取的。

  • 动量法可以防止在随机梯度下降的优化过程停滞的问题。

  • 由于对过去的数据进行了指数降权,有效梯度数为 1 1 − β \frac{1}{1-\beta} 1β1

  • 在凸二次问题中,可以对动量法进行明确而详细的分析。

  • 动量法的实现非常简单,但它需要我们存储额外的状态向量(动量)

AdaGrad

稀疏特征与学习率

  • 假设我们正在训练一个语言模型。 为了获得良好的准确性,我们大多希望在训练的过程中降低学习率
  • 只有在这些不常见的特征出现时,与其相关的参数才会得到有意义的更新。

问题所在:

鉴于学习率下降,我们可能最终会面临这样的情况:常见特征的参数相当迅速地收敛到最佳值,而对于不常见的特征,我们仍缺乏足够的观测以确定其最佳值。 换句话说,学习率要么对于常见特征而言降低太慢,要么对于不常见特征而言降低太快。

在这里插入图片描述

  • 一般而言,计算特征值和特征向量要比解决实际问题“贵”得多。
  • 然准确计算特征值可能会很昂贵,但即便只是大致猜测并计算它们,也可能已经比不做任何事情好得多。 特别是,我们可以使用的对角线条目并相应地重新缩放它。 这比计算特征值开销小的多。

在这里插入图片描述

《动手学深度学习》优化算法学习&习题_第3张图片
《动手学深度学习》优化算法学习&习题_第4张图片

《动手学深度学习》优化算法学习&习题_第5张图片

RMSProp

在这里插入图片描述
在这里插入图片描述
《动手学深度学习》优化算法学习&习题_第6张图片

  • 在优化算法中,泄露平均值是指在每次迭代中,算法泄露的信息的平均值(这里泄露的是上一次梯度二次矩)。
    《动手学深度学习》优化算法学习&习题_第7张图片

Adam

  • 核心点:使用指数加权移动平均值来估算梯度的动量和二次矩
    《动手学深度学习》优化算法学习&习题_第8张图片
  • 注意初始化,v,s均等于0会有一个很大的初始偏差,故采用指数初始化

缩放梯度:

《动手学深度学习》优化算法学习&习题_第9张图片


  • Adam算法也存在一些问题: 即使在凸环境下,当 s t s_t st的二次矩估计值爆炸时,它可能无法收敛

  • Adam算法将许多优化算法的功能结合到了相当强大的更新规则中。

  • Adam算法在RMSProp算法基础上创建的,还在小批量的随机梯度上使用EWMA。

  • 在估计动量和二次矩时,Adam算法使用偏差校正来调整缓慢的启动速度

你可能感兴趣的:(深度学习,算法,学习)