从 SGD 到 Adam —— 深度学习优化算法概览 各种优化器 重点

20210701

https://blog.51cto.com/u_15064630/2571266

【机器学习基础】优化算法详解

详细

https://blog.csdn.net/u013385018/article/details/92377371

指数加权 对之前的梯度进行加权越近的权重越大,越远的权重下降越快

详解深度学习中的常用优化算法(写的非常好)

https://mp.weixin.qq.com/s/Bu9GDxQQRaw74uLFPteI5w

重点

SGD没有动量的概念 SGD最大的缺点是下降速度慢,而且可能会在沟壑的两边持续震荡,停留在一个局部最优点。

SGD with Momentum

为了抑制SGD的震荡,SGDM认为梯度下降过程可以加入惯性。下坡的时候,如果发现是陡坡,那就利用惯性跑的快一些

一阶动量是各个时刻梯度方向的指数移动平均值,约等于最近 1/(1-β1) 个时刻的梯度向量和的平均值。

也就是说,t 时刻的下降方向,不仅由当前点的梯度方向决定,而且由此前累积的下降方向决定

SGD with Nesterov Acceleration

SGD 还有一个问题是困在局部最优的沟壑里面震荡

NAG全称Nesterov  Accelerated Gradient 是在SGD、SGD-M的基础上的进一步改进

不如先看看如果跟着累积动量走了一步,那个时候再怎么走  然后用下一个点的梯度方向,与历史累积动量相结合

自适应学习率的优化算法

二阶动量出现

SGD及其变种以同样的学习率更新每个参数

对于经常更新的参数,我们已经积累了大量关于它的知识,不希望被单个样本影响太大,希望学习速率慢一些;对于偶尔更新的参数,我们了解的信息太少,希望能从每个偶然出现的样本身上多学一些,即学习速率大一些

AdaGrad

那就是二阶动量——该维度上,迄今为止所有梯度值的平方和

参数更新越频繁,二阶动量越大,学习率就越小。

因为图片是单调递增的,会使得学习率单调递减至0,可能会使得训练过程提前结束,即便后续还有数据也无法学到必要的知识。

AdaDelta/RMSProp

不累积全部历史梯度,而只关注过去一段时间窗口的下降梯度

指数移动平均值大约就是过去一段时间的平均值,因此我们用这一方法来计算二阶累积动量:

就避免了二阶动量持续累积、导致训练过程提前结束的问题了。

Adam

把一阶动量和二阶动量都用起来,就是Adam了——Adaptive + Momentum

Nadam

就是Nesterov + Adam = Nadam了

先根据一阶动量走一下,然后根据一阶动量和二阶动量以及当前的梯度共同决定下一步的走向

Radam

RAdam将“预热”作为降低方差的方法,但所需的预热程度未知,而且具体情况会根据数据集不同而变化。考虑到warmup是一种方差衰减器,但所需的warmup程度是未知的,而且数据集之间是不同的,因此,作者决定用一种数学算法来作为一种动态方差衰减器

https://zhuanlan.zhihu.com/p/79506425

立即尝鲜!碾压Adam,最好的AI优化器RAdam来了

https://zhuanlan.zhihu.com/p/342003515

优化器怎么选?一文教你选择适合不同ML项目的优化器

ä» SGD å° Adam ââ 深度学习ä¼åç®æ³æ¦è§(ä¸)

可视化分析

20210116

https://zhuanlan.zhihu.com/p/343564175

https://baijiahao.baidu.com/s?id=1613121229156499765&wfr=spider&for=pc

重点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值