一、batch
回顾epoch、shuffle

batch size大还是小?都有好处

大batchsize的好处
由于GPU有并行计算的能力,左边并不一定用时更长

反而是,batch size小的时候,要跑完一个epoch所用的update时间更长,所以时间方面的比较真不好说~


小batchsize的好处
实验表明,小的batch size拥有更好的性能(优化方面的问题)

粗略分析,可能是由于小batchsize时,噪声更多,更不容易困住。

实验表明,就算在训练集上效果差不多,在测试集上可以看出小batchsize效果更好!

原因可能是,假设测试集损失与训练集损失有一个左右的平移,小batchsize是缓慢更新接近目标的,曲线更平缓,不容易预测差别太大。但大batchsize是看完所有数据再更新的,可能会更陡峭,此时平移后会发生较大改变。

总结
所以我们就拥有了一个超参数需要调整:batchsize!下表是他们的优劣

现在需要选择合适的batchsize,兼顾两者优点

二、momentum
来源
考虑物理世界,运动的物理会有动量,有顺着速度方向运动的趋势

一般的(香草的)梯度下降方法

加入momentum 后
加上动量后,需要考虑前一步梯度的方向(矢量求和)

动量也是与g有关,可以写成如下表达方式

加上动量后,损失运动的方式:不会停留在梯度=0的地方,遇到上坡时由于惯性也会继续往前试试寻找下坡。。。

三、总结






![[Linux 基础] Linux编辑器Vim,你值得拥有](https://img-blog.csdnimg.cn/1dd9dfee8bf342ad8f2a83f0e0fd036d.png)













