AutoML-A survey of the state-of-the art翻译+总结

2023-10-27

AutoML: A Survey of the State-of-the-Art

Abstract


深度学习(DL)技术已经渗透到我们生活的各个方面,给我们带来了极大的方便。然而,为特定任务构建高质量的DL系统高度依赖于人类的专业知识,这阻碍了DL在更多领域的应用。自动机器学习(AutoML)是一种有前途的解决方案,AutoML的目标是建立一个不需要人干涉的DL系统。在这篇文章中,作者介绍了AutoML领域最先进技术以及其发展情况。首先,作者根据介绍AutoML的流水线式方法,包括数据准备、特征工程、超参数优化和神经结构搜索(NAS)。NAS是AutoML目前非常热门的子话题。论文总结了有代表性的NAS算法在CIFAR-10和ImageNet数据集上的性能,并进一步讨论了几个有价值的NAS方法的研究方向:一/两阶NAS、one-shot NAS和联合超参数和架构优化。最后,讨论了现有AutoML方法中存在的一些有待进一步研究的问题。

开发神经网络模型通常需要大量的架构工程。 有时可以通过转移学习(transfer learning)获得,但如果真的想要获得最优性能,通常最好设计网络。 但这需要专业技能(从商业角度看是昂贵的)并且总的来说具有挑战性;甚至可能不知道当前(SOA)技术的局限性!这是一个需要很多试验和错误(trial and error)的工作,其实实验本身是耗时且昂贵的。这就是NAS有了用武之地。在感知任务中深度学习的成功很大程度上归功于其特征工程的自动化:分层特征提取器以端到端的方式从数据中学习而不是手动设计。然而,这种成功伴随着对架构工程的的需求也不断增长,其中越来越复杂的神经网络架构仍然被手动设计。神经网络架构搜索(NAS)是架构自动化工程,是机器学习自动化合乎逻辑的下一步。NAS方法目前包括:随机搜索、强化学习、基于梯度的方法、进化方法以及贝叶斯方法。

1. Introduction


近年来,深度学习被应用于各个领域,用于解决许多具有挑战性的AI任务,如图像分类、目标检测和语言建模。具体来说,由于AlexNet在2012年ImageNet大尺度视觉识别挑战(ILSVRC)中表现优于其他所有传统的手工方法,越来越复杂的深度神经网络被提出。例如,vga -16有超过1.3亿个参数,占用近500 MB的内存空间,处理一个尺寸为224×224的图像需要153亿次浮点运算。值得注意的是,这些模型都是由专家通过反复试验的过程手工设计的,这意味着即使是专家也需要大量的资源和时间来创建性能良好的模型。

