选取训练神经网络时的Batch size
结论:
- batch size 一般为2的幂次方,128为分位线,向下(乘以0.5)或向上(乘以2)测试效果,若向下效果继续,乘以0.5,直指结果不再变好,数值范围一般在:2到512.有论文说最好的实验表现都是在batch size处于2~32之间得到的
- 一阶优化算法:sgd,adam等,一般Batch size比较小.二阶优化算法:共轭梯度法,L-BFGS等需要二阶导数,太小,对二阶导数误差累积太大,所以需要只比较大,可以几千到两万
- batch size 初衷是为了解决内存不够问题,但是却带来了跳出局部最优的增益,因为小批量数据对梯度带来了噪音,相对于完成梯度来说,每步更新的梯度下降了,但是总体来说,却避免了局部最优
- 大批量的batchsize 等价于小的学习率
- 小batch训练的稳定性较差。小batch确实有这个缺点,而且对设置学习速率有更高的要求,否则可能引起恶性的震荡无法收敛。但是小batch的优点仍然是显著的,DL书里建议使用逐步增加的batch size来兼并两者的优点。
参考文献
深度学习的跃进来源于不同技术的组合:层、梯度更新方式、初始化方式、非线性、目标函数、正规项