资讯专栏INFORMATION COLUMN

全面解读Group Normalization-(吴育昕-何恺明 )

smallStone / 2418人阅读

摘要:但是其仍然存在一些问题,而新提出的解决了式归一化对依赖的影响。上面三节分别介绍了的问题,以及的工作方式,本节将介绍的原因。作者基于此,提出了组归一化的方式,且效果表明,显著优于等。

前言

Face book AI research(FAIR)吴育昕-何恺明联合推出重磅新作Group Normalization(GN),提出使用Group Normalization 替代深度学习里程碑式的工作Batch normalization,本文将从以下三个方面为读者详细解读此篇文章:

What"s wrong with BN ?

How GN work ?

Why GN work ?

Group Normalizition是什么

一句话概括,Group Normalization(GN)是一种新的深度学习归一化方式,可以替代BN。众所周知,BN是深度学习中常使用的归一化方法,在提升训练以及收敛速度上发挥了重大的作用,是深度学习上里程碑式的工作。

但是其仍然存在一些问题,而新提出的GN解决了BN式归一化对batch size依赖的影响。详细的介绍可以参考我另一篇博客:

https://blog.csdn.net/qq_25737169/article/details/...

So, BN到底出了什么问题, GN又厉害在哪里?

What"s wrong with BN

BN全名是Batch Normalization,见名知意,其是一种归一化方式,而且是以batch的维度做归一化,那么问题就来了,此归一化方式对batch是independent的,过小的batch size会导致其性能下降,一般来说每GPU上batch设为32最合适;

但是对于一些其他深度学习任务batch size往往只有1-2,比如目标检测,图像分割,视频分类上,输入的图像数据很大,较大的batchsize显存吃不消。那么,对于较小的batch size,其performance是什么样的呢?如下图:

横轴表示每个GPU上的batch size大小,从左到右一次递减,纵轴是误差率,可见,在batch较小的时候,GN较BN有少于10%的误差率。

另外,Batch Normalization是在batch这个维度上Normalization,但是这个维度并不是固定不变的,比如训练和测试时一般不一样,一般都是训练的时候在训练集上通过滑动平均预先计算好平均-mean,和方差-variance参数。

在测试的时候,不再计算这些值,而是直接调用这些预计算好的来用,但是,当训练数据和测试数据分布有差别是时,训练机上预计算好的数据并不能代表测试数据,这就导致在训练,验证,测试这三个阶段存在inconsistency。

既然明确了问题,解决起来就简单了,归一化的时候避开batch这个维度是不是可行呢,于是就出现了layer normalization和instance normalization等工作,但是仍比不上本篇介绍的工作GN。

How GN work

GN本质上仍是归一化,但是它灵活的避开了BN的问题,同时又不同于Layer Norm,Instance Norm ,四者的工作方式从下图可窥一斑:

从左到右依次是BN,LN,IN,GN

众所周知,深度网络中的数据维度一般是[N, C, H, W]或者[N, H, W,C]格式,N是batch size,H/W是feature的高/宽,C是feature的channel,压缩H/W至一个维度,其三维的表示如上图,假设单个方格的长度是1,那么其表示的是[6, 6,*, * ]

上图形象的表示了四种norm的工作方式:

BN在batch的维度上norm,归一化维度为[N,H,W],对batch中对应的channel归一化;

LN避开了batch维度,归一化的维度为[C,H,W];

IN 归一化的维度为[H,W];

