前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深度学习之基础网络演进、分类与定位的权衡|牛喀技研

深度学习之基础网络演进、分类与定位的权衡|牛喀技研

作者头像
朱晓霞
发布2018-04-18 11:05:51
2.2K0
发布2018-04-18 11:05:51
举报

深度学习,目标检测,图像,智能驾驶

编译:牛喀网-钱伟

前言

本篇关注基础网络架构的演进和处理分类、定位这一矛盾问题上的进展。

基础网络结构的演进

基础网络(Backbone network)作为特征提取器,对检测模型的性能有着至关重要的影响。在分类任务的权威评测集ImageNet上,基于卷积网络的方法已经取得超越人类水平的进步,并也促使ImageNet完成了她的历史使命。这也是机器视觉领域的整体进步,优秀的特征、深刻的解释都为其他任务的应用提供了良好的基础。在本节中,我们选取了几个在检测任务上成功应用的基础网络做一些介绍。

卷积网络结构演进的趋势

笔者认为,卷积网络已经有如下几个经典的设计范式:

  • Repeat. 由AlexNet和VGG等开拓,被之后几乎所有的网络采用。即堆叠相同的拓扑结构,整个网络成为模块化的结构。
  • Multi-path. 由Inception系列发扬,将前一层的输入分割到不同的路径上进行变换,最后拼接结果。
  • Skip-connection. 最初出现于Highway Network,由ResNet发扬并成为标配。即建立浅层信息与深层信息的传递通道,改变原有的单一线性结构。

以这些范式为脉络整理卷积网络的演进历程,可以归纳出下面的图景:

CNN的经典设计范式

需要说明的是,上图并不能概括完全近年来卷积网络的进步,各分支之间也有很多相互借鉴和共通的特征,而致力于精简网络结构的工作如SqueezeNet等则没有出现。除了上面归纳的三个范式,卷积网络结构方面另一个重要的潮流是深度可分离卷积(Depth-wise seperable convolution)的应用。下面我们选择几个在检测任务上成功应用的基础网络结构进行介绍。

ResNet:残差学习

残差单元将原函数分解为残差

作者将网络的训练解释为对某一复杂函数的拟合,通过添加跳跃连接,变对这一函数的拟合为每层对某一残差的拟合(有点Boosting的意思),引入的恒等项也让BP得到的梯度更为稳定。

残差网络以skip-connection的设计较为成功地缓解了深层网络难以收敛的问题,将网络的深度提高了一个数量级,也带动了一系列对残差网络的解释研究和衍生网络的提出。

在检测领域,VGG作为特征提取器的地位也逐渐被ResNet系列网络替代,文章中以ResNet作为基础网络的Faster R-CNN也常作为后续工作的基线进行比较。

Xception:可分离卷积的大面积应用

Xception网络可以看做对Inception系列网络的推进,也是深度可分离卷积的成功应用。

文章指出,Inception单元背后的假设是跨Channel和跨空间的相关性可以充分解耦,类似的还有长度和高度方向上的卷积结构(在Inception-v3里的3×3卷积被1×3和3×1卷积替代)。

进一步的,Xception基于更强的假设:跨channel和跨空间的相关性完全解耦。这也是深度可分离卷积所建模的理念。

一个简化的Inception单元:

简化的Inception单元,去掉了Pooling分支

等价于:

等价的简化Inception单元,将1x1卷积合并

将channel的group推向极端,即每个channel都由独立的3×3卷积处理:

把分组的粒度降为1

这样就得到了深度可分离卷积。

Xception最终的网络结构如下,简单讲是线性堆叠的Depthwise Separable卷积,并附加了Skip-connection。

Xceptiong的网络结构

在MS COCO Chanllege 2017中,MSRA团队以对齐版本的Xception为基础网络取得前列的成绩,一定程度上说明了这一网络提取特征的能力;另一方面,Xception的一个改编版本也被Light-head R-CNN的工作(将在下一篇的实时性部分介绍)应用,以两阶段的方式取得了精度和速度都超越SSD等单阶段检测器的表现。

ResNeXt:新的维度

本文提出了深度网络的新维度,除了深度、宽度(Channel数)外,作者将在某一层并行transform的路径数提取为第三维度,称为"cardinality"。跟Inception单元不同的是,这些并行路径均共享同一拓扑结构,而非精心设计的卷积核并联。除了并行相同的路径外,也添加了层与层间的shortcut connection。

相比Inception-ResNet,ResNeXt相当于将其Inception Module的每条路径规范化了,并将规范后的路径数目作为新的超参数。

ResNeXt的基本单元

上图中,路径被扩展为多条,而每条路径的宽度(channel数)也变窄了(64->4)。

在近期Facebook开源的Detectron框架中,ResNeXt作为Mask R-CNN的基础网络也取得了非常高的精度。

SENet:卷积网络的Attention组件

SENet是最后一届ImageNet Challenge的夺冠架构,中心思想是添加旁路为channel之间的相关性进行建模,可以认为是channel维度的attention。

Squeeze和Excitation分支

SENet通过'特征重标定'(Feature Recalibration)来完成channel层面的注意力机制。具体地,先通过Squeeze操作将特征的空间性压缩掉,仅保留channel维度,再通过Excitation操作为每个特征通道生成一个权重,用于显式地建模channel之间的相关性,最后通过Reweight操作将权重加权到原来的channel上,即构成不同channel间重标定。

