adam函数 python_python – Tensorflow:关于adam优化器的困惑

我发现文档很清楚,我会在这里粘贴算法的伪代码:

你的参数:

> learning_rate:1e-4和1e-2之间是标准的

> beta1:0.9默认情况下

> beta2:默认为0.999

> epsilon:默认为1e-08

The default value of 1e-8 for epsilon might not be a good default in general. For example, when training an Inception network on ImageNet a current good choice is 1.0 or 0.1.

初始化:

m_0

v_0

t

对于网络的每个参数,m_t和v_t将跟踪梯度的移动平均值及其平方. (所以如果你有1M参数,亚当将在内存中保留2M以上的参数)

在每次迭代t,以及模型的每个参数:

t

lr_t

m_t

v_t

variable

这里lr_t与learning_rate略有不同,因为对于早期迭代,移动平均线尚未收敛,因此我们必须通过乘以sqrt(1 – beta2 ^ t)/(1 – beta1 ^ t)进行归一化.当t为高(t>1./(1.-β2))时,lr_t几乎等于learning_rate

要回答你的问题,你只需要传递一个固定的学习率,保持beta1和beta2的默认值,也许修改epsilon,而Adam会做魔术:)

与RMSProp联系

具有beta1 = 1的Adam等同于具有动量= 0的RMSProp.亚当的论证beta2和RMSProp的论证衰变是相同的.

但是,RMSProp不保持梯度的移动平均值.但它可以保持势头,如MomentumOptimizer.

rmsprop的详细说明.

>保持渐变平方的移动(折扣)平均值

>按此平均值的根除以梯度

>(可以保持动力)

这是伪代码:

v_t

mom = momentum * mom{t-1} + learning_rate * gradient / sqrt(v_t + epsilon)

variable

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值