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

本文涉及的产品
文件存储 NAS,50GB 3个月
简介: 如果你是一名深度学习实践者,你可能发现自己经常会遇到同一个关键问题:我应该为现在的任务选择哪种神经网络架构?
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的基本概念,架构以及使用案例

相关实践学习
基于ECS和NAS搭建个人网盘
本场景主要介绍如何基于ECS和NAS快速搭建个人网盘。
阿里云文件存储 NAS 使用教程
阿里云文件存储(Network Attached Storage,简称NAS)是面向阿里云ECS实例、HPC和Docker的文件存储服务,提供标准的文件访问协议,用户无需对现有应用做任何修改,即可使用具备无限容量及性能扩展、单一命名空间、多共享、高可靠和高可用等特性的分布式文件系统。 产品详情:https://www.aliyun.com/product/nas
目录
相关文章
|
12天前
|
算法 调度
基于遗传模拟退火混合优化算法的车间作业最优调度matlab仿真,输出甘特图
车间作业调度问题(JSSP)通过遗传算法(GA)和模拟退火算法(SA)优化多个作业在并行工作中心上的加工顺序和时间,以最小化总完成时间和机器闲置时间。MATLAB2022a版本运行测试,展示了有效性和可行性。核心程序采用作业列表表示法,结合遗传操作和模拟退火过程,提高算法性能。
|
13天前
|
人工智能 算法 大数据
Linux内核中的调度算法演变:从O(1)到CFS的优化之旅###
本文深入探讨了Linux操作系统内核中进程调度算法的发展历程,聚焦于O(1)调度器向完全公平调度器(CFS)的转变。不同于传统摘要对研究背景、方法、结果和结论的概述,本文创新性地采用“技术演进时间线”的形式,简明扼要地勾勒出这一转变背后的关键技术里程碑,旨在为读者提供一个清晰的历史脉络,引领其深入了解Linux调度机制的革新之路。 ###
|
14天前
|
算法 搜索推荐 数据库
二分搜索:高效的查找算法
【10月更文挑战第29天】通过对二分搜索的深入研究和应用,我们可以不断挖掘其潜力,为各种复杂问题提供高效的解决方案。相信在未来的科技发展中,二分搜索将继续发挥着重要的作用,为我们的生活和工作带来更多的便利和创新。
23 1
|
23天前
|
人工智能 算法 数据安全/隐私保护
基于遗传优化的SVD水印嵌入提取算法matlab仿真
该算法基于遗传优化的SVD水印嵌入与提取技术,通过遗传算法优化水印嵌入参数,提高水印的鲁棒性和隐蔽性。在MATLAB2022a环境下测试,展示了优化前后的性能对比及不同干扰下的水印提取效果。核心程序实现了SVD分解、遗传算法流程及其参数优化,有效提升了水印技术的应用价值。
|
22天前
|
存储 缓存 算法
优化轮询算法以提高资源分配的效率
【10月更文挑战第13天】通过以上这些优化措施,可以在一定程度上提高轮询算法的资源分配效率,使其更好地适应不同的应用场景和需求。但需要注意的是,优化策略的选择和实施需要根据具体情况进行详细的分析和评估,以确保优化效果的最大化。
|
24天前
|
并行计算 算法 IDE
【灵码助力Cuda算法分析】分析共享内存的矩阵乘法优化
本文介绍了如何利用通义灵码在Visual Studio 2022中对基于CUDA的共享内存矩阵乘法优化代码进行深入分析。文章从整体程序结构入手,逐步深入到线程调度、矩阵分块、循环展开等关键细节,最后通过带入具体值的方式进一步解析复杂循环逻辑,展示了通义灵码在辅助理解和优化CUDA编程中的强大功能。
|
24天前
|
存储 缓存 算法
前端算法:优化与实战技巧的深度探索
【10月更文挑战第21天】前端算法:优化与实战技巧的深度探索
20 1
|
25天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化CNN-LSTM网络的数据分类识别算法matlab仿真
本项目展示了基于贝叶斯优化(BO)的CNN-LSTM网络在数据分类中的应用。通过MATLAB 2022a实现,优化前后效果对比明显。核心代码附带中文注释和操作视频,涵盖BO、CNN、LSTM理论,特别是BO优化CNN-LSTM网络的batchsize和学习率,显著提升模型性能。
|
25天前
|
数据采集 缓存 算法
算法优化的常见策略有哪些
【10月更文挑战第20天】算法优化的常见策略有哪些
|
25天前
|
缓存 分布式计算 监控
算法优化:提升程序性能的艺术
【10月更文挑战第20天】算法优化:提升程序性能的艺术

热门文章

最新文章