SENet可以作为网络中模块间的额外连接附属到原有的经典结构上,其Squeeze操作在压缩信息的同时也降低了这一附属连接的开销。

SE作为额外部件添加在经典结构上

经SENet改进的ResNet被UCenter团队应用在MS COCO Chanllenge 2017上,也取得了不错的效果。

NASNet:网络结构搜索

NAS核心思想是用一个RNN学习定义网络结构的超参,通过强化学习的框架来更新这一RNN来得到更好表现的网络结构。

NAS的结构

在本文中,作者参考本节最初提到的"Repeat"范式,认为在小数据集上搜索到的结构单元具有移植性和扩展性,将这个结构单元通过堆叠得到的大网络能够在较大数据集上取得较好的表现。这就构成了文章的基本思路:将网络搜索局限在微观的局部结构上,以相对原工作较小的开销(实际开销仍然巨大)得到可供扩展的网络单元,再由这些单元作为基本部件填入人工设计的"元结构"。

微观层面,作者仍选择用RNN作为Controller,挑选跳跃连接、最大池化、空洞卷积、深度可分离卷积等等操作构成基本搜索空间,以逐元素相加(element-wise addition)和拼接(concatenation)作为合并操作,并重复一定的构建次数来搜索此基本单元。

RNN作为Controller的微观结构搜索,右为示例结构

宏观层面,将基本单元分为Normal Cell(不改变feature map大小)和Reduction Cell(使feature map的spatial维度减半,即stride=2),交替堆叠一定数量的Normal Cell和Reduction Cell形成下面的元结构。

NASNet在不同数据集上的元结构,ImageNet的图片具有更多的像素数,需要更多的Reduction单元

NASNet采取了自动搜索的方式去设计网络的结构,人工的部分迁移到对搜索空间的构建和评测指标的设立上,是一种"元学习"的策略。应用在检测领域,NASNet作为基础框架的Faster R-CNN取得了SOTA的表现,也支撑了这一搜索得到结构的泛化性能。在最近的工作中,作者团队又设计了ENAS降低搜索的空间和时间开销,继续推动着这一方向的研究。

分类与定位问题的权衡

从R-CNN开始,检测模型常采用分类任务上表现最好的卷积网络作为基础网络提取特征,在其基础上添加额外的头部结构来实现检测功能。然而,分类和检测所面向的场景不尽相同:分类常常关注具有整体语义的图像,而检测则需要区分前景和背景(non-iconic image)。

分类网络中的Pooling层操作常常会引入平移不变性等使得整体语义的理解更加鲁棒,而在检测任务中我们则需要位置敏感的模型来保证预测位置的精确性,这就产生了分类和定位两个任务间的矛盾。

R-FCN

文章指出了检测任务之前的框架存在不自然的设计,即全卷积的特征提取部分+全连接的分类器,而表现最好的图像分类器都是全卷积的结构(ResNet等)。这篇文章提出采用"位置敏感分数图(Position Sensitive Score Map)"的方法来使检测网络保持全卷积结构的同时又拥有位置感知能力。

R-FCN中位置敏感分数图

位置敏感分数图的生成有两个重要操作,一是生成更"厚"的feature map,二是在RoI Pooling时选择性地输入feature map。

Faster R-CNN中,经过RPN得到RoI,转化成分类任务,还加入了一定量的卷积操作(ResNet中的conv5部分),而这一部分卷积操作是不能共享的。R-FCN则着眼于全卷积结构,利用卷积操作在Channel这一维度上的自由性,赋予其位置敏感的意义。

这样设计的网络结构,所有可学习的参数都分布在可共享的卷积层,因而在训练和测试性能上均有提升。

小结

R-FCN是对Faster R-CNN结构上的改进,部分地解决了位置不变性和位置敏感性的矛盾。通过最大化地共享卷积参数,使得在精度相当的情况下训练和测试效率都有了很大的提升。

Deformable Convolution Networks

本篇文章则提出在卷积和RoI Pooling两个层添加旁路显式学习偏置,来建模物体形状的可变性。这样的设计使得在保持目标全局上位置敏感的同时,对目标局部的建模添加灵活性。

可变形卷积的旁支

RoI Pooling的旁支

如上两图所示,通过在卷积部分添加旁路,显式地用一部分张量表示卷积核在图片不同部分的偏移情况,再添加到原有的卷积操作上,使卷积具有灵活性的特征,提取不同物体的特征时,其形状可变。而在RoI Pooling部分,旁路的添加则赋予采样块可活动的特性,更加灵活地匹配不同物体的形状。

可变形卷积和RoIPooling的示例

在MS COCO Chanllege 2017上,MSRA团队的结果向我们展示了可变形卷积在提升检测模型性能上的有效性:

可变形卷积带来的增益

总结

本篇中,我们概述了检测领域基础网络的演进和处理分类定位这一矛盾问题上的进展,基础网络提供更具有语义级区分性的特征,为图像提供更有意义的编码,而分析分类和定位这一对矛盾,则提供给我们对这一任务另一种理解和分治的角度。在下一篇中,我们将关注基础网络提取的特征如何更有效地在检测模型的头部网络中得到利用,以及面向实时性检测的一些进展。

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

本文分享自 目标检测和深度学习 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档