论文提出NASH方法来进行神经网络结构搜索,核心思想与之前的EAS方法类似,使用网络态射来生成一系列效果一致且继承权重的复杂子网,本文的网络态射更丰富,而且仅需要简单的爬山算法辅助就可以完成搜索,耗时0.5GPU day



来源:晓飞的算法工程笔记 公众号

论文: Simple And Efficient Architecture Search for Convolutional Neural Networks

Introduction


  论文目标在于大量减少网络搜索的计算量并保持结果的高性能,核心思想与EAS算法类似,主要贡献如下:

  • 提供baseline方法,随机构造网络并配合SGDR进行训练,在CIFAR-10上能达到6%-7%的错误率,高于大部分NAS方法。
  • 拓展了EAS在网络态射(network morphisms)上的研究,能够提供流行的网络构造block,比如skip connection和BN。
  • 提出基于爬山算法的神经网络结构搜索NASH,该方法迭代地进行网络搜索,在每次迭代中,对当前网络使用一系列网络态射得到多个新网络,然后使用余弦退火进行快速优化,最终得到性能更好的新网络。在CIFAR-10上,NASH仅需要单卡12小时就可以达到baseline的准确率。

Network Morphism


  $\mathcal{N}(\mathcal{X})$为$\mathcal{X}\in \mathbb{R}^n$上的一系列网络,网络态射(network morphism)为映射$M: \mathcal{N}(\mathcal{X}) \times \mathbb{R}^k \to \mathcal{N}(\mathcal{X}) \times \mathbb{R}^j$,从参数为$w\in \mathbb{R}k$的网络$fw \in \mathcal{N}(\mathcal{X})$转换为参数为$\tilde{w} \in \mathbb{R}j$的网络$g\tilde{w} \in \mathcal{N}(\mathcal{X})$,并且满足公式1,即对于相同的输入,网络的输出不变。

  下面给出几种标准网络结构的网络态射例子:

Network morphism Type I

  将$f^w$进行公式2的替换,$\tilde{w}=(w_i, C, d)$,为了满足公式1,设定$A=1$和$b=0$,可用于添加全连接层。

  另外一种复杂点的策略如公式3,$\tilde{w}=(w_i, C, d)$,设定$C=A^{-1}$和$d=-Cb$,可用于表达BN层,其中$A$和$b$表示统计结构,$C$和$d$为可学习的$\gamma$和$\beta$。

Network morphism Type II

  假设$f_i{w_i}$可由任何函数$h$表示,即$f_i{w_i}=Ah^{w_h}(x)+b$

  则可以将$f^w$,$w_i = (w_h, A, b)$配合任意函数$\tilde{h}{w_{\tilde{h}}}(x)$根据公式4替换为$\tilde{f}{\tilde{w}i}$,$\tilde{w}=(w_i, w{\tilde{h}}, \tilde{A})$,设定$\tilde{A}=0$。这个态射可以表示为两种结构:

  • 增加层宽度,将$h(x)$想象为待拓宽的层,设定$\tilde{h}=h$则可以增加两倍的层宽度。
  • concatenation型的skip connection,假设$h(x)$本身就是一系列层操作$h(x)=h_n(x) \circ \cdots \circ h_0(x)$,设定$\tilde{h}(x)=x$来实现短路连接。

Network morphism Type III

  任何幂等的函数$f_i^{w_i}$都可以通过公式5进行替换,初始化$\tilde{w}_i=w_i$,公式5在无权重的幂等函数上也成立,比如ReLU。

Network morphism Type IV

  任何层$f_i^{w_i}$都可以配合任意函数$h$进行公式6的替换,初始化$\lambda=1$,可用于结合任意函数,特别是非线性函数,也可以用于加入additive型的skip connection。

  此外,不同的网络态射组合也可以产生新的态射,比如可以通过公式2、3和5在ReLU层后面插入"Conv-BatchNorm-Relu"的网络结构。

Architecture Search by Network Morphisms


  NASH方法基于爬山算法,先从小网络开始,对其进行网络态射生成更大的子网络,由于公式1的约束,子网的性能与原网络是一样的,后续子网进行简单的训练看是否有更好的性能,最后选择性能优异的子网进行重复的操作。

  图1可视化了NASH方法的一个step,算法1的ApplyNetMorph(model, n)包含n个网络态射操作,每个为以下方法的随机一种:

  • 加深网络,例如添加Conv-BatchNorm-Relu模块,插入位置和卷积核大小都是随机的,channel数量跟最近的卷积操作一致。
  • 加宽网络,例如使用network morphism type II来加宽输出的channel,加宽比例随机。
  • 添加从层$i$到层$j$的skup connection,使用network morphism type II或IV,插入位置均随机选择。

  由于使用了网络态射,子网继承了原网络的权重且性能一致,NASH方法优势在于能够很快的评估子网的性能,论文使用了简单的爬山算法,当然也可以选择其它的优化策略。

Experiments


Baslines

Retraining from Scratch

CIFAR-10

CIFAR-100

CONCLUSION


  论文提出NASH方法来进行神经网络结构搜索,核心思想与之前的EAS方法类似,使用网络态射来生成一系列效果一致且继承权重的复杂子网,本文的网络态射更丰富,而且仅需要简单的爬山算法辅助就可以完成搜索,耗时0.5GPU day





如果本文对你有帮助,麻烦点个赞或在看呗~

更多内容请关注 微信公众号【晓飞的算法工程笔记】

