Xinbang Zhang, Zehao Huang, Naiyan Wang作者李诗萌、张倩编译

搜索一次就够了:中科院 & 图森提出通过稀疏优化进行一次神经架构搜索

近年来,神经架构搜索(NAS)引起了学界和业界的极大兴趣,但由于其搜索空间巨大且不连续,该方法仍具挑战性。本文提出了直接稀疏优化 NAS(DSO-NAS)方法。在 DSO-NAS 中,作者为 NAS 问题提供了一个新的模型修剪视角,总结出了有效且理论上合理的优化方法来解决这个问题。这种方法的优点是可微分、效率高,可以直接应用在 ImageNet 这样的大数据集上。在 CIFAR-10 数据集上,DSO-NAS 的平均测试误差只有 2.84%。DSO-NAS 用 8 个 GPU 在 18 个小时内以 600M FLOPs 在 ImageNet 数据集上得到的测试误差为 25.4%。该论文提交到了 ICLR 2019。

1. 引言

毫无疑问,深度神经网络(DNN)近年来一直是 AI 复兴的引擎。早在 2012 年,基于 DNN 的方法就刷新了许多 AI 应用的记录,比如图像分类(Krizhevsky et al. (2012); Szegedy et al. (2015); He et al. (2016))、语音识别(Hinton et al. (2012); Graves et al. (2013))和围棋(Silver et al. (2016; 2017))。考虑到深度学习惊人的表征能力,DNN 已经将这些应用的范式从手动设计特征和分段流程转向端到端学习。尽管 DNN 已经将研究人员从特征工程(feature engineering)中解放出来,但另一件乏味的工作——「网络工程」出现了。多数情况下要根据特定任务设计神经网络,然后进入无穷尽的参数调整和尝试。因此,设计合适的神经网络架构仍然需要大量专业知识和经验。

为了使技术更亲民,研究者们提出了神经架构搜索(NAS),或者更广泛的说法是 AutoML。NAS 主要有两个流派:第一个是遵循 Zoph&Le(2017)的开创性工作,他们提出了一种训练循环神经网络(RNN)控制器的强化学习算法,这个控制器可以生成编码架构(Zoph et al. (2018); Pham et al. (2018))。第二个是进化算法,它可以迭代地评估并提出新的评估模型(Real et al. (2017); Stanley & Miikkulainen (2002))。尽管这些模型的性能令人印象深刻,但对于像 ImageNet 这样的大数据集来说,它们的搜索过程非常耗费资源,而且很不实用。尽管已经提出了一些加速方法(Zhong et al. (2018); Pham et al. (2018))。近期,DARTS(Liu et al. (2018b))提出了一种基于梯度的方法,它通过 softmax 分类器选择连接。尽管 DARTS 在提升了速度的情况下还实现了良好性能,但与之前的工作一样,它的搜索空间仍局限于长度固定的编码和共享块的搜索。

本文从另一个角度解决这些问题。我们重新设计了 NAS,使它可以删除大型网络的无用连接。这种大型网络包含完整的网络架构假设空间,因此只要训练和评估一个单独的模型。由于在训练过程中直接优化了网络结构,所以我们的方法叫做直接稀疏优化 NAS(DSONAS)。我们还进一步证明,相对于低效的强化学习或革命性搜索,这种稀疏正则化问题可以通过改进的加速近端梯度方法得到有效优化。值得注意的是,DSO-NAS 比现有的搜索方法都更简单,因为它将神经网络权重学习和架构搜索结合到一个单优化问题中。DSO-NAS 不需要任何控制器(Zoph & Le (2017); Zoph et al. (2018); Pham et al. (2018))、性能预测器(Liu et al. (2018a))或搜索空间松弛化(Zoph & Le (2017); Zoph et al. (2018); Pham et al. (2018); Liu et al. (2018b))。由于其高效性和简单性,DSO-NAS 首次证明了 NAS 可以在不共享模块结构的情况下,直接用在像 ImageNet 这样的大数据集上。我们的实验表明,DSO-NAS 在 CIFAR-10 上的平均测试误差为 2.84%,而用 600M FLOPs 在 ImageNet 上得到了 25.4% 的 top-1 误差。

总而言之,我们的贡献总结如下:

  1. 我们提出了一个新模型,该模型基于稀疏优化,可以为神经架构搜索进行修剪。在搜索过程中只需训练一个模型
  2. 我们提出了一种理论上合理的优化方法来有效地解决这个具有挑战性的优化问题。
  3. 我们论证了我们提出的方法的结果极具竞争力,或者说它比其他 NAS 方法都更好,同时它还显著简化和加速了搜索过程。

论文:You Only Search Once: Single Shot Neural Architecture Search via Direct Sparse Optimization

论文链接:https://arxiv.org/abs/1811.01567

摘要:近年来,神经架构搜索(NAS)引起了学界和业界的极大兴趣,但由于其搜索空间巨大且不连续,该方法仍具挑战性。与以往应用进化算法强化学习的方法不同,本文提出了直接稀疏优化 NAS(DSO-NAS)方法。在 DSO-NAS 中,我们为 NAS 问题提供了一个新的模型修剪视角。具体而言,我们从一个完全连接的模块开始,引入缩放因子来缩放运算之间的信息流。接着,我们强行加上了稀疏正则化来删除架构中无用的连接。最后,我们总结出了有效且理论上合理的优化方法来解决这个问题。这种方法具有可微分和高效率的优点,可以直接应用在像 ImageNet 这样的大数据集上。特别是在 CIFAR-10 数据集上,DSO-NAS 的平均测试误差只有 2.84%,而 DSO-NAS 用 8 个 GPU 在 18 个小时内以 600M FLOPs 在 ImageNet 数据集上得到的测试误差为 25.4%。

