本文回顾一篇CVPR 2018 的论文 Deep Layer Aggregation,一种网络特征融合方法,谷歌学术显示目前该文已有398次引用,希望对研究网络基础结构设计的同学有启发。
论文:https://arxiv.org/pdf/1707.06484.pdf
代码:https://github.com/ucbdrive/dla
0.动机
CNN为多种计算机视觉任务提供了很好的解决方案。随着视觉任务对高性能算法更严格的追求,Backbone的设计成为了一个很重要的主题。
更多的非线性操作、更大的网络往往能提高模型性能,bottleneck、residual block、concatenative connection等模块的出现,进一步增强了网络的性能和可实现性,网络架构也从最初的串行连接逐渐演变成包含skip connection的形式。
作者认为当前流行的skip connection结构过于单一,因此设计了IDA(Iterative Deep Aggregation)和HDA(Hierarchical Deep Aggregation)两个结构,作为对skip connection的扩展,能够更好地融合语义和空间特征。
1.IDA(Iterative Deep Aggregation)
为便于叙述,作者将CNN架构进行模块化拆分,1个CNN由多个stage组成,1个stage由多个block组成,每个block包含多个layer,用下面的图标表示block和stage:
传统的串行连接的CNN如下图所示:
为了融合浅层的底层信息和深层的语义信息,引入从浅层向深层的skip connection,如下图所示:
在此基础上,作者提出了IDA(Iterative Deep Aggregation)模块,结构如下:
上图中绿色的方块称作“Aggregation Node”,Aggregation Node在特征由浅到深传播的同时聚集特征。
使用如下公式表示上图:
在上面的公式中, 表示整个IDA模块, 表示Aggregation Node。例如