我在人脸检测中使用批量大小为10的批量归一化。
批量归一化能在如此小的批量大小下工作吗?如果不能,那么我可以使用什么其他方法进行归一化?
回答:
是的,它适用于较小的尺寸,即使你设置了最小的尺寸也能工作。
诀窍在于批量大小也增加了正则化效果,而不仅仅是批量归一化。我将展示几张图片给你看:
我们使用相同的尺度来跟踪批量损失。左侧是没有批量归一化层的模块(黑色),右侧是有批量归一化层的模块。请注意,即使在bs=10
时,正则化效果也是显而易见的。
当我们设置bs=64
时,批量损失的正则化效果非常明显。请注意,y
轴的尺度始终是[0, 4]
。
我的测试仅基于nn.BatchNorm1d(10, affine=False)
,没有可学习的参数gamma
和beta
,即w
和b
。
这就是为什么在批量大小较低时,使用批量归一化层是有意义的。