Batch Size设置过大时,对神经网络性能的影响情况

之前的一片博文写了Batch Size的作用和应该如何设置比较合适,同时还有Batch Size大小,与学习率 lr l r 、训练次数 epoch e p o c h 之间的关系。里面提及Batch Size越大,梯度的方向越准确。

上述的说法是没错的,梯度方向准确,最后网络收敛情况好,但是收敛情况好并不意味网络的性能就好,网络收敛好意味着对训练数据作出了较好的拟合,但是并不意味着就会对测试数据作出很好的拟合。这存在的一个“泛化”的问题。

ON LARGE-BATCH TRAINING FOR DEEP LEARNING:GENERALIZATION GAP AND SHARP MINIMA 论文发现了使用large-batch训练得到的网络具有较差的泛化能力。使用large-batch的情况下容易收敛成“sharp minimizers”,使其的泛化能力差。而相对使用“small-batch”训练的最终会收敛到“flat minimizers”,这是因为在“small-batch”中在梯度计算中固有噪声的存在,使得网络的最终收敛成“flat minimizers”
论文中提及了使用“large-batch”造成泛化能力差的原因可能是网络直接收敛到初始值附近。同时,论文尝试提出几种方法,如数据增强,“conservative training”和“robust optimization”,但好像也没什么效果。另一种补救方法包括使用动态抽样,在这种情况下,随着迭代的进行,批大小逐渐增大。

你可能感兴趣的:(机器视觉)