NAS 新方法:用 Petridish 自动搜索最佳神经网络结构
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NAS 新方法:用 Petridish 自动搜索最佳神经网络结构相关的知识,希望对你有一定的参考价值。
参考技术A 更多信息请查看原文:https://www.yanxishe.com/TextTranslation/2358?from=jianshu0318神经架构搜索(NAS)是现代深度学习技术中最热门的趋势之一。从概念上讲,NAS方法专注于为给定问题和数据集找到合适的神经网络体系结构。可以将其视为使机器学习架构本身成为机器学习问题。近年来,NAS技术的数量激增,正在侵入主流的深度学习框架和平台。但是,第一代NAS模型在将经过一个域测试的神经网络改编为另一个域时遇到了许多挑战。因此,寻找新的NAS技术可能会继续推动该领域的新创新。最近, Microsoft Research推出了Petridish ,这是一种NAS算法,用于优化神经网络体系结构的选择。
之所以存在NAS,是因为设计神经网络的过程非常消耗资源。在当前的深度学习生态系统中,依赖于知名的,性能最高的网络,在您的数据集看起来可能与之前已证明的网络所遇到的一切完全不同的空间中,提供的保证很少。在许多情况下,NAS方法通常需要数百个GPU天才能找到好的架构,并且几乎比随机搜索更好。机器学习中还有一个类似于NAS技术挑战的问题:特征选择。
就像NAS方法一样,特征选择算法需要为给定特定数据集的模型提取相关特征。显然,选择特征比神经网络体系结构要简单得多,但是特征选择技术的许多原理为Petridish团队提供了灵感。
NAS简史
鉴于NAS方法最近很流行,许多人可能认为NAS是一门新兴学科。毫无疑问,自2016年以来,NAS经历了复兴, 谷歌发表了有关强化学习的著名NAS论文 。但是,其许多起源可以追溯到1980年代后期。 NAS最早的论文之一是1988年的“ 用于识别问题的自组织神经网络 ”。从那里开始,这个领域看到了一些出版物,概述了有趣的技术,但是直到Google推动NAS引起了主流机器学习社区的关注。如果您对NAS方法的发布历史感兴趣, AutoML Freiburg-Hannover网站 将提供迄今为止最完整的汇编之一。
NAS的两种类型:前向搜索与后向搜索
探索NAS空间时,有两种基本类型的技术:向后搜索和正向搜索。向后搜索方法是实现NAS方法的最常用方法。从概念上讲,向后搜索NAS方法从一个超级图开始,该图是所有可能架构的结合,并学会通过梯度下降或强化学习逐步降低不必要的边缘的权重。尽管此类方法极大地减少了NAS的搜索时间,但它们在首先需要创建人名图需要人员领域知识的情况下具有主要局限性。
前向搜索NAS方法试图将神经网络体系结构从小型扩展到大型。这种方法类似于深度学习模型中特征选择算法的许多原理。与后向方法不同,前向方法不需要预先指定有限的搜索空间,因此在从现有模型中进行热启动以及进行终生学习时,前向方法更加通用并且更易于使用。
培养皿
Petridish是一种前向搜索NAS方法,受特征选择和梯度增强技术的启发。该算法的工作原理是创建一个模型库以供选择,作为其搜索输出,然后合并停止前进和停止梯度层以更有效地识别用于构建该画廊的有益候选者,并使用异步训练。
Petridish算法可以分为三个基本阶段:
阶段0:Petridish从某些父模型开始,这是一个很小的人为编写的具有一到两层的模型,或者是领域专家已经在数据集中找到的模型。
阶段1:Petridish使用停止梯度层和停止向前层将候选层连接到父模型,并对其进行部分训练。候选层可以是搜索空间中的任何操作包。使用停止梯度层和停止向前层可以在不影响模型的正向激活和反向梯度的情况下累积相对于候选对象的梯度。如果没有停止梯度层和停止向前层,将很难确定哪些候选层对父模型的性能有所贡献,并且如果您想查看它们各自的贡献,则会需要单独的培训,从而增加了成本。
阶段2:如果发现某个特定候选者或一组候选者对该模型有利,那么我们将移除停止梯度和停止前进层以及其他候选者,并训练模型收敛。训练结果被添加到散点图中,自然而然地产生了帕累托边界的估计。
帕累托边界的合并是对Petridish的有趣补充,它使研究人员可以更轻松地确定实现特定任务最佳性能组合的体系结构。 帕累托边界的估计使我们更容易看到准确性,FLOPS,内存,延迟和其他条件之间的折衷。 在下图中,沿着Pareto边界(红线)的模型构成了搜索输出,这是一个模型库,研究人员和工程师可以从中选择。
Microsoft Research在不同的NAS基准测试中评估了Petridish。 具体而言,使用CIFAR-10数据集对Petridish进行了图像分类模型测试,然后将结果传输到ImageNet。 在CIFAR-10上,Petridish的平均测试错误率为2.75±0.21%,最佳结果为2.51%,仅在流行的单元格搜索空间上使用3.2M参数和5天的GPU搜索时间即可获得最佳测试结果。 将CIFAR-10上找到的模型转移到ImageNet时,Petridish仅在宏搜索空间上使用4.3M参数即可达到28.7±0.15%的top-1测试错误,最佳结果为28.5%。 初始测试能够胜过现有的NAS方法,同时保持可行的计算成本水平。
Petridish是NAS技术快速发展的生态系统中有趣的补充。 Petridis依赖于前向搜索模型这一事实使它更加引人入胜,因为大多数流行的NAS方法都依赖于向后搜索技术。 微软已经将NAS模型作为其Azure ML平台的一部分,因此有趣的是Petridish成为了该堆栈的一部分。
以上是关于NAS 新方法:用 Petridish 自动搜索最佳神经网络结构的主要内容,如果未能解决你的问题,请参考以下文章