为了减少这些繁重的开发成本,自动化机器学习(ML)的整个流水线的新想法出现了,即自动化机器学习(AutoML)。
AutoML有各种各样的定义。例如,根据[8]的说法,AutoML旨在减少对数据科学家的需求,并使领域专家能够在不需要太多统计和ML知识的情况下自动构建ML应用程序。在[9]中,AutoML被定义为automatic和ML的组合,总而言之,AutoML可以理解为在有限的计算预算下自动构建ML流水线。随着计算能力的指数级增长,AutoML已经成为业界和学术界的热门话题。一个完整AutoML系统可以动态地组合各种技术来形成一个易于使用的端到端的ML流水线系统(如图1所示)。许多人工智能公司创建并公开分享这样的系统(例如,由谷歌云AutoML来帮助人们很少或根本没有毫升知识构建高质量的定制模型。

在这里插入图片描述

如图1所示,AutoML流水线由几个过程组成:数据准备、特性工程、模型生成(进一步分为搜索空间和优化方法)和模型评估。搜索空间定义了ML模型的设计原则,它可以分为两类:传统的ML模型(如SVM和KNN)和神经结构。优化方法分为超参数优化(HPO)和架构优化(AO),前者表示与训练相关的参数(例如,学习速率和批量大小),而后者表示与模型相关的参数(例如,数量的层神经架构和邻居的数量)。这篇论文也是按照“数据准备、特征工程、模型生成和模型评估”组织的,在这之后,作者在CIFAR-10和ImageNet数据集上比较了NAS算法的表现,之后作者说明了目前AutoML存在的一些问题。

2. Data Preparation


在这里插入图片描述

图2展示了数据准备的流程,可以分为三个方面:数据收集、数据清洗和数据增强。

  1. 数据收集

在机器学习研究的早期阶段,开发了一个手写数字数据集,即MNIST。之后又开发了CIFAR-10、CIFAR-100和ImageNet等几个较大的数据集。然而,通过上述方法为某些特定任务(如与医疗保健或其他私人事务相关的任务)找到适当的数据集通常具有挑战性。为解决这一问题,提出了两种方法:数据搜索和数据合成。

(1) 数据搜索:互联网是取之不尽用之不竭的数据来源,搜索Web数据是收集数据集的一种直观方式。然而,使用Web数据存在一些问题。首先,搜索结果可能与关键词不完全匹配。因此,必须过滤不相关的数据。其次,Web数据可能被错误地标记,甚至没有标记。通常采用基于学习的自标记方法来解决这一问题。此外,由于Web图像内容的复杂性,单个标签无法充分描述图像。同时,Web数据的分布可能与目标数据集的分布有很大的不同,这会增加模型训练的难度。再者,数据集不平衡是另一个常见的问题,因为一些特殊类的web数据数量非常有限。为了解决这一问题,采用合成少数过采样技术SMOTE在现有的真实少数样本之间合成新的少数样本,而不是简单地对少数样本进行上采样或对多数样本进行下采样。还有一种方法是将boosting方法与数据生成相结合,以增强模型针对不平衡数据集的通用性和鲁棒性。

(2) 数据合成:数据模拟器是最常用的数据生成方法之一。对于某些特定任务,比如自动驾驶,由于存在安全隐患,在研究阶段不可能在现实世界中测试和调整模型。因此,生成数据的一种实际方法是使用尽可能接近真实世界的数据模拟器。OpenAI Gym是一个很受欢迎的工具包,它提供了各种模拟环境,开发者可以集中精力设计他们的算法,而不是费力地生成数据。Wang等人使用一个流行的游戏引擎Unreal engine 4来构建一个大型的合成室内机器人立体(IRS)数据集,它提供视差和表面法线估计的信息。此外,还有一种基于强化学习的方法来优化数据模拟器的参数,以控制合成数据的分布。

另一种新技术是生成对抗网络(GANs),可用于生成图像,表格和文本数据。图3展示了Karras等人[71]工作中GAN生成的一些人脸图像。
在这里插入图片描述

在文本数据的情况下,由于常用的方法是通过强化学习来更新生成器的梯度,但由于文本是离散的,因此梯度不能从鉴别器传播到生成器,因此将梯度算子应用到文本中比较困难。为了解决这个问题,Donahue等人使用自动编码器将句子编码为平滑的句子表示,以消除强化学习的障碍。Park等人利用GAN合成与原始表统计相似但不会造成信息泄漏的假表。类似地,GAN被应用于生成像医疗或教育记录这样的表格数据。

  1. 数据清洗:采集的数据不可避免地存在噪声,但噪声会对模型的训练产生负面影响。因此,必要时必须进行数据清洗。纵观文献,数据清理工作正在从众包转向自动化。传统上,数据清理需要专业知识,但访问专业人员是有限的,而且通常很昂贵。BoostClean试图通过将数据清理视为助推问题来自动化这个过程。每一次数据清理操作都有效地在下游ML模型的输入中增加了一个新的清理操作,通过提升和特征选择相结合,可以生成一系列良好的清理操作,可以很好地提高ML模型的性能。AlphaClean将数据清理转化为超参数优化问题,进一步提高了自动化程度。具体来说,最终的数据清理组合操作由几个需要从预定义的搜索空间进行搜索的流水线清理操作组成。上述数据清理方法适用于固定数据集。然而,现实世界每天都会产生大量的数据。换句话说,如何在一个连续的过程中清理数据成为一个值得研究的问题,特别是对于企业来说。Ilyas等人提出了一种评估连续清理数据算法的有效方法。Mahdavi等人构建了一个清洗工作流编配器,该编配器可以借鉴以前的清洗任务,并为新数据集提出有前途的清洗工作流程。

  2. 数据增强:在某种程度上,数据增强(DA)也可以看作是一种数据收集工具,它可以在现有数据的基础上生成新的数据。然而,DA也作为一种避免模型训练过度拟合的调节器,受到越来越多的关注。因此,我们将DA作为数据准备的一个单独的部分进行详细介绍。

在这里插入图片描述

图4从数据类型(图像、音频和文本)的角度对DA技术进行了分类,并合并了最近受到广泛关注的自动DA技术。对于图像数据,仿射变换包括旋转、缩放、随机裁剪和反射;所述弹性变换包括对比度变换、亮度变换、模糊和通道洗脱等操作;高级变换包括随机擦除、图像混合、剪切和混合等。在基于神经网络的转换方面,可分为三类:对抗性噪声、神经类型转移和GAN技术。对于文本数据,有两种方式:数据扭曲和合成过采样。数据扭曲通过对数据空间应用转换来生成额外的样本,后者在特性空间中创建额外的样本。可以通过插入同义词或首先将文本翻译为一种外语,然后再将其翻译回原始语言来扩充文本数据。上述增强技术仍然需要人工选择增强操作,然后为特定任务形成特定的DA策略,这需要大量的专业知识和时间。
最近,有很多方法来搜索针对不同任务的增强策略。AutoAugment利用强化学习自动搜索最优DA策略。然而,自动增强不是有效的,因为它需要近500 GPU小时的一次增强搜索。为了提高搜索效率,许多基于不同搜索策略的改进算法相继被提出,如基于梯度下降的、基于贝叶斯算法的优化、在线超参数学习、基于贪婪的搜索和随机搜索。

3. Feature Engineering


业界普遍认为,数据和特征决定了ML的上界,而模型和算法只能近似于这个界限。在这种背景下,特征工程旨在最大限度地从原始数据中提取特征,供算法和模型使用。特征工程包括三个子主题:特征选择、特征提取和特征构建。特征提取和构造是特征变换的变体,通过特征变换创建一组新的特征。在大多数情况下,特征提取的目的是通过应用特定的映射函数来降维特征,而特征构造的目的是扩展原始特征空间,特征选择的目的是通过选择重要的特征来减少特征冗余。因此,自动特征工程的本质在某种程度上就是这三个过程的动态结合。

  1. 特征选择:特征选择通过减少不相关或冗余的特征,在原始特征集的基础上构建特征子集。这有利于简化模型,从而避免过拟合,提高模型性能。所选择的特征通常是发散的,并且与目标值高度相关。典型的特征选择过程有四个基本步骤(见图5),如下:

在这里插入图片描述

特征选择的搜索策略涉及到三种算法:完全搜索、启发式搜索和随机搜索。完全搜索包括穷尽搜索和非穷尽搜索;后者可以进一步分为四种方法:宽度优先搜索、分支和边界搜索、光束搜索和最佳优先搜索。启发式搜索包括顺序正向选择(SFS)、顺序反向选择(SBS)和双向搜索(BS)。在SFS和SBS中,特性分别是从空集添加或从完整集删除,而BS同时使用SFS和SBS进行搜索,直到这两种算法获得相同的子集。最常用的随机搜索方法是模拟退火(SA)和遗传算法(GAs)。

子集评价方法可分为三类。
第一种是滤波方法,根据每个特征的发散性或相关性对其进行打分,然后根据阈值选择特征。常用的各特征评分标准为方差、相关系数、卡方检验和互信息。第二种是包装器方法,将所选的特征子集对样本集进行分类,然后以分类精度作为衡量特征子集质量的标准。第三种方法是嵌入式方法,其中变量选择是学习过程的一部分。正则化,决策树,深度学习都是嵌入的方法。

  1. 特征构建:特征构建是从基本特征空间或原始数据中构建新的特征,以增强模型的鲁棒性和通用性的过程。本质上,这样做是为了增加原始特性的代表性能力。这个过程传统上高度依赖于人类的专业知识,最常用的方法之一是预处理转换,例如标准化、标准化或特性离散化。此外,对于不同类型的特性的转换操作可能会有所不同。

手工探索所有的可能性是不可能的。因此,为了进一步提高效率,人们提出了一些自动特征重建方法,并显示其效果与人类专业技术相同或优于人类专业技术。这些算法的目的是实现操作组合搜索和评价的自动化。在搜索方面,基于决策树的方法和遗传算法等算法需要预定义的操作空间,而基于注释的方法则不需要,因为后者使用领域知识(以注释的形式),并结合训练实例。

  1. 特征提取:特征提取是通过一些映射函数进行降维的过程。它根据一定的度量标准提取信息的非冗余特征。与特征选择不同,特征提取改变了原始特征。特征提取的核心是映射函数,可以通过多种方式实现。最突出的方法是主成分分析(PCA)、独立成分分析、isomap、非线性降维和线性判别分析(LDA)。近年来,前馈神经网络方法得到了广泛的应用;它使用一个预先训练的模型的隐藏单元作为提取的特征。

特征选择和特征提取:这两者达到的效果是一样的,就是试图去减少特征数据集中的属性的数目,但是采用的方式却不同,特征提取的方法主要是通过属性间的关系,如组合不同的属性得到新的属性,这样就改变了原来的特征空间。而特征选择的方法是从原始特征数据集中选择出子集,是一种包含的关系,没有改变原始的特征空间。特征选择的方法有①Filter方法,主要思想是对每一维的特征打分,即给每一维的特征赋予权重,这样的权重就代表着该维特征的重要性,然后依据权重排序,比如卡方检验、信息增益ID3、相关系数等。②Wrapper方法(包裹法),主要思想是将子集的选择看作是一个搜索寻优问题,生成不同的组合,对组合进行评价,再与其他的组合进行比较,这样就可以把子集的选择看做一个优化问题,从而利用优化算法解决。③嵌入方法,主要思想是在模型既定的情况下学习出对提高模型准确率最好的属性。主要方法是正则化,将部分特征属性的权重调整到0,则这个特征相当于就是被舍弃了。(其实就是在损失函数上再加入正则项,不断的利用梯度下降极小化损失函数,调整一些特征的权重,有些权重变为0了则相当于被舍弃了,没被舍弃的相当于被选择出来的向量。在这种方法中,L1正则化具有稀疏解的特性,因此天然具备特征选择的特性,但是要注意,L1没有选到的特征不代表不重要,原因是两个具有高相关性的特征可能只保留了一个,如果要确定哪个特征重要应再通过L2正则方法交叉检验)

4. 模型生成


如图1所示,模型生成分为搜索空间和结构优化方法两部分。搜索空间在原则上定义了可设计和优化的模型结构。模型类型可以大致分为两类:一类是传统的ML模型,如支持向量机(SVM)、k近邻(k-nearest neighbors, KNN)和决策树(decision tree);另一类是深度神经网络(DNNs)。在优化方法上,也可以分为两类:一类是用于训练的超参数,如学习率和批大小;另一类是用于模型设计的超参数,如KNN的邻居数或DNN的层数。本节中主要关注神经结构搜索(NAS)。

在这里插入图片描述

图6展示了NAS流水线的概述。它被分为三部分:搜索空间、架构优化方法和模型估计方法。搜索空间定义了神经结构的设计原则。不同的场景需要不同的搜索空间。四种常用的搜索空间包括实体结构的、基于单元的、分层的和基于形态学的搜索空间。构优化方法。AO方法定义了在定义了搜索空间后如何引导搜索有效地找到具有高性能的模型体系结构。一旦模型生成,就需要对其性能进行评估。最简单的方法是训练模型在训练集上收敛,然后对验证集进行评估,但这种方法费时且资源密集。一些先进的方法可能会加速估计过程,但会损失保真度。因此,如何平衡评价的效率和效果是一个值得研究的问题。

(1) 搜索空间:神经结构可以表示成直接无环图(DAG),DAG由有序节点z和连接一对节点的边组成,每个节点表示一个z张量,每条边表示一个o操作,o操作从候选的操作集O选出。每个节点的入度随搜索空间设计的不同而不同,由于计算资源的限制,最大阈值N是手动设置的。给出节点k的计算公式,假设节点索引从开始:
z ( k ) = ∑ i = 1 N o ( i ) ( z ( i ) ) , o ( i ) ∈ O z^{(k)} = \sum_{i=1}^{N}o^{(i)}\left ( z^{(i)} \right ),o^{(i)}\in O z(k)=i=1No(i)(z(i)),o(i)O
候选操作集合O主要包括卷积、池化、激活函数、skip-connect、拼接、加法等操作。为了进一步提高模型的性能,许多NAS方法使用一些先进的人工设计模块作为原始操作,如深度可分离卷积、扩张卷积和压缩-激励(压缩-激励)块。,搜索空间定义了架构优化算法可以探索的结构范式。基于现有的NAS工作,常用的搜索空间有:Entire-structured search 空间、Cell-Based Search 空间、分层搜索空间、Morphism-Based Search Space。

(2) 结构优化:在定义了搜索空间之后,需要搜索性能最好的架构,这个过程称为架构优化(AO)。
传统上,神经网络的架构被认为是一组静态超参数,根据在验证集上观察到的性能进行调整。然而,这一过程高度依赖人类专家,需要大量的时间和资源进行尝试和错误。因此,许多AO方法被提出来将人类从这个繁琐的过程中解放出来,并自动地寻找新的架构。常用的AO方法有进化算法、强化学习、梯度下降、基于代理模型的优化、网格和随机搜索、混合优化方法。

^AO方法: 进化算法。强化学习。梯度下降。基于代理模型的优化。网格和随机搜索。混合优化方法。进化算法,不是一个具体的算法,而是一个“算法簇”。进化算法的产生的灵感借鉴了大自然中生物的进化操作,它一般包括基因编码,种群初始化,交叉变异算子,经营保留机制等基本操作。与传统的基于微积分的方法和穷举方法等优化算法常见的几种最优化方法中的其他数学优化方法)相比,进化计算是一种成熟的具有高鲁棒性和广泛适用性的全局优化方法,具有自组织、自适应、自学习的特性,能够不受问题性质的限制,有效地处理传统优化算法难以解决的复杂问题(比如NP难优化问题)。进化算法中第一个是遗传算法。生物染色体用数学方式或计算机方式来体现就是一串数码,仍叫染色体,有时也叫个体;适应能力是对应着一个染色体的一个数值来衡量;染色体的选择或淘汰则按所面对的问题是求最大还是最小来进行。本质上,**遗传算法就是在一个解空间上,随机的给定一组解,这组解称为父亲种群,通过这组解的交叉,变异,构建出新的解,称为下一代种群,然后在目前已有的所有解(父亲种群和下一代种群)中抽取表现好的解组成新的父亲种群,然后继续上面的过程,直到达到了迭代条件或者获取到了最优解(一般都是局部最优解)。**就像生物进化一样,一群生物,不适应环境的被淘汰了,剩下来的生物适应环境,所以他们会产生后代继承他们的优秀基因(这里也包含了基因的变异),他们的后代也是这样一直被自然选择下去,直到最后必然会产生最适应环境的个体。
强化学习我之前曾经总结过,在我个人的CSDN资源里,可免费下载查看。梯度下降是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以)。在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,目前神经网络中都会用到梯度下降法,相应的原理讲解也非常多。基于代理模型的优化,实际上是用已知的模型来逼近最终要求的模型,基于试验的代理模型,一般来说,主要应用于大型的复杂工程问题,比如说整车的碰撞优化这种高度非线性问题,或者无法进行尺寸参数化建模的复杂问题。它的求解思路简单,基本的求解思路就是在变量的范围内通过拉丁方抽样抽取一定数量的样本点,计算对应的响应值,根据样本点和响应值就可以构建相应的代理模型。然后根据传统的遗传算法或者说多目标优化算法添加相应约束进行优化,得到我们所需要的最优解。||网格和随机搜索,这是优化模型非常常用的一种方法,实际上是一种穷举搜索,即给定优化参数的范围,网格和随机搜索就会在这个范围内寻找最优参数。

