前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >高通AI研究院|高效网络设计|结构化卷积分解

高通AI研究院|高效网络设计|结构化卷积分解

作者头像
AIWalker
发布2020-08-10 10:38:25
6730
发布2020-08-10 10:38:25
举报
文章被收录于专栏:AIWalkerAIWalker

标题&作者团队

paper: https://arxiv.org/abs/2008.02454

【Happy导语】本文是高通AI研究院提出了的一种高效网络结构设计新思路。该文的思路非常巧妙,它与ACNet具有“异曲同工之妙”,本质上的思路非常相似,但出发点并不相同。全文通篇读下来的第一感觉就是:知道是什么意思,但是尚未想通怎么去做。期待作者能开源该文的code。初步感觉这是一个非常不错的网络架构加速的方案。

Abstract

作者通过对CNN中的基础模块中的结构冗余进行探索,提出了一种高效网络设计方案。作者首先引入了一种广义的复合核结构,它有助于进行更快的卷积操作(通过引入更高效的sum-pooling)。基于此,作者提出了Structured Convolution,并证实将卷积分解为sum-pooling+更小尺寸卷积有助减小计算复杂度与参数量,作者同时还证明了如何将其应用到2D和3D卷积核以及全连接层。更进一步,作者还提出一种结构正则化损害用于促进网络的具有上述性质架构,在完成训练后,网络在几乎不造成性能损失下进行上述分解。

作者将上述形式卷积分解引入到不同网络架构(包含MobileNetV2、ResNet)中,可以得到更低的计算量,同时更为高效且精度损失在1%以内(ImageNet与Cifar10两个数据集),作者同时还将其引入到EfficientNet与HRNet中。相比张量分解与通道减枝,所提方法取得相当甚至更好的的复杂度降低。

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

  • 提出了复合核结构,它有助于卷积加速;
  • 提出了结构化卷积,它将卷积分解成了sum-pooling+更小核尺寸的卷积;
  • 提出了结构化正则损失辅助模型训练。

Composite Kernels

首先,我们先来看一下复合核的前置知识。直接上原文定义咯,不太好解释。

image-20200808153553491

上面两个定义给出了与复合核相关的知识点,看公式还是比较难以理解的。下面我们就来看图示吧,见下图。它给出了一个3x3复合核

C=1,N=3

,不知道各位同学有没有发现:其实它就是利用的卷积核的相加特性

Convolution with Composite Kernels

看到上面的图,大家应该对复合核有了一点了解。接下来就看一下它与卷积之间的关系吧。

image-20200808154210742

由于

\beta_m

为二值张量,那么

sum(X \cdot \beta_m)

就等价于X的相加操作,而无需乘法。对于卷积而言,它包含

CN^2

个乘法以及

CN^2-1

个加法;而这里,仅需要M个乘法,总的加法变成了:

image-20200808154553516

以前面Fig1-b图示为例,C=1,N=3,M=4,总的加法量为

15 > CN^2-1=8

。在后面的内容中,将会介绍如何将其进一步简化到

M-1

.

Structured Convolution

接下来,我们再来看一下如何由复合核构建结构化卷积。首先还是先看一下关联定义。

image-20200808155008231

结构核可以通过维度C和N以及隐参数c和n进行描述,与之对应的卷积称之为结构卷积。前面的Fig1-b给出了2D形式的3x3结构核,对应参数

C=1,N=3,c=1,n=2

,其中

M=cn^2=4

,每个元素包含2x2大小的块。下图Fig2给出了3D形式了结构核,对应参数

C=4,N=3,c=2,n=2

,其中

M=cn^2=8

,每个元素包含

4\times 3\times 3

的空间。

image-20200808154910924

Decomposition of Structured Convolutions

结构核的一个主要优势:all the basic elements are just shifted version of each other。这也就意味着卷积操作可以先进行sum-pooling,然后再采用更小核的卷积即可,见上图Fig3中的图示,可以看到3x3卷积可以分解为2x2的sum-pooling与2x2卷积。通过这种分解,卷积的计算量无形中少了很多。

image-20200808155858566

上图给出了一种更广义形式的卷积结构化分解示意图,而标准卷积、depthwise卷积以及point卷积可构建成3D结构核,这也就意味着上述分解适合于现有网络架构。

Reduction in Number of Parameters and Multiplications/Additions

由于sum-pooling无需参数,因此卷积的参数量从

C_{out}CN^2

降到了

C_{out}cn^2

;同时sum-pooling不包含乘法操作,因此只有更小的

c\times n\times n

卷积贡献了乘法操作。

在常规卷积中,对于输出特征

Y \in R^{C_{out} \times H \times W}

,它的乘法数量为

CN^2C_{out}HW

,加法数量为

(CN^2-1)C_{out}HW

。在进行分解之后,乘法数量变成了

cn^2C_{out}HW

,加法的数量变成了

image-20200808160938516

关于参数量的关系基本上就算是介绍清楚了,具体再怎么去近似啊,逐点的分析啊建议各位同学去看原文,这个不是重点,略(偷)过(懒)。

Extension to Fully Connected Layers

对于图像分类而言,全连接层是不可避免的,它也占据了非常高比例的参数量。下图给出了全连接层的分解示意图,了解了2D和3D的分解方案,再看这个就简单了,继续略(偷)过(懒)。

image-20200808161524981

Experiments

实验是检验真理的唯一标准,idea好不好还是得看实验效果好不好。所以我们就直接上结果吧。下面四个表给出了Cifar10、ImageNet数据集上MobileNetV2、ResNet、EfficientNet改造前后的性能对比。

image-20200808162033477

此外,作者还对比了所提方法与减枝、张量分解等的对比,见下图。

image-20200808162154519

最后附上MobileNetV2改造后的网络详细信息。话说,虽然作者给出了这些信息,但是并未开源代码,所以想彻底理解还是有点费力。还是期待一下作者尽快开源吧,哈哈。

image-20200808162350793

全文到此结束,对此感兴趣的同学建议去看原文,本文分享比较粗糙,肯定有不少分析不到位的地方,请见谅。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-08-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AIWalker 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Abstract
  • Composite Kernels
    • Convolution with Composite Kernels
    • Structured Convolution
      • Decomposition of Structured Convolutions
        • Reduction in Number of Parameters and Multiplications/Additions
          • Extension to Fully Connected Layers
          • Experiments
          相关产品与服务
          图像处理
          图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档