当前位置: 首页 > news >正文

[论文阅读] Neural Architecture Search: Insights from 1000 Papers

题目:Neural Architecture Search: Insights from 1000 Papers
链接:https://arxiv.org/pdf/2301.08727

1. Introduction

NAS在众多领域有着广泛应用,近两年来有超过1000篇相关文章。

1.1 A Brief History of NAS and Relation to Other Fields

神经网络结构搜索(neural architecture search, NAS)起源于自动机器学习(automated machine learning,AutoML)。AutoML是一种自动化学习框架,包括数据清洗、特征工程与选择、参数与结构搜索等一些列流程。
NAS可以被视为参数优化(hyperparameter optimization, HPO)的一个子集。与HPO不同,NAS只优化与模型相关的参数。

一般而言,学习率、batch size等通用参数不在NAS的考虑范围内

HPO优化的参数,(例如学习率、batch size等),这些参数通常是独立的、互不相关的。NAS优化的参数,往往是互相关联的。

现有NAS主要包括强化方法(reinforcement learning),进化方法(evolutionary algorithms),贝叶斯优化方法(Bayesian optimization)和权重共享的技术(?weight sharing)。近年来,最为流行的是one-shot类方法,相比于黑盒优化模型,此类方法带来了显著加速。

此外,近年来领域内较为重要的是出现了NAS-Bench-101这样的评价基准,使得NAS方法的性能可以相对公平地比较。

1.2 Background and Definitions

  • Search space: 所有可供搜索的架构的集合
  • Search strategy: 优化策略,主要包含black-bos optimization & onr-shot optimization
  • Performance estimation strategy: 快速估计架构表现的策略(通常避免完整的训练)
    关于NAS的形式化定义:

    其中 A A A是搜素空间, w w w是参数, L t r a i n L_{train} Ltrain是训练的loss, L v a l L_{val} Lval是验证的loss。

这种形式被称为 Bi-level 优化模型

2. Search Spaces

不同类型的搜索空间如下表:
在这里插入图片描述

2.1 Terminology

搜索空间的术语:

  • Operation/primitive: 最小原子单元,通常是激活函数、操作函数和正则函数组成的三元组
  • Layer:与operation含义接近,但通常是指一些广为人知的operation组合
  • Motif:由一些operation构成,介于cell和operation之间
  • Block/Module:一系列layer的组合(通常是是序列的形式拼在一起的)
  • Cell:包含一些operation(通常是以图的形式拼在一起的),以及这些operation之间的有向图

3. Black-Box Optimization Techniques

包括强化方法、进化方法、贝叶斯优化方法、蒙特卡洛树方法等。由于需要训练很多独立的、缺少关联的框架,黑盒方法往往比one-shot方法消耗更多资源。然而,黑盒方法有更加简单,设计方便,利于并行化等优点。

3.1 Baselines

  • random search
  • random sampling

3.2 Reinforcement Learning

此类方法对GPU和时间的消耗非常大。

3.3 Evolutionary and Genetic Algorithms

进化算法改进的核心是对“更广阔地探寻搜索空间”和“更深入地开发现有最佳区域”之间的平衡。

原文:These methods trade off exploration vs. exploiting the best region found so far

比较值得关注的是regularized evolution,修改了进化的淘汰条件。一般进化算法是给最好的种子机会,这样会较快陷入局部最优。regularized evolution提出每次淘汰较老的,给较新的种子机会,这样有利于对全局最优的探索。

3.4 Bayesian Optimization

贝叶斯优化的两大核心:

  1. 设计概率代理函数(building a probabilistic surrogate to model the unknown objective based on past observations)
  2. 设计估值函数(defining an acquisition function to balance the exploration and exploitation during the search)

3.5 Monte Carlo Tree Search

核心:递归采用

4. One-Shot Techniques

One-shot方法的主要目的是:避免每次对搜索到的结构从头开始训练,以减少时间/计算资源的消耗。
One-shot的主要实现方式有两种:

  1. 设计一个hypernetwork,产生不同模型的weights
  2. 设计一个supernetwork,所有可能的架构都是来自supernetwork的一个子集。因而,只需要对这个supernework进行适当的训练即可。
    在这里插入图片描述
    在这里插入图片描述

