前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >谷歌力作:神经网络训练中的Batch依赖性很烦?那就消了它!

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

作者头像
量子位
发布2019-12-19 16:15:12
5840
发布2019-12-19 16:15:12
举报
文章被收录于专栏:量子位量子位
再见了,批量依赖性(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/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 量子位 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 效果如何?
  • FRN层长什么样?
  • 方法虽好,并不通用
  • 传送门
相关产品与服务
图像识别
腾讯云图像识别基于深度学习等人工智能技术,提供车辆,物体及场景等检测和识别服务, 已上线产品子功能包含车辆识别,商品识别,宠物识别,文件封识别等,更多功能接口敬请期待。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档