当前位置:网站首页>【ICCV 2019】ACNet: 使用非对称卷积块增强CNN的卷积核骨架
【ICCV 2019】ACNet: 使用非对称卷积块增强CNN的卷积核骨架
2022-07-21 14:44:00 【二进制人工智能】
ACNet: Strengthening the Kernel Skeletons for Powerful CNN via Asymmetric Convolution Blocks
这篇文章提出了ACNet,使用了一种可以替代原始CNN模型中普通方形 d × d d\times d d×d卷积核的非对称卷积块( Asymmetric Convolution Block,ACB)。非对称卷积块由卷积核为方形( d × d d×d d×d)、水平( 1 × d 1×d 1×d)和垂直( d × 1 d×1 d×1)的三个平行层组成,水平和垂直卷积核与方形卷积核相加可以对方形卷积核的骨架进行增强,提高准确率:
说明:
Top-5准确率:对一个图像,如果预测概率前五中包含正确答案,即认为正确。
Top-1准确率:对一个图像,如果预测概率最大的是正确答案,即认为正确。
利用增强后的卷积核参数对原始模型进行初始化并部署,可以在不需要额外的计算成本的前提下提升原始模型的准确率。
举个例子。对于 3 × 3 3×3 3×3卷积核,我们可以用卷积核为 3 × 3 3×3 3×3、 1 × 3 1×3 1×3和 3 × 1 3×1 3×1的三个平行层组成的ACB替代它。ACB输出是三个平行层的输出之和,如图:
那么,给定现成的卷积网络(原始网络),我们用ACB替换每个方形卷积核层来构造非对称卷积网络(ACNet),并对其进行训练直至收敛。
训练完成后,我们将ACB中的三个卷积核在对应位置相加,得到骨架(skeleton,方形卷积核的中心交叉部分)增强的卷积核参数:
最后将骨架增强的卷积核的权值参数对原始网络进行初始化并部署。
由卷积的可加性(输入 I I I对于大小合适的两个2D卷积核 K ( 1 ) \boldsymbol{K}^{(1)} K(1)和 K ( 2 ) \boldsymbol{K}^{(2)} K(2)有:
, ⊕ \oplus ⊕为相应位置的逐元素加法),所得的原始模型可以产生与训练时ACNet相同的输出:
也就是说只需要一个 3 × 3 3×3 3×3卷积核的计算量就能达到 3 × 3 3×3 3×3、 1 × 3 1×3 1×3和 3 × 1 3×1 3×1三个卷积核的效果。
这种方式
- 不引入其他的超参数,可以很方便地跟一些网络结合。
- 与直接训练得到的原始网络相比,只是卷积核的权值有差别,所以部署时不需要额外的计算成本。
推荐阅读:
卷积网络常用到BN层。这篇文章的实验表明,先BN后融合效果是最好的:
如果使用BN后再融合,在训练完ACNet后,原始模型的的卷积层和BN层用通过BN fusion、branch fusion化简得到表达式替换:
其中
b = − μ γ σ − μ ˉ γ ˉ σ ˉ − μ ^ γ ^ σ ^ + β + β ˉ + β ^ b=-\frac{\mu \gamma}{\sigma}-\frac{\bar{\mu} \bar{\gamma}}{\bar{\sigma}}-\frac{\hat{\mu} \hat{\gamma}}{\hat{\sigma}}+\beta+\bar{\beta}+\hat{\beta} b=−σμγ−σˉμˉγˉ−σ^μ^γ^+β+βˉ+β^
均值和标准差都是训练时的滑动平均。
ACNet为什么有效?
这篇论文通过实验观察到,核的骨架上的权重通常较大:
且以一定稀疏率(sparsity ratio)将卷积核在边角(corner)、骨架(skeleton)、全局(global)的权重随机置零:
骨架(skeleton)对准确率影响是最明显的,这说明了骨架的重要性。
骨架如此重要,所以ACB中将水平和垂直核添加到方形核的骨架对其进行增强可以促进网络学习。
另外,方形、水平和垂直核上的权重有可能是负的,因此将它们相加可能会导致骨架更弱。然而,作者根据实验观察到模型学习时总是增强每一层的骨架。
边栏推荐
- . Review the old and know the new: [6] what is LINQ
- U++ UPROPERTY UFUNCTION 基础
- leetcode 225. 用队列实现栈(简单)
- 固收类的理财产品收益是确定的吗?
- while和do-while循环
- Western Agricultural University C plus
- .net 温故知新:【6】Linq是什么
- 同城订单同城送,爆单依旧得心应手!
- 吉时利Keithley软件2600系列2601B|2602B|2604B|2606B NS-SourceMeter源表软件
- Package wechat Alipay desensitization
猜你喜欢
unity GetAxis(string axisName); axisName 值怎么来的
LeetCode刷题:对称二叉树与二叉树的最大深度
LeetCode刷题:二叉树的中序遍历
Statistical analysis: cluster analysis (detailed explanation)
使用Lingo求解简单的线性规划问题
. Review the old and know the new: [6] what is LINQ
unity 设置物体不能被穿透
LeetCode刷题:环形链表 与 环形链表II
Leetcode skimming: middle order traversal of binary trees
壳聚糖接枝聚乙醇酸共聚物水凝胶/木质素磺酸钠/聚唾液酸-壳聚糖衍生物水凝胶的制备
随机推荐
Fluent future asynchronous processing
封装微信支付宝脱敏
Using LINGO to solve simple linear programming problems
Correlation analysis of position attribute value
吉时利Keithley软件2600系列2611B|2612B|2614B|2634B NS-SourceMeter源表软件
统计分析:聚类分析(详细讲解)
IDEA 搭建和环境变量
表格表单的样式
Style of table form
Seaborn的使用
β- Preparation of cyclodextrin derivative grafted hydroxypropyl chitosan hydrogel / carboxyl modified chitosan supported cyclodextrin hydrogel microspheres
Leetcode brush question: circular linked list and circular linked list II
固收类的理财产品收益是确定的吗?
异常处理丨一个小案例,带你解决NullPointerException
IP地址分类及范围
软件测试简历部分应该注意什么?
设置背景颜色,背景范围等,雪碧图,渐变色,放射渐变
PLC串级PID控制详解(炉膛和中央空调系统控温)
吉时利Keithley软件2600系列2601B|2602B|2604B|2606B NS-SourceMeter源表软件
是时候考虑对自己的 App 进行瘦身