深度学习总结(五)——各优化算法

本文总结了深度学习中的优化算法,包括批量梯度下降、随机梯度下降、小批量梯度下降、Momentum、Nesterov、Adagrad、Adadelta、RMSprop和Adam。讲解了各种算法的特点和应用场景,如Adagrad适合处理稀疏梯度,Adam结合了自适应学习率的优点。还探讨了优化器的选择目的、为何神经网络不采用二阶优化方法,以及如何优化SGD,如批量标准化、早停和梯度噪声等策略。
摘要由CSDN通过智能技术生成

这里写图片描述


一、各优化算法简介

1. 批量梯度下降(Batch gradient descent,BGD)

θ=θηθJ(θ)
每迭代一步,都要用到训练集所有的数据。

2. 随机梯度下降(Stochastic Gradient Descent,SGD)

θ=θηθJ(θ;x(i);y(i))
通过每个样本来迭代更新一次,以损失很小的一部分精确度和增加一定数量的迭代次数为代价,换取了总体的优化效率的提升。增加的迭代次数远远小于样本的数量。

缺点:

  1. 对于参数比较敏感,需要注意参数的初始化
  2. 容易陷入局部极小值
  3. 当数据较多时,训练时间长

3. 小批量梯度下降(Mini Batch Gradient Descent,MBGD)

θ=θηθJ(θ;x(i:i+n);y(i:i+n))
为了避免SGD和标准梯度下降中存在的问题,对每个批次中的n个训练样本,这种方法只执行一次更新。

4. Momentum

vt=γvt1+ηθJ(θ)
θ=θvt
在参数更新时,一定程度上保留更新之前的方向。在训练的过程中,参数的更新方向十分依赖当前的batch,因此不稳定。加入momentum后,能够让参数一定程度上按照之前变化方向进行更新,使参数更稳定的更新。

优点:

  1. 下降初期时,使用上一次参数更新,下降方向一致,乘上较大的μ能够进行很好的加速
  2. 下降中后期时,在局部最小值来回震荡的时候,gradient→0,μ使得更新幅度增大,跳出陷阱
  3. 在梯度改变方向的时候,μ能够减少更新 总而言之,momentum项能够在相关方向加速SGD,抑制振荡,从而加快收敛

5. Nesterov(NAG)

vt=γvt1+ηθJ(θγvt1)
θ=θvt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值