神经架构优化(NAO):新的神经架构搜索(NAS)算法-阿里云开发者社区

开发者社区> 雷锋网> 正文

神经架构优化(NAO):新的神经架构搜索(NAS)算法

简介: 如果你是一名深度学习实践者,你可能发现自己经常会遇到同一个关键问题:我应该为现在的任务选择哪种神经网络架构?
+关注继续查看
TB1cQkhwAvoK1RjSZFwXXciCFXa.jpg

本文为 AI 研习社编译的技术博客,原标题 :

Discovering the best neural architectures in the continuous space | Microsoft Research

作者 |  Fei Tian

翻译 | 孙稚昊2

校对 | 酱番梨       整理 | 菠萝妹

原文链接:

https://www.microsoft.com/en-us/research/blog/discovering-the-best-neural-architectures-in-the-continuous-space/

TB1zwMpwAvoK1RjSZFDXXXY3pXa.jpg

如果你是一名深度学习实践者,你可能发现自己经常会遇到同一个关键问题:我应该为现在的任务选择哪种神经网络架构?这个决定取决于多种因素以及很多其他问题的答案。我应该给这一层选择什么操作----卷积,深度可分卷积,或者最大池化?卷积层应该选多大的核?3*3 还是 1*1 ? 还有哪个节点该拿来作为循环神经网络(RNN)节点的输入?这些决定对架构的成功至关重要。如果你既是神经网络建模也是手头特定任务的专家,你可能很容易找到答案。但如果你在某一方面的经验有限呢?

这种情况下,你可能会尝试神经架构搜索(NAS),这是一种自动的过程,另一个机器学习算法根据以往观察到的架构和他们的表现,来指导创建更好的架构。多亏了NAS,我们可以发现在被广泛使用的公开数据集,比如 ImageNet, 上表现最好的神经网络架构,且不需要人工干预。

然而现存的自动设计神经网络架构的方法 -- 通常基于增强学习或者进化算法 -- 需要在指数级增长的离散空间中做搜索,我的同伴和我在微软亚洲研究院机器学习组 设计了一种简化的,更有效的方法,基于连续空间内的优化。有了我们的新方法,叫做 神经架构优化 (NAO),我们利用基于梯度的方法在更紧密的空间中做优化。这项工作参加了今年的 神经信息处理系统会议 (NeurIPS)

  NAO的关键组件

驱动NAO进行在连续空间中基于梯度的优化,是靠以下三个组件:

一个把离散的神经网络架构转化为连续值向量的编码器,也叫嵌入模型

一个结果预估函数,它把向量作为输入,并产生一个数值作为架构的表现 (比如,准确率)

一个把连续值向量恢复成网络架构的解码器