4.1 Non-Differentiable Supernet-Based Methods

非梯度的方法主要有两种形式:

  1. 拆解supernet的训练和结构搜索,即先训练supernet,后做black-box的搜索
  2. 两者同时进行

4.2 Differentiable Supernet-Based Methods

这是NAS中发展最为繁荣的一种形式
必读:DARTS (Differentiable Architecture Search) ,是划时代的工作

在这里插入图片描述
针对DARTS有如下方面的改进:

  1. Rank Disorder:one-shot方法的主要假设是:使用超级网络评估的架构排名与独立训练架构所获得的排名相对一致,当这一条不满足的时候,就会出现Rank Disorder现象。SGAS、XNAS等是针对这一方面的改进。
  2. Operation Biases:一些工作表明,NAS是存在对不同operation的偏好的不同,比如更喜欢使用跳跃连接(skip connection)。DARTS-PT,FairDARTS是对这一方面的改进。
  3. Poor Test Generalization:对泛化性的改进包括:Robust-DARTS
  4. High Memory Consumption:PC-DARTS和ProxylessNAS等是对空间开销的优化。

4.3 Hypernetworks

主要包括一些用直接生成weights 的方法,与HPO类似。

5. Speedup Techniques

5.1 Performance Prediction

为了避免将每一个搜索到的结构都训练一遍,可以设计一个预测模型,对已知结构的训练结果进行预测,然后筛选出可能有较好表现的少量模型进行训练。

在这里插入图片描述

5.2 Multi-Fidelity Algorithms

5.3 Meta-Learning

本质是利用旧有实验数据,可以和DARTS等方法结合。

5.4 Weight Inheritance and Network Morphisms

通过参数复用/共享来节约训练成本。

其他

余下部分包含具体应用、衡量基准、未来方向等,主要涉及具体实现。本文主要关注理论方法,对后续内容不再进行详细解读。推荐读者继续阅读原文,https://arxiv.org/pdf/2301.08727。

http://www.lqws.cn/news/582805.html

相关文章:

  • Apache Seata < 2.3.0 raft反序列化漏洞
  • Clickhouse源码分析-TTL执行流程
  • 【Debian】1- 安装Debian到物理主机
  • 解决 VS Code Remote-SSH “无法安装 VS Code 服务器“ 错误的完整指南
  • 【RTSP从零实践】3、实现最简单的传输H264的RTSP服务器
  • 刚体模拟的核心流程:从物理建模到计算执行的全步骤解析
  • PCL点云库入门(第21讲)——PCL库点云特征之RSD特征描述Radius-based Surface Descriptor(RSD)
  • java JNDI高版本绕过 工具介绍 自动化bypass
  • jvm的调优命令jstack打印堆栈信息阐述以及调优
  • Android 四大组件
  • [6-02-01].第05节:配置文件 - YAML配置文件语法
  • xml.etree.ElementTree.ParseError: parsing finished: 错误原因定位
  • [创业之路-453]:企业经营层 - 红海思维 VS 蓝海思维全方位比较
  • vue中表尾合计
  • python训练day45 Tensorborad使用介绍
  • 【数据挖掘】数据挖掘综合案例—银行精准营销
  • UserWarning: Module “zipline.assets“ not found解决方法
  • 自由学习记录(65)
  • ThreadLocal、InheritableThreadLocal与TransmittableThreadLocal深度解析
  • 【Linux】网络基础
  • Git 常用命令、常用错误的总结
  • Kotlin空安全与异常处理
  • 国内Oracle大师认证
  • 深入比较 Gin 与 Beego:Go Web 框架的两大选择
  • 《燕云十六声》全栈技术架构深度解析
  • DFMEA检查表模板下载
  • js代码03
  • 第三十五章 I2S——音频传输接口
  • Reactor操作符的共享与复用
  • 回写缓存为何需要脏位?