作者&编辑 | 言有三

1 CondenseNet

CondenseNet

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

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

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

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

可以看出,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

Fully Learnable Group Convolution

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

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

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

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

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

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

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

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

参考文献

[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

Dynamic Grouping Convolution

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

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

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

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

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

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

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

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

参考文献

[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

分组卷积新进展,全自动学习的分组有哪些经典模型?相关推荐

  1. Conv2d中的groups参数(分组卷积)怎么理解? 【分组卷积可以减少参数量、且不容易过拟合(类似正则化)】

    关于Conv2d的用法先看以下链接:Conv2d_马鹏森的博客-CSDN博客 注意:首先需要知道的是groups的值必须能整除in_channels和out_channels 前置知识:卷积参数量的计 ...

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

    欢迎大家来到<知识星球>专栏,这里是网络结构1000变小专题,今天介绍最新的分组卷积模型的进展. 作者&编辑 | 言有三 1 CondenseNet 有三AI知识星球-网络结构10 ...

  3. 一文回顾深度学习发展史上最重要经典模型

    这篇文章的目的是回顾经过时间考验的,被广泛采用的想法.我将介绍一小部分技术,这些技术涵盖了解现代深度学习研究所必需的许多基本知识.如果你是该领域的新手,那么这是一个很好的起点. 深度学习是一个瞬息万变 ...

  4. 输出分组_通过分组卷积的思想,巧妙的代码实现动态卷积(Dynamic Convolution)

    论文的题目为<Dynamic Convolution: Attention over Convolution Kernels> paper的地址https://arxiv.org/pdf/ ...

  5. 卷积、转置卷积、可分离卷积、分组卷积、空洞卷积的理解

    文章目录 卷积.转置卷积.可分离卷积.分组卷积.空洞卷积的理解 转置卷积 深度可分离卷积 分组卷积 空洞卷积 卷积.转置卷积.可分离卷积.分组卷积.空洞卷积的理解 这里主要是汇总一些本人觉得比较好的文 ...

  6. pytorch_lesson16.2 架构对学习/鲁棒性的影响(VGG16复现+感受野+平移不变性)+架构对参数量的影响(1*1卷积核+分组卷积与深度分离卷积+NiN网络复现)

    提示:仅仅是学习记录笔记,搬运了学习课程的ppt内容,本意不是抄袭!望大家不要误解!纯属学习记录笔记!!!!!! 文章目录 前言 一.架构对学习能力/鲁棒性的影响 1 深度 1.1 困难与实践 1.2 ...

  7. Lesson 16.1016.1116.1216.13 卷积层的参数量计算,1x1卷积核分组卷积与深度可分离卷积全连接层 nn.Sequential全局平均池化,NiN网络复现

    二 架构对参数量/计算量的影响 在自建架构的时候,除了模型效果之外,我们还需要关注模型整体的计算效率.深度学习模型天生就需要大量数据进行训练,因此每次训练中的参数量和计算量就格外关键,因此在设计卷积网 ...

  8. 【知识星球】卷积核和感受野可动态分配的分组卷积

    欢迎大家来到<知识星球>专栏,这里是网络结构1000变小专题,我们要慢慢开始更新AutoML与网络设计相关的内容. 作者&编辑 | 言有三 1 MixNet 有三AI知识星球-网络 ...

  9. 分组卷积/转置卷积/空洞卷积/反卷积/可变形卷积/深度可分离卷积/DW卷积/Ghost卷积/

    文章目录 1. 常规卷积 2. 分组卷积 3. 转置卷积 4. 空洞卷积 5. 可变形卷积 6. 深度可分离卷积(Separable Convolution) 6.1 Depthwise Convol ...

最新文章

  1. 数据备份 另一服务器_为什么NAS网络存储服务器会受到如此多的关注?
  2. 天天都会写接口,但它的用途和好处有多少人能说得清楚?
  3. htmlunit爬虫工具使用--模拟浏览器发送请求,获取JS动态生成的页面内容
  4. 【bzoj4592】[Shoi2015]脑洞治疗仪
  5. 牛客题霸 NC26 括号生成
  6. 【面试】Java面试常见问题汇总(不含答案)、面试指导学习笔记
  7. 3分钟学会SVN:SVN快速上手
  8. 开发SQLite数据库常用的管理工具
  9. matlab小区制移动通信网,LTE习题 - 无线移动 - 通信人家园 - Powered by C114
  10. php 循环 post,如何在php中使用jQuery递归调用POST循环请求
  11. 长按UIWebView上的图片保存到相册
  12. Lintcode--007(不同的子序列)
  13. 挑战程序设计竞赛_竞赛通知 | 第二届全国高校计算机能力挑战赛——程序设计赛来啦...
  14. input checkbox 选中问题
  15. 数学建模(十)博弈论
  16. Linux的tar解压命令
  17. 计算机设计大赛感言,电子设计大赛获奖感言精选
  18. 外盘资管分仓软件(如智星、金管家、信管家等)和内盘(融行等)分仓软件的区别?
  19. PYthon-PIckle泡菜库
  20. Linux 4.15亮点特性

热门文章

  1. 源码阅读笔记 BiLSTM+CRF做NER任务 流程图
  2. No module named ‘tensorflow.contrib‘
  3. neo4j客户端下载
  4. 2021-03-19Tomcat源码学习--WebAppClassLoader类加载机制
  5. 转 python运算符及用法汇总
  6. 统计学权威盘点过去50年最重要的统计学思想,因果推理、bootstrap等上榜,Judea Pearl点赞...
  7. 演讲实录 | DevOps五大理念及其落地实践
  8. 程序员11月书讯 | 硅谷,梦开始的地方
  9. 深度盘点:详细介绍机器学习中的7种交叉验证方法!
  10. 用人工智能打击人工智能