3.7 测试时的 Batch Norm(Batch Norm at test time)
训练过程中Batch Norm的主要过程:
μ=m1i∑z(i) σ2=m1i∑(z(i)−μ)2 znorm(i)=σ2+εz(i)−μ z~(i)=γ⋅znorm(i)+β μ和σ2是对单个mini-batch中所有m个样本求得的。在测试过程中,如果只有一个样本,求其均值和方差是没有意义的,就需要对μ和σ2进行估计。实际应用是使用指数加权平均(exponentially weighted average)的方法来预测测试过程单个样本的μ和σ2
对于第l层隐藏层,在训练的过程中, ,对于训练集的Mini-batch,考虑所有mini-batch在该隐藏层下的μ[l]和σ2[l],使用指数加权平均,当训练结束的时候,得到指数加权平均后当前单个样本的μ[l]和σ2[l],这些值直接用于Batch Norm公式的计算,用以对测试样本进行预测,再利用训练过程得到的γ和β计算出各层的z~(i)值