这三个组件是一起训练的。我们完成训练后,从一个架构x 开始,我们用编码器E把x 转化为向量表示 ex , 再通过结果预估函数f给的梯度方向,把ex 转化为新的嵌入 ex` (如绿线表示)。既然我们在做梯度上升,只要步长够小,我们就能保证 f(ex`) >= f(ex)。最后,我们用decoder D把ex`转化为离散的架构 x`。这样,我们得到了一个可能更好的架构 x`.通过不断这样更新架构。我们得到了最终的架构,它应该有最好的表现。

TB1wLMfwwTqK1RjSZPhXXXfOFXa.jpg

 图1: NAO的流程

  有有限的资源达到好的结果

我们做了后续的实验来验证NAO自动发现最好神经架构的有效性。表1(如下)展示了不同卷积神经网络(CNN)架构在CIFAR-10图片分类数据集上的表现,这些架构由不同 NAS 算法生成。从表中我们可以看出,用NAO发现的网络得到了最低的错误率。另外,将NAO和权重共享机制结合起来(叫做 NAO-WS),我们得到了显著的搜索速度提升。权重共享可以降低网络架构搜索的计算成本,它通过让多种网络结构共用同一份参数来做到。在我们的实验中,我们用一块图像处理器(GPU),在7个小时内得到了一个CNN架构,达到了3.53的错误率。通过权重共享,我们不必从头训练其它不同的神经网络。

表2(如下)总结了PTB语言模型的结果。越低的Perplexity表示更好的表现。又一次,我们用NAO来找到的RNN架构取得了好结果,而且只用有限的计算资源。

通过在连续空间上的优化,NAO得到了更好的结果,相比于现有的NAS方法,他们直接在离散架构空间中搜索。至于未来的应用,我们计划用NAO来为其它重要的AI任务搜索架构,比如神经机器翻译。同样重要的,更简单高效的自动神经架构设计,可以使机器学习技术为各阶段的人所用。

TB1Lq3nwrvpK1RjSZFqXXcXUVXa.png

表1:CIFAR-10分类结果

TB1YfMfwwTqK1RjSZPhXXXfOFXa.png

表2:PTB语言模型结果

想要继续查看该篇文章相关链接和参考文献?

长按链接点击打开或点击【神经架构优化(NAO):新的神经架构搜索(NAS)算法】:

https://ai.yanxishe.com/page/TextTranslation/1335

AI研习社每日更新精彩内容,观看更多精彩内容:雷锋网(公众号:雷锋网)雷锋网雷锋网

五个很厉害的 CNN 架构

一文带你读懂计算机视觉

用Pytorch做深度学习(第一部分)

Python高级技巧:用一行代码减少一半内存占用

等你来译:

(Python)3D人脸处理工具face3d

25个能放到数据湖中的语音研究数据集

如何在数据科学面试中脱颖而出 

Apache Spark SQL以及DataFrame的基本概念,架构以及使用案例

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
粒子群优化算法(PSO)之基于离散化的特征选择(FS)(一)
欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习、深度学习的知识! 作者:Geppetto 在机器学习中,离散化(Discretization)和特征选择(Feature Selection,FS)是预处理数据的重要技术,提高了算法在高维数据上的性能。
1195 0
【云周刊】 第210期:阿里巴巴复杂搜索系统的可靠性优化之路
本期头条 欢迎关注云周刊 阿里巴巴复杂搜索系统的可靠性优化之路 搜索引擎是电商平台成交链路的核心环节,搜索引擎的高可用直接影响成交效率。闲鱼搜索引擎作为闲鱼关键系统,复杂度和系统体量都非常高,再加上闲鱼所有导购场景都依靠搜索赋能,搜索服务的稳定可靠成为了闲鱼大部分业务场景可用能力的衡量标准;如何保障搜索服务的稳定和高可用成为了极大的挑战。
3770 0
对pos搜索函数的研究以及优化思路···
代码摘自delphi的Pos函数。。。总的来说,若我理解无误的话,该函数才用的搜索机制并不是非常高明。
603 0
如何优化大规模推荐?下一代算法技术JTM来了 | 开发者必读(077期)
最炫的技术新知、最热门的大咖公开课、最有趣的开发者活动、最实用的工具干货,就在《开发者必读》!
372 0
人工智能: 自动寻路算法实现(二、深度优先搜索)
前言 本篇文章是机器人自动寻路算法实现的第二章。我们要讨论的是一个在一个M×N的格子的房间中,有若干格子里有灰尘,有若干格子里有障碍物,而我们的扫地机器人则是要在不经过障碍物格子的前提下清理掉房间内的灰尘。
1501 0
阿里巴巴达摩院夺得首届“马栏山杯”国际音视频算法优化大赛【画质损伤修复赛道】冠军
首届“马栏山杯”国际音视频算法优化大赛颁奖盛典暨高峰论坛于9月8日举行。这场由中国工业与应用数学学会、中国网络社会组织联合会作为指导单位,湖南省互联网信息办公室、湖南省科学技术协会主办,中国(长沙)马栏山视频文创产业园、芒果TV承办的算法盛事,云集了全球优秀的算法精英。一大批来自高校、科研院所、互联网企业才子才女们,共1294支队伍报名参赛,其中北京大学34支,清华大学25支,麻省理工学院等国外顶级名校37支。
506 0
应用容器化优化指南 - Golang篇
前言 随着容器技术的兴起,越来越多不同类型的应用开始使用容器的方式进行交付。Golang作为服务器端非常热门的一门语言同时也是容器技术的主要编写语言备受关注。那么将一个Golang应用进行容器化的时候,需要注意哪些事情,在出现问题时该如何进行调优和诊断呢? 先谈谈Golang本身的设计 Golang是谷歌发布的第二款开源编程语言。
3255 0
+关注
516
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载