这次讲Batch和Momentum
Shuffle:重新洗牌,重新分batch再进行epoch
那究竟选择什么样的batch?其实我们处理数据是用GPU并行处理,当达到GPU的极限,效率是最高的,如上图的1000,因为减少batch size几乎不会影响一个epoch的时间,相反会增加epoch的数目
如果根据batch size大小看整体时间,那就是下图
其实batch也不能非常大,这样的优化问题optimization会不好,如下
所以还是适当的batch size 最好
为什么呢?为什么full batch 不一定好?
我们看第一幅图,很容易就陷入局部极值,但是如果是第二个,当一个batch stuck,并不会卡住,我们在L2会继续给定重新的函数,就不会stuck,增加了灵活性
另外介绍一下不同的minima
我们更倾向于flat minima,这样在拟合的过程中偏差不会像sharp minima这么明显
根据需要决定!no parallel说明不支持并行计算的情况
Momentum
模拟现实中铁球滚下山的情况,惯性w,借此寻找minima
复习一下之前的Gradient Descent
加入Momentum之后,就有点粒子群的样子 了
关于这个m的计算,是基于梯度以及前一步惯性的合力