神经网络架构搜索(NAS)基础
网络架构搜索(NAS)已成为机器学习领域的热门课题。商业服务(如谷歌的AutoML)和开源库(如Auto-Keras[1])使NAS可用于更广泛的机器学习环境。在这篇博客文章中,我们主要探讨NAS的思想和方法,希望可以帮助读者更好地理解该领域并发现实时应用程序的可能性。
什么是网络架构搜索(NAS)?
现代的深度神经网络有时会包含多种类型的层,而且这些层不止一个[2]。Skip connections[2]和子模块方法[3]也被用来促进模型的收敛,它们对可能形成的模型体系结构的空间没有限制。目前大多数的深度神经网络结构都是根据人类经验建立起来的,这种方式需要一个漫长而繁琐的试错过程。NAS试图在不需要人工干预的情况下能够针对特定深度学习问题检测出有效架构。
一般来说,NAS可以分为三个维度——搜索空间、搜索策略和性能评估策略[4]。
搜索空间:
搜索空间决定了哪些神经结构要被评估。好的搜索空间可以降低寻找合适神经结构的复杂性。一般来说,搜索空间要有约束,并且还要具有灵活性。约束消除了非直观的神经结构,可以创建有限的空间进行搜索。搜索空间包含了能够由NAS方法生成的每一个架构设计(通常是无限多的)。搜索空间中可能涉及堆叠在一起的所有层配置集(图2a)或包含跳过连接的更复杂的体系结构(图2b)。为了减少搜索空间的维数,可以进行子模块的设计。随后子模块堆叠在一起就可以生成模型架构(图2c)。
性能评估策略
性能评估策略将提供一个数字,这个数字可以反映搜索空间中所有结构的效率。当一个参考数据集在预先定义的训练轮次数上先进行训练,再进行测试时,通常就可以得到模型结构的准确性。性能评估技术通常还会考虑一些因素,比如训练或推理的计算难度。在任何情况下,评估结构性能的计算成本都很高。
搜索策略
NAS实际上依赖于搜索策略。它可以识别出好的结构,对好的结构进行性能评估,这样可以避免测试不好的架构。在接下来的文章中,我们将讨论许多搜索策略,包括随机和网格搜索、基于梯度的策略、进化算法和强化学习策略。
网格搜索遵循系统搜索。相比之下,随机搜索则是从搜索空间中随机选取结构,并通过性能估计策略来测试相应结构的准确性。这两种方法对于最小搜索区域都是可行的,特别是当问题涉及到调优少量超参数时(随机搜索通常优于网格搜索)。
作为一个优化问题,NAS可以通过基于梯度的搜索[5]很容易地表述出来。通常,NAS优化的目标是将验证的准确性最大化。由于NAS使用离散的搜索空间,因此实现梯度搜索具有很大的挑战性。因此,它要求将离散的空间结构转化为连续的空间结构,并从连续的空间表达中衍生出结构。根据变换后的连续空间,NAS就可以从优化目标中得到梯度。梯度搜索NAS的理论基础是比较独特的。同时也很难去证明全局最优收敛。但是,该方法在实际应用中展现出了良好的搜索效果。
进化算法是在生物进化问题中获得的灵感。模型架构适用于的个体能够产生后代(其他架构)或死亡并且这些个体能够被排除在种群之外。演进的NAS算法(NASNet architecture[6])通过以下流程派生(图3)。
I.随机体系结构创建N个模型的初始总体。每个个体的输出(即架构)都根据性能评估策略进行评估。
II.选择表现最佳的个体作为父母。可以为具有诱导“突变”功能的新一代体系结构制作各自的父代副本,或者它们可能来自父代组合。性能评价策略评估后代的表现。添加或删除层、添加或删除连接、更改层大小或其他超参数等操作可能包含在可能的突变列表中。
III.有N个结构被选择移除,这些结构可能是总体中最坏的个体或较老的个体。后代会替代被移除的结构并重新启动循环。
进化算法揭示了有效的结果,并产生了最先进的模型[7]。
基于强化学习的NAS方法近年来得到了广泛的应用。一个网络控制器,通常是一个递归神经网络(RNN),可以用来从具有特定概率分布的搜索域中采样。使用性能评估策略形成并评估采样架构。由此产生的性能被用作更新控制器网络属性的奖励(图4)。此循环在超时或收敛发生之前迭代。
强化学习能够构建超越基于流行基准数据集的手工模型的网络结构,类似于进化算法。
结论
NAS成功地建立了更深层次的神经网络体系结构,其精度超过了人工构建的结构。利用进化算法和强化学习,特别是在图像分类任务领域,NAS生成的最新体系结构得到了发展。这种方法是昂贵的,因为在NAS产生成功的结果之前,需要对成百上千个特定的深层神经网络进行训练和测试。NAS方法对于大多数实际应用程序来说太贵了。因此,需要进一步的研究以使NAS更具通用性。
参考文献
[1] H. Jin, Q. Song and X. Hu, Auto-Keras: Efficient Neural Architecture Search with Network Morphism, arXiv, 2018.
[2] K. He, X. Zhang, S. Ren and J. Sun, Deep Residual Learning for Image Recognition, arXiv, 2015.
[3] C. Szegedy et al., Going Deeper with Convolutions, arXiv, 2014.
[4] T. Elsken, J.H. Metzen and F. Hutter, Neural Architecture Search: A Survey, Journal of Machine Learning Research, 2019.
[5] H. Liu, K. Simonyan and Y. Yang, DARTS: Differentiable Architecture Search, arXiv, 2019.
[6] B. Zoph, V. Vasudevan, J. Shlens and Q.V. Le, Learning Transferable Architectures for Scalable Image Recognition, Proceedings Conference on Computer Vision and Pattern Recognition, 2018.
[7] E. Real et al., Large-scale evolution of image classifiers, Proceedings of the 34th International Conference on Machine Learning, 2017.
[8] B. Zoph and Q.V. Le, Neural architecture search with reinforcement learning, arXiv 2016.
作者:Arjun Ghosh
deephub翻译组:钱三一
神经网络架构搜索(NAS)基础相关推荐
- 单机玩转神经网络架构搜索(NAS) - Auto-Keras学习笔记
介绍 AutoML这个topic在机器学习领域越来越火,新的研究成果也是层出不穷.在网络架构(NAS),模型压缩(AMC),数据增强(AutoAugment),优化器设计(Neural Optimiz ...
- ICCV NAS Workshop 最佳论文提名:通过层级掩码实现高效神经网络架构搜索
点击我爱计算机视觉标星,更快获取CVML新技术 机器之心发布 作者:Faen Zhang.Mi Zhang等 本文介绍了由创新奇智公司联合密歇根州立大学合作开发的高效神经网络架构搜索算法 HM-NAS ...
- 【CVPR 2020】神经网络架构搜索(NAS)论文和代码汇总
关注上方"深度学习技术前沿",选择"星标公众号", 技术干货,第一时间送达! [导读]今天给大家整理了CVPR2020录用的几篇神经网络架构搜索方面的论文,神经 ...
- 自动化机器学习(三)神经网络架构搜索综述(NAS)简述
文章目录 技术介绍 简介 技术栈 实现 数据 数据读取 创建模型并训练 模型预测与评估 模型的导出 技术介绍 简介 自动化机器学习就是能够自动建立机器学习模型的方法,其主要包含三个方面:方面一,超参数 ...
- 神经网络架构搜索(NAS)综述 | 附AutoML资料推荐
本文是一篇神经网络架构搜索综述文章,从 Search Space.Search Strategy.Performance Estimation Strategy 三个方面对架构搜索的工作进行了综述,几 ...
- 神经网络架构搜索(NAS)综述
在阅读近期的CVPR2019时,看到一篇比较亮眼的图像分割论文.来自斯坦福 Li Fei-Fei组(Auto-deeplab),关于利用NAS策略进行图像分割,达到了较优的水平,仅仅比deeplabv ...
- 神经架构搜索(NAS)2020最新综述:挑战与解决方案
终于把这篇NAS最新的综述整理的survey放了上来,文件比较大,内容比较多.这个NAS的survey是A Comprehensive Survey of Neural Architecture Se ...
- AutoML系列 | 03-神经网络架构搜索(NAS)综述
本文是对 "Neural Architecture Search: A Survey"的翻译,这篇Paper 很好的总结分析了 NAS 这一领域的研究进展. 摘要 在过去几年中,深 ...
- 卷积神经网络原理_怎样设计最优的卷积神经网络架构?| NAS原理剖析
虽然,深度学习在近几年发展迅速.但是,关于如何才能设计出最优的卷积神经网络架构这个问题仍在处于探索阶段. 其中一大部分原因是因为当前那些取得成功的神经网络的架构设计原理仍然是一个黑盒.虽然我们有着关于 ...
最新文章
- python人工智能-Python和人工智能的关系,看完你就明白了!
- 校验json格式_接口的登录状态校验以及JWT
- 智能优化算法:静电放电算法-附代码
- Algorithm——A*路径规划算法原理详解
- Tushare介绍和入门级实践(2)——使用tushare接口获取沪深300成分股的财报数据并输出到本地
- pos机Project v1.1
- c语言怎么把数字倒过来_如何用C语言将一个数字倒序过来
- 北斗系统基础知识2(北斗一代定位原理详述)
- 申万一级行业指数是什么?
- 一键解锁,2022阿里顶会创新技术前沿进展
- S3C2440之IIC
- python 对比两张图片是否相同
- 怎样使用GetAsyncKeyState()
- abp 链接本地mysql_ABP Vnext使用mysql数据库
- 常见数据结构和算法实现(排序/查找/数组/链表/栈/队列/树/递归/海量数据处理/图/位图/Java版数据结构)
- 服务器主板cpld芯片作用,CPLD的工作原理是什么呢?
- beecloud对接——微信支付
- 采购管理主要流程有哪些?
- 【CF53E】 Dead Ends
- 解决:laydate时间控件与谷歌浏览器兼容问题
热门文章
- 无法读取xml头部dtd
- Android动画案例(一) 帧动画
- 基于Mycat的多租户分库方案
- 【21届软件创新实验室暑假集训】后端赛道大作业
- 七周学会数据分析|良心教程 第三周
- screentogif能录声音吗_你真的懂你的手机吗?8大手机实用功能公开!不看后悔
- scp 从linux上传下载文件
- 能升级鸿蒙系统最便宜手机,这4部手机可升级至华为鸿蒙系统 网友:终于等到了...
- mysql 电话模糊查询_mysql中的模糊查询
- uos应用_统信UOS桌面操作系统V20专业版正式发布:大量自研应用