而GN介于LN和IN之间,其首先将channel分为许多组(group),对每一组做归一化,及先将feature的维度由[N, C, H, W]reshape为[N, G,C//G , H, W],归一化的维度为[C//G , H, W]

事实上,GN的极端情况就是LN和I N,分别对应G等于C和G等于1,作者在论文中给出G设为32较好

由此可以看出,GN和BN是有很多相似之处的,代码相比较BN改动只有一两行而已,论文给出的代码实现如下:

def GroupNorm(x, gamma, beta, G, eps=1e-5):

# x: input features with shape [N,C,H,W]

# gamma, beta: scale and offset, with shape [1,C,1,1]

# G: number of groups for GN

N, C, H, W = x.shape

x = tf.reshape(x, [N, G, C // G, H, W])

mean, var = tf.nn.moments(x, [2, 3, 4], keep dims=True)

x = (x - mean) / tf.sqrt(var + eps)

x = tf.reshape(x, [N, C, H, W])

return x * gamma + beta

其中beta 和gama参数是norm中可训练参数,表示平移和缩放因子,具体介绍见博客,从上述norm的对比来看,不得不佩服作者四两拨千斤的功力,仅仅是稍微的改动就能拥有举重若轻的效果。

Why GN work

上面三节分别介绍了BN的问题,以及GN的工作方式,本节将介绍GN work的原因。

传统角度来讲,在深度学习没有火起来之前,提取特征通常是使用SIFT,HOG和GIST特征,这些特征有一个共性,都具有按group表示的特性,每一个group由相同种类直方图的构建而成,这些特征通常是对在每个直方图(histogram)或每个方向(orientation)上进行组归一化(group-wise norm)而得到。

而更高维的特征比如VLAD和Fisher Vectors(FV)也可以看作是group-wise feature,此处的group可以被认为是每个聚类(cluster)下的子向量sub-vector。

从深度学习上来讲,完全可以认为卷积提取的特征是一种非结构化的特征或者向量,拿网络的第一层卷积为例,卷积层中的的卷积核filter1和此卷积核的其他经过transform过的版本filter2(transform可以是horizontal flipping等),在同一张图像上学习到的特征应该是具有相同的分布,那么,具有相同的特征可以被分到同一个group中,按照个人理解,每一层有很多的卷积核,这些核学习到的特征并不完全是独立的,某些特征具有相同的分布,因此可以被group。

导致分组(group)的因素有很多,比如频率、形状、亮度和纹理等,HOG特征根据orientation分组,而对神经网络来讲,其提取特征的机制更加复杂,也更加难以描述,变得不那么直观。

另在神经科学领域,一种被广泛接受的计算模型是对cell的响应做归一化,此现象存在于浅层视觉皮层和整个视觉系统。

作者基于此,提出了组归一化(Group Normalization)的方式,且效果表明,显著优于BN、LN、IN等。GN的归一化方式避开了batch size对模型的影响,特征的group归一化同样可以解决$Internal$ $Covariate$ $Shift$的问题,并取得较好的效果。

效果展示

showtime!

以resnet50为base model,batchsize设置为32在imagenet数据集上的训练误差(左)和测试误差(右)。GN没有表现出很大的优势,在测试误差上稍大于使用BN的结果。

可以很容易的看出,GN对batch size的鲁棒性更强

同时,作者以VGG16为例,分析了某一层卷积后的特征分布学习情况,分别根据不使用Norm 和使用BN,GN做了实验,实验结果如下:

统一batch size设置的是32,最左图是不使用norm的conv5的特征学习情况,中间是使用了BN结果,最右是使用了GN的学习情况,相比较不使用norm,使用norm的学习效果显著,而后两者学习情况相似,不过更改小的batch size后,BN是比不上GN的。

欢迎加入本站公开兴趣群

商业智能与数据分析群

兴趣范围包括各种让数据产生价值的办法,实际应用案例分享与讨论,分析工具,ETL工具,数据仓库,数据挖掘工具,报表系统等全方位知识

QQ群:81035754

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/4748.html

相关文章

  • 恺明终结ImageNet预训练时代:从0训练模型效果比肩COCO冠军

    摘要:为了探索多种训练方案,何恺明等人尝试了在不同的迭代周期降低学习率。实验中,何恺明等人还用预训练了同样的模型,再进行微调,成绩没有任何提升。何恺明在论文中用来形容这个结果。 何恺明,RBG,Piotr Dollár。三位从Mask R-CNN就开始合作的大神搭档,刚刚再次联手,一文终结了ImageNet预训练时代。他们所针对的是当前计算机视觉研究中的一种常规操作:管它什么任务,拿来ImageN...

    freecode 评论0 收藏0
  • 经典ResNet结果不能复现?恺明回应:它经受住了时间的考验

    摘要:大神何恺明受到了质疑。今天,上一位用户对何恺明的提出质疑,他认为何恺明年的原始残差网络的结果没有被复现,甚至何恺明本人也没有。我认为,的可复现性经受住了时间的考验。 大神何恺明受到了质疑。今天,Reddit 上一位用户对何恺明的ResNet提出质疑,他认为:何恺明 2015 年的原始残差网络的结果没有被复现,甚至何恺明本人也没有。网友称,他没有发现任何一篇论文复现了原始 ResNet 网络的...

    Ilikewhite 评论0 收藏0
  • Facebook恺明等大神最新论文提出非局部神经网络

    摘要:何恺明和两位大神最近提出非局部操作为解决视频处理中时空域的长距离依赖打开了新的方向。何恺明等人提出新的非局部通用网络结构,超越。残差连接是何恺明在他的年较佳论文中提出的。 Facebook何恺明和RGB两位大神最近提出非局部操作non-local operations为解决视频处理中时空域的长距离依赖打开了新的方向。文章采用图像去噪中常用的非局部平均的思想处理局部特征与全图特征点的关系。这种...

    nevermind 评论0 收藏0
  • 恺明团队推出Mask^X R-CNN,将实例分割扩展到3000类

    摘要:从标题上可以看出,这是一篇在实例分割问题中研究扩展分割物体类别数量的论文。试验结果表明,这个扩展可以改进基准和权重传递方法。 今年10月,何恺明的论文Mask R-CNN摘下ICCV 2017的较佳论文奖(Best Paper Award),如今,何恺明团队在Mask R-CNN的基础上更近一步,推出了(以下称Mask^X R-CNN)。这篇论文的第一作者是伯克利大学的在读博士生胡戎航(清华...

    MockingBird 评论0 收藏0
  • 深度学习时代的目标检测算法

    摘要:目前目标检测领域的深度学习方法主要分为两类的目标检测算法的目标检测算法。原来多数的目标检测算法都是只采用深层特征做预测,低层的特征语义信息比较少,但是目标位置准确高层的特征语义信息比较丰富,但是目标位置比较粗略。 目前目标检测领域的深度学习方法主要分为两类:two stage的目标检测算法;one stage的目标检测算法。前者是先由算法生成一系列作为样本的候选框,再通过卷积神经网络进行样本...

    wfc_666 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<