输入层批量归一化

机器算法验证 神经网络 批量标准化
2022-03-29 06:32:50

如果我们对输入层应用批量归一化,那么生成的(训练过的)网络是否等同于没有批量归一化且输入标准化的有偏均值和方差估计器的相同网络?

当然,估计在训练期间会有所不同,因此最终权重不会相同,但如果我的直觉是正确的,那么使用批处理规范层而不是标准化进行预处理是否合理?

1个回答

它们不太可能相同,因为批量归一化在归一化过程之上还有一个 gamma 和 beta 变量。在论文中,提到此 gamma 和 beta 用于将激活缩放和移动到适当的程度,以正确表示数据。这是来自论文

请注意,简单地对层的每个输入进行归一化可能会改变层可以表示的内容。例如,对 sigmoid 的输入进行归一化会将它们限制在非线性的线性状态。为了解决这个问题,我们确保插入到网络中的转换可以表示身份转换。为了实现这一点,我们为每个激活 x (k) 引入一对参数 γ (k) , β(k) ,它们缩放和移动归一化值

就像论文所说的那样,以 sigmoid 为例,仅进行归一化,您的梯度可能总是围绕 sigmoid 函数的线性状态(即最高梯度之一),这可能不是模型学习的最佳选择。但是,如果没有标准化后的值的这种缩放和移动,学习很可能仅限于该区域。我认为它是一种适当地改变激活值的方法,就像使用偏差一样,但是以一种更有效的方式(尤其是因为直接操纵偏差被认为是无效的,如论文中所述)。