标准化(normalization)公式原理

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

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

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

数学期望

数学期望定义式如下:

E(X)=xf(x)dxE(X) = \int_{-\infty}^{\infty} x \cdot f(x) \, dx

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

E[XE(X)Var(X)+ϵ]=xE(X)Var(x)+ϵf(x)dx=1Var(x)+ϵxf(x)dxE(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)=(xE(X))2f(x)dx=E[(XE(X))2]\operatorname{Var}(X) = \int_{-\infty}^{\infty} (x - E(X))^2 \cdot f(x) \, dx =E[(X - E(X))^2]

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

Var(Z)=E(Z2)=E[(XE(X))2Var(X)+ϵ]=E[(XE(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}