SGD随机梯度下降法的研究方向综述

一、随机梯度下降法(Stochastic Gradient Decent method)

在机器学习中,通常求解经验风险最小化(Empiri Risk Minimization,ERM)问题去定义算法性能的界限:

\min_{\theta\in R^d}f(\theta)=\frac{1}{n}\sum_{i=1}^{n}f_i(\theta),

其中,t是数据样本,n为样本数量,f_{i}是第i个样本点的损失函数。在随即优化问题中,可以看到损失函数是由每个样本点的损失函数求均值。因此在实际应用中,样本数量足够大的时候,求解ERM问题会有较好的学习问题;反之,样本容量比较小的时候产生过拟合问题。

因此随着深度学习的发展,大数据时代的来临,机器学习问题的样本数量越来越大,传统的梯度下降法产生了较大的困难。其损失函数的全梯度难以计算。

因此Robinns和Monro最早受梯度下降法的启发,提出了随机逼近方法(Stochastic approximation,SA)又称随机梯度下降法(Stochastic gradient decent,SGD),其迭代为:

\theta_{t+1} = \theta_t -\alpha g_{t},

其中\alpha为学习率(步长),g_t=\nabla f_{i}(\theta)为随机梯度,这里是随机从所有样本点的损失函数中选取一个来近似全梯度。

优势:在于避免了计算全梯度所需要的大量计算成本,每次迭代只是随机选取一个样本计算损失函数的梯度,来近似全梯度作为下降方向。

劣势:每次选取一个样本的损失函数梯度,会导致有非常大的误差,并且收敛速率即使对强凸损失函数下也只能达到次线性收敛。

并且SGD及其改进方法大部分为非自适应方法,具有较好理论的同时,没有办法像Adam等自适应方法在迭代的过程中去动态调整参数。

二、SGD的发展方向

针对SGD的劣势,许多人对SGD算法进行改进,第一个方向就是解决迭代过程中随机选取样本梯度来近似全梯度的误差。

2.1 随机平均梯度法(Stochastic average gradient,SAG)

这里提到了一个比较重要的概念就是小批量选取(mini-batch),在迭代的过程中,既然SGD只选取一个样本的梯度会产生较大的误差,而全部计算又有很大的计算成本,那我就每次小批量选取50-100个样本求一个均值来求损失函数的梯度。这样的策略既可以减少SGD的误差,又可以降低GD的计算成本。

Roux N, Schmidt M, Bach F. A stochastic gradient method with an exponential convergence _rate for finite training sets[J]. Advances in neural information processing systems, 2012, 25.

2.2 随机方差缩减方法(Stochastic variance reduction gradient,SVRG)

SAG部分克服了SGD的缺点,但不仅在迭代的过程中需要存储每次迭代累计的随机误差,而且小批量的选取样本求损失函数梯度的均值,会将每一个样本的随机梯度产生的方差积累起来。Johnson和Zhang就提出了SVRG,该方法给出了一种无偏估计下的随机梯度估计方法:

\bar{g_t} = \nabla f_i(\theta_t)-\nabla f_i(\theta_0)+\nabla f_i(\bar{\theta}),

这样的方法可以使得随机梯度估计的方差上界随着迭代减少为0,简而言之就是积累的误差会随着迭代减少到0。

这也是一种SGD改进的思路,就是如何给出更好的随机梯度估计有偏估计无偏估计),降低累积的方差。

Johnson R, Zhang T. Accelerating stochastic gradient descent using predictive variance reduction[J]. Advances in neural information processing systems, 2013, 26.

2.3 动量加速类方法

我们经常会看到重球法Nesterov加速Katyusha加速等加速法在各个领域的应用。都是基于GD或SGD方法,并且在解决大规模机器学习问题都有较好的表现。在下一篇文章会总结一下最近十年加速类的算法发展现状。

三、总结

现在随着AI的兴趣,机器学习、深度学习、强化学习等问题广泛应用在各个领域,而最优化问题求解,即损失函数最小化成为了求解问题关键的一个环节。使得最近20年,优化方法发展迅速,许多人从不同的角度去阐释算法改良的路线。

包括从优化问题本身(凸或非凸,光滑或离散)、自适应学习率(动态调整学习率,减少手调参数的频率,应用更多的场景)、加速技巧(动量加速类的算法)等。

因此,许多领域的学者都致力于研究该问题的改进,包括统计学、计算机、数学等,希望这样的文章能帮助大家寻找该问题的研究方向。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值