当前位置: 首页 > 科技观察

关于神经架构搜索方法的知识

时间:2023-03-13 18:21:08 科技观察

研究人员对自动化机器学习和深度学习的兴趣日益浓厚,这导致了用于神经架构优化的自动化方法的开发。网络架构的选择至关重要,深度学习的许多进步都源于其直接的改进。然而,深度学习技术是计算密集型的,深度学习的应用对领域相关知识要求很高。因此,即使这个过程只是部分自动化,也会帮助研究人员和从业者更轻松地使用深度学习。本文对现有方法进行统一分类,对不同方法进行比较,并进行详细分析。本文讨论了基于强化学习原理和进化算法的常见搜索空间和常见架构优化算法,以及结合代理和一次性模型的方法。此外,本文还讨论了约束、多目标架构搜索、自动数据扩充、优化器和激活函数搜索等新的研究方向。简介在过去的两年里,机器学习领域一直在研究自动化搜索过程的过程。可以这么说,Zoph和Le(2017年)的工作标志着这项研究工作的开始,证明了强化学习算法可以发现好的架构。此后不久,Real等人。(2017)表明,迄今为止研究的神经进化方法(Floreanoetal.,2008)可以产生类似的结果。但是这两种搜索方法都需要数千小时才能在GPU上运行。因此,后续工作试图减轻这种计算负担。沿着这条线,许多成功的算法利用了重用已经学习的模型参数的原则,最著名的是Cai等人的工作。(2018a)和Pham等人。(2018)。蔡等。(2018a)提出搜索可以从简单的架构开始,通过保函数操作逐渐增加搜索的宽度和深度。Pham等人提出了一种更流行和更快的搜索方法。(2018),构建了一个包含搜索空间中所有架构的超参数化架构。在算法的每个时间步,都会对该大型架构的一小部分进行采样和训练。训练完成后,采样的架构可以共享训练权重,从而可以将搜索工作量降低到与训练单个架构相同的水平。搜索空间的设计构成了神经架构搜索的另一个重要组成部分。除了加快搜索过程之外,这还会影响搜索的持续时间和结果解决方案的质量。在神经架构搜索的早期工作中,设计空间主要用于搜索顺序架构。但随着手工构建的分支架构在性能上已经超越了传统网络,合适的搜索空间在发表后不久就被提出,这些空间已经成为该领域的常态(Zophetal.,2018)。在这些工作取得进展的同时,研究人员拓宽了神经架构搜索的视野,希望神经架构搜索能够减少搜索时间并减少已发现架构的泛化错误。能够同时处理多个目标函数的方法开始进入人们的视野。该领域的著名工作包括尝试限制模型参数的数量(Tan等人,2018年;Kim等人,2017年)或其他部分,以便在移动设备上部署模型。此外,已开发的架构搜索技术也已扩展到深度学习其他相关组件的高级自动化。例如,搜索激活函数(Ramachandranetal.,2018)和合适的数据增强(Cubuketal.,2018a)。目前,以神经架构搜索的形式自动化深度学习是机器学习中发展最快的方向之一。由于每周都会在arXiv.org(http://arxiv.org/)和主流会议出版物上出现有趣的工作,因此很容易迷失方向。本文总结了现有的方法。通过这样的总结,我们可以批判性地检查不同的方法,并了解有助于神经架构搜索的设计和成功的不同组件的好处。在此过程中,作者还试图消除一些常见的误解,并指出当前架构搜索趋势中的一些陷阱。作者也做了适当的实验来补充自己的想法。1.神经架构搜索空间神经架构搜索空间是神经架构一般定义的子空间。它的计算空间是有限的,可以对架构施加一定的约束。本文的其余部分使用搜索空间来指代神经体系结构搜索方法的可行解集。2.全局搜索空间全局搜索空间中的实例具有很大的操作自由度。可以假定一个模式模板,它限制了模式定义中允许的结构选择的自由。此模板通常用于固定网络图的某些方面。图1显示了模板约束搜索空间的示例体系结构。图1:全局搜索空间:(a)顺序搜索空间;(b)与skip相同;(c)架构模板,只有深蓝色操作之间的连接没有被修复。Tan等人的另一项工作。(2018)的目标是找到可以部署在移动设备上的神经网络模型,这些模型可以在准确性、推理时间和参数数量方面高效执行。为此,他们设计了一个合适的搜索空间,该空间由具有分层表示的体系结构组成。图2图2:Tan等人。(2018)建议将架构分解为不同的部分。每个部分i都有自己的模式(蓝色操作),这部分重复n_i次并有f_i个过滤器。3.基于单元格的搜索空间基于单元格的搜索空间建立在许多有效的手工架构基于重复的固定结构的观察之上。此类架构通常是通过堆叠较小的图形成的较大架构。在文献中,这些重复结构一般被称为细胞(cellsorunits)或块(block)。我们在本文中使用单元格来指代此类结构。在基于单元格的搜索空间中,网络是通过在模板定义的、预先指定的排列中重复单元格结构来构建的。如图3所示,一个cell一般是一个小的有向无环图。图3图3:NASNet搜索空间实例的结构。n个正常细胞后跟一个还原细胞。这样的顺序重复多次,还原单元也可以重复。图4显示了细胞结构可视化的示例。图4图4:以NASNet-A架构(Zophetal.,2018)的缩减单元为例,展示了一个单元在NASNet搜索空间中的样子。块可以用作其他块(例如块1和块3)的输入,未使用的块连接在一起成为单元格的输出。已经可以使用基于单元格的设计范例来定义适合移动设备的搜索空间。董等。(2018)提出了一个专门满足此类需求的搜索空间(例如具有更少参数和更少推理时间的目标)。图7:Dong等人使用的移动搜索空间。(2018)。包括细胞在内的整个网络都是密集连接的。4.全局搜索空间与基于单元的搜索空间基于单元的搜索空间,尤其是NASNet搜索空间,是开发新方法时最常见的选择。研究这两个搜索空间的大部分工作都提供了支持这种选择的经验证据,这表明基于单元格的搜索空间可以获得更好的结果。无论如何,基于单元格的搜索空间受益于发现的架构,可以轻松跨数据集传输。此外,架构的复杂性几乎可以通过改变过滤器和单元的数量来任意改变。通常,全局搜索空间中的架构不会展示所有这些属性,但某些情况也可能从中受益。例如,改变过滤器的数量自然可以修改架构,但将发现的架构转移到具有不同输入结构的新数据集或加深架构并不是一件容易的事。2.优化方法响应函数f的优化是一个全局黑盒优化问题。接下来,将讨论基于强化学习和进化算法的几种优化策略。1.强化学习强化学习可用于建模顺序决策过程,在该过程中,代理人与环境交互,其唯一目标是最大化未来收益。图9:强化学习算法的通用框架。TemporalDifferenceLearning:SARSA、TD-λ和Q-learning等方法都试图通过逼近最大值函数来隐含地找到这种策略。然后根据最大值函数定义最优策略为贪心策略。价值函数v?(s)和q?(a,s)满足Bellman***准则。策略梯度方法:RL中的其他替代方法(统称为策略梯度方法)不应用值函数,而是直接学习由一组参数πθ(a|s)定义的策略。这些方法在没有明确引用值函数的情况下选择动作。基于Q学习的优化:Baker等人。(2017)是最早提出基于RL的神经架构搜索算法的人之一。他们在设计算法时结合了Q-learning、ε-greedy和Experiencereplay。他们方法中的操作是选择不同的层添加到架构中,并终止构建架构并将其视为已完成的操作。基于策略梯度方法的优化:基于策略梯度方法的替代方法也已用于神经架构搜索。Zoph和Le(2017)是第一个研究这种建模方法的人。他们直接对控制器建模,并且可以将控制器的预测视为构建神经架构的动作。图10:Zoph和Le(2017)使用控制器预测一层的结构(skipconnections的预测值图中未显示)。2.进化算法进化算法(EA)是基于种群的黑盒函数全局优化器。它的必要组成部分是:初始化、父母选择、重组和变异。以及新生代选择(survivorselection)。图11:进化算法的通用框架。在这项工作的背景下,本文讨论了基于EA的神经架构搜索的六项重要工作。表1简要概述了这些方法。表1:用于神经架构搜索的各种进化算法的高级详细信息。3.Surrogate-basedoptimization顾名思义,surrogate-based优化器使用一个替代模型f来逼近响应函数f。在神经架构搜索的情况下,这近似于一种架构,其响应在训练步骤中不耗时,并提高了整个搜索过程的效率。代理模型被建模为机器学习模型,并在包含架构描述和相应响应函数值的元数据集上进行训练。罗等。(2018)使用了一种有趣的方式。他们共同学习了一个用于建筑表示的自动编码器和一个代理模型,该模型将自动编码器提供的连续编码作为输入,即建筑代码(图15)。一个关键的区别是他们的搜索算法使用代理模型通过对架构代码执行梯度步骤来对新架构进行采样。图15:罗等人。(2018)提议结合自动编码器和代理模型。该模型通过联合学习实现了α≈α?和f(α)≈f?(α)。4.One-shotarchitecturesearch在搜索过程中只会训练单个神经网络(singleneuralnetwork)。为了一枪。然后神经网络在搜索空间中推导出一个架构作为优化问题的解决方案。使用一次性方法考虑的大多数体系结构都基于过度参数化的网络。这种方法的优点是搜索工作量相对较低——仅比搜索空间中架构的训练成本略高。正如我们稍后将讨论的那样,此方法可以与前面讨论的许多优化方法结合使用。权重共享:Pham等人。(2018)在NASNet搜索空间的子空间中搜索(见2.2),并在覆盖整个搜索空间的超参数化网络上运行。图17图17:左图:特定深度的卷积神经架构的一部分。该图显示了不同大小的操作,例如4和8。卷积神经架构的深度是任意的。右图:在顺序搜索空间中仅使用两步操作进行权重共享的示例。可区分的架构搜索:Liu等人。(2018c)提出了一种替代优化方法,该方法使用基于梯度的优化来最小化训练集损失,学习模型的参数θ,并最小化验证集损失,学习结构参数β。超网络:Brock等。(2018)提出可以使用动态超网络(Haetal.,2017),这是一个可变条件(在这种情况下是架构描述)为另一个神经网络生成权重的神经网络。经过训练的超网络可以为各种架构生成网络权重。它可以使用超网络对不同的体系结构进行排序,并得出最终的体系结构,然后可以从头开始对其进行训练。这种方法也可以共享权重,但是大部分权重是在超级网络中共享的。摘要表2展示了不同算法在CIFAR-10基准数据集上的分类任务的结果。表2表2:本文讨论的不同搜索算法在CIFAR-10上的结果以及所需的搜索时间。此外,上表还列出了各种随机搜索和人为设计的架构得到的结果。论文链接:https://arxiv.org/abs/1905.01392【本文为《机器之心》专栏原文翻译,微信公众号“机器之心(id:almosthuman2014)”】点击在这里可以看到作者的更多好文章