(3) 超参数优化:在整个搜索阶段,大多数NAS方法使用同一套hyper-parameters候选架构,所以在寻找最有前途的神经结构时,有必要设计一套hyperparameters,并使用这组hyperparameters再训练或调整架构。由于一些HPO方法(如贝叶斯优化和进化优化)也被应用于NAS中,因此我们只简要介绍这些方法。目前常用的超参数优化方法有网格搜索、随机搜索、贝叶斯优化、基于梯度的优化、进化优化和基于种群的优化。

贝叶斯优化:这是一种能克服神经网络超参数常用优化方法的优化方法。内容非常多,也比较难懂,https://zhuanlan.zhihu.com/p/150555551。

5. 模型评估


一旦产生了新的神经网络,就必须对其性能进行评估。一种直观的方法是训练网络的收敛性,然后评估其性能。但是,这种方法需要大量的时间和计算资源。几种加速模型评估的算法已经被提出,并总结如下。

(1) 低保真度。由于模型训练时间与数据集和模型大小密切相关,因此可以通过不同的方式加速模型评估。首先,可以减少图像的数量或图像的分辨率(根据图像分类任务)。比如在训练集的一个子集上训练模型,以加速模型估计。还有以低分辨率数据集代替原始数据集,同时还可以保留类似于原始ImageNet数据集的特征。其次,可以通过减小模型大小来实现低保真度模型的评估,如每层使用较少的卷积核进行训练。与集成学习类似,[192]提出了转移级数展开(TSE),它通过线性组合一系列基本的低保真估计量来构造一个集成估计量,从而避免了使用单一的低保真估计量可能产生的偏差。此外,Zela等人[34]的经验证明,在短时间或长时间的训练后,性能之间存在微弱的相关性,从而证实了对网络配置的长时间搜索是不必要的(参见图19)。

