点击我爱计算机视觉标星,更快获取CVML新技术


本文转载自知乎专栏深度学习前沿,已获作者Slumbers授权转载。

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

NAS最近也很火,正好看到了这篇论文,解读一下,这篇论文是基于DAG( directed acyclic graph)的,DAG包含了上亿的sub-graphs, 为了防止全部遍历这些模型,这篇论文设计了一种全新的采样器,这种采样器叫做Gradient-based search suing differential Architecture Sampler(GDAS),该采样器可以自行学习和优化,在这个的基础上,在CIFAR-10上通过4 GPU hours就能找到一个最优的网络结构。

目前主流的NAS一般是基于进化算法(EA)和强化学习(RL)来做的。EA通过权衡validation accuracy来决定是否需要移除一个模型,RL则是validation accuracy作为奖励来优化模型生成。作者认为这两种方法都很消耗计算资源。作者这篇论文中设计的GDAS方法可以在一个单v100 GPU上,用四小时搜索到一个优秀模型。

GDAS

这个采用了搜索robust neural cell来替代搜索整个网络。如下图,不同的操作(操作用箭头表示)会计算出不同的中间结果(中间结果用cycle表示),前面的中间结果会加起来闯到后面。

在优化速度上,传统的DAG存在一些问题:基于RL和EA的方法,需要获得反馈都需要很长一段时间。而这篇论文提出的GDAS方法能够利用梯度下降去做优化,具体怎么梯的下面会说到。此外,使用GDAS的方法可以sample出sub-graph,这意味着计算量要比DAG的方法小很多。

绝大多数的NAS方法可以归为两类:Macro search和micro search

Macro search

顾名思义,实际上算法的目的是想要发现一个完整的网络结构。因此多会采用强化学习的方式。现有的方法很多都是使用Q-learning的方法来学习的。那么会存在的问题是,需要搜索的网络数量会呈指数级增长。最后导致的结果就是网络会更浅。

Micro Search

这种不是搜索整个神经网络,而是搜索neural cells的方式。找到指定的neural cells后,再去堆叠。这种设计方式虽然能够设计更深的网络,但是依旧要消耗很长时间,比如100GPU days,超长。这篇文章就是在消耗上面做优化。

算法原理

DAG的搜索空间

前面也说了DAG是通过搜索所谓的neural cell而不是搜索整个网络。每个cell由多个节点和节点间的激活函数构成。节点我们用 来表示,节点的计算如下图。每个节点有其余两个节点(下面公式中的节点i和节点j)来生成,而中间会从一个函数集合 中去sample函数出来, 这个F数据集的组成是1)恒等映射 2)归零 3)3x3 depthwise分离卷积 4)3x3 dilated depthwise 分离卷积 5)5x5 depthwise分离卷积 6)5x5 dilated depthwise 分离卷积。7)3x3平均池化 8) 3 x 3 最大池化。

那么生成节点I后,再去生成对应的cell。我们将cell的节点数记为B,以B=4为例,该cell实际上会包括7个节点, 是前面两层的cell的输出(实际上也就是上面公式中的k和j),而 则是我们(1)中计算出来的结果。 也就是该cell的output tensor实际上是 四个节点的output的联结。

将cell组装为网络

刚刚上面的这种叫做normal cell,作者还设计了一个reduction cell, 用于下采样。这个reduction cell就是手动设计的了,没有像normal cell那样复杂。normal cell 的步长为1,reduction cell步长为2, 最后的网络实际上就是由这些cell组装起来的。如下图:

搜索模型参数

搭建的工作如上面所示,好像也还好,就像搭积木,这篇论文我觉得创新的地方在于它的搜索方法,特别是通过梯度下降的方式来更新参数,很棒。具体的搜索参数环节,它是这么做的:

首先我们的优化目标和手工设计的网络别无二致,都是最大释然估计:

而上式中的Pr,实际上可写成:

这个 实际上是node i和node j的函数分布,k则是F的基数。而Node可以表示为:

是从 中sample出来的,而

这个 实际上是node i和node j的函数分布,k则是F的基数。而Node可以表示为:

其中 是从离散分布 中间sample出来的函数。这里问题来了,如果直接去优化Pr,这里由于I是来自于一个离散分布,没法对离散分布使用梯度下降方法。这里,作者使用了Gumbel-Max trick来解决离散分布中采样不可微的问题,具体可以看这个问题下的回答

如何理解Gumbel-Max trick?,TL;DR: Gumbel Trick 是一种从离散分布取样的方法,它的形式可以允许我们定义一种可微分的,离散分布的近似取样,这种取样方式不像「干脆以各类概率值的概率向量替代取样」这么粗糙,也不像直接取样一样不可导(因此没办法应对可能的 bp )。

于是这里将这个离散分布不可微的问题做了转移,同时对应的优化目标变为:

这里有个 的参数,可以控制 的相似程度。注意在前向传播中我们使用的是等式(5), 而在反向传播中,使用的是等式(7)。结合以上内容,我们模型的loss是:

我们将最后学习到的网络结构称为A,每一个节点由前面T个节点连接而来,在CNN中,我们把T设为2, 在RNN中,T设为1

在参数上,作者使用了SGD,学习率从0.025逐渐降到1e-3,使用的是cosine schedule。具体的参数和function F 设计上,可以去看看原论文。

总的来说,我觉得这篇论文最大的创新点是使用Gumbel-Max trick来使得搜索过程可微分,当然它中间也使用了一些手动设计的模块(如reduction cell),所以速度会比其余的NAS更快,之前我也没有接触过NAS, 看完这篇论文后对现在的NAS常用的方法以及未来NAS发展的趋势还是有了更深的理解,推荐看看原文。

