CompConv
2021-CVPRw-CompConv: A Compact Convolution Module for Efficient Feature Learning
- Institute:Zhejiang University, The Chinese University of Hong Kong
- Author:Chen Zhang, Yinghao Xu, Yujun Shen
- GitHub:/
- Citation:/
Introduction
之前的压缩工作, 要么压缩大网络, 要么从头设计轻量网络, 本文是通过设计新的轻量/紧凑的卷积算子来节省卷积的计算量 (类似AdderNet的工作)
输出的cout个通道中, 一半由卷积生成, 一半由输入直接生成
Motivation
- 传统卷积是学习一个特征变换, 将cin维的输入转换到cout维的输出(如图1), CNN的卷积核具有一定的过度参数化和冗余性
Contribution
- 新的紧凑卷积算子, 利用精心设计的常规卷积计算 + identity 映射来节省卷积特征变换过程中的计算量
- 分析了CompConv的学习能力与递归计算深度的关系, 提出了控制压缩率的方案
- 即插即用, 可以替换任何网络中的卷积来节省计算量
Method
Core Unit of CompConv
(mathbf{X}=mathbf{X}_{A} oplus mathbf{W} mathbf{X}_{B})
Recursive Computation
(mathbf{X}_{B_{i}}=mathbf{X}_{A_{i+1}} oplus mathbf{W}_{i+1} mathbf{X}_{B_{i+1}} quad i=0, cdots, d-1)
(C_{o u t}=sum_{i=1}^{d} 2^{i} C_{p r i m} qquad(4))
计算复杂度FLOPs对比:
(mathcal{O}_{ ext {Conv }}= H imes W imes k^{2} imes C_{ ext {in }} imes C_{ ext {out }} qquad(7))
(mathcal{O}_{ ext {CompConv }}= H imes W imes k^{2} imesleft(C_{ ext {in }} imes C_{ ext {prim }}+ ight. left.sum_{i=1}^{d-1}left(2^{i} C_{ ext {prim }} ight)^{2}+2^{d-1} C_{ ext {prim }} ight) qquad(8))
&& (8)中最后一项应该要加个平方
自适应递归计算深度
由(4)可以看出, (C_{out}) 决定于递归计算的深度d和基本计算通道数 (C_{prim})
如何确定 (C_{prim}) ? ==> (C_{ ext {prim }}=leftlceilfrac{C_{ ext {out }}}{2 imesleft(2^{d}-1 ight)} ight ceil) , (C_{out}) 不变的情况下, 递归计算的深度d越大, (C_{prim}) 越小, CompConv的计算开销越小, 压缩率越高
如何确定 递归计算的深度d? ==> (d=max left(log _{2}left(max left(1, frac{C_{i n}}{C_{0}} ight) ight)+1,3 ight)) , 其中 (c_0) 是model-specific 的超参, 取值范围 ({32, 64, 128, ...}) , set (C_0) = 128 for VGG and ResNet
Experiments
Setup
Dataset:
- ImageNet, CIFAR-10/100, COCO
Ablation
ShuffleBlock
是否加入channel shuffle
Effect of Identical Mapping
identity mapping 的方式
Analysis on Recursion Depth d
递归计算深度d 与 压缩率
main result
VGG16 on CIFAR-10
ResNet on CIFAR-100
ResNet on ImageNet
Faster-RCNN on COCO
Conclusion
Summary
GhostNet是一部分卷积, 一部分线性运算; CompConv是一部分卷积, 一部分identity
pros:
- 从卷积本身的冗余性出发, 设计新的卷积算子(AdderNet) / 卷积方式(GhostNet, CompConv)
cons:
- 相当于把一个卷积层拆成了多个子卷积层, 每个子卷积层的计算依赖于前一个子卷积层的计算结果, 不一定会有实际的加速效果
To Read
Reference
CompConv:一种用于高效特征学习的紧凑型卷积模块 - 知乎 (zhihu.com)