在这里插入图片描述

(2) 一般来说,一旦对网络进行了评估,它就会被删除。因此,采用共享权重技术来加速NAS的生成。例如,Wong和Lu等人[193]提出了转移神经自动机,它利用来自先前任务的知识来加速网络设计。ENAS[13]在子网络之间共享参数,导致比[12]快1000倍的网络设计。基于网络morphism的算法[20,21]也可以继承以前架构的权值,而单路径NAS[194]使用单路径过参数化ConvNet来使用共享的卷积核参数编码所有架构决策。

(3) 代理。基于代理的方法是另一个逼近黑箱函数的强大工具。
一般来说,一旦得到了一个很好的近似,找到直接优化原始昂贵目标的配置就变得很简单了。例如,渐进神经结构搜索(PNAS)[18]引入了一个代理模型来控制搜索方法。虽然已经证明ENAS非常有效,但PNAS的效率更高,因为PNAS评估的模型数量是ENAS评估的5倍多,而且就总计算速度而言,PNAS要快8倍。然而,当优化空间过大且难以量化,且对每个配置的评估成本极高时[198],基于替代的方法就不适用。Luo等人[199]提出了SemiNAS,一种半监督NAS方法,利用大量的未标记架构进一步提高搜索效率。对模型进行训练后,生成的模型的精度不需要评估,只有使用控制器来预测精度才能获得。

(4) 提前停止。早期停止首先用于防止经典ML过度拟合。 它在几项近期研究[200、201、202]中用于通过停止预测在验证集上表现不佳的评估来加速模型评估。 例如,[202]提出了一种学习曲线模型,该模型是从文献中选择的一组参数曲线模型的加权组合,从而可以预测网络的性能。 此外,[203]提出了一种基于快速计算出的梯度的本地统计信息的提前停止的新方法,该方法不再依赖于验证集,并且允许优化程序以充分利用所有训练数据。

