深度学习:为什么增加 batch_size 会导致过拟合,如何减少它?

机器算法验证 机器学习 深度学习 计算机视觉
2022-03-28 20:54:57

我曾经在我的本地机器上训练我的模型,那里的内存只够每批 10 个示例。但是,当我将模型迁移到 AWS 并使用更大的 GPU(Tesla K80)时,我可以容纳 32 个批量大小。但是,AWS 模型的性能都非常非常差,并且有很大的过度拟合迹象。为什么会这样?

我目前使用的模型是 inception-resnet-v2 模型,我要解决的问题是计算机视觉问题。我能想到的一种解释是,可能是批处理规范过程使它更习惯于批处理图像。作为一种缓解措施,我降低了 batch_norm 衰减移动平均线。

另外,我应该将 dropout 与 batch_norm 一起使用吗?这种做法普遍吗?

我的训练图像大约是 5000 张,但我训练了大约 60 个 epoch。这是考虑很多还是我应该提前停止培训?

1个回答

Goodfellow的书第6章

小批量可以提供正则化效果(Wilson 和 Martinez,2003 年),这可能是因为它们在学习过程中增加了噪音。泛化误差通常最适合批量大小为 1。由于梯度估计值的高方差,使用如此小的批量大小进行训练可能需要较小的学习率来保持稳定性。由于需要进行更多步骤,因此总运行时间可能非常高,这既是因为学习率降低,也是因为观察整个训练集需要更多的步骤。