本文原载自知乎,已获原作者授权转载,请勿二次转载。

https://zhuanlan.zhihu.com/p/122557226

statistics 大法好,DL不是statistics,因为DL不如statistics。基本全文从统计学的角度解释了怎么设计网络搜索空间好,哪些要素是有用的,其s全面以及宽度广度都令人瞠目结舌,绝对的2020年巅峰大作!

首先放结论,下面每个结论随便都能发一篇论文。

1.实验中发现的几个关于性能的打脸结论:

  • 无论模型多大,20个block的深度是最合适的。大网络越深越好是不对的。

  • bottleneck ratio设置成1是最好的。

  • width multiplier设置成2.5是最优质的。

  • 剩下的初始网络宽度,group数量,宽度的增长斜率,这些随着模型增大而增加会是最佳选择。(大碗宽面2.0,你看我这面,就这么长,但是那么那么那么宽。)

2.然后是几个关于复杂度(速度)的打脸结论,首先这里定义了一个所有卷积层输出tensor的大小叫做activations(这玩意你不管用啥卷积,出来tensor一样大这个值就不变):

  • flpos跟速度之间的关系明显没activations好,啪啪啪。具体见图:

  • 以后不要只用flops建模速度了,这玩意最好用根号flops以及线性的activations一起来建模。

3.再是几个关于非常常见的一些设计比如inverted bottleneck以及depthwise conv的结论。首先前者稍微降低了点EDF(评价指标),后者就还不如group conv。但是scaling the input image resolution是依然有用的。再说SE module,这玩意也有用.

00

引言

一句话概括就是,传统NAS方法这种基于个体估计(individual network instance)的方式(每次评估的时候采样一个网络)存在以下缺陷:

1). 非常不灵活。(各种调参大法)

2).泛化能力差。

3).可解释性差。(搜出来的效果虽好,但是很多都是大力出奇迹,运气成分+1)。

因此,作者顺理成章地提出了对网络设计空间进行整体估计(population estimation,意思就是所有的深度宽度之类的最佳设计空间关系给它估计出来)。

非常直观地,如果我们能得到深度(depth),宽度(width)等等一系列网络设计要素关于网络设计目标的函数关系,那么我们就很轻松地知道大概多深的网络,多宽的网络是最佳选择。

这句话也直接解决了1),2),3)三个问题,并且这个方式实际上能反应出更优质的网络设计准则,从而达到Designing Network Design Spaces的目的。

读到这里,牛逼就完事了!

01

Tools for Design Space Design

首先咋估计总体呢,其实非常简单,采样,疯狂采样。具体而言就是从任意的搜索空间采样一堆模型。

为了方便快捷,这些模型都是小模型并且只训了10个epoch,这样一来代价也不至于很大。

完事了以后得有个评价标准来评价模型的好坏,其实也比较简单:

图1. The error empirical distribution function.

这样一来就有500多个模型,并且有了评价标准。那么网络深度或者宽度等等信息与评价标准之间的关系就可以画出来了,这样的采样结果可以用来估计总体。

这就是Tools,充满了data science和statistics的味道。

接着,有了这个工具怎么进行统计学分析呢,首先得有个采样的空间是吧,它叫AnyNet Design Space。

02

AnyNet Design Space

AnyNet的设计空间几乎包含了所有网络设计要素,比如depth,width,group之类的。

一般来说,正常的神经网络都只包含4个stage,对于anynet中的4个stage的网络设计要素的选择几乎是任意的,因此叫AnyNet。

并且由于network stem和head在网络设计中不太重要,AnyNet主要面向network body的设计。即便是如此,搜索空间仍高达10的18次,这么大的搜索空间现有NAS方法都要吃灰了。

因此更进一步地,加了一些控制变量,比如说每个stage共享某个参数之类的,于是提出了A,B,C,D,E五种不同的设计空间。

这五个设计空间充满了控制变量法的statistics,A:就是任意的空间,B:在A的观察基础上固定每个stage的bottleneck ratio,C:在B的观察基础上固定每个stage的group数量,D:在C的观察基础上逐stage增宽网络(width),E:在D的观察基础上逐stage加深网络(depth)。

这边Po了N个Fig说明了在控制变量下的statistics,由此观察一波,可以得出这个变量之间暗藏玄机,根据这些观察,来进一步建模统计意义下的最佳搜索空间,它叫RegNet Design Space。

03

The RegNet Design Space

这边有个小插曲,从AnyNet的Fig可以看出,每个individual models结果的偏差很大,再次降维打击NAS。

但是,整体来说,还是能发现一些关系和规律的,通过获得的几个变量和每个block的index之间,可以拟合出函数关系,就此建模好了大概每层的block多宽多深之类的关系,建模方法叫做quantized linear parameterization。(实际上就是函数拟合,一朝回到解放前.)首先,每个block 第j个stage的宽度  用线性关系建模:

 表示初始化的宽度,  是斜率,d表示深度,反正就是很简单的线性关系了。

为了量化  (简单地说就是算出来的宽度可能是126.123之类的奇葩数字,得给它四舍五入到128这种科学的数字,同时每个stage i有很多层,得把宽度统一到某个数字),这里再引入了两组公式和新的超参  用于计算量化因子  :

