Press "Enter" to skip to content

微软提出Petridish,完美解决问题的神经网络?

全文共 2531 字,预计学习时长 8 分钟

来源:www.lovehhy.net

 

神经架构搜索(NAS)是当前深度学习最热门的话题之一。

 

 

什幺是NAS方法呢 ?

 

从概念上讲,NAS方法专注于为给定问题和数据集找到合适的神经网络体系结构。不妨将这个方法理解为使机器学习架构本身成为机器来学习问题。近年来,NAS技术的数量激增,并且正在更多主流的深度学习框架和平台得到应用。但是,第一代NAS模型在经历神经网络域名变更时遇到了许多困难。因此,寻找新的NAS技术极有可能会继续推动该领域的深层次创新。

 

 

来源:www.raincent.com

 

最近, 微软研究院推出了Petridish ,一种优化神经网络结构选择的NAS算法。

 

之所以开发NAS,是因为神经网络的设计过程相当消耗资源。在当前的深度学习生态系统中,借助于知名的,性能一流的网络,数据集可能与之前已被证实的网络所遇到的完全不同,几乎没什幺保证。在许多情况下,NAS方法通常需要数百天才能找到好的架构,并且效果几乎很难比随机搜索好。机器学习中还有一个类似于NAS技术挑战的问题:特征选择。

 

就像NAS方法一样,特征选择算法需要为给定特定数据集的模型提取相关特征。显然,选择特征比神经网络体系结构要简单得多,但是特征选择技术的许多原理为Petridish团队提供了灵感。

 

 

获取经验的方式: NAS的简要历史

 

鉴于NAS方法最近的热度,许多人可能认为NAS是一门新兴学科。

 

毫无疑问,自2016年以来,随着 谷歌发表了有关强化学习的着名NAS论文 ,NAS经历了复兴。但是,其起源可以追溯20世纪80年代末。NAS最早的论文之一是1988年的《 用于识别问题的自组织神经网络 》。从那时开始,这个领域新增了不少出版物,来概述这项有趣的技术,但是直到Google推动NAS,才引起了主流机器学习社区的关注。如果您对NAS方法的发布历史感兴趣, AutoMLFreiburg-Hannover 网站将提供迄今为止最完整的汇编之一。

NAS 的 两种类型: 前向搜索与后向搜索

 

探索NAS空间时,有两种基本的技术类型:前向搜索和后向搜索。后向搜索方法是实现NAS方法的最常用方法。从概念上讲,向后搜索NAS方法从一个超级图谱开始,该图是所有可能架构的结合,并学会通过梯度下降或强化学习逐步降低不必要的边缘的权重。尽管此类方法极大地减少了NAS的搜索时间,但其在需要人域知识来创建人名图谱的情况下具有局限性。

 

前向搜索NAS方法试图将神经网络体系结构从小型扩展到大型。这种方法类似于深度学习模型中特征选择算法的许多原理。与后向搜索不同,前向搜索不需要预先指定有限的搜索空间,因此在从现有模型中进行热启动以及进行终身学习时,前向搜索更加通用并且更易于使用。

 

Petridish

 

Petridish是一种基于特征选择和梯度增强技术的前向搜索NAS方法。该算法的工作原理是创建一个模型库作为其搜索输出,然后合并停止前进和停止渐变层,以更有效地识别有利于构建该库的候选对象,并使用异步训练。

 

Petridish算法可以分为三个基本阶段:

 

·  阶段0:Petridish从某些父模型开始,这是一个人工编写的微小模型,具有一层或两层,或者已经由领域专家在数据集中找到。

 

·  阶段1:Petridish使用停止渐变和停止前进图层将候选图层连接到父模型,并对其进行部分训练。候选层可以是搜索空间中的任何操作包。使用停止梯度层和停止向前层可以在不影响模型的正向激活和反向梯度的情况下累积相对于候选对象的梯度。如果没有停止梯度层和停止向前层,将很难确定哪些候选层对父模型的性能有所贡献,并且如果您想查看它们各自的贡献,则会需要单独的培训,从而增加了成本。

 

·  阶段2:如果发现一个或一组特定的候选者对模型有利,则将停止梯度和停止前进层以及其他候选者移除,然后训练模型收敛。训练结果被添加到散点图中,自然而然地产生了帕累托边界的估计。

 

 

帕雷托(Pareto)边界的合并是对Petridish的补充,它使研究人员可以更轻松地确定实现特定任务最佳性能组合的体系结构。帕雷托边界的估计使我们更容易看到准确性,FLOPS,内存,延迟和其他条件之间的折衷。在下图中,沿着帕雷托边界(红线)的模型构成了搜索输出,这是一个模型库,研究人员和工程师可以从中选择。

 

 

微软研究院在不同的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成为了该堆栈的一部分。

 

Be First to Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注