BN层的作用就是通过参数控制了每一层输出的均值和标准差。
BN的实质是对一个batchsize中的所有batch,把所有图片的相同通道的值相加,然后求均值和方差,然后对每个点做归一化,具体可参考博客,讲的很详细。
对于N*C*W*H的输入,进行BN操作时会计算出C个均值和方差,每N*W*H计算出一个均值和方差,再用计算出来的均值和方差对N*W*H个点进行归一化。
BN其实并没有解决ICS问题,而是引入了参数γ和β去调节中间层输出的均值和标准差,γ和β会在训练过程中不断更新,意味着均值和标准差也在不断变化,即BN本质上暗含了ICS。
参考:
https://zhuanlan.zhihu.com/p/152232203
https://zhuanlan.zhihu.com/p/177853578