【AI数学】Batch-Normalization详细解析
Batch Normalization 详解 李宏毅
我们希望
μ
\mu
μ和
σ
\sigma
σ代表train set整体的statistic。但是,实际上,统计train set整体的statistic是很耗费时间的,并且每一层parameters的数值是不断在改变的。所以我们要在batch里边算normalization,这意味着你的batch要很大。如果batch太小,你的batch normalization效果就会很差。你无法从单个极端的normalization里边估计整个data的normalization。
μ
\mu
μ和
σ
\sigma
σ是会受到 input features 的影响的,而
β
\beta
β和
γ
\gamma
γ与 input features 无关。
测试的
μ
\mu
μ和
σ
\sigma
σ不好估算,测试是将整个数据用一个batch进来。实际上,将每次batch训练出来的
μ
\mu
μ和
σ
\sigma
σ记录下来,最后做加权平均,靠近updates结束的部分weight更大,updates前边部分weight更小,最后将结果赋给test的
μ
\mu
μ和
σ
\sigma
σ。
Batch normalization主要是针对train效果不好。
Batch normalization在一定程度上eliminate了误差。