【CVPR2018】Group Normalization

  • 作者

 

  • 摘要

BN是一个深度学习发展的里程碑,给多种网络训练赋能。但当batch变小,由于不准确的batch统计估计,BN的错误率会快速增加。这限制了BN在大模型的应用。本文提出Group Normalization(GN),作为BN的一个简单替换。GN将通道数分成多个组,在每个组计算均值和方差来归一化,计算独立于batch size,且在batchsize的大变化范围内性能稳定。在ImageNet训练的ResNet-50,batch size为2时GN的错误率比BN低10.6%;在batch size为标准数时,GN与BN性能相当,且比其他归一化变体效果好。此外,GN易于从预训练转去finetune。GN实现非常简单,只需几行代码。

开源:https://github.com/facebookresearch/Detectron/blob/master/projects/GN

 

  • 介绍

BN的缺点是随着batch维度进行归一化,要求BN运行在足够大的batch size(例如有些文献要求32)。Batch size小会造成batch统计不能准确估计,从而降低模型准确率,如下图。

这限制BN层用于检测、分割、视频识别等占用内存/显存较大的模型,例如Fast/er和Mask R-CNN,由于高分辨率使用batch size为1或2,BN变成了线性层。

本文提出GN,作为BN的一种简单替代。我们注意到很多经典特征如SIFT、HOG都是group-wise特征,包括group-wise归一化。例如,一个HOG向量就是多个空间单元格的输出,每个单元格是一个归一化的方向直方图。类似的,我们提出GN层,将通道分组进行归一化,不受batch size影响。如下图。

    虽然batch size可能变换,GN可以轻易从预训练转到fine-tune。

    像LN和IN,训练序列化模型如RNN/LSTM,或者生成模型GANs比较高效,但在视觉识别方面性能受限,但GN性能更加。相反地,GN可以用于LN/IN适用领域。

 

  • 相关方法

归一化。众所周知输入数据的归一化能加速训练。为了归一化隐藏特征,基于特征分布的强假设得出的初始化方法,在训练迭代时会变得无效。

归一化层在BN之前就有了广泛应用。Local Response Normalization(LRN)是AlexNet一部分,在每个像素的小邻域计算统计信息。

BN在batch维度使用了更全局的归一化,更重要的是BN推荐在所有层运行。但是batch并不是保持不变的,例如推理阶段用的是训练集计算的均值和方差,通常用的平均值,因此测试时没有归一化操作,但目标数据集的分布可能会变化。所以训练、转移、测试阶段不连续。而且减小batch size对性能有巨大影响。

很多归一化方法都希望绕开batch维度。LN运行在通道维度,IN类似BN但对单个样本。

小批量。同步BN可以跨卡计算均值方差,但并没有解决小batch size问题,只是将问题转移到工程和硬件需求方面,此外不适用于异步优化器。

组计算。略。

 

  • 方法细节

视觉表达通道并不是相互独立的。经典特征SIFT\HOG\GIST都为分组特征表示,每组通道通过直方图构造。这些特征在每个直方图或每个方向上进行分组归一化。更高维特征例如VLAD和Fisher向量也是分组特征。

类似地,没必要将深度神经网络特征看做非结构化向量。例如,对于网络第一个卷积层conv1,我们可以假设一个滤波器在水平翻转前后,在图像上的滤波器响应分布是类似的。如果conv1学习到了这对滤波器,那就可以将这些滤波器的相应通道一起归一化。

更高层的卷积层提取信息更加抽象,不能凭直觉猜测。但是除了方向(SIFT\HOG),还有很多因素可以进行分组,例如频率、形状、光照、纹理等。这些参数也不相互独立。实际上,神经科学中一个公认的计算模型是跨细胞反应进行归一化。

1、公式

x是通过一个层计算的特征,i是索引。2维图像中是表示以(N,C,H,W)为特征次序的四维特征。μ是均值,σ是标准差。ε是一个很小的常数。是所有需要计算均值方差的像素集合,m是集合的像素个数。各种不同的特征归一化方法主要区别是的定义,如上图2。

Batch Norm定义如下,iC(kC)表示C通道维度的第i(k)子序列。表示相同通道的像素进行归一化,例如对每个通道,BN沿着(N,H,W)维度计算μ和σ。

Layer Norm表示LN沿着(C,H,W)维度计算μ和σ。

Instance Norm表示IN沿着(H,W)维度对每个样本和每个通道计算μ和σ。

如BN论文所述,BN、LN、IN都学习一种逐通道线性变换,以补偿表达能力的可能的损失。

γ和β是可学习的缩放和平移参数。

Group Norm:定义如下,G是分组数,是预定义的超参数,默认32。每组的通道数是C/G。是下截断操作,表示i和k在同一通道组,假设每个通道组根据通道维度依序存放。GN沿着(H,W)和一个通道组来计算μ和σ。图2最右显示2组,每组3通道的GN计算。

