优化算法
梯度下降类
- 小批量随机梯度下降,通过平均梯度来减小方差
动量法
基础
泄露平均法:用来取代梯度的计算
- β \beta β这个参数控制了取多久时间的平均值
上述推理构成了”加速”梯度方法的基础,例如具有动量的梯度。
- 在优化问题条件不佳的情况下(例如,有些方向的进展比其他方向慢得多,类似狭窄的峡谷)”加速”梯度还额外享受更有效的好处。
- 此外,它们允许我们对随后的梯度计算平均值,以获得更稳定的下降方向。 诚然,即使是对于无噪声凸问题,加速度这方面也是动量如此起效的关键原因之一。
动量法原理
-
动量法用过去梯度的平均值来替换梯度,这大大加快了收敛速度。
-
对于无噪声梯度下降和嘈杂随机梯度下降,动量法都是可取的。
-
动量法可以防止在随机梯度下降的优化过程停滞的问题。
-
由于对过去的数据进行了
指数降权
,有效梯度数为 1 1 − β \frac{1}{1-\beta} 1−β1 -
在凸二次问题中,可以对动量法进行明确而详细的分析。
-
动量法的实现非常简单,但它需要我们存储额外的状态向量(动量)。
AdaGrad
稀疏特征与学习率
- 假设我们正在训练一个语言模型。 为了获得良好的准确性,我们大多希望在训练的过程中降低学习率
- 只有在这些不常见的特征出现时,与其相关的参数才会得到有意义的更新。
问题所在:
鉴于学习率下降,我们可能最终会面临这样的情况:常见特征的参数相当迅速地收敛到最佳值,而对于不常见的特征,我们仍缺乏足够的观测以确定其最佳值。 换句话说,学习率要么对于常见特征而言降低太慢,要么对于不常见特征而言降低太快。
- 一般而言,计算特征值和特征向量要比解决实际问题“贵”得多。
- 然准确计算特征值可能会很昂贵,但即便只是大致猜测并计算它们,也可能已经比不做任何事情好得多。 特别是,
我们可以使用的对角线条目并相应地重新缩放它
。 这比计算特征值开销小的多。
RMSProp
- 在优化算法中,
泄露平均值
是指在每次迭代中,算法泄露的信息的平均值(这里泄露的是上一次梯度二次矩)。
Adam
- 核心点:使用
指数加权移动平均值
来估算梯度的动量和二次矩
- 注意初始化,v,s均等于0会有一个很大的初始偏差,故采用指数初始化
缩放梯度:
-
Adam算法也存在一些问题: 即使在凸环境下,当 s t s_t st的二次矩估计值爆炸时,它可能无法收敛
-
Adam算法将许多优化算法的功能结合到了相当强大的更新规则中。
-
Adam算法在RMSProp算法基础上创建的,还在小批量的随机梯度上使用EWMA。
-
在估计动量和二次矩时,Adam算法使用偏差校正来调整缓慢的启动速度