我已经做 DS 几年了,现在又回到了对玩具数据集的“修补”上,总体上只是磨练了我的技能。
我最近在玩一个非常简单的数据集,其中包含 100 米赛跑的历史(比如奥运会)。数据并不复杂,只有运动员身高、年龄等。
我将数据输入到一个密集的网络(Keras)中,我得到了从差到公平的结果。然而,这一切都是批量大小为 1,但是当我使用其他批量大小(2、4、8、16 等)时,一切都发生了变化。我的所有指标都从差到出色,即使批次大小只有 2。
为什么是这样?外行人对批量大小对密集 NN 的影响的解释是什么?
我已经做 DS 几年了,现在又回到了对玩具数据集的“修补”上,总体上只是磨练了我的技能。
我最近在玩一个非常简单的数据集,其中包含 100 米赛跑的历史(比如奥运会)。数据并不复杂,只有运动员身高、年龄等。
我将数据输入到一个密集的网络(Keras)中,我得到了从差到公平的结果。然而,这一切都是批量大小为 1,但是当我使用其他批量大小(2、4、8、16 等)时,一切都发生了变化。我的所有指标都从差到出色,即使批次大小只有 2。
为什么是这样?外行人对批量大小对密集 NN 的影响的解释是什么?
一般来说,batch size 越小,梯度更新的噪声就越大。这可能导致网络无法收敛或耗时过长。还有一些方法,例如 batchnorm,需要足够大的批大小才能有效地计算一些统计数据。另一方面,batch size 越大,泛化误差越大。