(5) 资源感知。早期的NAS研究[12、15、26]更加关注寻找可实现更高性能(例如分类精度)的神经体系结构,而无论相关的资源消耗(即GPU的数量和所需的时间)如何。 因此,许多后续研究都在研究资源感知算法,以权衡性能与资源预算。 为此,这些算法将计算成本作为资源约束添加到损失函数中。 这些算法的计算成本类型不同,可能是1)参数大小; 2)乘法累加(MAC)操作的数量; 3)浮点运算(FLOP)的数量; 或4)实际延迟。 例如,MONAS [204]将MAC视为约束,并且由于MONAS使用基于策略的强化学习算法进行搜索,因此可以将约束直接添加到奖励函数中。 MnasNet [127]提出了一种定制的加权产品,可近似匹配Pareto最优解:
m a x i m i z e m A C C ( m ) × [ L A T ( m ) T ] w \underset{m}{maximize} ACC(m)\times \left [ \frac{LAT(m)}{T} \right ]^w mmaximizeACC(m)×[TLAT(m)]w
其中 L A T ( m ) LAT(m) LAT(m)表示在目标设备上测得的推理延迟,T是目标延迟,w是权重变量,定义为:
w = { α , i f L A T ( m ) ≤ T β , o t h e r w i s e w=\left\{\begin{matrix} \alpha,if LAT(m)\leq T\\ \beta ,otherwise \end{matrix}\right. w={α,ifLAT(m)Tβ,otherwise
其中, α 、 β \alpha、\beta αβ推荐的值为-0.07.

就可区分的神经体系结构搜索(DNAS)框架而言,约束条件(即损失函数)应可区分。 为此,FBNet [128]使用延迟查找表模型来基于每个操作的运行时间来估计网络的总体等待时间。 损失函数定义为:
L ( a , θ a ) = C E ( a , θ a ) ⋅ α l o g ( L A T ( a ) ) β L(a,\theta _a) = CE(a,\theta_a)\cdot \alpha log(LAT(a))^\beta L(a,θa)=CE(a,θa)αlog(LAT(a))β
其中, C E ( a , θ a ) CE(a,\theta_a) CE(a,θa)表示带有权重 θ a \theta_a θa的结构a的交叉熵损失。像MnasNet [127]一样,此损失函数具有两个需要手动设置的超参数:α和β分别控制损失函数的大小和等待时间项。 在SNAS [152]中,所生成子网络的时间成本与one-hot随机变量呈线性关系,从而确保了资源约束的可区分性。

6. NAS性能概述


在本节中,我们将从全局的角度总结和比较这些NAS算法的性能,以使读者对NAS方法的发展有更清晰、更全面的理解。 然后我们将讨论一些值得研究的NAS技术问题,并介绍图像之外的NAS应用程序分类。

(1) NAS性能比较。值得注意的是,许多NAS研究可能提出几个神经结构变异,其中每个变体是专为不同的场景(例如,一些架构表现得更好但由于大尺寸,虽然有些是轻量级的移动设备,但性能损失),所以我们只对每个工作报告代表的结果。另外,为了保证有效的比较,我们将精度和算法效率作为比较指标。由于不同研究使用的GPU数量和类型不同,我们使用GPU天数来近似计算效率,其定义为:
G P U D a y s = N × D GPU Days = N \times D GPUDays=N×D
其中N表示gpu的数量,D表示实际搜索花费的天数。

在这里插入图片描述
在这里插入图片描述

表3和表4分别展示了在CIFAR-10和ImageNet上不同NAS研究的性能。此外,由于大多数NAS方法首先基于小数据集(CIFAR-10)搜索神经结构,然后将该结构转移到大数据集(ImageNet),因此对两个数据集的搜索时间可能是相同的。
从表中可以看出,基于EA和RL的NAS方法的早期工作更注重高性能,而不考虑资源消耗。例如,虽然AmoebaNet[26]在CIFAR-10和ImageNet上都取得了很好的结果,但是它在450个GPU上花费了3150个GPU天进行搜索。后续NAS的研究努力在保证搜索模型的高性能的同时提高搜索效率。例如,EENA[146]精心设计了突变和交叉操作,可以重用学习到的信息来指导进化过程,从而大大提高了基于EA的NAS方法的效率。ENAS[13]是最早提出参数共享策略的基于rna的NAS方法之一,将GPU预算减少到1,搜索时间缩短到不到一天。我们还观察到,基于梯度下降的架构优化方法可以大大减少搜索和实现SOTA结果的计算资源消耗。很多后续工作就是在这个方向上做进一步的改进和优化。有趣的是,基于随机搜索的方法也可以获得可比较的结果。文献[177]的作者证明,基于权重共享的随机搜索能够超过一系列强大的搜索方法,如ENAS[13]和DARTS[17]。

①Kendall Tau metric。

由于随机搜索可与那些更复杂的方法(例如DARTS和ENAS)相比较,一个自然的问题是:与随机搜索相比,其他架构优化算法的优势和意义是什么?研究人员试图使用其他指标来回答这个问题,而不仅仅是考虑模型的最终准确性。大多数NAS方法包括两个阶段:1)在训练集上寻找性能最好的体系结构;2)然后将其扩展到一个更深的阶段,并在验证集上进行估计,但这两个阶段之间通常存在较大的差距。
换句话说,在训练集架构,达到最好的结果未必是最好的一个验证集。因此,不是仅仅考虑最终的精度和搜索时间成本,许多NAS研究(217,220,211,120]利用肯德尔τ(τ)指标[221]来衡量模型的相关性表现之间的搜索和评估阶段。
定义的价值为:
τ = N c − N D N c + N D \tau =\frac{N_c-N_D}{N_c+N_D} τ=Nc+NDNcND
其中 N C N_C NC N D N_D ND指示整合和不整合对的数目, τ \tau τ是一个[-1,1]的数字,1表示两个排名是一致的;-1表示两个排名是完全相反的,0表示两个排名没关系。

②NAS-Bench数据集

虽然表3和表4给出了不同NAS方法之间的清晰比较,但不同方法的结果是在不同的设置下得到的,如与训练相关的超参数(如批大小和训练epoch)、数据增强(如Cutout[88])。换句话说,这种比较是不太公平的。在此背景下,NAS-Bench-101[222]是缓解不可重现性问题的一项开创性工作。它提供了一个包含423,624个独特神经网络的表格数据集,这些神经网络是从一个固定的基于图的搜索空间生成和评估的,并映射到它们在CIFAR-10上训练和评估的性能。此外,Dong等[223]进一步构建了NAS-Bench-201,它是NAS-Bench-101的扩展,具有不同的搜索空间、在多个数据集(CIFAR-10、CIFAR-100、ImageNet16-120[191])上的结果以及更多的诊断信息。类似地,Klyuchnikov等人[224]为NLP任务提出了一个nasa - bench。这些数据集使NAS研究人员能够集中精力,通过验证他们提出的架构优化算法的有效性和效率,避免了对所选架构的重复训练,极大地帮助了NAS社区的发展。

(2)一阶vs二阶

根据流程,NAS方法可以大致分为两类:两级和一级,如图20所示。

在这里插入图片描述

两阶段NAS由搜索阶段和评价阶段组成。搜索阶段包括架构优化和参数训练。最简单的想法是从头训练所有可能的架构,然后选择最优的一个。然而,它需要很多资源(例如,NAS-RL[12]用了22400 GPU天,800 K40 GPU进行搜索),这对大多数公司和机构来说是不可行的。因此,大多数NAS方法(如ENAS[13]和DARTS[17])在搜索阶段对大量候选架构进行采样和训练,然后在评估阶段对性能最好的架构进行进一步的再训练。

一级NAS是指一类NAS方法,通过同时运行架构优化和参数训练,可以导出设计良好和训练良好的神经架构,而无需进行额外的再训练。这样可以大大提高效率。然而,它是目前任何一般NAS问题的主要挑战。最近的一些研究[215,225,226,216]试图克服这一挑战。例如,在[215]中,作者提出了逐步缩小算法,在训练完成后对权值进行后处理。
具体来说,他们首先对整个神经网络进行预训练,然后逐步对与整个网络共享权值的较小网络进行微调。基于精心设计的约束条件,保证了所有子网的性能。因此,给定一个目标部署设备,就可以直接导出专门的子网络,而不需要进行微调。
但是[215]仍然需要大量的计算资源,在V100 GPU的情况下,整个过程花费了1200 GPU小时。BigNAS[226]重新审视了独立网络的传统训练技术,并根据经验提出了几种技术来处理更广泛的模型集,大小从200M到1G,而[215]只处理6亿以下的模型。AtomNAS[216]和DSNAS[217]都提出了端到端一级NAS框架,以进一步提高性能和简化流程。

(3) one-shot/权重共享

如上所述,我们根据流程将NAS研究分为单阶段和两阶段方法(图20),而NAS算法是否属于one-stage取决于候选架构是否共享相同的权重(图21)。我们观察到,大多数一级NAS方法都是基于one-shot范式的。什么是one-shot的NAS? one-shotNAS方法将搜索空间嵌入到一个超参数化的超级网络中。因此,所有可能的架构都可以从超级网络中得到。图20显示了一次性NAS和非一次性NAS之间的搜索空间差异。每个圆圈表示不同的架构,其中one-stage NAS方法的架构彼此共享相同的权重。one-stage NAS方法可以分为两类,它们在如何处理架构优化和权重训练方面有所不同:耦合优化和解耦优化[227,214]。

在这里插入图片描述

耦合优化和解耦优化: 耦合优化。one-shot NAS方法的第一类以耦合方式优化架构和权重[13,17,151,129,152]。例如,ENAS[13]提出使用LSTM网络对新架构进行离散采样,然后使用几批训练数据来优化该架构的权重。在多次重复上述步骤后,将记录一系列架构及其相应的性能。最后,选择性能最好的架构进行进一步的再培训。DARTS[17]也使用类似的权重共享策略,但是架构分布是连续参数化的。超网络包含所有候选操作,每个操作都有可学习的参数。最好的架构可以直接从发行版中得到。但是由于DARTS[17]直接优化了超净权重和架构分布,因此GPU内存消耗巨大。虽然类似飞镖的方法[129,151,152]提出了减少资源需求的不同方法,但耦合优化不可避免地在架构分布和超净权重方面引入了偏差[194,227],因为它们对所有子网络都不平等。具体来说,快速融合的架构更容易获得更多的优化机会[17,156],而这些架构只是整个候选架构的一小部分;因此,要找到最好的架构是非常困难的。耦合优化的另一个缺点是,在不断采样和训练新的架构时,会对以前架构的权重产生负面影响,导致性能下降。[228]将这种现象定义为多模式遗忘。为了克服这一问题,Zhang等人[229]将超级网络训练建模为连续学习的约束优化问题,并提出了新的基于搜索的架构选择(NSAS)损失函数。他们将该方法应用于RandomNAS[177]和GDAS[151],实验结果表明,该方法能够有效减少多模型遗忘,提高超级网络作为评价者的预测能力。解耦优化。第二类one-shot NAS方法[207,230,227,215]通过将架构和权重的优化解耦为两个连续的阶段来解决上述单镜头方法的问题:1)训练超级网络;2)利用训练好的超级网络作为不同架构的预测性能评估器,选择最有前途的架构。在超级网络训练阶段,超级网络不能像常规神经网络那样直接进行训练,因为超级网络的权值也是深度耦合的[194]。Yu等[11]的工作实验表明,权值共享策略会损害单个架构的性能,并对候选架构的实际性能排名产生负面影响。为了减少权重耦合,许多一次性NAS方法[194,207,14,212]提出了随机抽样策略,该策略从超级网络中均匀随机抽取一个架构,只激活和优化该架构的权重。RandomNAS[177]也证明了随机搜索策略是一种竞争基线方法。虽然抽样的策略和训练只有一条路径的supernet每次已经采用前一次性方法[151、13、152、129、128],他们样本路径根据RL控制器[13],甘力克Softmax(151、152、128),或BinaryConnect网络[129],而不是高度夫妇架构和supernet权重。SMASH[14]提出了一种辅助超网络来生成随机采样架构的权值。类似地,Zhang等人[212]提出了一种计算图表示,并使用图超网络(GHN)比常规超网络(SMASH[14])更快更准确地预测所有可能架构的权值。然而,Bender等人[230]通过细致的实验分析来理解权值共享策略的机制,并表明找到最优架构不需要超网络和RL控制器。在[230]中,作者提出了一种路径退出策略来缓解权重耦合问题。在训练超级网络的过程中,超级网络的每条路径都是随机掉落的,概率逐渐增加。GreedyNAS[214]提出了一种训练贪婪超级网络的多路径采样策略。与随机搜索相比,该策略可以集中在更有潜力的路径上,并被证明在获得相当高的候选体系结构的秩相关性方面是有效的。第二阶段涉及如何从训练有素的超级网上选择最有前途的架构,这是大多数NAS任务的主要目的。SMASH [14]和[230]均从超网中随机选择一组架构,并根据其性能对其进行排名。SMASH可以通过对每种体系结构进行一次培训来获得所有选定体系结构的验证性能,因为这些体系结构分配有超网络生成的权重。此外,[230]观察到具有较小对称KL散度值的体系结构更有可能表现更好。

