网站首页 > 技术文章 正文
点击上方↑↑↑“视学算法”关注我
来源:公众号 量子位 授权转
再见了,批量依赖性(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层的表现,也是这项工作未来所要探索的内容。
那么,谷歌这次提出的新方法,对你的研究有帮助吗?
猜你喜欢
- 2024-10-03 Inception系列之Inception_v2 inception v2
- 2024-10-03 Java树结构 Java树结构数据导出easyexcel
- 2024-10-03 「干货」泌尿外科腹腔镜手术入路,齐了
- 2024-10-03 泌尿外科腹腔镜手术入路,全在这了
- 2024-10-03 机器不学习:深度卷积模型 不要再问1x1卷积核的问题啦
- 2024-10-03 归一化方法总结 归一化bn
- 2024-10-03 RSTP和STP的状态角色一览 rstp相比stp的优点
- 2024-10-03 深度学习之重读经典(三)VGGNet 重读经典的意义
- 2024-10-03 深度学习笔记:AlexNet alexnet卷积神经网络
- 2024-10-03 深度学习之重读经典(二)AlexNet 重拾经典深度阅读
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)