动机

DSO-NAS 的思想主要遵循的是可以用完全连接的有向无环图(DAG)表示神经网络(或其中的微小结构)的架构空间。在这个空间中的任何其他架构都可以用其子图表示。换句话说,可以从完整的图中选择边和节点的子集来获得特定的架构。之前的工作(Zoph & Le (2017), Liu et al. (2018a), Liu et al. (2018b))关注点主要在搜索拥有两类块的架构,分别是卷积块和 reduction 块。根据微小结构搜索的思想,我们用完整的图表示一个单独的块的搜索空间。然后可以用一堆有残差连接的模块表示最终的网络架构。图 1 所示是指定块的 DAG 示例,它的节点和边分别表示局部运算 O 和信息流。

对于一个有 T 个节点的 DAG 来说,可以用局部运算 O(i)转化所有前驱节点(h(j),j<i)输出的和来计算第 i 个节点 h(i)的输出,也就是说:

然后就可以将架构搜索问题转变成边缘删除问题。在搜索过程中,我们删除了完整 DAG 中无用的边和节点,留下了最重要的结构。为了实现这个目标,我们在每一条边上用缩放因子来缩放每个节点的输出。可以将等式 1 修改为:

式中 λ(i)(j)是用在从节点 j 到 i 的信息流上的缩放因子。然后我们在缩放参数上用稀疏正则化在搜索时强制将部分因子变成 0。直观地说,如果 λ(i)(j)是 0,因为它没有任何贡献,所以可以安全地移除相关的边,并删除独立的节点。

图 1:可以用完全连接的 DAG 表示整个搜索空间。节点 1 和 6 分别是输入节点和输出节点。虚线和虚线圆表示删除了与它们相关的节点和边。例如,可以通过 h(5)=O(5)(P4j=1h(j))计算节点 5 的初始输出,但对删除过的子图而言,变成了 h(5)=O(5)(h(2)+h(4))。

搜索空间

DSO-NAS 可以搜索 DNN 中每个构建块的结构,然后和 DNN 中所有的块共享,就像之前的工作一样。它也可以在不共享块的情况下直接搜索整个网络架构,同时还保持着极具竞争力的搜索时间。我们在下文中将先讨论每一个独立块的搜索空间,再讨论整个宏架构。

一个块由 M 个顺序层组成,这些顺序层又由 N 个不同运算组成。在每个块中,每个运算都和前面层的所有运算以及块的输入相连接。因此,块的输出也和块中的所有运算有关。对每一个连接来说,我们用乘数 λ 缩放了其输出,并强行加了稀疏正则化。优化后,删除了 λ 为 0 的相关连接和所有独立的运算得到最后的架构。块搜索的过程如图 2 所示。

图 2:搜索块的例子,该例中有两个 level 和两步运算:(a)完全连接的块。(b)在搜索过程中,我们联合优化了神经网络权重以及与每一个边都相关的 λ。(c)删除无用的连接和操作后的最终模型。

实验

图 4:在不同数据集上学到的块结构。

表 1:在 CIFAR-10 上与当前最佳的 NAS 方法的比较。

表 2:在 ImageNet 上与当前最佳的图像分类器的比较。

图 5:自适应 FLOPs 技术的性能。

表 3:在 CIFAR-10 数据集上不同设置的比较。

理论图森未来AutoML神经架构搜索
2
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

有向无环图技术

在图论中,如果一个有向图从任意顶点出发无法经过若干条边回到该点,则这个图是一个有向无环图(DAG图)。 因为有向图中一个点经过两种路线到达另一个点未必形成环,因此有向无环图未必能转化成树,但任何有向树均为有向无环图。

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

特征工程技术

特征工程是利用数据所在领域的相关知识来构建特征,使得机器学习算法发挥其最佳的过程。它是机器学习中的一个基本应用,实现难度大且代价高。采用自动特征工程方法可以省去采用人工特征工程的需求。Andrew Ng 说“挖掘特征是困难、费时且需要专业知识的事,应用机器学习其实基本上是在做特征工程。”

大数据技术技术

大数据,又称为巨量资料,指的是传统数据处理应用软件不足以处理它们的大或复杂的数据集的术语。

语音识别技术

自动语音识别是一种将口头语音转换为实时可读文本的技术。自动语音识别也称为语音识别(Speech Recognition)或计算机语音识别(Computer Speech Recognition)。自动语音识别是一个多学科交叉的领域,它与声学、语音学、语言学、数字信号处理理论、信息论、计算机科学等众多学科紧密相连。由于语音信号的多样性和复杂性,目前的语音识别系统只能在一定的限制条件下获得满意的性能,或者说只能应用于某些特定的场合。自动语音识别在人工智能领域占据着极其重要的位置。

正则化技术

当模型的复杂度增大时,训练误差会逐渐减小并趋向于0;而测试误差会先减小,达到最小值后又增大。当选择的模型复杂度过大时,过拟合现象就会发生。这样,在学习时就要防止过拟合。进行最优模型的选择,即选择复杂度适当的模型,以达到使测试误差最小的学习目的。

图像分类技术

图像分类,根据各自在图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法。它利用计算机对图像进行定量分析,把图像或图像中的每个像元或区域划归为若干个类别中的某一种,以代替人的视觉判读。

强化学习技术

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

图网技术

ImageNet 是一个计算机视觉系统识别项目, 是目前世界上图像识别最大的数据库。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

推荐文章
暂无评论
暂无评论~