Skip to content

归一化 ​

Normalization ​

批量归一化 ​

Batch Normalization [2015] ​

Ioffe S , Szegedy C .Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift[J].JMLR.org, 2015.DOI:10.48550/arXiv.1502.03167.

跨样本单通道

BN 是深度学习中最重要的技术突破之一,由 Sergey Ioffe 和 Christian Szegedy 在 2015 年提出。其规范化针对单个神经元进行,利用网络训练时一个 mini-batch 的数据来计算该神经元 xi 的均值和方差。公式如下:

alt text

对于输入数值集合 B={x1,⋯,xm},可训练参数 γ,β,有:

μB←1m∑i=1mxiσB2←1m∑i=1m(xi−μB)2x^i←xi−μBσB2+ϵyi←γx^i+β≡BNγ,β(xi)

在推理过程中,均值、方差是基于所有批次的期望计算所得。

注意:训练时使用的批统计量是有偏估计,因此需要校正:

E[x]←EB[μB]Var[x]←mm−1EB[σB2]

有:

y=γVar[x]+ε⋅x+(β−γ⋅E[x]Var[x]+ε)

TIP

在图像任务中,对于输入张量 X∈RN×C×H×W(batch×channels×height×width):

μB=1NHW∑n=1N∑h=1H∑w=1WXn,c,h,wσB2=1NHW∑n=1N∑h=1H∑w=1W(Xn,c,h,w−μB)2X^=X−μBσB2+εY=γX^+β

其中:μB 为某一通道在整个 Batch 的均值,σB2 为某一通道在整个 Batch 的方差,ε 为小常数,防止除零。

无偏估计

在无偏估计中:

E[1n∑i=1n(Xi−μ)2]=σ2

如果采用下面式子进行估计:

E[Sb2]=E[1n∑i=1n(Xi−X―)2]≤σ2

其偏移量推导如下:

E[Sb2]=E[1n∑i=1n(Xi−X―)2]=E[1n∑i=1n((Xi−μ)−(X―−μ))2]=E[1n∑i=1n((Xi−μ)2−2(X―−μ)(Xi−μ)+(X―−μ)2)]=E[1n∑i=1n(Xi−μ)2−2n(X―−μ)∑i=1n(Xi−μ)+1n(X―−μ)2∑i=1n1]=E[1n∑i=1n(Xi−μ)2−2n(X―−μ)∑i=1n(Xi−μ)+1n(X―−μ)2⋅n]=E[1n∑i=1n(Xi−μ)2−2n(X―−μ)∑i=1n(Xi−μ)+(X―−μ)2]=E[1n∑i=1n(Xi−μ)2−2n(X―−μ)⋅n⋅(X―−μ)+(X―−μ)2]=E[1n∑i=1n(Xi−μ)2−2(X―−μ)2+(X―−μ)2]=E[1n∑i=1n(Xi−μ)2−(X―−μ)2]=E[1n∑i=1n(Xi−μ)2]−E[(X―−μ)2]=σ2−E[(X―−μ)2]=σ2−[1n∑i=1n(Xi−μ)]2=σ2−1n[1n∑i=1n(Xi−μ)2]=σ2−1nσ2

即:

E[Sb2]=n−1nσ2σ2=nn−1E[Sb2]

使用下面这个式子进行估计,得到的就是无偏估计:

E[S2]=E[1n−1∑i=1n(Xi−X―)2]=σ2

层归一化 ​

Layer Normalization [2016] ​

Ba J L , Kiros J R , Hinton G E .Layer Normalization[J]. 2016.DOI:10.48550/arXiv.1607.06450.

单样本跨通道

alt text

实例归一化 ​

Instance Normalization [2016] ​

Ulyanov D , Vedaldi A , Lempitsky V .Instance Normalization: The Missing Ingredient for Fast Stylization[J]. 2016.DOI:10.48550/arXiv.1607.08022.

https://github.com/DmitryUlyanov/texture_nets

单样本单通道

alt text

组归一化 ​

Group Normalization [2018] ​

Wu Y , He K .Group Normalization[J].International Journal of Computer Vision, 2018.DOI:10.1007/s11263-019-01198-w.

单样本跨几个通道

alt text