点击左下角阅读原文,即可查看原论文。


神经架构搜索交流群

关注最新最前沿的神经架构搜索技术,欢迎加入专业NAS交流群扫码添加CV君拉你入群,

(请务必注明:NAS)

喜欢在QQ交流的童鞋,可以加52CV官方QQ群:805388940。

(不会时时在线,如果没能及时通过验证还请见谅)


长按关注我爱计算机视觉

CVPR 2019: 4 GPU hours 搜索到一个鲁棒的网络结构相关推荐

  1. 单v100 GPU,4小时搜索到一个鲁棒的网络结构

    作者 | Slumbers,毕业于中山大学,深度学习工程师,主要方向是目标检测,语义分割,GAN 责编 | Jane NAS最近也很火,正好看到了这篇论文,解读一下,这篇论文是基于DAG(direct ...

  2. CVPR2020 | 利用NAS搜索针对对抗攻击的鲁棒神经网络结构

    本文介绍CVPR 2020 论文 When NAS Meets Robustness: In Search of Robust Architectures against Adversarial At ...

  3. R2LIVE: 一个鲁棒实时的雷达-惯导-视觉紧耦合的位姿估计和建图系统

    作者丨方川@知乎 来源丨https://zhuanlan.zhihu.com/p/378375542 编辑丨3D视觉工坊 标题:R2LIVE: A Robust, Rea-time, LiDAR-In ...

  4. Boosting和Bagging: 如何开发一个鲁棒的机器学习算法

    https://www.toutiao.com/a6702386122678338062/ 2019-06-14 22:01:14 作者:Ben Rogojan编译:ronghuaiyang 导读 机 ...

  5. (每日一读2019.10.23)低漂移、鲁棒和快速的视觉-激光里程计和建图(VLoam)

    参考:https://www.jianshu.com/p/cb7098567711 论文:pdf 摘要 本文开发了一个低成本的立体视觉惯性定位系统,该系统利用有效的基于多状态约束卡尔曼滤波(MSCKF ...

  6. 17篇论文入选CVPR 2019,百度AI都在关注什么?(附论文地址)

    整理 | 阿司匹林 出品 | AI科技大本营(公众号id:rgznai100) 计算机视觉和模式识别大会CVPR 2019即将于6月在美国长滩召开,作为人工智能领域计算机视觉方向的重要学术会议,CVP ...

  7. CVPR 2019 | 百度17篇论文入选,AI巨头都在关注什么?(附论文下载)

    授权自AI科技大本营(ID:rgznai100) 本文共6400字,建议阅读10+分钟. 本文整理了百度入选CVPR的17篇论文的内容及应用场景. 计算机视觉和模式识别大会CVPR 2019即将于6月 ...

  8. 百度AI 17篇 CVPR 2019 论文介绍(附下载)

    本文转载自AI科技大本营. 整理 | 阿司匹林 出品 | AI科技大本营(公众号id:rgznai100) 计算机视觉和模式识别大会CVPR 2019即将于6月在美国长滩召开,作为人工智能领域计算机视 ...

  9. CVPR 2019 | 腾讯AI Lab解读六大前沿方向及33篇入选论文

    导语:本文将分组介绍计算机视觉顶级会议 CVPR 中腾讯 AI Lab 的重点研究方向和入选论文. 计算机视觉顶级会议 CVPR 2019 将于 6 月 15 日– 6 月 21 日在加利福尼亚州长滩 ...

最新文章

  1. 为 PHP 应用提速、提速、再提速
  2. 第十六届智能车竞赛参赛队伍提问-6-11
  3. linux启动脚本 范本,Linux—微服务启停shell脚本编写模板
  4. Flink从入门到精通100篇(四)-基于 Flink 和 Drools 的实时日志处理
  5. 关于全局ID,雪花(snowflake)算法的说明
  6. 【HihoCoder - 1881】特殊任务 (树形图,遍历)
  7. Leangoo到底好在哪里?
  8. maven安装与配置等相关知识
  9. kopernio显示无效程序_daz 无法渲染/没有渲染/渲染不显示/渲染无效?
  10. Nr,GenBank, RefSeq, UniProt 数据库的异同
  11. 美团外卖uml流程图_以美团外卖为例,区别业务流程图和页面流程图
  12. iPhoneX、iPhoneXS、iPhoneXR、iPhoneXSMax屏幕适配
  13. 服务器维护表格,服务器维护表格
  14. 【干货分享】使用Inno Setup设计扁平化风格的安装包
  15. AndroidUSBCamera调用USB摄像头问题
  16. Python实现的图书分析大屏展示系统(附源码)
  17. python实现crc16校验
  18. Cell Genomics封面|北大吴华君组利用空间多组学技术解析肿瘤内空间异质性(附招聘)...
  19. 考研英语 - word-list-1
  20. 【环境部署系列 04】Ascend 310(推理)ARM服务器 Ubuntu系统环境部署

热门文章

  1. 迁移学习 Transfer Learning—通俗易懂地介绍(常见网络模型pytorch实现)
  2. JavaEE 搜索解决问题集合---会不断更新的
  3. Java图形开发--GUI
  4. 开源软件执照检查和工具探讨(Discuss the audit tools for open source license GPL/LGPL/MIT)
  5. DFB [02] 基础和相关的非常用的几个链接
  6. [GPL]GREP - basic - practice -advanced
  7. 【windows】windows 11 安装解决 这台电脑无法运行 Windows 11
  8. windows服务器安装nginx
  9. MySQL5.5.15_linux下mysql-5.5.15安装详细步骤
  10. 百度php笔试题目,12/11/17 百度PHP笔试题目整理