文章目录
这篇笔记主要来自余庭嵩的讲解。
几种常见的normalization方法
基本知识
为什么要normalization?因为如果初始值分布不好时,数据尺度会随着网络层数加深而变化异常,详情可参考之前这篇笔记:梯度消失或梯度爆炸原理。而normalization不仅可以解决这样的问题,还可以给神经网络训练的过程带来更多其他方便,所以就出现了不同的normalization方法。几种常见的normalization方法有:batch normalization,layer normalization,instance normalization以及group normalization等等。建议先看BN部分的内容之后再看其他部分。
数学原理
如果一批数据(数据集)含有m个样本输入 x 1 , x 2 , … , x m x_1, x_2, \dots, x_m x1,x2,…,xm。
这批数据的均值为
μ B ← 1 m ∑ i = 1 m x i \mu_{\mathcal{B}} \leftarrow \frac{1}{m} \sum_{i=1}^{m} x_{i} μB←m1i=1∑mxi
这批数据的方差为
σ B 2 ← 1 m ∑ i = 1 m ( x i − μ B ) 2 \sigma_{\mathcal{B}}^{2} \leftarrow \frac{1}{m} \sum_{i=1}^{m}\left(x_{i}-\mu_{\mathcal{B}}\right)^{2}