等式如下:

D S K L = D K L ( p ∣ ∣ q ) + D K L ( q ∣ ∣ p ) s . t . D K L ( p ∣ ∣ q ) = ∑ i = 1 n p i l o g p i q i D_{SKL} = D_{KL}(p||q) + D_{KL}(q||p) \\ s.t.D_{KL}(p||q) = \sum_{i=1}^{n}p_i log\frac{p_i}{q_i} DSKL=DKL(pq)+DKL(qp)s.t.DKL(pq)=i=1npilogqipi

其中 ( p 1 , . . . , p n ) (p_1,...,p_n) p1...pn q 1 , . . . , q n q_1,...,q_n q1...qn表示对采样体系结构和单发模型的预测,而n是类数。 计算KL值的成本非常小; 在[230]中,仅使用了64个随机训练数据示例。 进化算法(EA)也是一种很有前途的搜索解决方案[194,214]。 例如,SPOS [194]利用EA从超网中搜索架构。 它比第4节中介绍的EA方法更有效,因为每个采样的体系结构仅执行推理。 自评估模板网络(SETN)[207]提出了一种估计器,以预测每种架构可能具有较低验证损失的概率。 实验结果表明,SETN可以潜在地找到比随机性能更好的体系结构。

(4) 联合超参数和架构优化

大多数NAS方法在整个搜索阶段都固定了相同的训练相关超参数设置。搜索完成后,将进一步优化性能最好的体系结构的超参数。然而,这种范式可能会导致次优结果,因为不同的架构往往适合不同的超参数,使得模型的排名不公平[231]。
因此,一种很有前途的解决方案是联合超参数和架构优化(HAO)[34, 232,231,233]。例如,Zela等人[34]将NAS转换为超参数优化问题。这样,将NAS的搜索空间与标准超参数相结合,利用高效的HPO方法BOHB[38]联合优化架构和超参数。
类似地,Dong等人[231]提出了一种可微的方法,即AutoHAS,该方法通过统一架构的所有候选选项的表示(如层数)和超参数(如学习率),构建NAS和HPO搜索空间的笛卡尔积。挑战在于架构搜索空间的候选选择通常是分类的,而超参数的选择可以是分类的(比如优化器的类型)和连续的(比如学习率)。为了克服这一挑战,AutoHAS将连续超参数离散为多个范畴基的线性组合。例如,学习率的分类基为{0.1,0.2,0.3},则最终的学习率定义为lr = w1×0.1+w2×0.2+w3×0.3。
FBNetv3[233]还提出联合搜索架构和相应的训练方法(即超参数)。该体系结构以单一分类变量和积分(最小-最大归一化)范围变量表示,并将该表示反馈给编码器网络以生成体系结构嵌入。然后采用体系结构嵌入和训练超参数的拼接来训练精度预测器,用于后期寻找有前景的体系结构和超参数。

7. 开放问题和未来的工作


(1) 灵活的空间搜索。如第4节所述,有几种类型的搜索空间,其中的原始操作大致可以分为pooling和convolution。有些甚至使用更复杂的模块(MBConv[127])作为原始操作。虽然这些搜索空间已经被证明能够有效地生成性能良好的神经结构,但它们都是基于人类的知识和经验,这不可避免地引入了人类的偏见,因此仍然没有脱离人类设计范式。AutoMLZero[283]使用非常简单的数学操作(例如cos, sin, mean,std)作为搜索空间的原始操作,以最小化人类偏差,并应用进化算法来发现完整的机器学习算法。AutoML-Zero成功地设计了基于这些基本数学运算的双层神经网络。虽然AutoML-Zero搜索的网络比人类设计的网络和nasa设计的网络要简单得多,但实验结果表明,有可能发现一种新的模型设计范式,其中人类设计最少。因此,如何设计一个更通用、更灵活、更不受人为偏见影响的搜索空间,以及如何基于该搜索空间发现新的神经结构,将具有挑战性和优势。

(2) 将NAS应用于更多领域。如第6节所述,NAS算法设计的模型在图像分类任务(CIFAR-10和ImageNet)中取得了与手动设计模型相当的结果。此外,最近许多研究也将NAS应用于其他CV任务(如表5所示)。然而,就NLP任务而言,大多数NAS的研究都是如此只在PTB数据集上执行实验。此外,几个NAS研究也试图应用NAS其他NLP任务(见表5)。然而,如图22所示,仍有很大的性能差距NASdesigned模型([12]13日17日)和构造模型(GPT-2 [284], FRAGE AWD-LSTM-Mos[4],对抗AWD-LSTM-Mos[285]和Transformer-XL[5])肺结核数据集。因此,NAS科学界要取得与NLP专家设计的模型相当的结果还有很长的路要走。除了CV和NLP任务外,表5还显示了NAS已经被应用到各种任务中,如网络压缩、联邦成员学习、图像标题、推荐系统,甚至搜索丢失函数。因此,这些有趣的工作也预示了NAS在其他领域的应用潜力。
在这里插入图片描述

