标准化(normalization)公式原理

标准化或者说是归一化,常用的有Batchnorm和Layernorm,两者的不同之处在于求取数学期望和方差时的对象不一样,而公式是一致的。一般而言,其目的是将变量的分布的均值变为0,方差变为1,公式如下:

y=x−E(x)Var⁡(x)+ϵ⋅γ+βy = \frac{x - E(x)}{\sqrt{\operatorname{Var}(x) + \epsilon}} \cdot \gamma + \beta

其中γ用于归一化后的调整方差和尺度,β用于归一化后的调整均值,
由于我们要讨论的是归一化过程,因此γ可以视为常数1,β可以视为常数0。
在此基础上,我们可以开始了解为什么这个公式可以实现上述目的。下面分为两部分解释,分别是数学期望和方差。

数学期望

数学期望定义式如下:

E(X)=∫−∞∞x⋅f(x) dxE(X) = \int_{-\infty}^{\infty} x \cdot f(x) \, dx

注意到E(X)和VAR(X)都是常数项,通过数学期望的定义式我们可以做以下推导:

E[X−E(X)Var⁡(X)+ϵ]=∫−∞∞x−E(X)Var⁡(x)+ϵ⋅f(x) dx=1Var⁡(x)+ϵ∫−∞∞x⋅f(x) dx−E(X)∫−∞∞f(x) dx=E(X)−E(X)Var⁡(x)+ϵ=0\begin{aligned} E[\frac{X - E(X)}{\sqrt{\operatorname{Var}(X) + \epsilon}}]&= \int_{-\infty}^{\infty} \frac{x - E(X)}{\sqrt{\operatorname{Var}(x) + \epsilon}} \cdot f(x) \, dx \\ &=\frac{1}{\sqrt{\operatorname{Var}(x) + \epsilon}}\int_{-\infty}^{\infty} x\cdot f(x) \, dx-E(X) \int_{-\infty}^{\infty}f(x) \, dx \\ &=\frac{E(X)-E(X)}{\sqrt{\operatorname{Var}(x) + \epsilon}} \\ &=0 \end{aligned}

方差

方差的定义式为:

Var⁡(X)=∫−∞∞(x−E(X))2⋅f(x) dx=E[(X−E(X))2]\operatorname{Var}(X) = \int_{-\infty}^{\infty} (x - E(X))^2 \cdot f(x) \, dx =E[(X - E(X))^2]

令Z=X−E(X)Var⁡(X)+ϵZ=\frac{X - E(X)}{\sqrt{\operatorname{Var}(X) + \epsilon}},则由上一节推导得到的结果可得E(Z)=E[X−E(X)Var⁡(X)+ϵ]=0E(Z)=E[\frac{X - E(X)}{\sqrt{\operatorname{Var}(X) + \epsilon}}]=0
由方差定义式得

Var⁡(Z)=E(Z2)=E[(X−E(X))2Var⁡(X)+ϵ]=E[(X−E(X))2]Var⁡(X)+ϵ=Var⁡(X)Var⁡(X)+ϵ \begin{aligned} \operatorname{Var}(Z)&=E(Z^2)\\&=E[\frac{(X - E(X))^2}{\operatorname{Var}(X) + \epsilon}] \\&=\frac{E[(X - E(X))^2]}{\operatorname{Var}(X) + \epsilon} \\ &=\frac{\operatorname{Var}(X)}{\operatorname{Var}(X) + \epsilon} \end{aligned}