Optimization for Deep Learning

Notations:

  1. \theta _{t}: model parameters at time step t
  2. \triangledown L(\theta _{t}) or g_{t}: gradient at \theta _{t} used to compute \theta _{t+1}
  3. m_{t+1}: momentum accumulated from time step 0 to time step t, which is used to cpmpute \theta _{t+1}

Optimization

What is Optimization about?

        找到一组参数\theta,使得 \sum _{x}L(\theta ;x) 最小,或者说是找到一组参数\theta,使得L(\theta )最小。

  1. On-line: one pair of (x_{t},\hat{y}_{t}) at a time step
  2. Off-line: all pair of (x_{t},\hat{y}_{t}) at a time step

SGD

        当SGD计算出Gradient非常接近于0的时候,更新会卡在这个点上,不能再继续更新,以及自适应Learning Rate问题。

SGD with Momentum(SGDM)

        如果梯度计算出来非常接近于0的话,在SGD的情况下,不会再跟新卡在这个点上,但是SGDM,当前的Momentum会由上一次的Momentum和当前的Gradient决定,也就是说,当前的Gradient不仅会考虑到当前计算出的梯度本身还会考虑之前累积的Gradient。通过SGDM就算是在当前梯度很接近于0的点也不会卡住,因为之前的Momentum会像惯性一样不会马上停下来会带着它冲出这个点,但是仍然自适应Learning Rate问题。

Adagrad

\theta _{t} = \theta _{t-1}-\frac{\eta }{\sqrt{\sum _{i=0}^{t-1}(g_{i})^{2}}}g_{t-1}

        考虑这样的情况,如果过去的Gradient都是很大的情况下,说明在这个区域的Error surface比较崎岖,\frac{\eta }{\sqrt{\sum _{i=0}^{t-1}(g_{i})^{2}}}就会有比较小的值,Movement会很小,走的步子慢一点。如果过去的Gradient都是很小的情况下,说明在这个区域的Error surface比较平缓,\frac{\eta }{\sqrt{\sum _{i=0}^{t-1}(g_{i})^{2}}}就会有比较大的值,Movement会很大,走的步子大一点。

RMSProp

        Adagrad有个问题,如果在一开始的Gradient太大的时候,Learning rate会很小,因为Gradient是从开始累积到当前时刻的,它可能没走几步就卡住。RMSProp加权和来缓解这个问题。

Adam

        Adam是将SGDM和RMSProp做结合这样,刚开始所需动量比较大,后面模型基本稳定后,逐步减小对动量的依赖

Adam vs SGDM

  1. Adam: 训练速度更快,比较不稳定,泛化能力比较差,
  2. SGDM: 比较稳定,泛化能力比较好
  • 18
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值