一阶动量和二阶动量及Adam等优化算法笔记

就按照

从动量和矩的角度探讨优化理论的内涵(以动量法、AdaGrad和Adam举例) - 知乎

的讲解学习,讲的挺细的。这里补充一些笔记方便以后自己复习用。

1.AdaGrad算法

其中说到了“如果目标函数有关自变量中某个元素的偏导数一直都较大,那么该元素的学习率讲下降较快;反之,如果目标函数有关自变量中某个元素的偏导数一直都较少,那么该元素的学习率将下降较慢”。我认为这是站在SGD的角度来看的。

SGD的梯度更新如下

\alpha\cdot g_t

对于SGD来说,其学习率一直是\alpha,然后相较之下AdaGrad算法的学习率:

\frac{\alpha }{\sqrt{\sum_{i}^{t}{g_i^2}}}

这样看AdaGrad算法的学习率确实非递增。而且,偏导越大学习率下降就越快,偏导越小学习率下降就越慢。

2.Adam算法

对于文中说的一阶动量和二阶动量,我算了一下,没对上,可能是作者笔误或我疏忽了。

根据文中说的:

我这边按照上面两个公式算的是:

m_t=\sum_{i=1}^{t}{\beta_{1}^{t-i}(1-\beta_{1})g_{i}}

V_t=\sum_{i=1}^{t}{\beta_{2}^{t-i}(1-\beta_{2})(g_{i}\odot g_{i}) }

这样的话,系数求和就是等比数列求和:

(1-\beta_{1})\frac{1(1-\beta_{1}^{t})}{1-\beta_{1}}

这样除以(1-\beta_{1}^{t})就变成1了。

其次就有期望:

E(m_{t})=E\left ( \sum_{i=1}^{t}{\beta_{1}^{t-i}(1-\beta_{1})g_{i}} \right )

然后这里把g_{i}看成独立同分布,就有:

E\left ( g_{i} \right )= E(g) \, \, \, \, \, \, \, \, \, \, \, \, \, \, \! \! \: \: (1\leq i \leq t)

然后所有g_{i}的期望就都一样了,带入求和,用等比数列求和得:

E(m_{t})=E\left ( g \right )(1-\beta_{1}^{t})

这样E(m_{t})除以(1-\beta_{1}^{t})就等于E(g)了。

E(V_{t})同理。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值