




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第18章自动机器学习18.1自动机器学习基础18.2数据准备18.3模型生成18.4模型评估18.5经典NAS算法本章小结
18.1自动机器学习基础
18.1.1初识自动机器学习目前成功的机器学习应用远非完全自动化,而大多通过经验自动改进,其模型是由专家通过反复试验设计的,这意味着即使是专家也需要大量资源和时间才能构建性能良好的模型。为了减少庞大的开发成本,研究人员提出了实现整个机器学习流程自动化的想法,即自动机器学习(AutoML)。
自动机器学习是自动化和机器学习的交集,是两个领域相互作用的产物。
1.定义1(ML)
机器学习(ML)是由E、T和P指定的一种计算机程序。
从这个定义中我们可以看到,AutoML本身也是一个在输入数据(即E)和给定任务(即T)上具有良好泛化性能(即P)的计算机程序。然而,传统的机器学习研究多集中在学习方法的发明和分析上,而不关心这些方法的配置是否容易。比如,最近的研究趋势是从简单模型到深度模型,这些模型可以提供更好的性能,但也很难配置。相反,AutoML强调如何使用和控制简单的学习方法。
2.定义2(AutoML)
自动化机器学习(AutoML)试图在有限的计算预算范围内代替人类来识别适合机器学习的计算机程序(由定义1中的E、T和P指定)的(部分或全部)配置。
从上面的讨论中我们可以看到,尽管需要良好的学习性能,但AutoML要求以自动方式获得这种性能。
这就设置了AutoML的三个主要目标:
(1)良好的性能:可以在各种输入数据和学习任务上实现良好的泛化性能;
(2)减少人工参与:可以自动完成机器学习方法的配置;
(3)高计算效率:该程序可以在有限的预算内返回合理的输出。
18.1.2自动机器学习的构成
完整的AutoML系统可以动态组合各种技术,以形成易于使用的端到端ML流程体系(如图18.1所示)。图18.1AutoML流程概述
AutoML流程包含多个过程:数据准备、特征工程、模型生成和模型评估。模型生成可以进一步分为搜索空间和优化方法。搜索空间定义了ML模型的设计原理。该原理可以分
为两类:传统ML模型(如SVM和KNN)和神经体系结构。优化方法分为超参数优化(HPO)和架构优化(AO),其中前者指与训练相关的参数(如学习率和批量大小),而后者
指与模型相关的参数(如神经架构的层数和KNN的近邻数)。NAS由三个重要模块组成:神经体系结构的搜索空间、AO方法和模型评估方法。NAS的目的是通过从预定义的搜索空间中选择和组合不同的基本操作来搜索具有鲁棒性且性能良好的神经体系结构。
18.2数据准备
ML管道化的第一步是数据准备。图18.2展示了数据准备流程。由图18.2可以看出,应从三个方面概括数据准备工作:数据收集、数据清理和数据增强。数据收集是构建新数据集或扩展现有数据集的必要步骤。数据清理过程用于过滤嘈杂的数据,因此不会影响后续模型训练。数据增强在增强模型鲁棒性和改善模型性能方面起着重要作用。图18.2数据准备流程图
18.2.1数据收集
目前,ML的深入研究已达成共识,即必须有良好的数据。因此出现了许多开放数据集。在ML研究的早期开发了手写数字数据集,即MNIST。之后还开发了一些更大的数据集,如CIFAR-10、CIFAR-100和ImageNet。
然而对于某些特定的任务(如与医疗或其他私人事务相关的任务),通过上述方法找到一个合适的数据集通常是很困难的。针对这一问题,提出了两种方法:数据搜索(Data
Searching)和数据合成(DataSynthesis)。
数据搜索是指基于互联网通过搜索网络数据直接收集数据集。在此过程中需要过滤不相关的数据。数据合成可以使用尽可能与真实世界匹配的数据模拟器,或者使用生成对抗
网络(GenerativeAdversarialNetworks,GAN)来合成数据。
18.2.2数据清理
收集的数据中不可避免地会有噪声,噪声会对模型的训练产生负面影响。因此,如有必要,则必须执行数据清理这一过程。传统上,数据清理需要专业知识,但接触专家的机会
有限,而且费用高昂。因此,数据清理的工作正从众包(Crowdsourcing)转向自动化。传统的数据清理方法适用于固定数据集。但是,现实世界中每天都会产生大量数据。换句话说,如何在连续过程中清理数据成为值得研究的问题,对于企业而言更是如此。
18.2.3数据增强
在某种程度上,数据增强(DataAugmentation,DA)也可以被视为数据收集的工具,因为它可以基于现有数据生成新数据。此外,DA也作为一种正则化函数来避免模型训练的
过度拟合而受到越来越多的关注
对于图像数据,仿射变换包括旋转、缩放、随机裁剪和反射;弹性变换包含对比偏移、亮度偏移、模糊和通道混洗等操作;高级变换包括随机擦除、图像融合、剪切和混合等。基于神经的变换可以分为三类:对抗性噪声、神经式变换和GAN技术。对于文本数据,可以通过同义词插入或先将文本翻译成外文,再将其翻译回原始语言来扩充。
上述增强技术仍然需要人工选择增强操作,然后针对特定任务形成特定的DA策略,这需要大量的专业知识和时间。最近研究人员提出了许多方法来搜索不同任务的增强策略。AutoAugment是一项开创性的工作,它通过使用强化学习来自动搜索最佳DA策略。但是AutoAugment的效率不高,因为一次增强搜索将花费近500个GPU小时。为了提高搜索效率,研究人员随后使用不同的搜索策略提出了许多改进的算法,如基于梯度下降的方法、基于贝叶斯优化的方法、在线超参数学习(OnlineHyper-ParameterLearning)的方法、基于贪婪搜索和随机搜索的方法等。
18.3模型生成
一旦获得特征,我们就需要找到一个模型来预测标签。模型生成包含两个部分:选取一些分类器,设置相应的超参数。在这个AutoML设置中,任务是自动选择分类器并设置其超参数,以获得良好的学习性能。
18.3.1传统模型
前述章节中已经提出了许多分类方法,如树分类器、线性分类器、核函数等。每种分类器在使用数据建模时都有自己的优缺点。表18.1列出了在Scikit-Learn中实现的一些现成
的分类器。由表18.1可以看出,每个分类器都具有不同的超参数。传统上来说,不同分类器及其超参数的选择通常是根据自己的经验以试错的方式来决定的。一般来说,超参数可以是离散的,如KNN中的近邻数,也可以是连续的,如logistic回归中的惩罚值。
18.3.2NAS
NAS目标是搜索适合学习问题的良好的深度网络体系结构,其特点主要有三个:首先,NAS本身是当前具有良好前景的研究课题,目前已有诸多论文发表;第二,深度网络的应用领域相对清晰,即从低语义水平的数据(如图像像素)中学习;最后,由于应用领域是明确的,因此特定领域的网络体系结构可以满足其学习目的,其中特征工程和模型选择均由NAS完成。
图18.3给出了NAS流程,它分为以下三个方面:搜索空间、架构优化(AO)和模型评估。图18.3NAS流程
神经结构可以表示为有向无环图DirectAcyclicGraph,DAG),它由有序节点Z和连接节点对的边组成,其中每个节点表示张量z,每条边表示从一组候选操作集合O中选择的操作集合o。每个节点的入度数随搜索空间的设计而变化。由于计算资源的限制,为入度设置了最大阈值N。这里我们假设节点的索引从1开始,给出节点k处的计算公式:
1.整体结构的搜索空间
整体结构神经网络的空间是最直观的搜索空间之一。图18.4展示了整体结构模型的两个简化示例。这些模型是通过堆叠预定数量的节点而构建的,其中每个节点代表一个层并
具有指定的操作。最简单的结构是图18.4(a)所示的模型,而图18.4(b)所示的模型则相对复杂,因为它允许有序节点之间存在任意跳跃连接,并且这些连接在实践中已被证明是有
效的。尽管整个结构易于实现,但它有几个缺点。例如,模型越深,泛化能力越好,但是寻找这样一个深层网络过程烦琐且计算量大。此外,所生成的架构缺乏可移植性,即在小型数据集上生成的模型可能不适合较大的数据集,需要为较大的数据集生成新模型。图18.4整体结构模型的两个简化示例
2.基于单元的搜索空间
为了使生成的模型具有可移植性,许多文献提出了基于单元的搜索空间,其中神经结构由固定数量的重复单元结构组成。这种设计方法基于以下观察:许多性能良好的人工设
计的模型也是通过堆叠固定数量的模块来构建的。ResNet系列通过堆叠更多瓶颈模块来构建许多变体,如ResNet50、ResNet101和ResNet152。这个重复的模块被称为单元。
图18.5(a)提供了一个基于单元的神经网络的示例。该网络由两种单元组成,即标准单元和还原单元。因此,搜索完整的神经体系结构的问题就简化为在基于单元的搜索空间中搜索最佳单元结构。大多数工作的内部单元结构的设计范例参考了Zoph等人的工作成果NASNet),这是最早提出的基于单元的搜索空间的探索。图18.5(b)显示了标准单元结构的示例。图18.5一个基于单元的神经网络的示例与一个标准单元结构的示例
搜索单元结构比搜索整体结构更有效。为了说明这一点,假设有M个预定义的候选操作,整体结构和基于单元的结构的层数均为L,单元中的块数为B,那么,可能的整体结构数为
可能的像元数为[MB×(B+2)!]4,但是有两种单元(即标准单元和还原单元),因此基于单元的搜索空间的最终大小为
显然,搜索整体结构的复杂度随层数成倍增长。
值得注意的是,基于单元的搜索空间的NAS方法通常包括两个阶段:搜索和评估。具体而言,首先选择搜索阶段中表现最佳的模型,然后在评估阶段对该模型进行从头训练或微调。但是,两个阶段之间的模型深度存在很大的差距。如图18.6(a)所示,对于DARTS(见18.5.3节),在搜索阶段生成的模型仅由8个单元组成,以减少GPU内存的消耗,而在评估阶段,单元数量扩展到20个。搜索阶段为浅层模型找到了最佳的单元结构,但这并不意味着它在评估阶段仍适合深层模型。换句话说,简单地添加更多的单元可能会损害模型性能。
为了弥合这一差距,Chen等人提出了一种基于DARTS的改进方法,即渐进DARTS(Progressive-DARTS,P-DARTS),该方法将搜索阶段分为多个阶段,并在每个阶段结束时逐渐增加搜索网络的深度,从而缩小了搜索和评估之间的差距。但是,在搜索阶段增加单元数可能会带来较大的计算开销。因此,为了减少计算量,P-DARTS通过搜索空间近似方法将候选操作的数量从5逐渐减少到3和2,如图18.6所示。实验结果显示,P-DARTS在CIFAR-10的测试数据集上获得了2.50%的错误率,优于DARTS的2.83%的错误率。图18.6DARTS和P-DARTS之间的差异
3.层级搜索空间
基于单元的搜索空间使生成的模型具有可移植性,大多数基于单元的方法遵循两级层级结构:内部是单元级,为单元中的每个节点选择操作和连接;外部是网络级,控制着空间
分辨率的变化。然而,这些方法只关注单元层,而忽略了网络层。如图18.5所示,每当固定数量的标准单元格被堆叠时,添加一个还原单元,特征图的空间维度将减半。
为了共同学
习可重复单元和网络结构的良好结合,Liu等人定义了网络级架构的一般表述,如图18.7所示(图18.7中,开头的三个空心圆点表示固定的“干”结构,每个实心圆点是一个单元结构,
箭头表示最终选择的网络级结构)。从图18.7中可以复制许多现有的良好网络设计。通过这种方式,我们可以充分探索网络中不同数量的通道以及每个图层的特征图的大小。图18.7网络级搜索空间
在单元级别,单元中的块数(B)仍然是手动预定义的,并且在搜索阶段是固定的。换句话说,B是一个新的超参数,它需要通过人工输入进行调整。为了解决这个问题,Liu等人提出了一种新颖的分层遗传表示体系(HierarchicalGeneticRepresentationScheme),通过迭代合并低层单元来生成高层单元。如图18.8所示,图18.8三级层级结构表示形式的示例
对于HierNAS和PNAS,一旦搜索到一个单元结构,就会在网络的所有层中使用,这会限制层级的多样性。此外,许多搜索到的单元结构是复杂且分散的,这不利于实现高精度和低延迟。为了缓解这两个问题,Tan等人提出了MnasNet,它使用新颖的分解层级搜索(FactorizedHierarchicalSearch,FHS)空间为最终网络的不同层级生成不同的单元结构,即MBConv。图18.9展示了MnasNet的分解层级搜索空间。图18.9MnasNet的分解层次搜索空间
4.基于形态的搜索空间
Chen等人提出了Net2Net技术,通过在神经网络层之间插入本征形态变换,在现有网络的基础上设计新的神经网络。IdMorph变换是功能可保持的,有两种类型:深度IdMorph变换和宽度IdMorph变换。IdMorph变换使得用更深或更宽的等效模型替换原始模型成为可能。
具体而言,与Net2Net相比,网络变形具有以下优点:
①它可以嵌入非本征(NonIdentity)层并处理任意非线性激活函数;
②它可以在单个操作中同时执行深度、宽度和内核大小变形,而Net2Net只能分别考虑深度和宽度的变化。
实验结果表明,网络变形可以极大地加速训练过程,其训练时间仅为原来的VGG16的1/15,并取得了更好的效果。
18.3.3模型优化
机器学习的最后步骤模型评估是最耗时的步骤,通常需要进行优化。对于经典学习模型,优化不是问题,因为它们通常采用凸损失函数,并且从各种优化算法中得到的性能几乎相同。因此,效率是选择优化算法的重点。
但是,随着学习方法变得越来越复杂,如从SVM到深度网络,优化不仅是计算预算的主要消耗者,对学习性能也有很大的影响。因此,算法选择的目标是自动找到优化算法,使效率
和性能达到平衡。在本节中,我们讨论优化器的基本技术。
这里有三个重要问题:
(1)优化器可以在哪种搜索空间上运行?
(2)需要什么样的反馈?
(3)在找到一个好的配置之前,需要生成/更新多少个配置?
1.架构优化
定义搜索空间后,我们需要搜索性能最佳的体系结构,这个过程称为体系结构优化(ArchitectureOptimization,AO)。传统上,神经网络的体系结构被视为一组静态超参数,这些超参数是根据在验证集上观察到的性能进行调整的。但是,此过程高度依赖人类专家,并且需要大量时间和资源进行反复试验。因此,研究人员提出了许多AO方法,以使人们摆脱烦琐的过程,并自动搜索新颖的体系结构。
1)进化算法
进化算法(EA)是一种通用的基于种群的元启发式优化算法(MetaheuristicOptimizationAlgorithm,MOA),它从生物学进化中汲取了灵感。与穷举法等传统优化算法相比,进化算法是一种成熟的全局优化方法,具有较高的鲁棒性和广泛的适用性。它可以有效地解决传统优化算法难以解决的复杂问题,而不受问题性质的限制。
如图18.10所示,典型的进化算法包括以下四个步骤:
(1)选择。
(2)交叉。
(3)突变。
(4)更新。图18.10进化算法的步骤
2)强化学习
Zoph等人最早将强化学习(ReinforcementLearning,RL)用于神经结构搜索的研究。图18.11概述了基于RL的NAS算法。代理通常是递归神经网络(RNN),在每个步骤t执行操作At,从搜索空间中采样新架构,以接收状态St的观测值以及来自环境的奖励Rt来更新代理的采样策略。环境是指使用标准的神经网络训练程序来训练和评估代理生成的网络,然后返回相应的结果(如准确性)。图18.11基于RL的NAS算法
3)梯度下降
前面的搜索策略是从一个离散的搜索空间中采样神经体系结构。以前神经网络架构的主流搜索方法是强化学习和进化学习。它们的搜索空间都是不可微的,DARTS提出了一种可微的方法,可以用梯度下降来解决架构搜索的问题,所以在搜索效率上比之前不可微的方法快几个数量级。可以这样通俗地理解:DARTS对之前不可微的方法定义了一个搜索空间,神经网络的每一层可以从搜索空间中选一种构成一个神经网络,运行该神经网络的训练结果,不断测试其他神经网络组合。这种方法从本质上来说是从很多组合中尽快搜索到效果很好的一种。但是这个过程是黑盒,需要大量的验证过程,所以需要较高的时间代价。
DARTS作为一个开创性的算法,提出通过使用softmax函数放宽离散空间,在连续和可微的搜索空间上搜索神经体系结构。它把搜索空间连续松弛化,将每个操作边看成所有子操作的混合(softmax权值叠加),联合优化,更新子操作混合概率上的边超参(即架构搜索任务)和与架构无关的网络参数。在联合优化过程中将梯度下降应用于单步优化参数权重,加快搜索网络收敛,再用优化后的参数权重求解操作权重。该方法开创性地用梯度下降来解决架构搜索的问题,在使效率快了几个数量级的同时取得了良好的搜索效果。
4)基于代理模型的优化
另一种体系结构优化方法是基于代理模型的优化(SurrogateModel-BasedOptimization,SMBO)算法。SMBO的核心在于:它通过反复记录过去的评估结果来建立
目标函数的代理模型,并使用代理模型来预测最有前途的体系结构。这类方法可以大大缩短搜索时间,从而提高效率。
基于代理模型的优化算法可大致分为贝叶斯优化方法(包括高斯过程(GaussianProcess,GP)、随机森林(RandomForests,RF)、树状结构Parzen估计方法(Tree-structuredParzenEstimator,TPE))和神经网络。
贝叶斯优化(BO)是超参数优化最流行和最完善的方法之一。最近,许多后续工作努力将这些SOTABO方法应用于架构优化。例如,在一些研究中将生成的神经体系结构的验
证结果建模为高斯过程,指导寻找最佳的神经体系结构。但是基于GP的贝叶斯优化方法的缺点在于:推理时间随着样本数量以三次方缩减,并且不善于处理可变长度神经网络。
Camero等人提出了三种固定长度编码方案,通过采用随机森林作为代理模型来解决可变长度问题。
5)网格搜索和随机搜索
网格搜索(GS)和随机搜索(RS)都是简单的优化方法,并且已应用于多项NAS研究。例如,在MnasNet中,单元和块的数量是手动预定义的。其中,Ncell×Nblocks是搜索的块结
构。显然,Ncell×Nblocks设置得越大,搜索的空间越大,需要的资源就越多。对SOTANAS方法和随机搜索进行有效性比较,结果表明,随机搜索是具有竞争力的NAS的基础。具体来说,具有提前停止策略的随机搜索的性能与ENAS的相,ENAS是基于强化学习的经典NAS方法。
6)混合优化方法
上述架构优化方法各有优缺点。进化算法是一种成熟的全局优化方法,具有很强的鲁棒性。然而,进化算法需要大量的计算资源,其进化操作(如交叉和突变)是随机进行的。虽
然基于RL的方法(如ENAS)可以学习复杂的体系结构模式,但是RL-agent的搜索效率和稳定性并不能得到保证,因为RL-agent需要尝试大量的动作来获得积极的回报。基于梯度
下降的方法(如DARTS)通过将分类候选操作放宽为连续变量,大大提高了搜索效率。然而,本质上,它们都是从超级网络中寻找子网络,这限制了神经结构的多样性。因此,一些科研人员提出结合不同的优化方法来获取它们的最佳结构。
(1)EA+RL。Chen等人将强化突变整合到进化算法中,避免了进化的随机性,提高了搜索效率。另一个并行开发的类似方法是进化神经混合代理(Evolutionary-Neuralhybrid
Agents,Evo-NAS),它同时吸收了基于强化学习的方法和进化算法的优点。Evo-NAS代理的变异由RL训练的神经网络指导,可以有效地探索广阔的搜索空间并有效采样网络结构。
(2)EA+GD。最具代表性的是Yang等人结合进化算法和基于梯度下降的方法的改良算法。该算法在一个超级网络中共享参数,并在某些训练代数内对训练集进行调整。然后种群和超级网络直接遗传给下一代,大大加速了进化过程。
(3)EA+SMBO。Sun等人使用随机森林作为替代指标来预测模型性能,从而加快了进化算法的适应性评估。
(4)GD+SMBO。与DARTS不同(DARTS学习候选操作的权重),Nao提出了一种变分自动编码器来生成神经体系结构,并进一步构建回归模型作为替代方案来预测所生成体系结构的性能。具体来说,编码器将神经体系结构的表示映射到连续空间,然后预测器网络将神经体系结构的连续表示作为输入并预测相应的准确性。最后,解码器用于从连续的网络表示中得出最终的体系结构。
2.超参数优化
常用的超参数优化方法包括网格搜索、随机搜索、贝叶斯优化、基于梯度的优化、进化优化和基于总体的优化。
1)网格搜索和随机搜索
图18.12显示了网格搜索(GridSearch,GS)和随机搜索(RandomSearch,RS)之间的区别:GS将搜索空间划分为固定的间隔,并在评估所有点后选择性能最佳的点;RS从随机绘制的一组点中选择最佳点。图18.12优化二维空间函数f(x,y)=g(x)+h(y)≈g(x)的9个试验中的网格搜索和随机搜索
2)贝叶斯优化
贝叶斯优化(BayesianOptimization,BO)是对求解代价昂贵的黑盒函数进行全局优化的有效方法。
BO是基于代理模型的优化(SMBO)方法,该方法建立了从超参数到在验证集上评估的客观指标的概率模型映射。它很好地平衡了探索(评估尽可能多的超参数集)和开发(将更多资源分配给那些有前途的超参数)之间的平衡。
SMBO算法提出在初始时需要预定义几个输入,包括评估函数f、搜索空间Θ、获取函数S、概率模型M和记录数据集D。具体来说,D是记录了许多样本对(θi,yi)的数据集,其中θi∈Θ表示采样的神经体系结构,yi是采样的神经体系结构的评估结果。初始化后,SMBO的步骤如下:
(1)调整概率模型M以适应记录数据集D。
(2)利用获取函数S从概率模型M中选择下一个有前途的神经网络结构。
(3)所选神经结构的性能将由f来评估,这是一个昂贵的步骤,因为它要求在训练集上训练神经网络并在验证集上对其进行评估。
(4)通过添加一对新的结果(θi,yi)来更新记录数据集D。
3)基于梯度的优化
另一种HPO方法是基于梯度的优化(Gradient-basedOptimization,GO)算法。与上述黑盒HPO方法(如GS、RS和BO)不同,GO算法使用梯度信息优化超参数,大大提高了HPO的效率。Maclaurin等人提出了一种可逆动态存储方法,通过梯度信息有效地处理了数千个超参数。但是,优化过多的超参数在计算上具有挑战性。
18.4模型评估
一旦生成了新的神经网络,就必须对其性能进行评估。一种直观的方法是训练网络使其收敛,然后评估其性能。但是,此方法需要大量时间和计算资源。目前研究人员已经提出了几种加速模型评估过程的算法。
18.4.1低保真
由于模型训练时间与数据集和模型的大小、高度相关,因此可以以不同方式加速模型评估。首先,可以减少图像的数量或图像的分辨率(就图像分类任务而言)。例如,FABOLAS在训练集的一个子集上训练模型,以加速模型估计。在T.Mitchell所著论著中提供了ImageNet64×64及其变体32×32、16×16,而这些较低分辨率的数据集可以保留与原始ImageNet数据集相似的特征。其次,可以通过减小模型来实现低保真模型评估,如通过每层使用较少的滤波器进行训练。此外,Zela等人从经验上证明,在短时间或长时间的训练后,性能之间的相关性很弱,因此证实了无须长时间搜索网络配置。
18.4.2权重共享
一旦一个网络被评估,它就会被舍弃。因此,权重共享技术被用来加速NAS的进程。例如,Wong和Lu等人提出了迁移神经自动机器学习,即利用先前任务的知识来加速网络
设计。ENAS在子网络之间共享参数,使得网络设计比文献[2]提出的快约1000倍。基于网络变形的算法也可以继承以前架构的权重,单路径NAS使用单路径过参数化ConvNet,用共享卷积核参数对所有架构决策进行编码。
8.4.3代理模型
基于代理的方法是另一种功能强大的工具,其功能类似于黑盒的功能。通常,一旦获得一个良好的近似值,就可以找到直接优化原始昂贵目标的配置。例如,渐进神经体系结构搜索(PNAS)引入了代理模型来控制搜索方法。尽管已证明ENAS的效率很高,但PNAS的效率更高,因为PNAS评估的模型数量是ENAS评估的模型数量的5倍多,而PNAS的总计算速度比ENAS的快约8倍。但是,当优化空间太大而难以量化,并且每个配置的评估都非常昂贵时,基于代理的方法不适用。
Luo等人提出了SemiNAS,这是一种半监督的NAS方法。该方法利用大量未标记的架构来进一步提高搜索效率,所生成模型的精度不需要在训练模型后进行评估,只需要通过控制器来预测其精度。
18.4.4早停法
早停法首先用于防止经典ML过度拟合。最近的几项研究中使用了这种方法,通过停止在验证集上预测性能较差的评估来加速模型评估。例如,可以通过提出的一种学习曲线
模型预测网络的性能。该模型是从文献中选择的一组参数曲线模型的加权组合。此外,有文献提出了一种用于早停的方法,该方法基于快速计算梯度的局部统计信息,不再依赖于验证集,并且允许优化器充分利用所有训练数据。
18.4.5资源感知
早期的NAS研究更加关注寻找可实现更高性能(如分类精度)的神经体系结构,而不论相关的资源消耗(即GPU的数量和所需的时间)如何。许多后续研究都在研究资源感知
算法,以权衡性能与资源预算。为此,这些算法将计算成本α作为资源约束添加到损失函数中。这些算法的计算成本的类型不同,可能是:①参数规模;②乘法累加(MAC)操作的数量;③浮点运算(FLOP)的数量;④实际延迟。例如,MONAS将MAC视为约束,并且由于MONAS使用基于策略的强化学习算法进行搜索,因此可以将约束直接添加到奖励函数中。
MnasNet提出了一种自定义的加权函数,以近似帕累托最优解:
式中,LAT(m)表示在目标设备上测得的推理延迟;T是目标延迟;w是权重变量,定义为.
其中,α和β的推荐值均为-0.07
就可微神经体系结构搜索(DNAS)框架而言,约束条件(即损失函数)应可微。为此,FBNet使用延迟查找表模型LatencyLookupTableModel,LLTM),根据每个操作的运行时间来估计网络的总体等待时间。损失函数定义为
其中,CE(α,θα)表示权重为θα的架构α的交叉熵损失。像MnasNet一样,该损失函数具有两个需要手动设置的超参数:α和β分别控制损失函数的大小和延迟。在SNAS中,所生成
子网络的时间成本与one-hot随机变量为线性关系,从而确保了资源约束的可微性。
18.5经典NAS算法
18.5.1NASNetNAS方法是最早提出的基于单元搜索空间的算法(此处NAS指本节的搜索方法)。.
这项工作的主要贡献是设计了一个新的搜索空间,这样在CIFAR-10数据集上找到的最佳架构可以扩展到更大、更高分辨率的图像数据集。这个搜索空间即NASNe搜索空间NASNet搜索空间的灵感来自于这样一个认识:CNN的结构通常与重复。模块有关,这些模块通常是卷积滤波器组、非线性激活和残差连接的组合,以获得性能较优的结果(如Inception和ResNet模型中存在的重复模块)。这些观察结果表明,控制器RNN可能预测以这些基序表示的通用卷积单元。然后可以将该单元串联堆叠,以处理任意空间维度和滤波深度的输入。
在NASNet方法中,卷积网络的总体架构是手动确定的。它们的结构是由卷积单元重复多次组成的,每个卷积单元具有相同的结构,但参数权重不同。为了为任何尺寸的图像构建可伸缩的体系结构,当将特征图作为输入时,我们需要两种类型的卷积单元来提供两个主要功能:①返回相同尺寸特征图的卷积单元;②返回高度和宽度减少为原来的1/2的特征图的卷积单元。分别将第一类和第二类卷积单元命名为标准单元和还原单元,标准单元的输出保留与输入相同的空间尺寸,通常根据实际需求手动设置标准单元的重复次数。
这些结构由控制器RNN搜索。在定义的搜索空间中搜索单元的结构。在该搜索空间中,每个单元都将两个初始隐藏状态I1和I2作为输入,它们是前两个较低层或输入图像中两个单元的输出。给定这两个初始隐藏状态,控制器RNN递归地预测卷积单元的其余结构(见图18.13)。控制器对每个单元的预测分为B个块,其中每个块具有5个预测步骤,这些预测步骤由5个不同的softmax分类器进行。
(1)从前两个单元或从先前的块中创建的一组隐藏状态中选择一个隐藏状态。
(2)从第(1)步中选择相同的操作来选择第二个隐藏状态。
(3)选择一个操作应用于在步骤(1)中选择的隐藏状态。
(4)选择一个操作应用于在步骤(2)中选择的隐藏状态。
(5)选择一种方法来组合步骤(3)和(4)的输出以创建新的隐藏状态。图18.13NASNet块的搜索流程
在步骤(5)中,控制器RNN选择一种方法来组合两个隐藏状态:①两个隐藏状态之间的逐元素加法;②沿着滤波器维度的两个隐藏状态之间的级联。最终将卷积单元中生成的
所有未使用的隐藏状态沿通道连接在一起,以提供最终的单元输出。
简而言之,NASNet的主要贡献如下
(1)首次提出了单元搜索;
(2)重新设计了搜索空间,以便AutoML找到最佳层并灵活进行多次堆叠来创建最终网络;
(3)在CIFAR-10上执行了架构搜索,并将学到的最好架构转移到ImageNet图像分类和COCO目标检测中。
(4)使用RNN采样网络并通过强化学习进行优化。
18.5.2PNAS
PNAS既不是基于强化学习的,也不属于进化算法。首先搜索可重复的单元(可以看作残差块),若搜索到性能良好的单元,则可以自由选择其叠加方式,形成一个完整的网络。这样的策略在残差网络中已经出现过多次。当确定了单元结构后将其叠加成一个完整的网络,一个网络通常由这三个要素来确定:单元的结构,单元重复的次数N,每一个单元中的卷积核个数F。为了控制网络的复杂度,N和F通常由手工设计。可以理解为:N控制网络的深度,F控制网络的宽度。
在本节的搜索空间中,每个单元由五个块组成,块结构与图18.13(b)所示的结构相同。每块可能的输入为:①前一个单元的输出;②前前一个单元的输出;③当前单元的当前块前的所有输出。搜索空间如图18.14所示。图18.14PNAS的搜索空间
18.5.3DARTS
DARTS提出通过使用softmax函数放宽离散空间,在连续和可微的搜索空间上搜索神经体系结构:
通过前面定义的搜索空间,我们的目的是通过梯度下降优化α矩阵。我们把神经网络原有的权重称为θ矩阵。为了实现端到端的优化,我们希望同时优化两个矩阵以使结果变
好。上述两层优化是有严格层次的,为了使两者都能同时达到优化,一个朴素的想法是:在训练集上固定α矩阵的值,然后梯度下降θ矩阵的值,在验证集上固定θ矩阵的值,之后梯度下降α的值,循环往复,直到这两个值都比较理想。需要注意的是,验证集和训练集的划分比例是1∶1,因为对于α矩阵来说,验证集就是它的训练集。这表明这是一个双层优化问题。训练和验证损失分别用Ltrain和Lval表示。
因此,可以得出总损失函数:
如果严格按照以上公式来实现,则为了更新α矩阵,需更新θ矩阵,而θ矩阵的更新过于耗时。下面使用一种简化后的操作计算α矩阵的梯度:
其中,ξ是内部优化一步的学习率。通过简单一步训练调整θ来近似θ*(α),不需要训练至收敛来求解内部优化,可将搜索效率提升数十倍。
图18.15给出了DARTS。其中,单元由N(此处N=4)个有序节点组成,节点zk
(k从0开始)连接到节点zi,i∈{k+1,…,N}。每个边缘ei,j上的操作最初是候选操作的混合,每个候选操作的权重均相等。因此,神经体系结构α是一个超级网络,它包含所有可能的子神经体系结构。在搜索结束时,最终的体系结构是通过保留所有混合操作的最大权重运算得到的。图18.15(a)中,数据只能从较低级别的节点流到较高级别
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- HSE知识综合测验习题带答案
- 2025年超低频传感器标定系统项目合作计划书
- 餐饮美学基础 课件 4.1食养文化自然美的认知
- 抓住机会:2024年CPMM学习新方法及试题及答案
- 信贷风险防控课件
- Jetson-Nano-and-Jetson-Xavier-NX-Camera-Design-Guide-v1.1原版完整文件
- 《回弹法检测混凝土抗压强度技术规程》
- 短期生态影响与长期后果试题及答案
- 2024国际物流师的考生心得分享与试题及答案
- 聚焦重点:2024年CPMM试题及答案
- 2025年中远海运集团招聘笔试参考题库含答案解析
- 部编人教版语文小学六年级下册第四单元主讲教材解读(集体备课)
- 基本农田划定技术规程(TDT1032-2011)
- 中等职业学校英语课程标准(2020年版)(word精排版)
- 内悬浮内拉线抱杆分解组塔施工方案
- 《音乐表演专业毕业实习》教学大纲
- 危险化学品(专项)安全检查表(样表)
- 冀教版三年级数学数据收集和整理
- 液化石油气安全技术说明书
- EN779-2012一般通风过滤器——过滤性能测定(中文版)
- 第二类医疗器械经营备案凭证
评论
0/150
提交评论