炼数成金 门户 商业智能 深度学习 查看内容

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

2018-12-17 13:01| 发布者: 炼数成金_小数| 查看: 16943| 评论: 0|原作者: Fei Tian|来自: AI研习社

摘要: 如果你是一名深度学习实践者,你可能发现自己经常会遇到同一个关键问题:我应该为现在的任务选择哪种神经网络架构?这个决定取决于多种因素以及很多其他问题的答案。我应该给这一层选择什么操作----卷积,深度可分卷 ...

网络 工具 算法 架构 神经网络

如果你是一名深度学习实践者,你可能发现自己经常会遇到同一个关键问题:我应该为现在的任务选择哪种神经网络架构?这个决定取决于多种因素以及很多其他问题的答案。我应该给这一层选择什么操作----卷积,深度可分卷积,或者较大池化?卷积层应该选多大的核?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`.通过不断这样更新架构。我们得到了最终的架构,它应该有较好的表现。

 图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任务搜索架构,比如神经机器翻译。同样重要的,更简单高效的自动神经架构设计,可以使机器学习技术为各阶段的人所用。


表1:CIFAR-10分类结果


表2:PTB语言模型结果

声明:文章收集于网络,如有侵权,请联系小编及时处理,谢谢!

欢迎加入本站公开兴趣群
商业智能与数据分析群
兴趣范围包括各种让数据产生价值的办法,实际应用案例分享与讨论,分析工具,ETL工具,数据仓库,数据挖掘工具,报表系统等全方位知识
QQ群:81035754

鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

热门频道

  • 大数据
  • 商业智能
  • 量化投资
  • 科学探索
  • 创业

即将开课

 

GMT+8, 2019-3-20 07:48 , Processed in 0.114006 second(s), 24 queries .