谷歌力作:神经网络训练中的Batch依赖性很烦?那就消了它!

谷歌力作:神经网络训练中的Batch依赖性很烦?那就消了它!
2019年12月12日 12:26 量子位

再见了,批量依赖性(Batch Dependence)。

优化神经网络方法千千万,批量归一化(Batch Normalization,BN)就是其中之一。

这种方法可以说是非常成功,减轻了如何合理初始化神经网络这个棘手问题。可以成倍加快大型卷积神经网络训练速度,也能大幅提升收敛后的分类准确率。

但样本间的依赖性却是个问题:

若是小批量(mini-batch)太小,或者样本间存在相关性,就会对训练产生影响。

虽然也有人提出了诸如批量再归一化(Batch Renormalization)和群组归一化(Group Normalization,GN)等方法,但要么与大批量BN性能不匹配,要么在小批量的BN仍表现出性能下降。

怎么破?

那就直接消除批量依赖性。

这是来自Google Research团队的一篇力作,提出了滤波器响应归一化(Filter Response Normalization,FRN)层,有效改善了上述问题。

这项研究的主要贡献是如下三点:

1、FRN是一种归一化方法,可以让每个通道(channel)归一化训练的模型达到高精度。

2、阈值线性单元(Thresholded Linear Unit,TLU),是一个和FRN一起使用的激活函数,即使在没有任何批量依赖关系的大批量情况下,也比BN的效果要好。研究人员把这种组合称作FRN层。

3、在真实场景中,比较了各种归一化方法在大型图像分类和对象检测任务中的表现。

麦迪逊大学统计学助理教授、《Python机器学习》作者Sebastian Raschka也分享了这项研究,得到了网友较高的关注。

这条消息发布没多久,便已经有了100多的分享和接近400的点赞。

接下来,就来看一下FRN层的庐山真面吧。

效果如何?

来看一下FRN层的效果。

实验任务主要是图像分类和目标检测,分别在ImageNet和COCO数据集上进行。

首先是图像分类的实验结果。

△表1 对于ResnetV2-50和InceptionV3,在ImageNet分类任务中,FRN层在批量大小方面优于BN和其他归一化方法。

ImageNet分类数据集包含1000个类,研究人员对1.28M大小的图像进行了训练,并对50K验证图像进行结果报告。图像的大小为299X299。

与FRN层做比较的是一些常规的归一化方法,包括批量归一化(Batchnorm)、批量再归一化(BatchRenorm)、群组归一化(Groupnorm)、层归一化(Layernorm)和实例归一化(Instancenorm)。

从实验结果可以看到,即使是在大批量规模的情况下,FRN的方法都优于其它主流的归一化方法。

并且在ResnetV2-50和Incepetion V3上,都表现出了良好的性能优势。这表明批量依赖性训练对于高性能来说是不必要的。

下图展示了使用Resnet V2-50结构的各种归一化方法的训练和验证曲线。

△使用ResnetV2-50模型进行Imagenet分类的各种归一化方法的训练曲线和验证曲线的比较。

不难看出,FRN层实现了更高的训练和验证精度,这表明去除随机批量依赖性可以做到更简、更优,从而使模型得到更好的训练。

接下来是在COCO数据集上的目标检测任务。

△表2 在COCO数据集上的目标检测任务结果。

研究人员使用80个对象类在COCO数据集上执行实验。

从实验结果中,不难看出,FRN层在所有批量大小上都优于其它方法。

值得注意的是,当BN在小批处理中表现出显著的性能下降时,FRN表现出相对较小的性能下降,并且始终优于GN。

FRN层长什么样?

之前已经提到,FRN层是FRN和TLU的结合。所以,该方法的结构如下图所示:

△研究人员所提出的FRN层示意图。

研究人员假设要处理的是前馈神经网络,在形状为 B,W,H,C 的卷积运算区域4D张量X之后产生的滤波器响应。

其中,B是小批量的大小,W、H是map的空间范围,C是卷积中使用的滤波器数。C也指输出通道。

对于上述提出的归一化方案,研究人员指出了几点值得注意的地方:

1、与其他归一化方案类似,滤波器响应归一化消除了滤波器权重和预激活的尺度效应(scaling effect)。

2、所提出方法的主要区别之一是,没有在归一化之前移除平均值。

3、这个归一化方法是在每个通道的基础上进行的。

4、虽然乍一看,FRN和之前有人提出的局部响应归一化(LRN)非常相似,但是LRN在相同的空间位置上对相邻通道进行归一化,而FRN则是对空间范围进行全局归一化。

方法虽好,并不通用

虽然FRN层在实验上取得了较大的进步,但网友也对此提出质疑。

作者仅报告了不超过32的批量处理大小。不知道它是否可与大型(常用)批量处理大小(64,128,256,512等)相提并论。

此方法不适用于非卷积运算,并且该运算的方差对输出通道大小敏感。

数据集中的实验非常有限。

当然,研究人员在论文中也提到,FRN层这个方法并不是通用的,例如,层归一化(LN)在NLP任务中就非常好用。

其它领域中FRN层的表现,也是这项工作未来所要探索的内容。

那么,谷歌这次提出的新方法,对你的研究有帮助吗?

传送门

论文:

https://arxiv.org/abs/1911.09737

Twitter:

https://twitter.com/rasbt/status/1200808727613452291

Reddit:

https://www.reddit.com/r/MachineLearning/comments/e4g50h/r_filter_response_normalization_layer_eliminating/

大咖齐聚!量子位MEET2020智能未来大会

量子位 MEET 2020 智能未来大会回放来啦!李开复、倪光南、景鲲、周伯文、吴明辉、曹旭东、叶杰平、唐文斌、王砚峰、黄刚、马原等AI大咖与你一起读懂人工智能。扫码观看回放吧~ ~

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部