分组卷积计算量_【知识星球】分组卷积最新进展,全自动学习的分组有哪些经典模型?...

欢迎大家来到《知识星球》专栏,这里是网络结构1000变小专题,今天介绍最新的分组卷积模型的进展。

作者&编辑 | 言有三

1 CondenseNet

dd177eae86bdf31c8d3186cecfcb47ee.png
CondenseNet

以前我们给大家讲了许多的分组网络,如果分组本身可以学习,而不是通过预先定义的规则,可能取得更好的效果,其中的一个典型代表就是condensenets,这是一个效率更高的模型,它是对densenet的改进。

从图中可以看出,它的基本流程是,首先将输出进行分组,图中共12个输入通道,分为3组,每一组两个输出通道。然后通过一个condensing过程去除那些权重小的连接,这是一个剪枝操作。最后在optimization过程中对这些连接的权重进行微调学习。在训练的时候,最后的连接通过学习1*1卷积实现,而测试的时候则将通道进行重排,得到一个标准的分组卷积,这种方法与分组卷积的不同之处就在于通道的分组组合是通过学习而来,而不是按照顺序进行划分。

作者用他们在DenseNet框架上进行实验,只使用了DenseNet1/10的计算量,就取得了相当的性能,之所以能够降低计算量,就是因为对1*1卷积进行了分组学习,3*3卷积则使用标准分组卷积替代。

下面是它在ImageNet分类任务和一些经典模型的对比:

e8a05a6ac9392976c73a01f78e8f8591.png

f730616cd989e15b56f6959ee7f9888f.png

可以看出,CondenseNet的确以较低的计算代价取得了很好的效果。

参考文献

[1] Huang G, Liu S, Van der Maaten L, et al. Condensenet: An efficient densenet using learned group convolutions[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018: 2752-2761.

2 FLGC

b113fb6e27cb75e7bd2aaa66529406e2.png
Fully Learnable Group Convolution

通常的分组卷积网络分组是固定的,CondenseNet曾经学习了均匀的分组策略,本文则是完全的end-to-end学习到了更加自由的分组策略,流程也更加简单。

该论文解决的是如何学习每一个分组中的通道及其相关的连接。假如一个conv层的输入输出channels个数分别是C和N ,被分成g个groups。

首先我们可以用一个大小为C×G的二值矩阵来表示分组情况,1表示归入某一组,每一个只有一个非零值。

52ba4831d592eec6de489d16c50c5c96.png

对于卷积核也类似,可以用一个N×G的二值矩阵来表示分组情况。

dba0ce89e26e136b9835b62edda34905.png

所以要优化的就是这两个矩阵,为了让网络可以反向传播,实际优化时用softmax操作来替换掉上述的二值操作。

训练完之后,实际使用时,就需要对通道进行重新排列,这可以通过一个index-reordering层来完成。

0b181732dbc481c8c79a05c54cbf9eea.png

下面是它在ImageNet分类任务和CASIA人脸识别任务上的实验结果:

e8a05a6ac9392976c73a01f78e8f8591.png

bb4cd34ccd6be97f17b5009694e37995.png

可以看出,该方法的策略是有效的。不过该方法策略过于自由,在实际的硬件平台上并不会如此有效。

参考文献

[1] Wang X, Kan M, Shan S, et al. Fully Learnable Group Convolution for Acceleration of Deep Neural Networks[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019: 9049-9058.

3 DGC

be659f4a5a65f3e8eaf80005c024b732.png
Dynamic Grouping Convolution

通常的分组卷积网络分组数目是固定的,而本文Dynamic Grouping Convolution(DGC)则可以学习到分组的数目。

首先我们需要一个二值的矩阵U来表示一个卷积层中输入输出通道之间的连接,一些结构示意图如下:

bd6c8c57a3254dc2a5c503ee3542fb13.png

(a)是正常卷积,输入输出通道之间完全稠密连接;(d)是分组卷积,输入输出通道被分为若干个组,每个组中的通道密集连接;(b)是depth-wise分组卷积,分组数目等于输入输出 通道个数。(c)(e)是学习到的分组卷积,(f)是自由连接。

不过不是每一个二值矩阵都可以表示一个分组卷积,那么矩阵U究竟要满足什么样的条件才能使得所表示的连接是一个分组卷积呢?

作者认为如果矩阵U可以表示为若干个矩阵的Kronecker乘积,那么就能得到分组卷积的结构,这就是需要满足的约束条件。两个矩阵的Kronecker乘积案例如下:

c967a129643934f56748c25875f721a5.png

12de58ce5e7a2db8f9bacdc431c74055.png

大家可以推一下前面几个连接对应的矩阵,每一个都需要3个2×2的矩阵。

因此我们只需要优化logC (C是channels个数,2为底数)个2×2的矩阵参数,就可以确定分组结构。

下面是使用ImageNet数据集和ResNet的结果,x轴是从输入到输出的通道数,y是分组数,可以发现越高的层分组越大,越低的层分组越小,这有利于增强特征表达能力。

863168b114492c8e9d8415abc45ebecc.png

参考文献

[1] Zhaoyang Zhang, Jingyu Li, Wenqi Shao, Zhanglin Peng, Ruimao Zhang, Xiaogang Wang, Ping Luo. "Differentiable Learning-to-Group Channels via Groupable Convolutional Neural Networks" ICCV2019

4 关于有三AI知识星球

有三AI知识星球是我们继公众号之后重点打造的原创知识学习社区,有需要的同学可以阅读下文了解生态。

【杂谈】为什么邀请大家加入硬核知识星球有三AI​mp.weixin.qq.com
ae089c34514040705499ff67c261d92b.png

大家可以预览一些内容如下,添加有三微信Longlongtogo加入可以优惠,目前正在持续更新GAN相关的内容。

e5b870b0f9c7ed2ffe902766892790a8.png

47dac593d308cd15d40b2b077abedabe.png

a867e3979f1e485dc886cc7e337e1ebf.png

9b05e8da5be053db2d443364a95b5ce2.png

0e304560585d7d68c77121c3b68a48ce.png

d1cf5e7a96c9ddff1c5d154cdc27ccee.png

447a12dd7d44f09294d9d4c9d9c604ab.png

f5bb97b3c232141e436e334c484e0fce.png

e14358b2717926f0fe72efbe5189f0d5.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值