zoukankan      html  css  js  c++  java
  • Tied Block Convolution:一种共享filter的卷积形态

    论文:https://arxiv.org/abs/2009.12021

    作者:Xudong Wang, Stella X. Yu from UC, Berkeley

    1.Abstract

    这篇文章提出了TBC(Tied Block Convolution)卷积,实现更强的CNN模型,是一种新的卷积形态,即插即用。

    与ResNet、SENet结合为TiedResNet、TiedSENet涨点明显,同时也可以应用于分类、检测、分割等任务,代码即将开源。

    2.INTRODUCTION

    卷积是卷积神经网络(CNN)的主要组成部分。通过图像观察到,通道数量随着深度的增加而增加,优化后的CNN通常具有高度相关的Filters,从而降低了特征的表达能力。

    通过图(a)可以看出,随着网络Layer的加深,卷积核之间的相关性越来越强;

    通过图(b)也可以得到,随着Layer的增加,filter的多样性减少,filter之间的相关性在增加;

    为了解决这种冗余的状况,作者提出了在不同通道块上共享相同filter的Tied Block Convolution(TBC),并通过单个filter产生多个响应。

    TBC不仅仅在标准卷积使用,还可以扩展到分组卷积和全连接层,并且可以应用于各种backbone和注意力模块。同时与标准卷积和分组卷积相比,TBC卷积具有明显的效果和性能,所提出的TiedSE注意力模块甚至可以使用比SE模块少64倍的参数情况下得到相匹配的表现。

    特别是,标准的CNN经常在存在遮挡的情况下无法准确地提取信息,并造成多个冗余的部分。而TBC天生具有去除冗余的性质可以减少相关性并可以有效处理高度重叠的实例。当遮挡率为80%时,TBC可将MS-COCO上物体检测的平均精度提高6%。

    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、TBC卷积的诞生

    3.2、TBC卷积相对于GC卷积的优势

    (1)相对于GC卷积,参数量降低了B倍;

    (2)TBC在GPU利用上只有1个Fragmentation,而GC有G个Fragmentations,大大降低了相似程度;

    (3)每一组TBC filters都应用于所有输入通道,可以更好地建立跨通道依赖关系;

    由上图可以得知:GC随group数量增加,处理时间线性上升;而TBC保持着几乎相同的处理时间。

    3.3、TBC卷积的拓展使用

    1、TGC(Tied Block Group Convolution)卷积

    TBC卷积的思想也可以直接应用到Group卷积中,表示为:

    2、TFC(Tied Block Fully Connected Layer)

    将同样的TBC卷积的思想应用到FC中。Tied Block Fully Connected Layer(TFC)共享输入通道等块之间的FC连接。

    3.4、TBC构建的Bottleneck

    3.4.1、TiedResNet

    下图为基于TBC卷积和ResNet构建的TiedResNet Bottleneck:

    mixer:然而,失去跨通道整合可能会削弱模型,为了添加回去,作者引入了一个mixer(混合器),这个mixer融合了多个split块的输出。引入mixer可以将性能再提升0.5%。mixer的输入可以是拼接的,也可以是各split块输出元素之和。

    (ps:作者做了一个实验,发现拼接方法的acc表现略胜一筹,但参数量较多)

    3.4.2、TiedResNeXt

    下图为基于TBC卷积和ResNet构建的TiedResNeXt Bottleneck:

    3.4.3、TiedResNeSt

    下图为基于TBC卷积和ResNet构建的TiedResNeSt Bottleneck:

    3.4.4、TiedSE

    下图为基于TBC卷积和ResNet构建的TiedSE Bottleneck:

    4.EXPERIMENTS

    4.1、图像分类实验

    4.2、目标检测实验

    由上表可以看出,加入Tied CNN后性能得到了明显的提升,同时参数还下降了很多:

    4.3、实例分割实验

    4.4、可视化结果分析

    通过Heatmap(类激活热力图)可以看出,TiedResNet对物体所在区域的像素更为敏感。

    这里x轴是余弦相似度,y轴是概率密度。我们知道ResNet相比VGG有较少冗余,而和ResNet相比,TiedResNet具有更小的相似度,消除了深层更多的冗余,这也验证了作者的假设和动机。

    通过分析Heatmap和Histograms可以看出基于Tied CNN的模型由于去除了深层网络层冗余的kernel,模型注意力更加地集中,因此对于目标检测或者实例分割出现遮挡的情况更加的鲁棒。效果如下图所示:

    图中第一排为ResNet作为BackBone的结果,第二排为TiedResNet作为BackBone的结果,可见对于遮挡的情况,TiedCNN有更好的效果。

    5.Summary

    (1)作者提出了在不同通道块上共享相同filter的TBC并通过单个filter产生多个相应。

    (2)TBC的概念也可以扩展到分组卷积和全连接层,并且能够应用于各种backbone网络和注意力模块,相较于baseline会有较为显著的提升。

    (3)基于TBC的TiedResNet以更高的参数使用效率和更好的检测被遮挡物体的能力超越了baseline。

  • 相关阅读:
    HTTP请求报文与响应报文
    RTTI (Run-time type information) in C++
    Advanced C++ | Virtual Copy Constructor
    Virtual Destructor
    Advanced C++ | Virtual Constructor
    What happens when more restrictive access is given to a derived class method in C++?
    Can static functions be virtual in C++?
    Virtual functions in derived classes
    Default arguments and virtual function
    Multiple Inheritance in C++
  • 原文地址:https://www.cnblogs.com/yzm10/p/13996638.html
Copyright © 2011-2022 走看看