【机器学习】深度学习自适应学习率

【机器学习】深度学习自适应学习率

动量算法旨在加速学习速率。自适应学习率是为了平衡不同参数的学习速率。

SGD

g = − ϵ f ′ ( θ k ) g=-\epsilon f'(\theta_k) g=ϵf(θk)
θ k + 1 ← θ k + g \theta_{k+1} \leftarrow \theta_k+g θk+1θk+g

momentum动量

g = α g − ϵ f ′ ( θ k ) g=\alpha g -\epsilon f'(\theta_k) g=αgϵf(θk)
θ k + 1 ← θ k + g \theta_{k+1} \leftarrow \theta_k+g θk+1θk+g
特点:相比于SGD,考虑了历史累计梯度。
优点:旨在加速学习,特别是高曲率、小但一致的梯度,或是带噪声的梯度。动量算法累积了之前梯度指数级衰减的移动平均,并且继续沿该方向移动。
稳定时更新步长为 ϵ f ′ ( θ k ) 1 − α \frac{\epsilon f'(\theta_k)}{1-\alpha} 1αϵf(θk)

nesterov动量

g ← α g − ϵ f ′ ( θ k + α g ) g \leftarrow \alpha g - \epsilon f'(\theta_k+\alpha g) gαgϵf(θk+αg)
θ k + 1 ← θ k + g \theta_{k+1} \leftarrow \theta_k+g θk+1θk+g
特点:相比于momentum动量,在计算梯度之前先进行一次梯度更新
优点:在凸批量梯度的情况下,额外误差收敛速率从O(1/k)(k步后)改进到O(1/k^2),但是在随机梯度的情况下,没有改进收敛率。所以建议LR等模型在Batch-SGD时优先考虑nesterov动量

Adamgrad

g = − f ′ ( θ k ) g=-f'(\theta_k) g=f(θk)
r = r + g T g r = r+g^Tg r=r+gTg
θ k + 1 ← θ k + ϵ g / r \theta_{k+1} \leftarrow \theta_k+\epsilon g/\sqrt r θk+1θk+ϵg/r
偏导大的参数学习率下降较快,偏导小的参数学习率下降相对较慢
效果:在参数空间中更为平缓的倾斜方向会取地更大的进步

Rmsprop

Adamgrad的累计梯度容易使得学习率较早的趋于0,使得学习停滞。
g = − f ′ ( θ k ) g=-f'(\theta_k) g=f(θk)
r = α r + ( 1 − α ) g T g r = \alpha r+(1-\alpha)g^Tg r=αr+(1α)gTg
θ k + 1 ← θ k + ϵ g / r \theta_{k+1} \leftarrow \theta_k+\epsilon g/\sqrt r θk+1θk+ϵg/r
扩展:AdamDelta和Rmsprop只是自适应学习率修正项 r r r,故可以扩展到momentum动量和nesterov动量上。

Adam(adaptive moments)

移动平均估计一阶矩和二阶矩
修正一阶矩和二阶矩的偏差,还没有理解清楚其作用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值