【优化算法】3. 学习率优化算法

概论

学习率(learning rate)决定目标函数能否收敛到最小值,和何时收敛到最小值。如果直接设定一个学习率η,是一个很棘手的问题。学习率η设定太小,算法就会进展缓慢,设定太大,就会震荡或者发散。针对这样的问题,就产生了学习率自适应算法。

基础

牛顿法

函数 f : R d → R f: \mathbb{R}^d \rightarrow \mathbb{R} f:RdR的泰勒展开式,事实上我们可以把它写成

f ( x + ϵ ) = f ( x ) + ϵ ⊤ ∇ f ( x ) + 1 2 ϵ ⊤ ∇ 2 f ( x ) ϵ + O ( ∥ ϵ ∥ 3 ) . f(\mathbf{x} + \boldsymbol{\epsilon}) = f(\mathbf{x}) + \boldsymbol{\epsilon}^\top \nabla f(\mathbf{x}) + \frac{1}{2} \boldsymbol{\epsilon}^\top \nabla^2 f(\mathbf{x}) \boldsymbol{\epsilon} + \mathcal{O}(\|\boldsymbol{\epsilon}\|^3). f(x+ϵ)=f(x)+ϵf(x)+21ϵ2f(x)ϵ+O(ϵ3).

为了避免繁琐的符号,我们将 H = d e f ∇ 2 f ( x ) \mathbf{H} \stackrel{\mathrm{def}}{=} \nabla^2 f(\mathbf{x}) H=def2f(x)定义为 f f f的Hessian,是 d × d d \times d d×d矩阵。当 d d d的值很小且问题很简单时, H \mathbf{H} H很容易计算。但是对于深度神经网络而言,考虑到 H \mathbf{H} H可能非常大, O ( d 2 ) \mathcal{O}(d^2) O(d2)个条目的存储代价会很高,
此外通过反向传播进行计算可能雪上加霜。然而,我们姑且先忽略这些考量,看看会得到什么算法。

毕竟, f f f的最小值满足 ∇ f = 0 \nabla f = 0 f=0。遵循的微积分规则,通过取 ϵ \boldsymbol{\epsilon} ϵ f f f的导数,再忽略不重要的高阶项,我们便得到

∇ f ( x ) + H ϵ = 0  and hence  ϵ = − H − 1 ∇ f ( x ) . \nabla f(\mathbf{x}) + \mathbf{H} \boldsymbol{\epsilon} = 0 \text{ and hence } \boldsymbol{\epsilon} = -\mathbf{H}^{-1} \nabla f(\mathbf{x}). f(x)+Hϵ=0 and hence ϵ=H1f(x).

也就是说,作为优化问题的一部分,我们需要将Hessian矩阵 H \mathbf{H} H求逆。

举一个简单的例子,对于 f ( x ) = 1 2 x 2 f(x) = \frac{1}{2} x^2 f(x)=21x2,我们有 ∇ f ( x ) = x \nabla f(x) = x f(x)=x H = 1 \mathbf{H} = 1 H=1。因此,对于任何 x x x,我们可以获得 ϵ = − x \epsilon = -x ϵ=x。换言之,单单一步就足以完美地收敛,而无须任何调整。我们在这里比较幸运:泰勒展开式是确切的,因为 f ( x + ϵ ) = 1 2 x 2 + ϵ x + 1 2 ϵ 2 f(x+\epsilon)= \frac{1}{2} x^2 + \epsilon x + \frac{1}{2} \epsilon^2 f(x+ϵ)=21x2+ϵx+21ϵ2

稀疏特征的学习率

在深度学习训练中,为了获得良好的准确性,我们希望在训练过程中降低学习率,速度通常是为 O ( t − 1 2 ) \mathcal{O}(t^{-\frac{1}{2}}) O(t21)或更低。这种情况下,我们在训练过程中就会遇到以下情况:

  • 常用特征的参数迅速收敛的最佳值,学习率相对来说降低太慢。
  • 稀疏特征因为缺乏足够的观测数据收敛很慢,学习率对其来说降低太快。

为了解决这个问题,我们可以通过记录特征次数来调整对应的学习率。我们使用 η i = η 0 s ( i , t ) + c \eta_i = \frac{\eta_0}{\sqrt{s(i, t) + c}} ηi=s(i,t)+c η0的学习率,而不是 η = η 0 t + c \eta = \frac{\eta_0}{\sqrt{t + c}} η=t+c η0 s ( i , t ) s(i, t) s(i,t)计下了我们截至 t t t时观察到功能

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值