优化算子adam——为什么说adam融合了momentum和RMSprop(均方根传播)的优点

1 篇文章 0 订阅
1 篇文章 0 订阅

准备知识(可选择跳过)


momentum


参数初始化:m:momentum 系数;lr:learning rate 学习率;权重w

 计算梯度和更新数度:g(t);v(t) = m*v(t-1)+lr*g(t)

更新参数:w(t) = w(t-1) - v(t)

备注:优点是学习速度快。避免sgd算法梯度更新幅度摆动大的问题。缺点是依赖全局的学习率。


adagrade和RMSprop


adagrade适应性梯度算法(adagrade、adadelta、RMSprop都是梯度自适应算法)

参数初始化:防止分母为0的很小的数(m);学习率lr;权重w

计算梯度:g(t)

计算累计梯度平方和:G(t) = G(t-1) + g(t)*g(t)

更新参数:w(t) = w(t-1) - lr*g(t)/sqrt(G(t)+m)

备注:累计梯度平方和,使得学习速度具有自适应性。出现频率高的特征学习率较小,出现频率低的学习率较大。缺点是累计梯度平方和最后容易过大,导致训练提前结束

RMSprop是adagrade的变体:采用历史累计梯度平方和当前梯度平方的加权平均

参数初始化:防止分母为0的很小的数(m);学习率lr;权重w;加权系数p;

梯度计算:g(t)

累计梯度:G(t) = (1-p)*G(t-1) +p*g(t)*g(t)

权重更新:w(t) = w(t-1) - lr*g(t)/sqrt(G(t)+m)

备注:善于处理非平稳目标


adam(adaptive moment estimation 自适应矩估计)

G(t) = beta2*G(t-1) + (1-beta2) * g(t)

初始化参数:学习率lr;beta1;beta2;权重w;防止分母为0的很小的数(e)

计算梯度:g(t)

计算有偏的一阶矩估计:m(t) = beta1*m(t-1) +(1-beta1)*g(t)(敲黑板,看看这是不是和momentum一样)

计算有偏的二阶矩估计:G(t) = beta2*G(t-1) +(1-beta2)*g(t)*g(t)(敲黑板,看看这是不是和RMSprop一样)

一阶矩的无偏估计:m'(t)  = m(t)/(1-beta1)

二阶矩的无偏估计:G'(t) = G(t)/(1-beta2)

参数更新:w(t) =w(t-1) - lr*m'(t)/sqrt(G'(t)+)

备注:结合了Adagrad善于处理稀疏梯度和RMSprop善于处理非平稳目标的优点

 

参考链接:

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

https://www.zhihu.com/question/325651810

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值