最近,谷歌使用了AutoML,推出了一种新网络:MixNet,其论文为《MixNet: Mixed Depthwise Convolutional Kernels》。其主要创新点是,研究不同卷积核尺寸的影响和观察到组合不同尺寸的卷积核能提高准确率。作者将混合了不同尺寸的卷积核的卷积操作命名为MDConv,并将其使用在深度可分离卷积中,能提高显存的MobileNet的准确率。

3*3的卷积已经得到了广泛的实践应用了,但是随着近期部分网络的推出,5*5或者7*7的大卷积核有重新出现,例如EfficientNet,这些网络都证明了,大卷积核能提高模型的准确率和效率。但是否卷积核越大,准确率就越高呢?作者首先在mobilenet上分析了,不同尺寸的卷积核对准确率的影响,如Fig.1所示。可以看出,卷积核越大,模型的大小也随之增加;随着卷积核增加,准确率先上升,后下降。说明了,卷积核并不是越大越好,过大的卷积核会损伤模型的准确率。对比实验也表明了:我们需要大卷积核来高分辨率、小卷积核来适应低分辨率

为了实现这一点,作者提出了mixed depthwise convolution(MDConv)模块,其实由多个不同尺寸的卷积核组成,如Fig.2所示。左图是深度可分离间距,其每个通道都是由同一尺寸的卷积核来进行运算;右图是MDConv模块,将通道分成若干组,每一组由同一尺寸的卷积核进行运算,每组的卷积核尺寸不同。最后通过MDConv计算后,将不同组的特征图进行concat起来。注意一点是,在每组中,每个通道都与这个卷积核进行depthwise convolution,而不是普通的convolution。

因此,如何这就有了几个可以讨论的点:

  1. MDConv该分成多少组呢?当组数为1时,就是普通的深度可分离卷积,显然,这不是作者想要的。根据实验,作者发现,组数=4时最适合mobilenet;但得益于神经搜索网络,组数从1到5比较能兼顾大部分模型的准确率和效率;
  2. 每一组的卷积核尺寸是多大呢?如果两组的卷积核尺寸相同,那么两组就会等价为1组,因此,作者限制每组的卷积核尺寸都不相同。作者从3*3的卷积核开始,第i组的卷积核尺寸为2i+1,也就是说,使用{3*3,5*5,7*7,...}之类的卷积核;
  3. 每组包含多少个通道数呢?作者考虑了两种通道分割的方法,均等分割和指数分割;
  4. 是否使用空洞卷积呢?大尺寸卷积核意味着更多参数和计算量,因此通常会考虑引入空洞卷积,这样能扩大感受野,而不耗费额外的参数和计算量。但是,从接下来的试验来看,空洞卷积通常会比大尺度卷积的效果要差。

作者用更大的卷积核或者MDConv来代替mobilenet中的3*3卷积核,在ImageNet上进行了试验,结果如Fig.4所示。可以看到:1)不同尺寸的卷积核能提高模型的准确率和效率;2)MDConv对大尺寸卷积核不太敏感,因此可以使用大卷积核来实现更加稳定的准确率。

作者对刚刚那4个问题作出了对比试验,得到如下结论,就不细说了:

  1. 平均分割和指数分割效果类似;
  2. 空洞卷积使用于小尺寸卷积核,但如果大卷积核使用空洞卷积,准确率会迅速恶化。作者认为,当大尺寸卷积核使用空洞卷积时,会错过很多局部信息。

作者使用了AutoML来对MDConv模块进行搜索,得到了MixNet网络,如Fig.8所示。该MixNet有3个不同尺寸的网络,分别是MixNet-S,MixNet-M,MixNet-L,对应于不同的MDConv中使用的卷积核的尺寸。

最后,作者使用MixNet网络,在ImageNet数据集上进行了测试,并与其他模型进行了对比,如Fig.7所示。可以看出在同等FLOPS下,MixNet网络比很多轻量化网络的准确率都要高。


总结

作者重新思考了不同卷积核对模型的影响效果,并分析了卷积核尺寸对准确率的影响,进而提出了MDConv来混合不同尺寸的卷积核。但是,这个网络的实际速度speed不一定会快,因为该网络存在过多的分组、平行度也被破坏,不符合shufflenet中提出的4条轻量化原则。所以准确率可能会有所提高,实际速度可能会更加慢。

MixNet学习笔记的更多相关文章

  1. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  2. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  3. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  4. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  5. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  6. seaJs学习笔记2 – seaJs组建库的使用

    原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...

  7. CSS学习笔记

    CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

  8. HTML学习笔记

    HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...

  9. DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记

    今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...

随机推荐

  1. Flyway:数据库版本迁移工具的介绍

    目录 Flyway介绍 Flyway的工作模式 Flyway的使用场景 命令行 使用Maven或Gradle插件 migrate clean info validate baseline Java A ...

  2. koa cookie使用

    1 .Koa 中设置 Cookie 的值 ctx.cookies.set(name, value, [options])  通过 options 置 设置 cookie name 的 value : ...

  3. Spring MVC 异步请求 Callable

    对于有的请求业务处理流程可能比较耗时,比如长查询,远程调用等,主线程会被一直占用,而tomcat线程池线程有限,处理量就会下降 servlet3.0以后提供了对异步处理的支持,springmvc封装了 ...

  4. Web Service简介与开发实例

    简介 1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的 ...

  5. Java 200道题

    1. junit用法,before,beforeClass,after, afterClass的执行顺序 一个测试类单元测试的执行顺序为: @BeforeClass –> @Before –&g ...

  6. HDU 1260 Tickets (动态规划)

    Tickets Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  7. kettle An error occurred, processing will be stopped: 错误 解决方法

    上午在使用KETTLE时,报了一个 An error occurred, processing will be stopped: 错误,手动跑没有问题,用jekens调用就报错. 具体原因不清楚,后面 ...

  8. 什么是数据传输服务DTS

    数据传输服务(Data Transmission Service) DTS支持关系型数据库.NoSQL.大数据(OLAP)等数据源间的数据传输. 它是一种集数据迁移.数据订阅及数据实时同步于一体的数据 ...

  9. plpython 中文分词Windows 版

    windows 下安装版本匹配python-3.4.3.amd64.msipostgresql-10.1-2-windows-x64.exe create language plpython3u;se ...

  10. Luogu P4902 乘积

    题目 我们要求的是 \[ \prod\limits_{i=a}^b\prod\limits_{j=1}^i(\frac ij)^{\lfloor\frac ij\rfloor} \] 先把它拆开 \[ ...