Deep Layer Aggregation(特征聚合体系)
一个CNN是由多个conv block组成,最简单的conv block由conv层+非线性层组成。其他的conv block有如下几种:
第一个表示输出通道,中间表示卷积核尺寸,随后表示输入通道。
连续几个conv block可以组成一个subnetwork,可以按照分辨率来划分,比如resnet
这些conv block一个接一个,但只在最后得到prob map。前面的block或者subnetwoek的输出特征如果能够利用上就很好,之前有过这方面的研究,但都属于shallow aggregation。
b.逐级上采样,如U-net。但这种结构,梯度反向传播经过一个聚合点便能传回第一个subnetwork,所以称为shallow aggregation
论文提出 deep layer aggregation.(DLA)
有两种:1. iterative deep aggregation(IDA) 2.hierarchical deep aggregation(HDA)
IDA逐级融合各个subnetwork的特征的方向和b是相反的,先从靠近输入的subnetwork引出特征,再逐步聚合深层特征。这样,梯度反向传导时再也不能仅经过一个聚合点了。上图b相当于对浅层加了监督,不利于优化。
IDA针对subnetwork的,而HDA则是针对conv block。d每个block只接受上一个block传过来的feature,为HDA的基本结构;e融合前面block的feature,f也是一种变体,但是减少了聚合点。
聚合点结构
B是普通的三输入的聚合点,c引入了残差结构,为了更好的进行梯度传导。
abstract:视觉识别需要识别丰富的特征表示,低层到高层,小尺度到大尺度,粗分辨率到细分辨率。
即使是卷积网络中的深度特征,单个的层也是不够的:组合和聚合这些特征表示,才可以提升对类别和位置的推断效果
跳跃结构是浅的组合,我们用更深的聚合来增强标准的网络结构,以便更好的跨层融合信息。
我们的深层聚合结构迭代和分层的合并了特征层次,使网络具有更好的准确性和更少的参数。多个结构和任务的实验表明,与现有的分支和合并方案相比,深层聚合提高了识别和准确率。
Introduction
更多非线性、更大的容量和更大的感受野通常会提高准确度,但在优化和运算方面会有一些问题。为了克服这些障碍,人们试着合并不同的模块,以平衡和调整这些数量,例如用于降维的blttlenecks,或用于特征和梯度传播的残差、门控和级联连接。
然而,如何连接这些层和模块还需要进一步探索
1.网络层方面的精度比较、可迁移性分析和特征可视化表明,更深的层提取了更多的语义信息和更多的全局特征,但这些迹象并不能证明最后一层就可以解决所有的任务。
2.事实上,skip connection并不是对所有信息都有效的
3.网络中层之间的聚合,向深度和宽度一样,使网络结构的一个重要方面
在本文中,我们将研究如何聚合网络的不同层能更好的融合语义和空间信息以进行识别和定位。
扩展现有浅层跳跃连接,我们的聚合体系结构实现了更多的深度和更多的共享。
提出了深度聚合的两种结构:IDA和HDA
1.这些结构是独立于主干网络来设计的,以便与当前和未来的网络兼容
2.IDA专注于融合不同分辨率和不同尺度,HAD则专注于合并来自所有模块和通道的特征
3.IDA遵循基本层次结构,逐步细化分辨率和安尺度聚合
4.HAD是最一种树状结构连接的层次结构,跨越和合并不同层级来聚合不同从层次的特征表示。
Deep layer Aggregation
聚合定义为网络不同层的组合
能够有效聚合深度、分辨率和尺度的体系结构
如果一组聚合他是组成式的、非线性的,并且最早的聚合层通过了多次聚合,就是深度聚合。
一个网络可以包含许多层和连接,模块化的设计通过分组和重复某一模块可以减少网络的复杂性。层被分组成块,然后根据他们的特征分辨率再将它们分成几个阶段。
IDA指的是网络是由某个主干体系结构的模块堆叠形成的结构
- 根据特征分辨率的不同,将网络中堆叠起来的模块划分为各个阶段
- 更深的阶段有更多的语义信息,但在空间分辨率上更粗糙
- 跳跃连接将较浅和较深的阶段连接到一起,合并不同尺度和分辨率的信息
- 但是,现有工作中的跳跃连接都是线性的(如 FCN 、U-Net 和 FPN ),并且只是把最浅的层聚集在一起,如图2(b)所示
我们建议用IDA来逐步聚合和深化特征表示
- 聚合起始于最浅的、最小的尺度,然后迭代合并更深、更大的尺度
- 通过这种方式,浅层特征在不同阶段的聚合时得到了细化
- 图2(c)说明了IDA的结构
层次深度聚合(HDA)将不同阶段和块合并成树状,以保留和组合特征通道
有了HDA,浅层和深层可以被结合起来,学习到更丰富的组合,扩展更多的特征层次结构。
虽然IDA有效地结合了各个阶段(stages),但它不足以融合网络中许多的块(blocks),因为它仍然是连续的。
建立HDA的整体常规结构后,我们可以提高HDA的深度和效率
我们不只将中间的聚合送到了树的更高处,还将聚合节点的输出作为下一个子树的输入反馈回了主干网络中,如图2(e)所示
这样做可以将前面所有块的聚合结果继续进行传播,而不是只传播前面单独一个块的结果,可以更好地保留特征
为了提高效率,我们合并具有相同深度的聚合节点(合并父节点和左子节点),如图2(f)所示
聚合节点的主要功能是对他们的输入进行组合和压缩。
节点选择和处理重要的信息,在输出时保持与单个输入相同的维度。
IDA节点总有两个输入,HAD节点有可变数量的参数,取决于树的深度。
虽然聚合节点可以给予任何块或层,但为了简单和高效,我们选择使用了一个卷积来实现,跟着BN和非线性层。
但是残差网络对于装配深度非常重要,也可以在聚合节点中引入残差连接。
使用HAD,最短的路径是结构层次的深度,因此聚合路径一般不会出现梯度消失或者梯度爆炸。
Classification network
Dense Prediction networks