关于深度学习中batch_size参数设置

关于深度学习中参数的设置

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

你可能感兴趣的:(编程操作,深度学习)