优化算法 - Adagrad、RMSprop、Adam - 梯度下降 - 自适应学习率

优化算法 - Adagrad、RMSprop、Adam - 梯度下降 - 自适应学习率

为了应对稀疏特征在训练过程中参数难以更新的问题,各位大牛们提出了自适应学习率的方法。下面就对这些优化算法进行一个学习总结。

  • Adagrad

    Adagrad 的核心是加入了一个正则化因子,使得数据较为稀疏的特征的梯度变大,在数据较为稠密的特征的梯度减小,对于不同的参数自动改变梯度的大小。

    普通 SGD 的更新公式为:

    θ t + 1 i = θ t i − μ ⋅ g t , θ i θ_{t+1}^i = θ_t^i - μ·g_{t,θ^i} θt+1i=θtiμgt,θi

    而在 Adagrad 中加入了正则化因子,更新公式为:

    θ t + 1 i = θ t i − ( μ ∑ j = 1 t g j , θ i 2 + ε ) ⋅ g t , θ i θ_{t+1}^i = θ_t^i - (\frac{μ}{\sqrt{\sum_{j=1}^{t}g_{j,θ^i}^2+ε}})·g_{t,θ^i} θt+1i=θti(j=1tgj,θi2+ε μ)gt,θi

    其中,

    ∑ j = 1 t g j , θ i 2 + ε \sqrt{\sum_{j=1}^{t}g_{j,θ^i}^2+ε} j=1tgj,θi2+ε 表示对 θ i θ^i θi t t t 次迭代的梯度的平方进行求和, ε ε ε 表示一个无穷小量,为了防止分母为 0;

    θ t i θ_t^i θti 代表第 i i i 个参数的第 t t t 次迭代; g t , θ i g_{t,θ^i} gt,θi 代表参数 θ i θ_i θi 的第 t t t 次迭代时的梯度;

    此时学习率变为: μ ∑ j = 1 t g j , θ i 2 + ε \frac{μ}{\sqrt{\sum_{j=1}^{t}g_{j,θ^i}^2+ε}} j=1tgj,θi2+ε μ,我们来看一下它是如何对学习速率进行调整的:

    对于数据稀疏的特征来讲,参数每次迭代更新的梯度始终非常小,几乎为 0,那么之前轮次的梯度的和依然很小,当 μ μ μ 除以一个很小的数时值会得到放大,那么此时他的学习速率就变大了。

    对于数据稠密的特征来讲,参数每次迭代更新的梯度较大,那么之前轮次的梯度的和会较大,当 μ μ μ 除以一个较大的数时值会得到缩小,那么此时他的学习速率就变小了。

    (这种分母求和的形式实现了退火过程)。

    所以他可以对于不同的参数以不同的学习速率进行更新,得到了自适应的效果。

    但是它仍然存在问题,分母为前几次的累加和,那么在经过一定次数的迭代后分母的值会变的较大,不管是对于稀疏还是稠密的特征,它们的学习速率都会变得很小,会使得更新速度停滞,不得不提前结束训练。

    为了解决这个问题,人们提出了 RMSprop 方法。

  • RMSprop

    值得注意的是,RMSprop 与 AdaDelta 是同一种方法。

    对于 Adagrad 的问题,RMSprop 将分母梯度累加的形式替换成了 RMS(Root Mean Square),即均方根。

    均方根的增长速度要比梯度累加要慢,所以可以进行更多次的迭代,不至于早早结束训练。

    RMSprop 的更新公式为:

    θ t + 1 i = θ t i − ( μ E [ g t , θ i 2 ] + ε ) ⋅ g t , θ i θ_{t+1}^i = θ_t^i - (\frac{μ}{\sqrt{E[g_{t,θ^i}^2]}+ε})·g_{t,θ^i} θt+1i=θti(E[gt,θi2] +εμ)gt,θi

    E [ g t , θ i 2 ] + ε {\sqrt{E[g_{t,θ^i}^2]}+ε} E[gt,θi2] +ε 为新的正则化因子。

    其中,

    E [ g t , θ i 2 ] = p ⋅ 1 t − 1 ⋅ ∑ j = 1 t − 1 g t − 1 , θ i 2 + ( 1 − p ) ⋅ g t , θ i 2 = p ⋅ E [ g t − 1 , θ i 2 ] + ( 1 − p ) ⋅ g t , θ i 2 \begin{aligned} E[g_{t,θ^i}^2]=&p·\frac{1}{t-1}·\sum_{j=1}^{t-1}g_{t-1,θ^i}^2+(1-p)·g_{t,θ^i}^2\\ =&p·E[g_{t-1,θ^i}^2]+(1-p)·g_{t,θ^i}^2 \end{aligned} E[gt,θi2]==pt11j=1t1gt1,θi2+(1p)gt,θi2pE[gt1,θi2]+(1p)gt,θi2

    p = 0.5 p=0.5 p=0.5 时, E [ g t , θ i 2 ] E[g_{t,θ^i}^2] E[gt,θi2] 为前 t t t 次梯度的均值。

    E [ g t , θ i 2 ] E[g_{t,θ^i}^2] E[gt,θi2] 这种形式:对变量平方求期望的形式也称为二阶矩(对变量求期望的形式称为一阶矩)。

    由此,分母的正则化因子不会过快的增长,所以又可以继续训练了。

    从经验上来讲,参数可以如此设定: ε = 0.001 , p = 0.9 ε=0.001,p=0.9 ε=0.001p=0.9

  • Adam

    接下来总结一下 Adam 方法,这种方法像是 RMSprop + Momentum。

    式子中 i i i 是为了区别不同的参数 θ i \theta_i θi.

    m t i = β 1 m t − 1 i + ( 1 − β 1 ) g t , θ i m_t^i = \beta_1m_{t-1}^i+(1-\beta_1)g_{t,\theta_i} mti=β1mt1i+(1β1)gt,θi

    v t i = β 2 v t − 1 i + ( 1 − β 2 ) g t , θ i 2 v_t^i = \beta_2v_{t-1}^i+(1-\beta_2)g_{t,\theta_i}^2 vti=β2vt1i+(1β2)gt,θi2

    m t i m_t^i mti 是一阶矩,是对 E [ g t , θ i ] E[g_{t,\theta_i}] E[gt,θi] 的估计,相当于 Momentum;

    v t i v_t^i vti 是二阶矩,是对 E [ g t , θ i 2 ] E[g_{t,\theta_i}^2] E[gt,θi2] 的估计,相当于 RMSprop;

    为了考虑 m t i , v t i m_t^i,v_t^i mtivti 在 0 初始值的情况,Adam 加入了偏差校正:

    m t i ^ = m t i 1 − β 1 t \hat{m_t^i}=\frac{m_t^i}{1-\beta_1^t} mti^=1β1tmti

    v t i ^ = v t i 1 − β 2 t \hat{v_t^i}=\frac{v_t^i}{1-\beta_2^t} vti^=1β2tvti

    使得 m t i ^ , v t i ^ \hat{m_t^i},\hat{v_t^i} mti^vti^ 近似为对 E [ g t , θ i ] , E [ g t , θ i 2 ] E[g_{t,\theta_i}],E[g_{t,\theta_i}^2] E[gt,θi]E[gt,θi2] 的无偏估计。

    注意:这里的 β 1 t , β 2 t \beta_1^t,\beta_2^t β1tβ2t 是指 β 1 , β 2 \beta_1,\beta_2 β1β2 t t t 次方!

    最终 Adam 的更新公式为:

    θ t + 1 i = θ t i − ( μ v t i ^ + ε ) ⋅ m t i ^ θ_{t+1}^i = θ_t^i - (\frac{μ}{\sqrt{\hat{v_t^i}+ε}})·\hat{m_t^i} θt+1i=θti(vti^+ε μ)mti^

    从经验上来讲,参数可以如此设定: β 1 = 0.9 , β 2 = 0.999 , ϵ = 1 0 − 8 β_1=0.9,β_2=0.999,ϵ=10^{−8} β1=0.9β2=0.999ϵ=108


