浅谈深度学习框架中常用的Normalization层

2020年12月16日 00:30   吴奇   []

BNIN的对比

假如现有6张图片x1x2x3x4x5x6为一个batch,每张图片在CNN的某一卷积层有6个通道,也就是6feature map。有关Batch NormalizationInstance Normalization的区别请看下图:

Batch Normalization

 


Instance Normalization

 

上图中,从C方向看过去是指一个个通道,从N看过去是一张张图片。每6个竖着排列的小正方体组成的长方体代表一张图片的一个feature map。蓝色的方块是一起进行Normalization的部分。

由此就可以很清楚的看出,Batch Normalization是指6张图片中的每一张图片的同一个通道一起进行Normalization操作。而Instance Normalization是指单张图片的单个通道单独进行Noramlization操作。

各自适用场景

BN适用于判别模型中,比如图片分类模型。因为BN注重对每个batch进行归一化,从而保证数据分布的一致性,而判别模型的结果正是取决于数据整体分布。但是BNbatchsize的大小比较敏感,由于每次计算均值和方差是在一个batch上,所以如果batchsize太小,则计算的均值、方差不足以代表整个数据分布;

IN适用于生成模型中,比如图片风格迁移。因为图片生成的结果主要依赖于某个图像实例,所以对整个batch归一化不适合图像风格化中,在风格迁移中使用Instance Normalization不仅可以加速模型收敛,并且可以保持每个图像实例之间的独立。

BNIN的公式

3.1 Batch Normalization

3.2 Instance Normalization:

IN公式中,t代表图片的索引i代表的是feature map索引

算法的过程

4.1 BN

Ø 沿着通道计算每个batch的均值u

Ø 沿着通道计算每个batch的方差σ^2

Ø x做归一化,x’=(x-u)/开根号(σ^2+ε)

Ø 加入缩放和平移变量γβ ,归一化后的值,y=γx’+β

4.2 IN

Ø 沿着通道计算每张图的均值u

Ø 沿着通道计算每张图的方差σ^2

Ø x做归一化,x’=(x-u)/开根号(σ^2+ε)

Ø 加入缩放和平移变量γβ ,归一化后的值,y=γx’+β

4.3 BN和IN公式对比


其他归一化操作


5.1 Layer Normalization

LN是指对同一张图片的同一层的所有通道进行Normalization操作。

 

5.2 Group Normalization

GN是指对同一张图片的同一层的某几个(不是全部)通道一起进行Normalization操作。这几个通道称为一个Group



总结:关于深度学习框架中常用的Normalization方法,大多是基于选择不同的区域进行归一化操作,并且各自的适用场景是不同的,可以多多尝试,对比效果。


论文链接:

BN:https://arxiv.org/pdf/1502.03167.pdf

IN:https://arxiv.org/pdf/1607.08022.pdf

LN:https://arxiv.org/pdf/1607.06450v1.pdf

GN:https://arxiv.org/pdf/1803.08494.pdf


网站首页
机构概述
院所动态
科研队伍
科学研究
研究生教育