批归一化(BN )层在卷积层后归一化feature maps,常用于加速网络学习,也有一定的归一化效应。 训练时,BN需要学习一个minibatch数据的均值、方差,并利用这些信息进行归一化,而在推理过程中,通常为了加速在其上层卷积中嵌入BN,使两步运算成为一步,达到加速目的。
1、为了阐明卷积层和BN层如何融合卷积和BN,需要了解卷积和BN的过程。
对于卷积层:
假设卷积内核的权重是使用其输入功率图中的滑动窗口来计算的; 假设中的一个元素为,输入的feature map中的一个元素为,和的计算如下:
对于BN层:
计算minibatch中元素的均方差,减去均值除以标准差,最后用、进行仿射变换,即可得到最终的BN输出。 具体流程如下。
这里,第一个公式求平均,第二个公式求方差,第三个公式归一化,第四个公式是仿射变换。
2、将卷积层和BN层融合卷积式代入BN式,则如下
命令:
,
有:
到此为止,卷积层和BN层的融合完成了。