为什么批量规范具有可学习的规模和转变?

机器算法验证 批量标准化
2022-01-18 03:36:33

据我了解,批量规范将所有输入特征归一化到一个层到一个单位正态分布,N(μ=0,σ=1). 均值和方差μ,σ2通过测量当前小批量的值来估计。

归一化后,输入按标量值缩放和移位:

x^i=γx^i+β

(如果我在这里错了,请纠正我 - 这是我开始有点不确定的地方。)

γβ是标量值,每个批次标准化层都有一对。它们与使用反向传播和 SGD 的权重一起学习。

我的问题是,这些参数不是多余的,因为输入可以通过层本身的权重以任何方式缩放和移动。换句话说,如果

y=Wx^+b

x^=γx^+β

然后

y=Wx^+b

在哪里W=Wγb=Wβ+b.

那么添加它们的网络已经能够学习规模和转变有什么意义呢?还是我完全误解了事情?

1个回答

深度学习书籍第 8.7.1 节中有一个完美的答案

对一个单元的均值和标准差进行归一化可以降低包含该单元的神经网络的表达能力。为了保持网络的表达能力,通常用 γH+β 而不是简单的归一化 H 替换一批隐藏单元激活 H。变量 γ 和 β 是学习参数,允许新变量具有任何均值和标准差。乍一看,这似乎没什么用——为什么我们将均值设置为 0,然后引入一个允许将其设置回任意值 β 的参数?

答案是新参数化可以表示与旧参数化相同的输入函数族,但新参数化具有不同的学习动态。在旧的参数化中,H 的平均值是由 H 下层参数之间的复杂相互作用决定的。在新的参数化中,γH+β 的平均值仅由 β 决定。新的参数化使用梯度下降更容易学习。