我使用 ResNet18 主干网和研究建议的技术训练了 Cifar100 数据集,最终得到了一些令人惊讶的结果。我进行了两次尝试,第一次尝试使用 640 批量大小,第二次尝试使用 320 批量大小。其余所有超参数保持相似。
我对于 640 批量大小得到的准确率是:76.45% 我对于 320 批量大小得到的准确率是:78.64%
你能告诉我为什么会发生这种情况吗?
据我所知,这只是因为协变量偏移。完成完整样本的每次迭代的分布会影响准确性。我认为,与 640 批量大小相比,320 批量大小的分布彼此相似,这导致了更高的准确性。
您能解释一下吗?解决办法是什么?
比这简单得多。批量大小与梯度估计器的方差有直接关系 - 更大的批量 -> 更低的方差。增加批量大小大约相当于降低学习率的优化方式。
如需更深入的分析,包括理论论证,请参阅 https://proceedings.neurips.cc/paper/2019/file/dc6a70712a252123c40d2adba6a11d84-Paper.pdf
640 批量大小的精度比 320 批量大小的精度差的原因可能是陷入局部最小值。
基本上,如果不陷入局部最小值,则较大的批量大小比较小的批量大小获得更好的精度:
*备注:
换句话说,基本上,即使没有陷入局部最小值,较小的批量大小也会比较大的批量大小获得更差的精度:
*备注: