首页 > 其他分享 >Dual Path Network(DPN)

Dual Path Network(DPN)

时间:2023-06-27 23:34:47浏览次数:33  
标签:Network 卷积 ResNet 网络 Dual DPN Path DenseNet stage



Dual Path Network(DPN)_Network

论文地址:https://arxiv.org/pdf/1707.01629.pdf

模型及代码:github.com/cypw/DPNs

本文认为:


1)ResNet 通过这种跨层参数共享和保留中间特征的方式,特征re-use,ResNet 将输出与输入相加,形成一个残差结构,可以有效的降低特征上冗余度,重复利用已有特征,但缺点在于难以利用高层信息再发掘底层特征;

2)DenseNet新特征挖掘,DenseNet 将输出与输入相并联,实现每一层都能直接得到之前所有层的输出,每一层都重新在之前所有层的输出中重新提取有用信息,可以有效地利用高层信息再次发掘底层新特征,但其却存在特征上的冗余。

DPN网络可以理解为在ResNeXt的基础上引入了DenseNet的核心内容,使得模型对特征的利用更加充分。

--------------------------------------------------------------------------------------------

新加坡国立大学与奇虎 AI 研究院合作,指出 ResNet 是 DenseNet 的一种特例,深入探讨了各自优缺点并提出了一类新的网络拓补结构:双通道网络(Dual Path Network)。在 ImageNet-1k 分类任务中:该网络不仅提高了准确率,还将200 层 ResNet 的计算量降低了 57%,将最好的 ResNeXt (64x4d) 的计算量降低了25%;131 层的 DPN 成为新的最佳单模型,并在实测中提速约 300%。

在论文中,作者分析并证明了 ResNet 与 DenseNet 之间的重要联系:Densely Connected Network Family 里包含 Residual Network Family。作者分析了两者各自的优缺点,并基于分析所得结论,提出了一类新的网络拓补结构:双通道网络(Dual Path Network Family)。( 更加精确的是结合了ResNeXt和DenseNet,因为有group操作)

ResNet 实际属于 DenseNet;

DenseNet 是由[1] 提出的一类不同于 ResNet 的网络结构。ResNet 将输出与输入相加,形成一个残差结构;而 DenseNet 却是将输出与输入相并联——相并联,实现每一层都能直接得到之前所有层的输出。

下图中, (a/b) 展示了两种网络。请注意两者的区别,将 DenseNet 理解为一种有很多残差连接的 ResNet 是非常错误的理解。

文中作者发现,Residual Networks 其实就是 Densely Connected Networks 的一种特例。这里我们通过分析网络结构简要证明下:

Dual Path Network(DPN)_卷积_02

上图中,假设实线箭头代表一次变换(本例中指含激活函数的卷积),若 (b) 中绿色箭头代表的函数相同,那么我们就可以通过添加一个残差通道(residual path)保留中间计算结果,将其化简为 (c)。而 (c) 的形式恰恰就是一个残差网络的形式(棕色点线)。

(a)是ResNet的某个stage中的一部分。(a)的左边的大矩形框表示输入输出内容,对一个输入x,分两条线走,一条线还是x本身,另一条线是x经过1*1卷积,3*3卷积,1*1卷积(这三个卷积层的组合又称作bottleneck),然后把这两条线的输出做一个element-wise addition,也就是对应值相加,就是(a)中的加号,得到的结果又变成下一个同样模块的输入,几个这样的模块组合在一起就成了一个stage(比如Table1中的conv3)。

(b)表示DenseNet的核心内容。(b)的左边竖着的多边形框表示输入输出内容,对输入x,只走一条线,那就是经过几层卷积后和x做一个通道的合并(cancat),得到的结果又成了下一个小模块的输入,这样每一个小模块的输入都在不断累加,举个例子:第二个小模块的输入包含第一个小模块的输出和第一个小模块的输入,以此类推。

(e)中竖着的矩形框和多边形框的含义和前面一样。具体在代码中,对于一个输入x(分两种情况:一种是如果x是整个网络第一个卷积层的输出或者某个stage的输出,会对x做一个卷积,然后做slice,也就是将输出按照channel分成两部分:data_o1和data_o2,可以理解为(e)中竖着的矩形框和多边形框;另一种是在stage内部的某个sub-stage的输出,输出本身就包含两部分:data_o1和data_o2),走两条线,一条线是保持data_o1和data_o2本身,和ResNet类似;另一条线是对x做1*1卷积,3*3卷积,1*1卷积,然后再做slice得到两部分c1和c2,最后c1和data_o1做相加(element-wise addition)得到sum,类似ResNet中的操作;c2和data_o2做通道合并(concat)得到dense(这样下一层就可以得到这一层的输出和这一层的输入),也就是最后返回两个值:sum和dense。以上这个过程就是DPN中 一个stage中的一个sub-stage。有两个细节,一个是3*3的卷积采用的是group操作,类似ResNeXt,另一个是在每个sub-stage的首尾都会对dense部分做一个通道的加宽操作。

