Batch & Momentum

1 Batch

训练过程中,把数据分为一个个batch,每训练一个batch,更新一次参数,所有的batch过一遍叫做一个epoch。

在每一个epoch开始之前,分batch,每次的epoch都一样,这样的过程叫做shuttle。

为什么要用batch?

上图左侧没有用batch,必须把所有的example算完,才能更新参数。 (时间较长,但是每一步都是稳的。)

右侧,每次更新的时候只看一个example就可以。20个example,batch size=1,即在一个epoch里面,会更新20次。    (时间短)

事实上,比较大的batch size所需要的计算时间不一定比小的batch size所需要的时间长。(ps.因为有GPU进行平行运算)但是当batchsize过大,需要的时间还是会很长。

2 Momentum

有可能可以对抗saddle point和local minima的技术。

 在物理的世界里,一个球滚落,当滚到一个saddle point 会由于惯性继续前进,不会停止;当到达一个local minima时,也可能由于惯性翻过这个坡。

 一般的gradient descent,从一个参数,计算gradient,然后向其反方向上迭代到新的参数。

 当 gradient descent+momentum,移动方向变为:gradient的反方向+前一步移动的方向。

 由上图可知,momentum即是更新的方向不是只考虑现在的gradient,而是考虑过去所有gradient的总合。

 所以,当走到saddle point或local minima时,只考虑gradient会停止前进(gradient=0),但是如果再考虑momentum,更新会沿着上次迭代的方向前进。此外,当走到一个上坡时,有可能momentum的影响力>gradient的影响力,使得迭代继续前进。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值