关于归一化BN IN LN GN相关梳理

  原来写过BN(Batch-Normal)在全连接层当中的使用。在更多情况下,我们处理图像的特征图、特征层时也会用到归一化操作,其中就包括BN,也包括LN,IN以及它们的变式等。这篇来整理一下在卷积池化过程当中,对于特征图feature map的各类归一化方法

  关于BN的具体计算公式、优势和特点之类的还是参考上篇写过的(BN批量归一化操作_TranSad的博客-CSDN博客_bn批量归一化),这篇我还是侧重于整理不同归一化方法在特征图上的计算方式——也就是每个方法到底是归一化哪部分,归一化时特征图大小、通道数以及批次大小等变量到底是怎么参与计算的。

  我们一般把feature map的形状表示为N*C*H*W,其中N是Batch-Size的大小,即一个Batch有N个样本;C是通道数;H、W分别是特征图的高度和宽度。

  于是在理解各类归一化时,我们经常能看见下面这张图:

  我感觉这张图不是很友好。对每一种归一化,用一个三维的图形,就表示了4个变量。就算把归一化的侧重点标记得很明显,真的就方便理解了吗?看了半天我也不知道H和W到底在哪。

  先讲一下怎么理解上面这张图吧:图中的W其实默认为1了(如果一个格子长度是1)。假设图中C方向是左面,N方向是前面,那么整个立方体的最左边那一层就是一个样本;最右边的一整层就是最后一个样本,所以N代表了样本数。我们单独取出最左边的那一层样本来,如果从最前面看,这个样本就是竖着的一列,这列的高*宽就是H*1,它的通道数是C也就是它的厚度。

  接下来,还是用比较正常的图来解释各个对于特征图的归一化吧。

BN(Batch Normalization)

       其实只有BN,会考虑到Batch的个数N,后面的LN,IN等其实都和N没关系了。我们从图中可知:一个批次有N个样本,每个样本有C个通道,那么BN的做法就是:综合一个批次下的所有样本,计算每一个通道的均值和方差(然后做相应的归一化以及加入γ和β进行线性变换)。具体来说,我们有多少通道,就计算多少个均值和方差。

       下图是BN的示意图:

  图中画了一个batch,包含了N=3个样本,每个样本的通道数C=3,特征图高H,宽W。

  那么BN是如何计算的呢?比如对于上图一整个batch来说第一个通道(橙色)的均值就是:(样本1的第一个通道所有值+样本2的第一个通道所有值+………+样本N的第一个通道所有值)/(N*W*H) ;有了第一个通道的均值,第一个通道的方差也是类似。

              第二个通道(绿色)也是类似。……

BN公式对应如下:

  上面公式只是拿通道1举例子,其他通道也都要这样单独做计算。

     (  当我们计算得到均值和方差之后,特征图中的不同位置就按照它们参与计算得到的均值和方差做归一化即可,这点就不多说了,下面的LN,IN都是同理。)

 

  除了BN之外,接下来的几种归一化方法都和batch-size的大小N没有关系了,不管是是LN还是IN,都仅限于对单个样本进行归一化处理。

LN (Layer Normalization)

       LN的计算方式是对每个样本的C、H、W求均值和标准差。下图是LN的示意图:

  此时我们不再需要考虑Batch的大小N,而是直接让每个样本整体做均值和标准差的计算。计算公式对应如下:

       做完初步归一化后,最后再通过γ和β进行变换,省略。

IN (Instance Normalization)

       IN的计算方式就更简单了,对每一个样本的每一个通道的H、W求均值和标准差。IN在进行图像风格转换的时候用的比较多。IN示意图如下:

       公式:

          做完初步归一化后,最后再通过γ和β进行变换,省略。

GN (Group Normalization)

     GN是介于LN和IN之间的一种归一化方式。它对每一个样本的通道数进行分组,同一组的通道一同进行均值和标准差的计算。大概示意图如下:

     上图的意思就是假如一个样本有4个通道,我们每组2两个通道,可以分2组G1和G2,然后按组做归一化。当然,实际情况中特征图可能有几十上百个通道,也可以分成更多个组。

  做完初步归一化后,最后再通过γ和β进行变换,省略。

关于γ和β的补充

  不管是上面哪种归一化方式,通过均值和标准差进行归一化之后,都需要进行缩放变换,也就是乘以γ再加上β,即需要额外学习γ和β两个参数。其中对于BN,IN和GN,γ和β都是维度为通道数C的向量,相当于对初步归一化好的特征图进行每一个“像素点”下的C个通道统一变换;而对于LN,γ和β是特征图的矩阵大小,对初步归一化好的特征图的“每一片”进行变换。

  关于γ和β的补充只是暂定,我还看到一些其他的变换方式和说法,这里只是简单交代一下。

 小结:

  总之,这篇文章重点在于区别和梳理对于特征图的不同归一化方法所计算的区域和侧重点。以后需要其他相关的再做补充吧。

猜你喜欢

转载自blog.csdn.net/weixin_44492824/article/details/124025689
ln
今日推荐