综上,一个GN层的计算公式包括公式1、2、6、7。

         Releation to Prior WorkG=1时GN等于LN,LN假设每层所有通道有相似贡献,但在卷积层存在时该假设可能无效。GN能更加灵活的在每一组学到不同分布,因此表达能力更强。G=C时等于IN,但IN只依赖空间维度计算均值方差,失去了探索通道相关性的可能。

2、实现

在pytorch和TensorFlow只需几行代码。TensorFlow代码如下:

    实际上,我们只需指定归一化方法定义的计算均值和方差(“矩”)的轴线即可。

 

  • 实验结果

使用ResNet模型,在ImageNet分类数据库,1000类,训练约12800w幅,评价约5w幅。

  1. ImageNet图像分类

实现细节:使用8块卡训练,BN计算均值方差都是在每块卡内计算,不跨卡。使用(Delving deep into rectifiers: Surpassing human-level performance on imagenet classification.ICCV 2015)初始化所有卷积层。用1初始化所有γ参数,除了每个残差块后的归一化层,初始化γ为0。权重 0.0001。训练100轮,在30、60、90降低学习率(10x)。使用了数据增广[58][17]。采用最后5轮的错误率的中位数作为结果。

特征归一化方法比较:

    图4表明训练时GN错误率比BN低,说明GN更易于优化;验证集上GN错误率略高于BN,说明GN正则化能力略差。这个好解释,因为BN的均值方差计算带有不确定性,有助于regularization。GN可以加一个正则器,这个今后研究。

小batch

BN在batch越小时错误率越高,如上图。但是,当batch为1时,BN其实是IN,反而性能高一些。(我用同步BNbatch1时,效果奇差!可以换回BN试试)

分组:组数32性能最佳。我们还评估了每组通道数固定的性能,而组数G是根据不同层变化的,通道数16最佳。

  1. COCO的目标检测和分割

接下来评价finetune到目标检测和分割的模型的性能。这些任务往往输入高清图像,因此batch size往往较小(1或者2)。因此,BN转变为一个线性层,,均值和方差使用预训练时计算好的并且冻结,我们称为BN*,实际上在finetune没有进行归一化。(我们也尝试了finetune时用BN,但batch2时,性能下降了,所以我们忽略。)

在Mask R-CNN基准上,用Detectron平台。我们finetune时用GN替换BN*,使用对应的ImageNet预训练的模型。γ和β权重衰减为0,这二者的调整对于取得好的检测结果很重要。Finetune时batch为1。

C4 backbone结果:

上图表示Mask R-CNN使用conv4做backbone的结果。使用ResNet层的上至conv4去提取特征,conv5层作为RoI头去分类和回归。因为有预训练模型,因此backbone和head都有归一化层。

可看到finetune后GN明显比BN*性能好,即使预训练时GN稍差于BN,因为BN*在finetune时冻结了BN,造成预训练和finetune的不连贯。LN也不如GN和BN*。

FPN backbone结果:在Mask R-CNN使用FPN(Feature Pyramid Network)比较GN和BN*,这是当前COCO的sota框架。跟C4变体不同,FPN使用所有预训练层构造金字塔,附加随机初始化层作为head。本文将box head的2fc换成了4conv1fc,性能如下图:

从头训Mask R-CNN下图GN模型从头开始训了27w轮,GN更优秀。

  1. Kinetics数据集的视频分类

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CVPR2018首次引入了一个名为ClipQ(Clip Quality)的评价指标,用于衡量图像检索的质量。传统的图像检索任务通常使用精确率(Precision)和召回率(Recall)作为评估指标,但这两个指标无法完全反映出图像检索结果的质量。 ClipQ主要关注图像检索的相关性和质量。相关性衡量了检索结果与查询的相关程度,质量则表示结果图像与查询图像的视觉质量。传统的评价指标没有考虑到结果图像的质量因素,因此引入ClipQ指标,它综合考虑了图像的相关性和质量,能够更加客观地评估图像检索任务的效果。 ClipQ的计算方法主要依赖于两个因素:应答质量和应答分布。应答质量是通过计算两个图像之间的相似度来衡量的,相似度越高,应答质量越好。应答分布则是通过衡量相似图像在结果集合中的分布情况来计算的,分布越均匀表示应答品质越好。 通过结合应答质量和应答分布,ClipQ可以量化图像检索结果的质量。它能够在保证结果相关性的同时,进一步提高结果图像的质量,从而使得图像检索结果更加准确和精细。 总之,CVPR2018引入的ClipQ评价指标为图像检索任务提供了一种全新的评估方式。它综合考虑了图像的相关性和质量两个因素,可以更加客观地评估图像检索结果的好坏。ClipQ的引入将有助于推动图像检索领域的发展,提高图像检索任务的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值