一、batch
回顾epoch、shuffle
batch size大还是小?都有好处
大batchsize的好处
由于GPU有并行计算的能力,左边并不一定用时更长
反而是,batch size小的时候,要跑完一个epoch所用的update时间更长,所以时间方面的比较真不好说~
小batchsize的好处
实验表明,小的batch size拥有更好的性能(优化方面的问题)
粗略分析,可能是由于小batchsize时,噪声更多,更不容易困住。
实验表明,就算在训练集上效果差不多,在测试集上可以看出小batchsize效果更好!
原因可能是,假设测试集损失与训练集损失有一个左右的平移,小batchsize是缓慢更新接近目标的,曲线更平缓,不容易预测差别太大。但大batchsize是看完所有数据再更新的,可能会更陡峭,此时平移后会发生较大改变。
总结
所以我们就拥有了一个超参数需要调整:batchsize!下表是他们的优劣
现在需要选择合适的batchsize,兼顾两者优点
二、momentum
来源
考虑物理世界,运动的物理会有动量,有顺着速度方向运动的趋势
一般的(香草的)梯度下降方法
加入momentum 后
加上动量后,需要考虑前一步梯度的方向(矢量求和)
动量也是与g有关,可以写成如下表达方式
加上动量后,损失运动的方式:不会停留在梯度=0的地方,遇到上坡时由于惯性也会继续往前试试寻找下坡。。。