(3) 可解释性。

尽管自动算法可以比人类更有效地找到有前途的配置设置,但是缺少科学证据来说明为什么这些设置执行得更好。
例如,在BlockQNN[16]中,不清楚为什么NAS算法倾向于选择“连接”操作来处理单元中每个块的输出,而不是按元素添加操作。最近的一些研究[230,286,95]对这些现象的解释通常是后见之明,缺乏严格的数学证明。因此,增加数学的形式
自动汽车的可解释性也是一个重要的发展方向。

(4) 复现性

众所周知,ML的一个主要挑战是重现性。AutoML也不例外,特别是对于NAS,因为大多数现有的NAS算法仍然有许多参数需要在实现级别手动设置,但原始论文没有涉及太多细节。例如,Yang等[120]实验证明种子在NAS实验中起着重要作用,而大多数NAS方法在论文中并未提及其实验设置的种子。此外,巨大的资源消耗是繁殖的另一个障碍。在此背景下,提出了几种nasa - bench数据集,如nasn - bench -101[222]、nasn - bench -201[223]和nasn - bench - nlp[224]。这些数据集使NAS研究人员可以集中精力设计优化算法,而不必在模型估计上浪费大量时间。

(5) 鲁棒性

NAS已经被证明在许多开放数据集(如CIFAR-10和ImageNet)上搜索有前途的架构是有效的。这些数据集通常用于研究目的;因此,大多数图像都被很好地标记了。然而,在现实情况下,数据不可避免地包含噪音(例如,错误的标签和不充分的信息)。更糟糕的是,这些数据可能会被修改成带有精心设计噪音的敌对数据。深度学习模型很容易被敌对的数据所欺骗,NAS也是如此。目前,有少数研究[287,288,289,290]致力于增强NAS对敌对数据的鲁棒性。Guo等人[288]实验研究了网络架构对网络抗敌对攻击鲁棒性的内在影响,发现连接紧密的架构往往更鲁棒。他们还发现FSP (flow of solution procedure, FSP)矩阵[291]是一个很好的网络鲁棒性指标,即FSP矩阵损失越低,网络鲁棒性越强。Chen等人[289]提出了一种鲁棒损失函数来有效缓解对称标签噪声下的性能退化。在[290]中,作者采用一种进化算法在设计良好的广阔搜索空间中搜索鲁棒架构,其中许多类型的对抗攻击被用作适应度函数来评估神经架构的鲁棒性。

(6) 联合超参数和架构优化

大多数NAS研究将超参数优化(HPO)和架构优化(AO)视为两个独立的过程。然而,如第4节所述,在HPO和AO中使用的方法有很多重叠,例如,它们都应用了随机搜索、贝叶斯优化和基于梯度的优化方法。换句话说,联合优化超参数和架构是可行的。一些研究[232,231,233]也在实验上证实了这种可能性。因此,如何优雅地解决联合超参数与结构优化问题是一个值得研究的问题。

(7) AutoML流水线

AutoML管道图书馆提出已经有很多,但大多数人只关注AutoML管道的某些部分(图1)。例如,TPOT [292], Auto-WEAK[174],和Auto-Sklearn[293]之上的scikit-learn[294]构建分类和回归管道,但他们只是寻找传统ML模型(如支持向量机和资讯。虽然TPOT涉及神经网络(使用Pytorch[295]后端),但它只支持多层感知网络。Auto-Keras[22]是基于Keras开发的开源库[296]。它更注重搜索深度学习模型,支持多模式和多任务。NNI[297]是一个更强大的AutoML工具包,因为它的内置功能包含自动特性工程、超参数优化和神经结构搜索。此外,NNI中的NAS模块同时支持Pytorch[295]和Tensorflow[298],并复制了许多SOTA NAS方法[13、17、129、125、194、177、222],对NAS研究者和开发人员非常友好。此外,NNI还整合了scikiti -learn的特性[294],向完整的管道又迈进了一步。类似地,Vega[299]是另一个自动算法工具,它构建一个完整的管道,覆盖一组高度解耦的功能:数据增强、HPO、NAS、模型压缩和完全训练。总之,设计一个易于使用和完整的
自动化管道系统是一个很有前途的研究方向。

(8) 终生学习

最后但并非最不重要的是,大多数自动算法只专注于解决一些固定数据集上的特定任务,如CIFAR-10和ImageNet上的图像分类。然而,一个高质量的自动化系统应该具备终身学习的能力,即1)能够有效地学习新数据;2)同时记住旧知识。

首先,系统应该能够重用现有知识来解决新任务(即学习学习)。例如,一个孩子在看到这些动物的几张照片后可以快速识别出老虎,兔子和大象,但是当前的DL模型必须在大量数据上进行训练才能正确识别图像。该领域的热门话题是元学习,它旨在利用以前的经验为新任务设计模型。元学习。现有的大多数NAS方法可以搜索性能良好的体系结构以查找单个任务。但是,对于新任务,他们必须寻找新的体系结构。否则,旧架构可能不是最佳选择。多项研究[300、301、302、303]结合了元学习和NAS来解决此问题。 Lian等人的最新著作。 [302]提出了一种新颖的基于金属学习的可转移神经体系结构搜索(TNAS)方法来生成元体系结构,该方法可以通过几个梯度步骤轻松,快速地适应新任务。学习新数据的另一个挑战是几次学习的情况,其中新任务的数据数量有限。 [301]和[300]将NAS应用于短时学习以克服这一挑战,而他们仅搜索最有前途的体系结构并对其进行优化以处理多个短时学习任务。 Elsken等。 [303]提出了一种基于梯度的元学习NAS方法,即METANAS,该方法可以更有效地生成特定于任务的架构,因为它不需要元再训练。无监督学习。基于元学习的NAS方法更多地关注标记的数据,而在某些情况下,仅一部分数据可能具有标签,甚至根本没有标签。刘等。 [304]提出了一个通用的问题设置,即无监督神经体系结构搜索(UnNAS),以探索标签对于NAS是否必要。他们通过实验证明,没有标签搜索的体系结构与有标签搜索的体系结构竞争。因此,结果表明,NAS不需要标签,这会激起人们思考完全影响NAS。

另外,AutoML系统必须能够不断获取和学习新数据,而又不会忘记旧数据中的知识。 但是,当我们使用新的数据集训练预训练模型时,该模型在先前数据集上的性能将大大降低。 增量学习可以减轻这个问题。 例如,Li and Hoiem [305]提出了一种学习不遗忘(LwF)的方法,该方法仅使用新数据来训练模型,同时保留其原始功能。 另外,iCaRL [306]基于LwF取得了进展。 它只使用一小部分旧数据进行预训练,然后逐渐增加新数据类别的比例用于训练模型。

8. 结论


