深度学习使用的优化器

优化器总结
1、sgd

针对每个训练样本进行参数更新,执行速度块,参数波动大。改进:每个batch进行参数更新,减少波动,更加稳定

# 梯度下降法
x += - learning_rate * dx

问题:容易产生震荡,且容易被困在鞍点,迟迟不能到达全局最优值

2、Adgrad

累积平方梯度,保证每次学习率的每次更新,解决了SGD中学习率不能自适应调整的问题。缺点:

  1. 对于训练深度神经网络模型而言,从训练开始时累积平方梯度值会越来越大,会导致学习率过早和过量的减少,从而导致迭代后期收敛及其缓慢。AdaGrad在某些深度学习模型上效果不错,但不是全部。
  2. 需要手动设置全局学习率
3、Adam

当前梯度的更新,考虑上一次梯度更新的值和当前计算的真实梯度,每次都会累加参数的梯度值,包括一阶和二阶梯度。
问题:nlp任务中,如果某个单词只出现了一次,比如第一次,在后续更新,它并没有出现过,计算的梯度值是0,但是累加的梯度mt,vt不是0,他依然会更新。而lazyadam的优化器解决这个问题,他只考虑batch层面的更新,不是全局的梯度迭代累加

# Adam
m = beta1*mt-1 + (1-beta1)*dx
v = beta2*vt-1 + (1-beta2)*(dx**2)
x += - learning_rate * m / (np.sqrt(v) + eps)
4.AdamW

AdamW就是Adam优化器加上L2正则,来限制参数值不可太大

参考链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值