深度学习中的优化方法

本文介绍了深度学习中优化的若干问题,包括小批量梯度下降,SGD和动量方法,自适应学习率算法,二阶近似算法,批标准化和坐标下降等
摘要由CSDN通过智能技术生成

梯度下降沿着整个训练集的梯度方向下降。可以使用随机梯度下降很大程度地加速,沿着随机挑选的小批量数据的梯度下降。

批量算法和小批量算法

使用小批量的原因

  • n个样本均值的标准差是 σ n \frac{\sigma}{\sqrt{n}} n σ,其中 σ \sigma σ是样本值真实的标准差。分母 n \sqrt{n} n 表明使用更多的样本来估计梯度的方法的回报是低于线性的。
  • 另一个促使从小数目样本中获得梯度的统计估计的动机是训练集的冗余。大量样本可能对梯度做出了非常相似的贡献。
  • 可能是由于小批量在学习过程中加入了噪声,它们会有一些正则化效果。

其他

  • 鲁棒性
    不同的算法使用不同的方法从小批量中获取不同的信息。有些算法对采样误差比其他算法更敏感,这通常有两个原因。一个是它们使用了很难在少量样本上精确估计的信息,另一个是它们以放大采样误差的方式使用了信息。
    基于梯度 g g g的更新方法通常相对鲁棒,并能使用较小的批量获得成功,如100。使用Hessian矩阵 H H H,计算如 H − 1 g H^{-1}g H1g更新的二阶方法通常需要更大的批量,如10000。

  • 随机顺序
    小批量是随机抽取的这点也很重要。从一组样本中计算出梯度期望的无偏估计要求这些样本是独立的。在数据集中的顺序有很大影响的情况下,有必要在抽取小批量样本前打乱样本顺序。
    不以某种方式打乱样本顺序会极大地降低算法的性能。

  • 异步并行
    在计算小批量样本 X X X上最小化 J ( X ) J(X) J(X)的更新时,同时可以计算其他小于样本上的更新。

  • 无重复样本,遵循真实_泛化误差_的梯度
    很多小批量随机梯度下降方法的实现都会打乱数据顺序一次,然后多次遍历数据来更新参数。第一次遍历,每个小批量样本都用来计算真实泛化误差的无偏估计。第二次遍历,估计将会是有偏的,因为重新抽取了已经用过的样本,而不是从和原先样本相同的数据生成分布中获取新的无偏的样本。

  • 在线学习中的SGD
    在线学习中,样本永远不会重复,每次更新的样本是从分布中采样获得的无偏样本。

  • 实际使用
    在实际使用中,除非训练集特别大,通常还是多次遍历训练集,额外的遍历会由于减小训练误差而得到足够的好处,以抵消其带来的训练误差和测试误差差距的增加。

基本算法

随机梯度下降SGD

SGD及其变种是深度学习中应用最多的优化算法。按照数据生成分布抽取m个小批量(独立同分布)样本,通过计算它们的梯度均值,我们可以得到梯度无偏估计。
这里写图片描述
SGD算法中的一个关键参数是学习率。在实践中,有必要随着时间的推移逐渐降低学习率。
将第k步迭代的学习率记作 ϵ k \epsilon_k ϵk。一般会线性衰减学习率直到第 τ \tau τ次迭代:
ϵ k = ( 1 − α ) ϵ 0 + α ϵ τ \epsilon_k=(1-\alpha)\epsilon_0+\alpha\epsilon_\tau ϵk=(1α)ϵ0+αϵτ
其中 α = k τ \alpha=\frac{k}{\tau} α=τk。在 τ \tau τ次迭代之后,一般使 ϵ \epsilon ϵ保持常数。
通常 ϵ τ \epsilon_\tau ϵτ应设为大约 ϵ 0 \epsilon_0 ϵ0的1%。
对于足够大的数据集,SGD可能会在处理整个训练集之前就收敛到最终测试集误差的某个固定容差范围内。
批量梯度下降在理论上比随机梯度下降有更好的收敛率。可以在学习过程中逐渐增大批量大大小,以此权衡批量梯度下降和随机梯度下降两者的优点。

带动量的SGD

指数加权平均数
v t = β v t − 1 + ( 1 − β ) θ t v_t = \beta v_{t-1}+(1-\beta)\theta_t vt=βvt1+(1β)θt
该公式利用过去 1 1 − β \frac{1}{1-\beta} 1β1项的 θ \theta θ的加权平均来计算当前的 v t v_t vt
偏差修正
使用 v t 1 − β t \frac{v_t}{1-\beta^t} 1βt

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值