Deep Layer Aggregation----------论文理解

1. 概述

视觉识别需要丰富的表示,从低到高,从小到大,从细到粗的分辨率。架构网络正在探索骨干网络以设计更深以及更宽的网络,但如何融合这些层以及这些块值得进一步的探讨。尽管已经提出了残差网络来组合层,但这些连接本身已经“浅”,并且仅通过简单的一步操作融合。我们认为通过更深层次的融合可以更好的聚合不同层的信息。我们的深层聚合结构以迭代和分层方式合并特征层次结构,使网络具有更高的准确性和更少的参数。

2. 深层聚合

首先,我们将聚合定义为网络中不同层之间的连接。在这项工作中,我们专注于一系列架构,以有效地聚合深度,分辨率和尺度

Deep Layer Aggregation----------论文理解_第1张图片

2.1 迭代深层聚合(Iterative Deep Aggregation)

首先通过网络中堆叠的块根据分辨率划分为多个阶段。深层阶段的语义信息很丰富但是空间上比较粗糙。将低层阶段通过跳跃连接到高层阶段来融合尺寸和分辨率。但现有的跳跃连接都是线性的,并且最浅层的聚合最少,如图(b)。因此,我们提出IDA来聚合并加深特征的代表。聚合从最浅,最小的尺度开始,然后迭代地合并更深,更大的尺度。通过这种方式,浅层特征被重新定义,因为它们通过不同的聚合阶段传播。

x1,x2,,,xn代表n层,N是聚合结点。

2.2 分层深度聚合(Hierarchical Deep Aggregation)

HDA通过融合在树形中块和阶段来保存并且结合特征通道。通过HDA将较浅和较深的层组合在一起,以学习跨越更多特征层次结构的更丰富的组合。尽管IDA在阶段方面的融合很有效果,但是在网络中多个块之间融合并不有效。IDA仅仅通过融合阶段是远远不够的,因为它还是顺序的。层次聚合的深层分支结构如图2(d)。

有了HDA的大体结构,我们便可以提高它的深度以及效率。通过将聚合节点的输出作为下一个子树的输入反馈到主干中,来代替仅将中间聚合路由到树的上方。也就是说将前两个块聚合后的结果反馈到骨干网络中继续参加训练。如此一来便会聚合所有先前的块而不是仅仅聚合前一个块。为提高效率,我们聚合了具有相同深度的结点,将父亲和左子树连接。(不太理解这个这步是如何操作的)

HDA的公式如下:

Deep Layer Aggregation----------论文理解_第2张图片

N代表聚合节点。B代表一个卷积块。

2.3 聚合元素

2.3.1 聚合节点

聚合节点的作用是融合并压缩输入。聚合节点学着去选择并且处理重要的信息保证在输出中保持相同的维度作为单个输入。

在我们的结构中,IDA一直都是二进制的(二进制不太理解是什么意思),HDA节点具有可变数量的参数,具体取决于树的深度。虽然聚合节点可以基于任何块或层,但为了简单和高效,我们选择单个卷积,然后进行批量归一化和非线性。这避免了聚合结构的开销。

在分类网络中,我们使用1x1卷积作为聚合结点;在语义分割中,我们添加了更多级别的迭代深度聚合来插入特征,在这种情况下使用3×3卷积。

另外,由于残差连接在组装深层网络很有效果,因此在我们的聚合节点出同样增加了残差连接。可实验证明残差连接对聚合并没有显著性的效果。在HDA中,从任何块到根的最短路径是层次结构的深度,因此沿着聚合路径可能不会出现递减或爆炸的渐变。在我们的实验中,加入残差可以在层次结构最深的有4层甚至更多的时候帮助到HDA。但同时可能会影响对小一点的层次的效果。在公式1和2中,对节点N的定义如下:

 σ是非线性激活。公式4是相对于公式3加了残差连接。

2.3.2 Blocks and Stages(块和阶段)

深层融合是一个比较普遍的架构因为它可以和任何一个骨干网络兼容(如ResNet,ResNeXT,Densenet等)。

实验中我们使用到了三种不同的残差块:

Basic blocks(即ResNet)将堆叠卷积与恒等映射跳过连接相结合;
Bottleneck blocks通过1x1卷积降维;
Split blocks(即ResNeXT)通过将通道分组为多个单独的路径(称为拆分的基数)来使功能多样化。

该工作中,我们将bottleneck和split neck的输出和中间通道数量之比减少一半,基数设置为32。

3. 应用

3.1 分类网络

分类网络例如ResNet 和ResNeXT都是阶段性的网络,每一个阶段都有多个残差网络组成,阶段之间通过下采样获得特征图。整个网络有32倍的降采样,最后通过对输出进行softmax得分,进而分类。

本文中,在阶段之间用IDA,在每个阶段内部使用HDA。通过共享聚合节点可以轻松组合这些类型的聚合。这种情况我们只需通过结合公式1和2来改变每个垂直方向的根节点。在各个阶段之间通过池化进行下采样

对于不同的框架,我们采用不同的处理方式。比如在DRN(带有空洞卷积的ResNet)中,我们将前两个阶段的最大池化代替为多个卷积,阶段1是7x7卷积+ basic block,阶段2是basic block。

Deep Layer Aggregation----------论文理解_第3张图片

Deep Layer Aggregation----------论文理解_第4张图片

 3.2 密集预测网络

在语义分割中,我们需要通过聚合来融合局部和全局信息。在该部分中我们利用插值和IDA的进一步增强来达到任务的必要输出分辨率。

插值IDA通过投影和上采样增加深度和分辨率,如图4所示。在网络优化期间共同学习所有投影和上采样参数。

首先对3-6阶段的输出控制为32通道;
然后对每个阶段都插值到与2阶段相同的分辨率;

最后迭代性的融合这些阶段的信息以便获得高级和低级更深层次的融合。

Deep Layer Aggregation----------论文理解_第5张图片

我们的融合和FCN,FPN的目的一样,但在方法上不一样,主要由浅层到深层进一步细化特征。 需要注意的是,在这种情况下我们使用IDA两次:一次连接骨干网络中的阶段并再次恢复分辨率。

你可能感兴趣的:(目标检测,深度学习,计算机视觉)