专栏名称: AI开发者
AI研习社,雷锋网旗下关注AI开发技巧及技术教程订阅号。
目录
相关文章推荐
宝玉xp  ·  转发微博-20250312022821 ·  昨天  
爱可可-爱生活  ·  HieroLM: ... ·  2 天前  
爱可可-爱生活  ·  【[578星]Pydoll:无需WebDri ... ·  3 天前  
爱可可-爱生活  ·  大语模如何超越人类语言网络 查看图片 ... ·  3 天前  
51好读  ›  专栏  ›  AI开发者

专栏 | 卷积神经网络学习路线(十五) | NIPS 2017 Dual Path Network

AI开发者  · 公众号  · AI  · 2020-01-29 08:00

正文


点击上方“蓝字”关注“AI开发者”



本文来自 @BBuf 的社区专栏 GiantPandaCV ,文末扫码即可订阅专栏。

前言

前面已经讲了ResNet,ResNeXt,以及DenseNet,讲解的原文都可以在文后找到。今天要介绍的Dual Path Network(双路网络)是2017年由颜水成老师提出的,作者的简介如下大家可以感受一下:

DPN就是在ResNeXt和DenseNet的基础上,融合这两个网络的核心思想而成,论文原文见附录。

贡献

  • DPN的Dual Path(双路)结构结合了ResNeXt(残差分组卷积)和DenseNet(稠密连接)两种思想。即可以利用残差网络的跳跃连接对特征进行复用,又可以利用密集连接路径持续探索新特征。
  • 使用了分组卷积,降低了计算量。
  • 性能超越ResNeXt和DenseNet,可以做检测分割任务新BackBone。

网络结构

DPN的网络结构如Table1所示:

可以看到DPN的网络结构和ResNeXt的网络结构很类似。最开始是一个 卷积层,接着就是一个最大池化层,再然后是四个 stage ,再接一个全局平均池化以及全连接层,最后是 softmax 层。整体结构是这样,重点就在每个 stage 具体是怎么变化的了,接下来我们就一起来理解一下。

上面说了DPN网络就是把ResNeXt和DenseNet融合成1个网络,因此这里首先介绍一下这篇论文是如何表达ResNeXt和DenseNet的,具体如Figure2所示:

  • 其中Figure2(a)就是ResNeXt的一部分,其中(a)的左边这个矩形的小 凸起 部分就代表每个残差模块输入输出,对于一个输入 x ,分两条路走,一条是 x 本身,即残差模块中的跳跃连接,而另一条就是经过 1x1 卷积+ 3x3 卷积+ 1x1 卷积(即瓶颈结构),然后把这两条路获得结果做一个求和即可,也即是文中的 + 符号,得到下一个残差模块的输入。

  • 而Figure2(b)是DenseNet的一部分,其中(b)左边的多边形 凸起 代表每个密集连接模块输入输出,对于输入 x 只有一条路,即经过几层卷积之后和 x 做一个通道合并( concat ),得到的输出又是下一个密集连接模块的输入,这样每一个密集连接模块的输入都在不断累加,可以看到这个多边形越来越宽。

  • Figure2(c)通过在(b)中的模块之间共享相同输出的第一个 1x1 卷积,密集连接模块退化成了残差模块,虚线圈起来的部分就是残差模块。

  • Figure2(d)是双路径体系结构(DPN),将同一层上ResNet的输出和DenseNet的输出按元素相加,再整体做卷积,然后将结果按原先通道分配的情况来分割又各分给残差模块和密集连接模块来连接,既有按元素相加又有通道相加,这就是DPN的双路径。

  • Figure2(e)实际上和Figure2(d)是工程等价的,其中 ~ 表示分割操作, + 表示元素级加法。一个模块中先连接,然后整体做卷积,再分开,分开之后残差模块的和残差模块相连,密集连接模块和密集连接模块相连,连完之后得到新的特征层。这一块完成后再做些卷积、pooling等,然后继续作为下一个模块的输入。







请到「今天看啥」查看全文