码字不易,欢迎给个赞!
欢迎交流与转载,文章会同步发布在公众号:机器学习算法工程师(Jeemy110)
很多深度模型采用BN层(Batch Normalization)被很多深度模型来提升泛化能力。在模型推理时,BN层要从训练状态切换到测试状态,此时采用模型训练中近似的均值和方差。BN层最酷的地方是它可以用一个1x1卷积等效替换,更进一步地,我们可以将BN层合并到前面的卷积层中。
Batch Normalization
这里假定
是网络的某一激活层特征,我们要对其进行归一化。若模型训练batch中共有
个样例,其特征分别是
,我们采用下列公式进行归一化:
这里
和
为这个batch上计算得到的均值和方差(在B,H,W维度上计算,每个channel单独计算),而
防止除零所设置的一个极小值,
是放缩系数,而
是平移系数。在训练过程中,
and
在当前batch上计算:
而参数
和