Happy · 2021年03月29日

“无痛涨点”的ACNet再进化,清华大学&旷视科技提出Inception类型的DBB

首发:AIWalker
作者:HappyAIWalker

Official Account

image.png
标题&作者团队

paper: https://arxiv.org/pdf/2103.13...

code: https://github.com/DingXiaoH/...

本文是清华大学&旷视科技的丁霄汉博士在“过参数化”卷积方面继ACNet、RepVGG之后的又一次探索,它创造性的将Inception的多分支、多尺度思想与过参数化思想进行了一次组合,得到了本文所提出的DBB。本文从卷积的两种线性特性(同质、加法)出发,设计了两种可组合的变换,在此基础上了结合Inception思想设计了动态多分支结构DBB。作为一种“等价嵌入”模块,它可以显著提升现有ConvNet的性能,比如在ImageNet任务上,最高可以带来1.9%的性能提升。

Abstract

本文提出一种可以提升CNN性能且“推理耗时无损”的通用模块组件,我们将其称之为Diverse Branch Block(DBB),它通过组合不同尺度、不同复杂度的分支(不同分支采用卷积序列、多尺度卷积或者均值池化)丰富特征空间的多样性达到提升单个卷积(注:推理时合并为单个卷积)表达能力的目的。一旦完成训练,一个DBB可以等价地转换为单个卷积以方便布署

不同于ConvNet架构的推陈出新,DBB在训练时采用了复杂的“微结构”且保持网络整体结构不变;而在推理/部署时,DBB这种复杂结构可以等价转换为单个卷积。这使得DBB可以作为一种“等价嵌入”的模块直接嵌入到现有任意架构中。

通过这种训练-推理时的“异构”,所得模型可以在训练时以更高的复杂度达到更高的性能;而在训练时又可以等价折叠为原始模型以方便布署。在ImageNet数据集上,DBB可以提升模型精度高达1.9%top-1精度;同时对于目标检测以及语义分割均有一定性能提升。

本文主要贡献包含以下几点:

  • 提出一种包含丰富信息的“微结构”且可以作为”即插即用“模块直接嵌入到现有ConvNet(保持模型的”宏观结构“不变)中提升模型性能;
  • 提出了一种通用模块组件DBB,它将六种矩阵变换等价转为为单个卷积,做到了“推理耗时无损”;
  • 提出了一种特征表达方式类似Inception的DBB模块,它可以直接嵌入到ConvNet并取得了显著的性能提升,比如在ImageNet上取得了1.9%的top-1精度提升。

Method

在介绍具体结构之前,我们先来看一下卷积的线性特性;然后再介绍本文所设计的多分支模块。

Linearity of Convolution

image.png

Convolution for Diverse Branches

image.png

image-20210326100725397

上图给出了本文所设计的包含六种变换的DBB模块,它包含分支加法组合、深度拼接组合、多尺度操作、均值池化以及卷积序列等。在上述多分支模块合并时会涉及到这样几个变换:(1) Conv-BN的合并:(2)分支合并;(3) 卷积序列合并;(4) 深度拼接合并;(5) 均值池化转换;(6) 多尺度卷积转换等。接下来,我们分别针对这六种变换进行介绍。

Transform1:Conv-BN  一般而来,卷积与BN这对“基友”会同时出现,而两者在推理时又可以合并为单一卷积。那么如何合并呢?这个比较简单,公式如下:

image.png

Transform4:Depth Concatenation  Inceptioin采用了深度拼接方式组合不同的分之,当这些分支包含相同配置的卷积时,我们可以通过核参数的拼接进行等价变换,示意图如下。

image.png

组合的公式也是非常的简单,描述如下:
image.png
image.png

Inception-like DBB

image.png

image-20210326092745087

上图给出了本文所设计的DBB结构示意图。类似Inception,它采用等组合方式对原始卷积进行增强。对于分支,我们设置中间通道数等于输入通道数并将卷积初始化为Identity矩阵;其他分支则采用常规方式初始化。此外,在每个卷积后都添加BN层用于提供训练时的非线性,这对于性能提升很有必要。

Experiments

为验证所提方案的有效性,我们在CIFAR、ImageNet、Cityscapes、COCO等数据集上进行相关实验对比。下表提供了不同数据集、不同任务上的超参配置。

image.png
image-20210326101437529

我们先来看一下CIFAR与ImageNet上的性能对比,结果见上表。可以看到:

  • 在CIFAR10与CIFAR100数据上,DBB可以提升VGG16性能高达0.67%与1.67%;
  • 在ImageNet数据集上,DBB可以提升AlexNet性能达1.96%;可以提升MobileNet0.99%;可以提升ResNet18/50达到1.45%/0.57%。
  • 相比DBB的一个特例ACNet,DBB性能提升更明显。这意味着:采用类似Inception方式组合多路径不同复杂度的分支可能比简单的多尺度卷积更有益于提升模型性能

image.png

image-20210326101947314

与此同时,我们还从权值幅值角度分支了不同分支的重要性。可以看到:

  • 三个分支的重要性相当;
  • 对于stride=2的DBB,更为重要,这意味着:均值池化对于下采样很有用。
  • 对于stride=1的DBB,卷积很有益处。DBB的这种多分支方式可以自适应的组合学习不同尺度的信息。

image.png

image-20210326102522332

我们再来看一下目标检测(CenterNet)与语义分割(PSPNet)方面的性能对比,见上表。可以看到:DBB同样可以带来显著的性能提升。
image.png

image-20210326102629302

最后,我们再来看一个DBB的各个分支的消融实验分析,结果见上表。从中可以看到:

  • 移除任意一个分支都会导致性能的下降,这意味每个分支都很重要;
  • 从训练高效角度出发,会是一个不错的选择;
  • 相比多个同尺寸卷积的并行,多分支、不同尺寸、不同模式的DBB设计可以取得更佳的性能提升。这意味着:特征表达能力的提升不仅源自参数量,同时还与分支特征的灵活性有关。

最后的最后,我们附上几个DBB的变种,见下图,注:这几种变种的性能均不及前述DBB结构。

image.png
image-20210326103244608

全文到此结束,更多消融实验与分析建议各位同学查看原文。

推荐阅读

本文章著作权归作者所有,任何形式的转载都请注明出处。更多动态滤波,图像质量,超分辨相关请关注我的专栏深度学习从入门到精通
推荐阅读
关注数
6196
内容数
191
夯实深度学习知识基础, 涵盖动态滤波,超分辨,轻量级框架等
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息