NASH:基于丰富网络态射和爬山算法的神经网络架构搜索 | ICLR 2018的更多相关文章

  1. MetaQNN : 与Google同场竞技,MIT提出基于Q-Learning的神经网络搜索 | ICLR 2017

    论文提出MetaQNN,基于Q-Learning的神经网络架构搜索,将优化视觉缩小到单层上,相对于Google Brain的NAS方法着眼与整个网络进行优化,虽然准确率差了2-3%,但搜索过程要简单地 ...

  2. 【MetDNA】基于代谢反应网络的大规模代谢物结构鉴定新算法

    代谢是生命体内化学反应的总称,其所包含的代谢物变化规律可直接反映生命体的健康状态.非靶向代谢组学(untargeted metabolomics)可以在系统水平测量生命体内生理或病理状态下所有代谢物的 ...

  3. 基于爬山算法求解TSP问题(JAVA)

    一.TSP问题 TSP问题(Travelling Salesman Problem)即旅行商问题,又译为旅行推销员问题.货郎担问题,是数学领域中著名问题之一.假设有一个旅行商人要拜访n个城市,他必须选 ...

  4. 基于SNMP的路由拓扑发现算法收集

    一.三层(网络层)发现 算法来源:王娟娟.基于SNMP的网络拓扑发现算法研究.武汉科技大学硕士学位论文,2008 数据结构: 待检路由设备网关链表:存放指定深度内待检路由设备的网关信息,处理后删除. ...

  5. 基于视觉的Web页面分页算法VIPS的实现源代码下载

    基于视觉的Web页面分页算法VIPS的实现源代码下载 - tingya的专栏 - 博客频道 - CSDN.NET 基于视觉的Web页面分页算法VIPS的实现源代码下载 分类: 技术杂烩 2006-04 ...

  6. python复杂网络库networkx:算法

    http://blog.csdn.net/pipisorry/article/details/54020333 Networks算法Algorithms 最短路径Shortest Paths shor ...

  7. R语言构建蛋白质网络并实现GN算法

    目录 R语言构建蛋白质网络并实现GN算法 1.蛋白质网络的构建 2.生物网络的模块发现方法 3.模块发现方法实现和图形展示 4.附录:igraph中常用函数 参考链接 R语言构建蛋白质网络并实现GN算 ...

  8. 基于DFA敏感词查询的算法简析

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 项目中需要对敏感词做一个过滤,首先有几个方案可以选择: a.直 ...

  9. <<一种基于δ函数的图象边缘检测算法>>一文算法的实现。

    原始论文下载: 一种基于δ函数的图象边缘检测算法. 这篇论文读起来感觉不像现在的很多论文,废话一大堆,而是直入主题,反倒使人觉得文章的前后跳跃有点大,不过算法的原理已经讲的清晰了.     一.原理 ...

随机推荐

  1. search(16)- elastic4s-内嵌文件:nested and join

    从SQL领域来的用户,对于ES的文件关系维护方式会感到很不习惯.毕竟,ES是分布式数据库只能高效处理独个扁平类型文件,无法支持关系式数据库那样的文件拼接.但是,任何数据库应用都无法避免树型文件关系,因 ...

  2. Nginx判断客户端实现301跳转

    set $a 0; #第一个条件 if ($uri !~* /(.*).php(.*)){ set $a 1; } #第二个条件 if ($http_user_agent ~* (up.UCBrows ...

  3. PIC单片机的XC8

    用MPLAB IDE 对pic16f887进行编程的时候需要配置字 用__CONFIG(0xc3e4);__CONFIG(0xffff); 就可以 但是用MPLAB X IDE 对pic16f887编 ...

  4. Java中的集合(十四) Map的实现类LinkedHashMap

    Java中的集合(十四) Map的实现类LinkedHashMap 一.LinkedHashMap的简介 LinkedHashMap是Map接口的实现类,继承了HashMap,它通过重写父类相关的方法 ...

  5. GNS3--cisco路由器NAT配置

    一.基础 Cisco路由器配置中NAT的主要命令: 静态NAT: 1.指定NAT内部接口 在内网相应接口的接口配置模式下执行:ip nat inside 2.指定NAT外部接口 在外网相应接口的接口配 ...

  6. Rocket - diplomacy - LazyModule

    https://mp.weixin.qq.com/s/FBU8fE4u9-UK6mRGQOlvbQ   介绍LazyModule的实现.     ​​   1. children   LazyModu ...

  7. Linux磁盘与文件系统管理概要

    Linux磁盘与文件系统管理 硬盘组成与分区 硬盘组成 圆形的盘片(主要记录数据) 机械手臂与磁头(可读取盘片上的数据) 主轴马达,转动盘片,让机械手臂的磁头在盘片上读取数据 扇区(Sector)为最 ...

  8. Java实现 蓝桥杯 算法提高 周期字串

    算法提高 周期字串 时间限制:1.0s 内存限制:256.0MB 问题描述 右右喜欢听故事,但是右右的妈妈总是讲一些"从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事,讲的什么呢?从前有 ...

  9. Java实现 蓝桥杯 算法提高 上帝造题五分钟

    算法提高 上帝造题五分钟 时间限制:1.0s 内存限制:256.0MB 问题描述 第一分钟,上帝说:要有题.于是就有了L,Y,M,C 第二分钟,LYC说:要有向量.于是就有了长度为n写满随机整数的向量 ...

  10. Java实现 LeetCode 443 压缩字符串

    443. 压缩字符串 给定一组字符,使用原地算法将其压缩. 压缩后的长度必须始终小于或等于原数组长度. 数组的每个元素应该是长度为1 的字符(不是 int 整数类型). 在完成原地修改输入数组后,返回 ...