完事之后,就可以计算出每个stage的宽度是:  ,其中:

对于一共有四个stage的网络,三个超参  grid search最小化对数EDF就完事了(反正就是回归嘛。。)。

到这里位置,search space就被这组包含三个超参的公式表达出来了,有理有据,收下我的膝盖。

接下去就为了说明这个search space强无敌做了坚如磐石的实验比较,最后搜出了吊炸天的网络,这里不再赘述。

论文地址:

https://arxiv.xilesou.top/pdf/2003.13678.pdf

代码地址:(尚未开源,但有部分实验分析)

https://github.com/facebookresearch/pycls

END

备注:NAS

AutoML&NAS交流群

自动机器学习、神经架构搜索等技术,

若已为CV君其他账号好友请直接私信。

我爱计算机视觉

微信号:aicvml

QQ群:805388940

微博知乎:@我爱计算机视觉

投稿:amos@52cv.net

网站:www.52cv.net

在看,让更多人看到  

何恺明组《Designing Network Design Spaces》的整体解读(一篇更比六篇强)相关推荐

  1. Paper:2020年3月30日何恺明团队最新算法RegNet—来自Facebook AI研究院《Designing Network Design Spaces》的翻译与解读

    Paper:2020年3月30日何恺明团队最新算法RegNet-来自Facebook AI研究院<Designing Network Design Spaces>的翻译与解读 导读: 卧槽 ...

  2. Paper之RegNet:《Designing Network Design Spaces》的翻译与解读—2020年3月30日来自Facebook AI研究院何恺明团队最新算法RegNet

    Paper之RegNet:<Designing Network Design Spaces>的翻译与解读-2020年3月30日来自Facebook AI研究院何恺明团队最新算法RegNet ...

  3. 【RegNet】《Designing Network Design Spaces》

    CVPR-2020 文章目录 1 Background and Motivation 2 Related Work 3 Advantages / Contributions 4 Design Spac ...

  4. RegNet: Designing Network Design Spaces

    Designing network design spaces是何凯明团队最近推出的一篇论文,目的是在探索网络搜索空间的设计.本论文和EfficientNet一样,也是假定网络的基本模块是不变的,不会 ...

  5. Designing Network Design Spaces,译读

    Designing Network Design Spaces,CVPR 2020 ,RegNet,, Ilija Radosavovic, Raj Prateek Kosaraju, Ross Gi ...

  6. 【CVPR2020】Designing Network Design Spaces

    论文地址:https://arxiv.org/pdf/2003.13678.pdf Abstract 在这项工作中,我们提出了一个新的网络设计范例.我们的目标是帮助提高对网络设计的理解,并发现跨领域( ...

  7. 阅读Designing Network Design Spaces(CVPR2020)

    [CVPR2020]网络设计空间,论文地址:https://arxiv.org/pdf/2003.13678.pdf 目录 Abstract 1.Introduction 2. Related Wor ...

  8. Designing Network Design Spaces

    Arxiv link: https://arxiv.org/pdf/2003.13678.pdf source code is at https://github.com/facebookresear ...

  9. 【深度学习】 Designing Network Design Spaces

    留坑.

最新文章

  1. JSON / 格式详解
  2. android 弹出对话框时显示键盘
  3. mysql 存储过程死循环_pl/sql存储过程loop死循环
  4. linux的IP配置
  5. java 基础学习——基本技巧(一)
  6. 光伏行业缘何抢屋顶?
  7. 什么叫做:离线下载?-by:nixs
  8. 可道云 docker 群晖_利用群晖NAS同步文献
  9. html文字和图片垂直居中,css如何让图片和文字垂直居中?
  10. ccproxy如何设置
  11. MTK-MT65-MT67系列对比
  12. [教程]教你如何制作彩色的3D打印Groot
  13. 怎么把英文翻译成中文?手机中英翻译的简单方法
  14. PCI设备的访问方法_桥设备(type1)
  15. 提高企业计算机网络安全意识,对企业计算机网络安全建设问题综合分析探讨.doc...
  16. python3攻击服务器_Python服务器用套接字互相攻击
  17. 如何查看其他微信小程序的AppID
  18. VC实现的简易防火墙
  19. 双[4-(9,9-二甲基-9,10-二氢吖啶)苯基]硫砜,DMAC-DPS cas:1477512-32-5
  20. foxmail 添加 gmail账号的 具体设置参数

热门文章

  1. Gym 102798A(思维) acm寒假集训日记21/12/31or22/1/1
  2. python编程规则_python编程规则
  3. 计算正方形面积和周长_寒假作业:长方形、正方形周长面积应用题,附答案
  4. HTML是万维网核心语言的第几代,Html5相关的知识点总结
  5. 计算机工程师英语介绍,数据库系统工程师计算机专业英语(四).doc
  6. oracle数据导入到python,Python导入oracle数据的方法 -电脑资料
  7. ubuntu 14.04 apache php mysql_Ubuntu 14.04 升级PHP 和 Apache
  8. java preference,Java使用Preference类保存上一次记录的方法
  9. xss 全编码两次_URL编码与XSS
  10. php有哪些_php工作原理是什么?php常用功能有哪些?