在本文中,我们根据ML管道(参见图1)对AutoML的研究进行了详细而系统的综述,范围从数据准备到模型估计。 此外,我们在CIFAR-10和ImageNet数据集上比较了现有NAS算法的性能和效率,并深入讨论了NAS的不同研究方向:一阶段/两阶段NAS,一次性NAS和联合Hyper 参数和体系结构优化(HAO)。 我们还将描述一些有趣且重要的开放问题,并讨论一些重要的未来研究方向。 尽管对AutoML的研究尚处于起步阶段,但我们相信未来的研究人员将有效解决这些问题。 在这种情况下,本审查将使AutoML全面而清晰地理解,以使该领域的新手受益。因此有助于他们未来的研究工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AutoML-A survey of the state-of-the art翻译+总结 的相关文章

  • 阿里云云效:代码提交使用

    最近采用阿里云的云效作为管理工具之一 确实蛮不错自动化部署自动化合并代码 但是还是有一定的不同之处 比如我今天提交代码 编码五分钟提交大半天 找了别人也不清楚什么问题 其实是搞错了人家的代码发布流程 首先提交代码第一步 云效创建分支 云效最
  • CSS实现旋转风车

    CSS实现旋转风车 使用css实现旋转风车主要是运用border和css动画来实现的 效果图如下 一 制作风车 首先观察风车是由8个相等形状大小的三角形旋转组成的 可以发现都是围绕一个中心点旋转组成的 所以我们可以先用border画出一个中
  • 系统管理员设置了系统策略禁止进行此安装怎么解决

    最近一位用户在电脑下载安装软件时 系统出现提示 系统管理员设置了系统策略 禁止进行此安装 这该怎么办呢 既然系统管理员禁止了程序安装 那么我们只要开启相应的安装权限就可以了 下面 小编给大家讲解系统管理员设置了系统策略禁止进行此安装的处理方

随机推荐

  • MYSQL中的CREATE TEMPORARY TABLE

    Posted on 八月 19 2008 by arrowpig1979 记录一下今天的一个BUG FIXING 早上收到一个BUG 说有一个到模块A的调用B 多执行几次以后就会出错 错误信息显示SQL ERROR 因为CDC SBE就我最
  • Parker - 最高效的自动标注工具

    http www getmarkman com http www cutterman cn zh parker
  • vue3时间插件——Moment.js使用

    在日期时间这一块在js中是有体现的 但是用起来不是特别方便 尤其是在vue框架中 我们也不可能去那样使用 显得很笨拙麻烦 所以给大家这次带来一个好用的时间插件 就是Moment时间插件 很小巧 使用也方便 也兼容vue3 下面来详细介绍一下
  • 网络层:IP协议

    本博文分享的是网络层的IP协议 从IP协议的基本概念 协议格式开始分析并分享出来 IP协议的基本概念 不同于讨论TCP UDP时只讨论通信主机之间的关系 在讨论IP协议中 会加上主机之间的网络来一起进行讨论分析 主机 一般配有IP地址 路由
  • 【vision transformer】LETR论文解读及代码实战(一)

    LETR Line Segment Detection Using Transformers without Edges 基于vision transformer DETR 提取wireframe的网络框架 截止日前实现了sota性能 论文
  • C3P0连接池的断开自动重联功能

    问题背景 Java后台日志发现Error updating database Cause com mysql jdbc exceptions jdbc4 CommunicationsException Communications link
  • 跨域问题(CORS / Access-Control-Allow-Origin)

    1 前言 最近在项目中 调用Eureka REST接口时 出现了CORS跨越问题 Cross origin resource sharing 在此与大家进行分享 避免多走些弯路 项目前端 http localhost 9000 通过Ajax
  • python对Json文件的操作

    深层嵌套的Json 使用方式 传递的是json转成str后的json data finder JsonPathFinder json data 寻找所有的cursor字段 path list finder finder find all c
  • React:阻止默认事件

    在html页面中直接通过return false即可阻止默认事件 a href 点击 a 而在react中需要使用e preventDefault function PreventDe return a href console log 阻
  • C++11 -- lambda表达式

    文章目录 lamaba表达式的引入 lambda表达式语法 lamabda达式各部分说明 捕获列表说明 lamaba表达式底层原理探索 lamaba表达式的引入 在C 11之前 如果我们想对自定义类型Goods排序 可以根据姓名 价格 学号
  • git 代码不同版本的对比(IDEA)

    一 和远程文件进行对比 开发过程中我们经常需要在版本的基础上对比和上个版本的代码的区别 那 使用IDEA工具如何对比提交的不同的版本代码呢 打开我们项目的代码 以GIT版本控制为例 找到需要比较的类 右键点击类会弹出如下的选项 选择git
  • 攻防世界ctf-misc-新手联系区-1

    攻防世界ctf misc 新手联系区 1 签到题 比较简单 Most flags are in the form flag xxx for example flag th1s s a d4m0 4la9 flag th1s s a d4m0
  • excel求方差和标准差的函数_Excel标准差_计算函数Stdev和StdevP的使用方法

    Excel标准差 计算函数Stdev和StdevP的使用方法 Excel标准差核算共有六个函数 它们分别用于核算样本标准差和整体标准差 其间一些函数只能核算数值 另一些函数除能核算数值外还能核算文本和逻辑值 另外 假如要求核算满足指定条件的
  • STM32F1----TIM_GENERAL

    1 通用定时器PWM模式初始化流程 lt 1 gt 建立GPIO 时基 输出比较结构体 GPIO InitTypeDef GPIO InitStructure TIM TimeBaseInitTypeDef TIM TimeBaseStru
  • 软件项目管理 3.5.敏捷生存期模型

    前言 大家好 这节我们学习敏捷模型 前面介绍的几种生存期模型在实际应用过程中遇到的一些挑战 有时不能很好地适应需求的快速变化 为此软件界比较流行敏捷生命期模型 一 敏捷模型 敏捷宣言 价值观 原则 和通用实践之间的关系 敏捷模型符合敏捷宣言
  • CNN的重点整理

    1 常用的非线性激活函数 sigmoid tanh relu等等 前两者sigmoid tanh比较常见于全链接层 后者relu常见于卷积层 这里先简要介绍下最基础的sigmoid函数 btw 在本博客中SVM那篇文章开头有提过 sigmo
  • 染色——差分数组板子题

    问题描述 有编号为0到M 的 M 1 个格子 现在有N个操作 x y 表示将从x 到 y的格子染色 问一共有多少个格子被染色 输入 第一行两个整数 分别表示N和M 接下来有N行 每行两个整数 分别表示x和y 输出 输出一个整数 表示有多少个
  • [YOLO专题-12]:YOLO V5 - ultralytics支持的5种不同规模的模型类型比较

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 122294915 目录 1 概述 2
  • VR引擎哪家强?主流VR开发引擎大起底

    转载自 http www hiavr com news tech 22826 html ref myread 在VR浪潮面前 Unreal Unity CryENGINE各大游戏引擎纷纷跟进 都决心抓住这个绝无仅有的机会 一举奠定自己的江湖
  • AutoML-A survey of the state-of-the art翻译+总结

    AutoML A Survey of the State of the Art Abstract 深度学习 DL 技术已经渗透到我们生活的各个方面 给我们带来了极大的方便 然而 为特定任务构建高质量的DL系统高度依赖于人类的专业知识 这阻碍