在以上算法对稀疏数据的学习效果较好。

Adam 为最常用的优化算法,收敛较快。

  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
适应学习优化算法是一种优化机器学习模型参数的方法,根据不同的算法思想和原理,可以选择不同的优化算法。本文将对LMS、AdagradRMSpropAdam这四种自适应学习优化算法进行比较研究。 LMS算法(Least Mean Squares)是一种基本的自适应学习算法,其基本思想是通过调整权重的方式来最小化模型预测输出与真实输出之间的均方误差。LMS算法简单易实现,但计算效较低,容易陷入局部最优解。 Adagrad算法(Adaptive Gradient)根据历史梯度累积信息来自适应地调整学习。它会根据每个参数的梯度进行调整,使历史梯度较小的参数具有较大的学习,以便更快地收敛。Adagrad适用于稀疏数据集,但在训练过程中会导致学习不断减小,不利于模型收敛。 RMSprop算法(Root Mean Square Propagation)也是一种根据梯度历史信息自适应调整学习算法,但相比于Adagrad,它在学习更新时引入了一个衰减系数,从而减缓学习下降速度。RMSprop相对于Adagrad更有效地解决了学习不断减小的问题,但可能会受到特定参数化的影响。 Adam算法(Adaptive Moment Estimation)是结合了动量优化RMSprop算法的自适应学习算法。它综合考虑了一阶矩估计(动量)和二阶矩估计(梯度平方的指数加权移动平均)的信息,从而更准确地估计了梯度的变化情况。Adam算法具有良好的性能,在大多数情况下表现优于上述三种算法。 综上所述,LMS、AdagradRMSpropAdam是四种常见的自适应学习优化算法。选择合适的算法应根据具体的应用场景和数据特点来确定,以达到更好的训练效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值