深度学习中几种优化器的分析与对比

2024-04-29 04:01 栏目: 技术学堂 查看()

前言
本文仅对一些常见的优化方法进行直观介绍和简单的比较,各种优化方法的详细内容及公式只好去认真啃论文了,在此我就不赘述了。

SGD
此处的SGD指mini-batch gradient descent,关于batch gradient descent, stochastic gradient descent, 以及 mini-batch gradient descent的具体区别就不细说了。现在的SGD一般都指mini-batch gradient descent。这是当前神经网络中大多使用的优化方法

SGD就是每一次迭代计算mini-batch的梯度,然后对参数进行更新,是最常见的优化方法了。即:


其中,是学习率,是梯度 SGD完全依赖于当前batch的梯度,所以可理解为允许当前batch的梯度多大程度影响参数更新

缺点:(正因为有这些缺点才让这么多大神发展出了后续的各种算法)

选择合适的learning rate比较困难 - 对所有的参数更新使用同样的learning rate。对于稀疏数据或者特征,有时我们可能想更新快一些对于不经常出现的特征,对于常出现的特征更新慢一些,这时候SGD就不太能满足要求了
SGD容易收敛到局部最优,并且在某些情况下可能被困在鞍点,容易产生局部最优,而不能达到全局最优。
Momentum
momentum是模拟物理里动量的概念,积累之前的动量来替代真正的梯度。公式如下:


其中,是动量因子

特点:

下降初期时,使用上一次参数更新,下降方向一致,乘上较大的能够进行很好的加速。

扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流

郑重申明:某某网络以外的任何单位或个人,不得使用该案例作为工作成功展示!

平台注册入口