关于深度学习中参数的设置
batch_size
常用设置
- batch的size设置的不能太大也不能太小,因此实际工程中最常用的就是mini-batch,一般size设置为几十或者几百。
- 对于二阶优化算法,减小batch换来的收敛速度提升远不如引入大量噪声导致的性能下降,因此在使用二阶优化算法时,往往要采用大batch哦。此时往往batch设置成几千甚至一两万才能发挥出最佳性能。
- GPU对2的幂次的batch可以发挥更佳的性能,因此设置
成16、32、64、128…
时往往要比设置为整10、整100的倍数时表现更优
1.当数据量足够大的时候可以适当的减小batch_size,由于数据量太大,内存不够。但盲目减少会导致无法收敛,batch_size=1时为在线学习,也是标准的SGD,这样学习,如果数据量不大,noise数据存在时,模型容易被noise带偏,如果数据量足够大,noise的影响会被“冲淡”,对模型几乎不影响。2.batch的选择,首先决定的是下降方向,如果数据集比较小,则完全可以采用全数据集的形式。这样做的好处有两点
Mnist
实验结果(关于训练集和测试集加噪音与否,与batchsize的关系)
-
经过对比(训练集不加噪音)测试集加噪音的网络的最大值0.89小于未加噪音的0.91,而且在batchsize>50以后(训练集不加噪音)测试集加噪音是的网络的标准差远小于未加噪音的0.006091<0.04522,表明在batchsize>50以后测试集加噪音使网络的性能更加稳定
。
-
batchsize的数量逐渐增大准确率平均值也在逐渐变大由0.66-0.89,整个网络的性能由标准差可见在batchsize >=50以后就相对平稳了
具体实验与结果
-
参考
https://blog.csdn.net/georgesale/article/details/79514905