pytorch优化器详解:Adam

Adam优化器结合了RMSProp和AdaGrad的优点,通过对梯度及其平方进行滑动平均,并进行偏差纠正,有效解决了梯度消失和爆炸的问题。本文详细解析了Adam的工作原理,包括其在PyTorch中的具体实现参数。

目录

说明

Adam原理

梯度滑动平均

偏差纠正

Adam计算过程

pytorch Adam参数

params

lr

betas

eps

weight_decay

amsgrad


说明

模型每次反向传导都会给各个可学习参数p计算出一个偏导数g_t,用于更新对应的参数p。通常偏导数g_t不会直接作用到对应的可学习参数p上,而是通过优化器做一下处理,得到一个新的\widehat{g}_t,处理过程用函数F表示(不同的优化器对应的F的内容不同),即\widehat{g}_t=F(g_t),然后和学习率lr一起用于更新可学习参数p,即p=p-\widehat{g}_t*lr

Adam是在RMSProp和AdaGrad的基础上改进的。先掌握RMSProp的原理,就很容易明白Adam了。本文是在RMSProp这篇博客的基础上写的。

Adam原理

在RMSProp的基础上,做两个改进:梯度滑动平均偏差纠正

梯度滑动平均

在RMSProp中,梯度的平方是通过平滑常数平滑得到的,即v_t=\beta*v_{t-1}+(1-\beta)*(g_t)^2根据论文,梯度平方的滑动均值用v表示;根据pytorch源码,Adam中平滑常数用的是β,RMSProp中用的是α),但是并没有对梯度本身做平滑处理。

在Adam中,对梯度也做了平滑,平滑后的滑动均值用m表示,即

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值