也就是说,一个 DenseNet 可以通过共享参数的方式,退化为 ResNet。ResNet 实际上就是 DenseNet 在跨层参数共享时候的特例。

双通路网络 DPN:结合残差网络和 Densenet 两者优点

那么,一个很自然的想法就是结合这两类网络拓补结构,实现优缺点互补。于是,文章提出了一类全新的双通道网络结构:Dual Path Network(DPNs)。

其实DPN和ResNeXt(ResNet)的结构很相似。开始一个7*7的卷积层和max pooling层,然后是4个stage,每个stage包含几个sub-stage(后面会介绍),再接着是一个global average pooling和全连接层,最后是softmax层。重点在于stage里面的内容,也是DPN算法的核心。

Dual Path Network(DPN)_图像识别_03

DPN 具体网络结构

需要注意的是,与 Residual Network Family 和 Densely Connected Network Family一样,Dual Path Network Family 也将存在诸多变种,其内部链接并不局限于下图中的 “1x1->3x3->1x1” 这种形式。

其核心思想是,将Resnet通道和 densely connected path 相融合,实现优缺互补。

Dual Path Network(DPN)_图像识别_04

上图中,(e) 以 (d) 为例,展示了实际使用中的一种 DPN。简单来讲,就是基于现有的残差网络,将最后的 1x1 输出切分为两路,一路加到 residual path 上去,一路并到 densely connected path 上去。

本文分别在“图像分类”,“物体检测”和“物体分割”三大任务上对 DPN 进行了验证。在 ImageNet 1000 类分类任务中的性能如表 2 所示:

Dual Path Network(DPN)_卷积_05

注意,这里的FLOPs是理论值,实际效率不同于理论值。MXNet 在 concat layer 和 split layer 那里还有待对 DPN 进行特殊优化,减少不必要的内存拷贝等操作。

但即便如此,在实测中: DPN-98 也显著提高了训练速度,降低内存占用,并保持更高的准确率。即便是最佳单模型 DPN-131 也并没有增加很多计算量和内存开销,完全可以直接作为其他任务的基础网络来使用。相较之前的最佳单模型 Very Deep PolyNet,DPN-131 实际训练速度提升约 300%。

DPN 在 PASCAL VOC 上的“物体检测”和“物体分割”对比实验结果如下表所示:

Dual Path Network(DPN)_Network_06

那么DPN到底有哪些优点呢?可以看以下两点: 
1、关于模型复杂度:DPN-92 比ResNeXt-101 (32 4d)少
2、关于计算复杂度:DPN-92 比ResNeXt-101(32 4d)少 19%的 FLOPs , DPN-98 比 ResNeXt-101(64 4d).少25% 的 FLOPs 

总结

构建高性能、低资源占用的网络结构一直是深度学习里一个重要的研究方向。正如残差网络 (ResNet) 所展现的,一个有效的网络拓补结构,不仅能全面提高“图像识别”任务中准确性,更能通过直接替换底层网络的方式受益“图像生成”、“检测”、“分割”、“美化”等等诸多应用。

在 DPN 这篇文章中,作者分析探讨了现在最受欢迎的两种网络结构,并提出了其独特的见解:认为 ResNet 是 DenseNet 在参数跨层共享时的特例。基于这一结论,作者进一步提出了一类高性能、低资源占用的全新网络拓补结构 Dual Path Networks,DPN 有效地融合了现有网络,实现了优势互补,其性能在“图像识别”、“图像检测”和“图像分割”这三大任务中均得到了验证,各项指标得到了显著提升。相信近期将能在更多的工作和报道中看到双通道网络的身影。

参考文献:

[1] https://arxiv.org/abs/1608.06993

[2] https://arxiv.org/abs/1610.02915


标签:Network,卷积,ResNet,网络,Dual,DPN,Path,DenseNet,stage
From: https://blog.51cto.com/u_12667998/6567715

相关文章