深度学习优化器与正则化方法详解
1. 动量随机梯度下降
在深度学习训练中,我们常使用带动量的小批量随机梯度下降(Mini-batch Gradient Descent with Momentum)。动量的加入使得训练过程比单纯的小批量随机梯度下降更嘈杂,因为动量有时会使我们越过目标位置,导致误差出现峰值。不过,动量也显著加快了训练速度。例如,在某些数据上,单纯的小批量随机梯度下降大约需要5000个周期才能使误差接近0,而加入动量后,仅需600多个周期就能达到相同效果。
然而,使用动量也带来了一个新问题:如何选择动量值γ。我们可以凭借经验和直觉来选取,也可以通过超参数搜索找到能带来最佳结果的值。
2. Nesterov动量
Nesterov动量是对传统动量方法的改进。传统动量是回顾过去的信息来辅助训练,而Nesterov动量则尝试展望未来。其核心思想是,除了使用当前位置的梯度,还使用预计下一步到达位置的梯度,利用“未来的梯度”来指导当前的移动。
具体步骤如下:
1. 假设权重从位置A开始,经过最近一次更新后到达位置B。
2. 计算从A到B的变化量m,并将其缩放γ倍。
3. 不直接计算B点的梯度,而是先将缩放后的动量加到B上,得到“预测”误差点P,这是我们对下一步在误差曲面上位置的估计。
4. 计算P点的梯度g,并将其缩放η倍得到ηg。
5. 最后,将缩放后的动量γm和缩放后的梯度ηg加到B上,得到新的位置C。
通过这种方式,Nesterov动量能让我们更接近山谷底部,减少过冲现象。与普通动量相比,它通常学习速度更快,且误差曲线更平滑。在标准测试中,使用Nesterov动
超级会员免费看
订阅专栏 解锁全文
2万+

被折叠的 条评论
为什么被折叠?



