预备知识:
什么是batch? batch是整个训练集中的一部分,由于训练集往往过大不能一次性全部输入到网络中,所以需要分批次地输送
所以每一批就是一个batch(批)
什么是Normalization? Normalization翻译是归一化,归一化的引入是为了减少internal covariatie shift现象,其具体表现是在训 练深层网络的过程中,前面层参数的变化会影响后面每层的参数分布,导致了训练时只能选用较低的学 习速率以及小心谨慎的参数初始化。
而Batch Normalization层(BN)的引入允许我们使用更高的学习率以及不用太担心参数初始化的问题。
Batch Normalization的具体过程:
对于输入的一个batch数据,先计算出每个维度的平均值和方差,对于一个2*2的灰度图像来说,那么就要计算一个batch内每个像素通道的平均值和方差(共计算四次,得到四个平均值和方差)。
然后通过以下公式得到归一化之后的batch: