1、简介
卷积是卷积神经网络(CNN)的主要构建块。通过实验观察到,通道数量随着深度的增加而增加,优化后的CNN通常具有高度相关的Filters,从而降低了特征表示的表达能力。
通过图(a)可以看出,随着网络Layer的加深,卷积核之间的相关性越来越强;
通过上图也可以得到,随着Layer的增加,kernel的多样性也在下降,kernel之间的相关性也在增加;
为了解决这种冗余的状况,作者提出了Tied Block Convolution(TBC),它在相同的通道块上共享相同的Thinner kernels,并通过单个kernel产生多个响应。
TBC不仅仅在标准卷积使用,还可以扩展到组卷积和完全连接的层,并且可以应用于各种backbone和注意力模块。同时TBC卷积在标准卷积和群组卷积方面具有明显的效果和性能,所提出的TiedSE注意模块甚至可以使用比SE模块少64倍的参数情况下得到差不多的性能。
特别是,标准的CNN经常在存在遮挡的情况下无法准确地提取信息,并导致多个冗余的部分object proposal。而TBC天生具有去除冗余的性质可以减少相关性并可以有效处理高度重叠的实例。当遮挡率为80%时,TBC可将MS-COCO上物体检测的平均精度提高6%。
2、相关工作
2.1、Backbone Networks
这里应该是大家都熟知的经典模型了,在这里再罗列一下,具体原理和设计不在解说,大家可以自行看论文原文:
- AlexNet
- VGGNet
- GoogleNet
- ResNet
- ResNeXt
- HRNet
等等。
2.2、Attention Modules
在罗列的Attention相比也是大家所熟知的,也可能就是正在使用的香饽饽,具体原理和设计不在解说,大家可以自行看论文原文:
- SENet
- SKNet
- GCBNet
- CAM
- MS-CAM
等等
3、Tied Block Convolution Network Design
3.1、TCB卷积的诞生
Standard Convolution
这里假设输入特征为,输出特征为,则标准卷积SC(Standard Convolution):
其中SC kernel为,参数量为
Group Convolution
这里假设把把输入特征X分为G个相同size的Group,表示为,相应地每个Group的size为,那么GC可以表示为:
其中表示Concatenate操作,参数量为;下图为分为2个Group的操作,用了两个不同的Kernel:
Tied Block ConvolutionTBC卷积通过在不同特征组间重用Kernel来减少滤波器的有效数量:
其中表示Concatenate操作,参数量为;B表示把Channel分为多少个Group,即B个Equal Block;
3.2、TCB卷积相对于GC卷积的优势
- 相对于GC卷积,参数量降低了B倍;
- BC在GPU利用率上只有1个Fragmentations,而GC有G个Fragmentations,大大降低了并行度;
- 每一组TBC过滤器都应用于所有输入通道,可以更好地建模跨通道依赖关系;
3.3、TCB卷积的拓展使用
1、TGC(Tied Block Group Convolution)卷积
TCB卷积的思想也可以直接应用到Group卷积中,表示为:
2、TFC(Tied Block Fully Connected Layer)
将同样的TCB卷积的思想应用到FC中。Tied Block Fully Connected Layer(TFC)共享输入通道等块之间的FC连接。
3.4、TBC构建的Bottleneck
3.4.1、TiedResNet
下图为基于TBC卷积和ResNet构建的TiedResNet Bottleneck:
3.4.2、TiedResNeXt
下图为基于TBC卷积和ResNet构建的TiedResNeXt Bottleneck:
3.4.3、TiedResNeSt
下图为基于TBC卷积和ResNet构建的TiedResNeSt Bottleneck:
3.4.4、TiedSE
下图为基于TBC卷积和ResNet构建的TiedSE Bottleneck:
3.4.5、TiedGCB下图为基于TBC卷积和ResNet构建的TiedGCB Bottleneck: