CN118251679A - 一种神经网络架构搜索的方法和装置 - Google Patents
一种神经网络架构搜索的方法和装置 Download PDFInfo
- Publication number
- CN118251679A CN118251679A CN202180100615.XA CN202180100615A CN118251679A CN 118251679 A CN118251679 A CN 118251679A CN 202180100615 A CN202180100615 A CN 202180100615A CN 118251679 A CN118251679 A CN 118251679A
- Authority
- CN
- China
- Prior art keywords
- network architecture
- candidate
- network
- trained
- initial
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 65
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000012549 training Methods 0.000 claims abstract description 67
- 238000012216 screening Methods 0.000 claims abstract description 23
- 238000003860 storage Methods 0.000 claims description 21
- 238000011156 evaluation Methods 0.000 description 26
- 238000010586 diagram Methods 0.000 description 13
- 238000005457 optimization Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- 238000004422 calculation algorithm Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 10
- 239000003795 chemical substances by application Substances 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 238000007667 floating Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000003062 neural network model Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000013527 convolutional neural network Methods 0.000 description 3
- 210000005036 nerve Anatomy 0.000 description 3
- 210000004556 brain Anatomy 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000013178 mathematical model Methods 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 241000282412 Homo Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000019771 cognition Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000013210 evaluation model Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000011946 reduction process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种神经网络架构搜索的方法以及装置,方法包括:对初始离散编码指示的网络模型进行迭代训练,以评估网络模型的性能。将评估过的网络模型的离散编码以及性能存入目标集合中。判断是否满足预设的条件。若不满足,则将目标集合中存储的数据作为代理模型和编码器的训练样本,以获取训练后的代理模型和训练后的编码器。通过训练后的代理模型和训练后的编码器进行网络架构搜索,以获取候选集。对候选集进行筛选处理,以获取筛选后的候选集。将筛选后的候选集中的网络模型的离散编码,以及经过迭代训练后获取的筛选后的候选集中指示的每个网络架构网络模型的性能存入目标集合中,以再次判断是否满足预设条件。若满足,则输出目标集合中的目标离散编码。
Description
本申请涉及人工智能领域,并且更具体地,涉及一种神经网络架构搜索的方法和装置。
近年来,神经网络快速发展,在一些领域深度神经网络已经优于人类。但在实际应用中,由于应用场景、数据集、部署设备及指标要求等不同,往往需要经验丰富的专家花费大量的时间和精力才能构建出满足应用环境的神经网络。为了提高建立神经网络的效率,业界提出利用神经网络结构搜索(neural architecture search,NAS)来设计神经网络,以得到满足应用环境的神经网络。
神经网络结构搜索能够应用特定数据集自动搜索满足特定约束条件的达成特定目标的神经网络,即使用者不需要场景经验和深度学习的知识技能,就可以完成采用深度神经网络建模的过程。
当前,神经网络结构搜索面临着搜索空间维度高、搜索时间长等问题,导致建立神经网络的效率较低。提高建立神经网络的效率,是亟需解决的技术问题。
发明内容
本申请实施例提供一种神经网络架构搜索的方法和装置,可以提升神经网络结构搜索的效率。
为达到上述目的,本申请实施例提供如下技术方案:
本申请第一方面提供一种神经网络架构搜索的方法。包括:获取初始离散编码。对初始离散编码指示的网络模型进行迭代训练,并针对迭代训练的结果,评估网络模型的性能。将所有评估过的网络模型的离散编码以及性能存入目标集合中。判断是否满足预设的条件。若不满足预设的条件,则将目标集合中存储的数据作为代理模型和编码器的训练样本,以获取训练后的代理模型和训练后的编码器。通过训练后的代理模型和训练后的编码器进行网络架构搜索,以获取候选集。对候选集进行筛选处理,以获取筛选后的候选集。将筛选后的候选集中的网络模型的离散编码,以及经过迭代训练后获取的筛选后的候选集中指示的每个网络架构网络模型的性能存入目标集合中,以再次判断是否满足预设条件。若满足预设的条件,则输出目标集合中的目标离散编码。
本申请实施例提供的方案,不需要基于长时间迭代训练获取网络模型的性能,通过引入代理模型,对代理模型进行训练,并基于代理模型预测网络模型的性能,提升了网络架构的搜索效率。此外,本申请实施例提供的方案获取候选集的方式,可以采用已有的数学优化算法来获取,拓展方案的可采用方案。
在第一方面的一种可能的实施方式中,预设的条件包括目标集合中是否存在目标离散编码,目标离散编码指示的网络模型的性能满足预设的需求。
在第一方面的一种可能的实施方式中,通过训练后的代理模型和训练后的编码器进行网络架构搜索,以获取候选集,包括:通过训练后的编码器对候选网络架构进行编码,以获取编码后的候选网络架构。将编码后的候选网络架构作为训练后的代理模型的输入,以预测候选网络架构的性能。从全部候选网络架构中,获取性能满足阈值的候选网络架构。 根据性能满足阈值的候选网络架构确定候选集,候选集中包括性能满足阈值的候选网络架构的编码,以及训练后的代理模型预测的性能满足阈值的候选网络架构的性能。
在第一方面的一种可能的实施方式中,将目标集合中存储的数据作为代理模型和编码器的训练样本,以获取训练后的代理模型和训练后的编码器,包括:通过初始的编码器对目标集合中存储的网络架构的离散编码进行连续编码。将通过初始的编码器编码后的数据作为初始的代理模型的输入。根据处理的代理模型的输出以及目标集合中存储的网络架构的性能之间的差异,获取第一损失。将通过初始的编码器编码后的数据作为初始的解码器的输入。根据初始的解码器的输出以及目标集合中存储的网络架构的离散编码之间的差异,获取第二损失。根据第一损失和第二损失,更新初始的编码器、初始的解码器以及初始的代理模型,以获取训练后的代理模型和训练后的编码器。
本申请第二方面提供一种神经网络架构搜索的装置,包括:第一获取模块,用于获取初始离散编码。第一训练模块,用于对初始离散编码指示的网络模型进行迭代训练,并针对迭代训练的结果,评估网络模型的性能。存储模块,用于将所有评估过的网络模型的离散编码以及性能存入目标集合中。判断模块,用于判断是否满足预设的条件。第二训练模块,用于若不满足预设的条件,则将目标集合中存储的数据作为代理模型和编码器的训练样本,以获取训练后的代理模型和训练后的编码器。第二获取模块,用于通过训练后的代理模型和训练后的编码器进行网络架构搜索,以获取候选集。筛选模块,用于对候选集进行筛选处理,以获取筛选后的候选集。存储模块,还用于将筛选后的候选集中的网络模型的离散编码,以及经过迭代训练后获取的筛选后的候选集中指示的每个网络架构网络模型的性能存入目标集合中,以通过判断模块再次判断是否满足预设条件。输出模块,用于若满足预设的条件,则输出目标集合中的目标离散编码。
在第二方面的一种可能的实施方式中,预设的条件包括目标集合中是否存在目标离散编码,目标离散编码指示的网络模型的性能满足预设的需求。
在第二方面的一种可能的实施方式中,第二获取模块,具体用于:通过训练后的编码器对候选网络架构进行编码,以获取编码后的候选网络架构。将编码后的候选网络架构作为训练后的代理模型的输入,以预测候选网络架构的性能。从全部候选网络架构中,获取性能满足阈值的候选网络架构。根据性能满足阈值的候选网络架构确定候选集,候选集中包括性能满足阈值的候选网络架构的编码,以及训练后的代理模型预测的性能满足阈值的候选网络架构的性能。
在第二方面的一种可能的实施方式中,第二训练模块,具体用于:通过初始的编码器对目标集合中存储的网络架构的离散编码进行连续编码。将通过初始的编码器编码后的数据作为初始的代理模型的输入。根据处理的代理模型的输出以及目标集合中存储的网络架构的性能之间的差异,获取第一损失。将通过初始的编码器编码后的数据作为初始的解码器的输入。根据初始的解码器的输出以及目标集合中存储的网络架构的离散编码之间的差异,获取第二损失。根据第一损失和第二损失,更新初始的编码器、初始的解码器以及初始的代理模型,以获取训练后的代理模型和训练后的编码器。
本申请第三方面提供一种神经网络架构搜索的装置,包括:
存储器,用于存储计算机可读指令。
还包括,与存储器耦合的处理器,用于执行存储器中的计算机可读指令从而执行如第一方面或第一方面任意一种可能的实施方式中所描述的方法。
本申请第四方面提供一种计算机可读存储介质,当指令在计算机装置上运行时,使得计算机装置执行第一方面或第一方面任意一种可能的实施方式中所描述的方法。
图1为一种NAS系统的架构示意图;
图2a为本申请实施例提供的一种神经网络架构搜索方法的流程示意图;
图2b为本申请实施例提供的一种神经网络架构搜索方法的流程示意图;
图3为对代理模型和编码器的联合训练过程的示意图;
图4-a为阶梯式候选网络架构预筛选方式的一个示意图;
图4-b为阶梯式候选网络架构预筛选方式的另一个示意图;
图4-c为阶梯式候选网络架构预筛选方式的另一个示意图;
图4-d为阶梯式候选网络架构预筛选方式的另一个示意图;
图4-e为阶梯式候选网络架构预筛选方式的另一个示意图;
图5为本申请实施例提供的一种神经网络架构搜索装置的结构示意图;
图6为本申请实施例提供的一种神经网络架构搜索装置的结构示意图。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了便于理解本申请的技术方案,下面对本申请涉及的一些技术术语进行介绍。
神经网络(neural networks,NN)是一种模拟人脑的神经网络以期能够实现类人工智能的数学模型,神经网络也可以称为神经网络模型。神经网络通常采用具有连接关系的多个神经元(也称作节点,node)模拟人脑的神经网络,实现图像分类、语音识别等任务。
其中,每个神经网络中各神经元连接所得的结构称为该神经网络的神经网络架构。典型的神经网络架构包括循环神经网络(recurrent neural network,RNN)、卷积神经网络(convolutional neural network,CNN)等等。神经网络架构可以通过有向图进行表征。有向图中的每条边具有一个权重,权重用于表征一条边中输入节点相对于该边中输出节点的重要性。神经网络的参数即包括上述权重。需要说明,权重通常可以利用样本对神经网络进行训练得到。
根据神经网络架构获得神经网络模型包括两个阶段。一个阶段是对神经网络架构进行权重初始化(weight initialization),得到初始神经网络模型,也称作初始子模型。其中,权重初始化是指对神经网络架构中各条边的权重(在有些情况下,还包括偏置)进行初始化。具体实现时,可以通过高斯分布生成权重初始值从而实现权重初始化。另一个阶段是,利用样本数据更新初始子模型的权重,得到子模型(child model)。具体地,将样本数据输入初始子模型,该初始子模型可以根据预测值以及样本数据携带的真值确定损失值,基于该损失值更新初始子模型的权重。通过多轮权重迭代,可以获得一个子模型。该子模型即为已训练 的、可用于特定应用的神经网络模型。
衡量一个子模型的优劣可以通过子模型的评价指标值实现。其中,评价指标值是对子模型从至少一个维度进行评价所得的度量值。子模型的评价指标值可以分为两类,一类评价指标值随着硬件变化而变化,另一类评价指标值随着硬件变化保持不变。为了方便描述,本申请将随着硬件变化而变化的评价指标值称为第一类评价指标值,将随着硬件变化保持不变的评价指标值称为第二类评价指标值。
第一类评价指标值是与硬件相关的评价指标值,包括与硬件相关的性能值。在一些实现方式中,与硬件相关的性能值包括模型推理时间、激活量、吞吐量、功耗和显存占用率中的任意一种或多种。第二类评价指标值是与硬件不相关的评价指标值,包括与硬件不相关的精度值。在一些实现方式中,精度值包括准确率(accuracy)、精确率(precision)、召回率(recall)中的任意一种或多种。其中,与硬件不相关的评价指标值还包括参数量和计算力,计算力具体包括每秒浮点运算次数。
对于目前的基于神经网络的各项任务而言,主要的过程依旧是由研究人员手动地探索新的神经网络架构。在机器视觉领域,这种手动的人工设计过程先后发现了(visual geometry group,VGG)、残差网络(residual network,Resnet)、密集连接网络(densely connected networks,DenseNet)等经典网络架构。而神经网络的性能往往取决于对任务的理解以及神经网络架构设计上的想象力。神经网络架构设计的整个过程需要研究人员对相关领域有着充分的认知,间接提高了从业人员的入门门槛。而且,研究人员通过人工方式不断地对神经网络架构进行改良也非常耗费时间。
随着近年来计算机设备的算力以及存储能力逐年递增,业界提出了一种神经网络架构搜索(neural architecture search,NAS)方法,用于实现自动地神经网络架构设计。与计算机学习神经网络的权重类似,计算机也可以通过NAS从搜索空间(search space)学习神经网络架构,从而实现神经网络架构设计。
如图1所示,为一种NAS系统的架构示意图,主要由搜索空间定义模块,结构参数学习模块和网络评估模块构成。
其中,搜索空间定义模块根据应用场景目标和数据集,引入先验知识选择合适的搜索空间。例如,针对图像分类任务,将搜索空间定位为经典分类网络重复堆叠结构。结构参数学习模块采用特定的优化方法对搜索空间包括的模型进行优化处理,以获取优化后的模型。网络评估模型评估优化后的模型的性能,并反馈给结构参数学习模块,使其更新优化方法,以使下一次生成的优化模型更接近目标,重复多次直至得到性能满足条件的目标模型。
申请人发现,图1以及与图1类似的的NAS系统,至少存在搜索效率低、搜索时间代价高、可扩展性差等问题。
为了解决上述技术问题,本申请实施例提供一种神经网络架构搜索的方法,下面结合具体的实施方式,对此进行介绍。
参阅图2a,为本申请实施例提供的一种神经网络架构搜索方法的流程示意图。
如图2a所示,本申请实施例提供的一种神经网络架构搜索方法,可以包括以下步骤:
201、获取初始离散编码。
在一个可能的实施方式中,可以均匀随机生成一组离散编码,作为网络架构的初始离散编码。其中,均匀随机生成一组离散编码,可以理解为采用不同的取值来编码网络架构时,每个取值被用到的概率是接近的。
本申请实施例也将初始离散编码称为初始种群,二者表示相同的意思。本申请实施例有时也将网络架构称为网络模型,二者表示相同的意思。本申请有时也将网络模型称为网络架构或者神经网络架构,他们表示相同的意思。
在一个可能的实施方式中,也可以借用本领域专家经验,以不均匀的方式生成一组离散编码,可以理解为采用不同的取值来编码网络架构时,每个取值被用到的概率不是接近的。
202、对初始离散编码指示的网络模型进行迭代训练,并针对迭代训练的结果,评估网络模型的性能。
每个初始离散编码用于指示一种网络模型,本申请实施例提供的方案,可以采用任意一种可能的方式对离散编码指示的网络模型的参数进行训练,比如可以采用随机梯度下降算法(stochastic gradient descent),对网络架构的参数进行训练。
通过迭代训练后获取的模型,在验证数据集上执行推理任务,以评估迭代训练后获取的模型的性能。需要说明的是,采用何种类型的评估指标来评估模型的性能,可以根据实际情况进行选取,本申请实施例对此并不进行限定。
203、将所有评估过的网络模型的离散编码以及性能存入目标集合中。
通过执行步骤202,对网络模型进行一轮迭代训练,会对网络模型的参数进行一次更新,初始离散编码也会随之进行一次更新,将更新后的离散编码,以及基于本次迭代训练获取的性能评估结果归档存入一个集合(archive)中。比如,对网络模型进行了10次迭代训练,则一共获取10个离散编码,以及10个评估结果,一个离散编码对应一个评估结果。
204、判断是否满足预设的条件。
若满足预设的条件,则执行步骤210,如果不满足预设的条件,则执行步骤205至步骤209。
其中,预设的条件是用于衡量目标集合中是否存在目标离散编码的,是否可以停止执行后续步骤,以输出目标离散编码,目标离散编码指示的网络模型的性能满足预设的需求。
示例性的,下面给出几种可能的预设的条件:
在一种可能的实施方式中,预设的条件为目标集合中是否存在目标离散编码,如果目标集合中不存在目标离散编码,则执行步骤210,如果目标集合中存在目标离散编码,则执行步骤205至步骤209。
在一种可能的实施方式中,步骤205至步骤209执行的次数是否达到阈值,如果未达到阈值,则执行步骤210,如果达到阈值,则执行步骤205至步骤209。
在一种可能的实施方式中,如果连续N次,更新后的目标集合中离散编码指示的全部网络模型中,最优的网络模型的性能之间的偏差不在预设范围内,则执行步骤205,如果连续N次,更新后的目标集合中离散编码指示的全部网络模型中,最优的网络模型的性能之间的偏差在预设范围内,则执行步骤206。在这种实施方式中,即认为如果重复执行方案,也不能获取性能更优的网络模型,则输出目标集合中的目标离散编码。
205、将目标集合中存储的数据作为代理模型和编码器的训练样本,以获取训练后的代理模型和训练后的编码器。
代理模型是指根据输入数据和输出响应数据构造的数学模型,用于代替计算复杂度高且计算时间长的原模型。换句话说,代理模型辅助的优化算法的基本思想是通过使用计算高效的代理模型近似拟合进化算法过程中的环境适应度评价(目标函数),再通过使用模型预测候选解的质量进行选择,从而节省真实目标评价次数,降低求解所需资源。
本申请实施例可以采用多种代理模型,本申请实施例对此并不进行限定。示例性的,包括但不限于多项式回归模型(polynomial regression surrogate,PRS)、支持向量回归模型(support vector regression,SVR)、高斯回归模型(gauss process regression,GPR)。
由于目标集合中存储的数据,是通过离散编码来编码网络模型,离散编码的方式可直观的编译网络模型的设计,但是,从搜索效率角度而言,连续实数编码方式相对于离散编码方式有显著优势,同时,为避免决策变量过多带来的“维度灾难”等优化难题,需要对网络架构编码进行适度压缩。基于这些考虑,可以通过编码器对目标集合中的离散编码进行编码,以将离散编码映射到连续空间映射,并且对离散编码进行降维处理。在这种实施方式中,可以将通过编码器编码后的数据作为代理模型的训练样本,以对代理模型进行训练。下面结合图3,对代理模型和编码器的联合训练过程进行介绍:
如图3所示,目标集合中存储的是高维度的离散编码,假设通过编码器对第一高维度的离散编码进行编码,以将第一高维度离散编码转化为第一低维度的连续编码,再通过解码器对编码器获取到第一低维度的连续编码进行解码操作,以获取第二高维度的离散编码,通过第二高维度的离散编码和第一高维度的离散编码之间的偏差,获取编码重构损失L1。此外,将第一高维度的离散编码作为代理模型的输入,根据代理模型的预测结果和该第一高维度的离散编码指示的性能之间的偏差,获取代理模型的训练损失L2。反向传播编码重构损失L1和训练损失L2,以更新编码器的参数、解码器的参数以及代理模型的参数。在一个可能的实施方式中,反向传播的损失L通过如下公式表示,其中γ为超参:
L=γL1+(1-γ)L2 (1-1)
此外,需要说明的是,本申请实施例可以采用任意一种可能的方式确定反向传播编码重构损失L1和训练损失L2,本申请实施例对此并不进行限定。
示例性的,下面给出一种获取L2的方式:
其中,代理模型采用多层感知器,以均方差作为L2数,通过训练多层感知器参数(权值)以减小预测值与真实值之间的绝对差异(欧式距离),具体的,
是多层感知器的预测值,w是多层感知器的可训练参数,y
i是训练样本x
i的真实值,N是训练样本数。
在一个可能的实施方式中,由于本申请实施例采用多目标优化作为搜索策略,此类基于种群内个体相对差异的优化算法,代理模型预测值与真实值之间的相关性更为重要。因此,本申请提出基于相对排序损失函数的代理模型训练方法,同以多层感知器作为代理模型为例,可以参照公式1-3和公式1-4进行理解:
其中,
是多层感知器分别对于第i,第j个训练样本的预测值。y
i∈[0,1],y
j∈[0,1]是归一化后的第i,第j个训练样本的真实值。同时,代理模型的预测值
也同样通过sigmoid函数映射至[0,1]区间。δ
是一个效用函数,指代两个训练样本的相对大小关系,而α是一个控制偏移量的超参数。
在代理模型的构造过程中,通常采用离线训练和在线更新两种方式,本申请实施例采用在线更新的方式。
206、通过训练后的代理模型和训练后的编码器进行网络架构搜索,以获取候选集。
通过步骤205获取了训练后的代理模型和训练后的编码器后,可以不再需要对网络架构进行迭代训练,以评估网络架构的性能,只需要将待评价性能的网络架构作为训练后的编码器的输入,将训练后的编码器的输出作为训练后的代理模型的输入,根据训练后的代理模型的输出,就可以直接获取待评价性能的网络模型的性能。
利用已有的多目标进化算法,对获取到的大量待评价性能的网络模型进行网络架构优化,可以获取候选集,候选集包括的网络模型的性能满足预设的需求。在一个可能的实施方式中,利用已有的多目标进化算法,进行网络架构优化,并输出一组近似帕累托最优解集(pareto set)作为候选集。
207、对候选集进行筛选处理,以获取筛选后的候选集。
多目标神经网络架构搜索问题通常涉及两类优化目标:1)网络架构在特定任务下的准确率,如:图像分类、分割;2)神经网络架构的复杂度,如模型参数量、特定硬件上的推理时延、能耗等。这两类目标从真实评价时间复杂度而言,存在巨大差异。具体而言,网络架构准确率高精度评价通常需要几小时至几天不等,而复杂度高精度评价通常需要几秒至几分钟。因此,结合以上问题特性,本申请提出阶梯式候选网络架构预筛选方法。下面结合图4-a至图4-d对此进行详细说明。
图4-a中,每一个坐标点用于表示目标集合中的一个离散编码指示的网络模型的性能,具体的,横轴代表浮点数运算量,纵轴代表根据目标集合中指示的性能获取的预测错误率。如上一段介绍到,复杂度高精度评价通常需要几秒至几分钟,所以可以先对搜索的网络架构的推理浮点数运算量进行高精度评价。如上一段介绍到,网络架构准确率高精度评价通常需要几小时至几天不等,所以采用训练后的编码器,以及训练后的代理模型直接对搜索的网络架构的性能进行评估,以获取每个搜索的网络架构的预测错误率,如图4-b所示,横轴代表浮点数运算量,纵轴代表根据代理模型预测的性能获取的预测错误率,具体的,如图4-b所示的每个坐标点用于表示候选集中每个网络架构的性能。由于图4-b所展示的每个坐标点的横轴的坐标值是真实的,纵轴的坐标值是基于代理模型预测的,所以将图4-b中的每个坐标点映射到横轴上,获取了如图4-c所示的图。如图4-c所示,其中横轴代表浮点数运算量,纵轴代表网络架构模型的数目,其中,黑色表示目标集合中的网络架构的数目,白色表示候选集中的网络架构的数目。再对候选集进行筛选的过程中,将筛选过程转化成子集选择问题,以提高在网络架构筛选后x轴分布的均匀性。换句话说,对候选集筛选后,使目标集合中的网络架构,和筛选后的候选集中的网络架构在x轴上尽量均匀分布。 如图4-d所示,从图4-b展示的候选集中的网络架构中,筛选出了部分网络架构,筛选出的网络架构和目标集合中的网络架构的数目在x轴接近均匀分布。
在一个可能的实施方式中,假设预先设定了筛选后的候选集中包括的网络架构的数目,如果经过上述自己选择问题后,筛选后的候选集中包括的网络架构的数目不满足预先设定,比如,筛选后的候选集中包括的网络架构的数目多余或者少于预先设定的数目,则可以依据代理模型预测的性能,从排序的方式,选择性能高的网络架构加入筛选后的候选集中,或者选择性能低的网络架构从筛选后的候选集中删除。在一个可能的实施方式中,也可以随机从候选集中选择网络架构加入筛选后的候选集中,或者从筛选后的候选集中删除部分网络架构,以满足预先设定的数目。
208、对筛选后的候选集中指示的每个网络架构进行至少一轮迭代训练,并针对每一轮迭代训练的结果,评估筛选后的候选集中指示的每个网络架构网络模型的性能。
如图4-d所示,经过迭代训练后,可以修正候选集中指示的每个网络架构网络模型的性能,即修正代理模型的预测结果。
209、将筛选后的候选集中的网络模型的离散编码,以及经过迭代训练后获取的筛选后的候选集中指示的每个网络架构网络模型的性能存入目标集合中,以判断是否满足预设条件。
其中,预设条件参照步骤204中描述的预设条件,进行理解,这里不再重复赘述。判断是否满足预设后,执行的相关步骤参照步骤204进行理解,这里不再重复赘述。
如图4-e所示,为将经过迭代训练后获取的筛选后的候选集中指示的每个网络架构网络模型的性能存入目标集合中的示意图。
210、输出目标集合中的目标离散编码。
由图2a对应的实施例可知,本申请实施例提供的方案,不需要基于长时间迭代训练获取网络模型的性能,通过引入代理模型,对代理模型进行训练,并基于代理模型预测网络模型的性能,提升了网络架构的搜索效率。此外,大多数的搜索方法需要或者每个网络模型的具体性能,而本申请提供的方案,基于种群内个体相对差异的优化算法,代理模型预测值与真实值之间的相关性更为重要,基只需要获取两个网络模型之间的差异就可以进行网络架构的搜索,具体参照1-3和公式1-4进行理解。此外,本申请实施例提供的方案获取候选集的方式,可以采用已有的数学优化算法来获取,拓展方案的可采用方案。
为了更清晰的展示本申请实施例提供的方案,下面结合图2b进行说明:S101为种群初始化,即均匀随机生成一组网络架构离散编码作为初始种群;S102根据学习任务(如分类,语义分割等),通过随机梯度下降算法(Stochastic Gradient Descent),对网络架构的参数(又称为权重、权值)进行训练,并通过在学习任务的验证数据集上做推理(inference)以评估网络架构性能;S103将所有评估过的网络架构的离散编码和性能归档存入一个专门的集合(archive);S104判断是否满足终止条件,如不满足条件,则开始一下轮迭代,如满足条件,则输出集合;S105将集合内的网络架构作为代理模型的训练样本,学习用于编码连续化的自编码器和用于预测网络架构性能的代理模型,可以参照步骤205进行理解;S106将通过学习得到的自编码器和代理模型,利用现成的多目标进化算法进行网络架构优化,并输出一组近似帕累托最优解集(Pareto Set);S107从近似帕累托最优网络架构集合 中选择一小部分“最具代表性”的候选网络架构。被选出的候选网络架构通过S102进行架构性能评估并加入存档集合(S103)。以上步骤S102-S107会循环至预设的终止条件满足。
以上,对本申请实施例提供的一种神经网络架构搜索的方法进行了介绍,下面对本申请实施例提供的神经网络架构搜索装置进行介绍。
图5所示为本申请实施例提供的神经网络架构搜索装置的硬件结构示意图。包括:通信接口501和处理器502,还可以包括存储器503。
通信接口501可以使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local area networks,WLAN)等。
处理器502包括但不限于中央处理器(central processing unit,CPU),网络处理器(network processor,NP),专用集成电路(application-specific integrated circuit,ASIC)或者可编程逻辑器件(programmable logic device,PLD)中的一个或多个。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。处理器502负责通信线路504和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节,电源管理以及其他控制功能。存储器503可以用于存储处理器502在执行操作时所使用的数据。
存储器503可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically er服务器able programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路504与处理器502相连接。存储器503也可以和处理器502集成在一起。如果存储器503和处理器502是相互独立的器件,存储器503和处理器502相连,例如存储器503和处理器502可以通过通信线路通信。通信接口501和处理器502可以通过通信线路通信,通信接口501也可以与处理器502直连。
通信线路504可以包括任意数量的互联的总线和桥,通信线路504将包括由处理器502代表的一个或多个处理器502和存储器503代表的存储器的各种电路链接在一起。通信线路504还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本申请不再对其进行进一步描述。
图6所示为本申请实施例提供的神经网络架构搜索装置的另一个结构示意图。
在一个可能的实施方式中,神经网络架构搜索的装置,包括:第一获取模块601,用于获取初始离散编码。第一训练模块602,用于对初始离散编码指示的网络模型进行迭代训练,并针对迭代训练的结果,评估网络模型的性能。存储模块603,用于将所有评估过的网络模型的离散编码以及性能存入目标集合中。判断模块604,用于判断是否满足预设的条件。第二训练模块605,用于若不满足预设的条件,则将目标集合中存储的数据作为代理模型和编码器的训练样本,以获取训练后的代理模型和训练后的编码器。第二获取模 块606,用于通过训练后的代理模型和训练后的编码器进行网络架构搜索,以获取候选集。筛选模块607,用于对候选集进行筛选处理,以获取筛选后的候选集。存储模块603,还用于将筛选后的候选集中的网络模型的离散编码,以及经过迭代训练后获取的筛选后的候选集中指示的每个网络架构网络模型的性能存入目标集合中,以通过判断模块604再次判断是否满足预设条件。输出模块608,用于若满足预设的条件,则输出目标集合中的目标离散编码。
在一个可能的实施方式中,预设的条件包括目标集合中是否存在目标离散编码,目标离散编码指示的网络模型的性能满足预设的需求。
在一个可能的实施方式中,第二获取模块606,具体用于:通过训练后的编码器对候选网络架构进行编码,以获取编码后的候选网络架构。将编码后的候选网络架构作为训练后的代理模型的输入,以预测候选网络架构的性能。从全部候选网络架构中,获取性能满足阈值的候选网络架构。根据性能满足阈值的候选网络架构确定候选集,候选集中包括性能满足阈值的候选网络架构的编码,以及训练后的代理模型预测的性能满足阈值的候选网络架构的性能。
在一个可能的实施方式中,第二训练模块605,具体用于:通过初始的编码器对目标集合中存储的网络架构的离散编码进行连续编码。将通过初始的编码器编码后的数据作为初始的代理模型的输入。根据处理的代理模型的输出以及目标集合中存储的网络架构的性能之间的差异,获取第一损失。将通过初始的编码器编码后的数据作为初始的解码器的输入。根据初始的解码器的输出以及目标集合中存储的网络架构的离散编码之间的差异,获取第二损失。根据第一损失和第二损失,更新初始的编码器、初始的解码器以及初始的代理模型,以获取训练后的代理模型和训练后的编码器。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本申请实施例所提供的神经网络架构搜索的方法、以及相关设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只 是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
- 一种神经网络架构搜索的方法,其特征在于,包括:获取初始离散编码;对所述初始离散编码指示的网络模型进行迭代训练,并针对迭代训练的结果,评估所述网络模型的性能;将所有评估过的网络模型的离散编码以及性能存入目标集合中;判断是否满足预设的条件;若不满足所述预设的条件,则将所述目标集合中存储的数据作为代理模型和编码器的训练样本,以获取训练后的代理模型和训练后的编码器;通过所述训练后的代理模型和所述训练后的编码器进行网络架构搜索,以获取候选集;对所述候选集进行筛选处理,以获取筛选后的候选集;将筛选后的候选集中的网络模型的离散编码,以及经过迭代训练后获取的筛选后的候选集中指示的每个网络架构网络模型的性能存入所述目标集合中,以再次判断是否满足所述预设条件;若满足所述预设的条件,则输出所述目标集合中的目标离散编码。
- 根据权利要求1所述的方法,其特征在于,所述预设的条件包括所述目标集合中是否存在目标离散编码,所述目标离散编码指示的网络模型的性能满足预设的需求。
- 根据权利要求1或2所述的方法,其特征在于,所述通过所述训练后的代理模型和所述训练后的编码器进行网络架构搜索,以获取候选集,包括:通过训练后的编码器对候选网络架构进行编码,以获取编码后的候选网络架构;将所述编码后的候选网络架构作为所述训练后的代理模型的输入,以预测所述候选网络架构的性能;从全部所述候选网络架构中,获取性能满足阈值的候选网络架构;根据所述性能满足阈值的候选网络架构确定所述候选集,所述候选集中包括所述性能满足阈值的候选网络架构的编码,以及所述训练后的代理模型预测的所述性能满足阈值的候选网络架构的性能。
- 根据权利要求3所述的方法,其特征在于,所述将所述目标集合中存储的数据作为代理模型和编码器的训练样本,以获取训练后的代理模型和训练后的编码器,包括:通过初始的编码器对所述目标集合中存储的网络架构的离散编码进行连续编码;将通过所述初始的编码器编码后的数据作为初始的代理模型的输入;根据所述处理的代理模型的输出以及所述目标集合中存储的网络架构的性能之间的差异,获取第一损失;将通过所述初始的编码器编码后的数据作为初始的解码器的输入;根据所述初始的解码器的输出以及所述目标集合中存储的网络架构的离散编码之间的差异,获取第二损失;根据所述第一损失和所述第二损失,更新所述初始的编码器、所述初始的解码器以及所述初始的代理模型,以获取所述训练后的代理模型和所述训练后的编码器。
- 一种神经网络架构搜索的装置,其特征在于,包括:第一获取模块,用于获取初始离散编码;第一训练模块,用于对所述初始离散编码指示的网络模型进行迭代训练,并针对迭代训练的结果,评估所述网络模型的性能;存储模块,用于将所有评估过的网络模型的离散编码以及性能存入目标集合中;判断模块,用于判断是否满足预设的条件;第二训练模块,用于若不满足所述预设的条件,则将所述目标集合中存储的数据作为代理模型和编码器的训练样本,以获取训练后的代理模型和训练后的编码器;第二获取模块,用于通过所述训练后的代理模型和所述训练后的编码器进行网络架构搜索,以获取候选集;筛选模块,用于对所述候选集进行筛选处理,以获取筛选后的候选集;所述存储模块,还用于将筛选后的候选集中的网络模型的离散编码,以及经过迭代训练后获取的筛选后的候选集中指示的每个网络架构网络模型的性能存入所述目标集合中,以通过所述判断模块再次判断是否满足所述预设条件;输出模块,用于若满足所述预设的条件,则输出所述目标集合中的目标离散编码。
- 根据权利要求5所述的装置,其特征在于,所述预设的条件包括所述目标集合中是否存在目标离散编码,所述目标离散编码指示的网络模型的性能满足预设的需求。
- 根据权利要求5或6所述的装置,其特征在于,所述第二获取模块,具体用于:通过训练后的编码器对候选网络架构进行编码,以获取编码后的候选网络架构;将所述编码后的候选网络架构作为所述训练后的代理模型的输入,以预测所述候选网络架构的性能;从全部所述候选网络架构中,获取性能满足阈值的候选网络架构;根据所述性能满足阈值的候选网络架构确定所述候选集,所述候选集中包括所述性能满足阈值的候选网络架构的编码,以及所述训练后的代理模型预测的所述性能满足阈值的候选网络架构的性能。
- 根据权利要求7所述的装置,其特征在于,所述第二训练模块,具体用于:通过初始的编码器对所述目标集合中存储的网络架构的离散编码进行连续编码;将通过所述初始的编码器编码后的数据作为初始的代理模型的输入;根据所述处理的代理模型的输出以及所述目标集合中存储的网络架构的性能之间的差异,获取第一损失;将通过所述初始的编码器编码后的数据作为初始的解码器的输入;根据所述初始的解码器的输出以及所述目标集合中存储的网络架构的离散编码之间的差异,获取第二损失;根据所述第一损失和所述第二损失,更新所述初始的编码器、所述初始的解码器以及所述初始的代理模型,以获取所述训练后的代理模型和所述训练后的编码器。
- 一种神经网络架构搜索的装置,其特征在于,包括:存储器,用于存储计算机可读指令;还包括,与所述存储器耦合的处理器,用于执行所述存储器中的计算机可读指令从而执行如权利要求1至4任一项所描述的方法。
- 一种计算机可读存储介质,其特征在于,当指令在计算机装置上运行时,使得所述计算机装置执行如权利要求1至4任一项所描述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/129542 WO2023082045A1 (zh) | 2021-11-09 | 2021-11-09 | 一种神经网络架构搜索的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118251679A true CN118251679A (zh) | 2024-06-25 |
Family
ID=86334979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180100615.XA Pending CN118251679A (zh) | 2021-11-09 | 2021-11-09 | 一种神经网络架构搜索的方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN118251679A (zh) |
WO (1) | WO2023082045A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110598842A (zh) * | 2019-07-17 | 2019-12-20 | 深圳大学 | 一种深度神经网络超参数优化方法、电子设备及存储介质 |
CN113361680B (zh) * | 2020-03-05 | 2024-04-12 | 华为云计算技术有限公司 | 一种神经网络架构搜索方法、装置、设备及介质 |
US11055639B1 (en) * | 2020-04-28 | 2021-07-06 | Sas Institute Inc. | Optimizing manufacturing processes using one or more machine learning models |
CN113408721A (zh) * | 2020-12-25 | 2021-09-17 | 中国科学院信息工程研究所 | 神经网络结构搜索方法、装置、计算机设备和存储介质 |
CN112560985B (zh) * | 2020-12-25 | 2024-01-12 | 北京百度网讯科技有限公司 | 神经网络的搜索方法、装置及电子设备 |
-
2021
- 2021-11-09 CN CN202180100615.XA patent/CN118251679A/zh active Pending
- 2021-11-09 WO PCT/CN2021/129542 patent/WO2023082045A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023082045A1 (zh) | 2023-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022141754A1 (zh) | 一种卷积神经网络通用压缩架构的自动剪枝方法及平台 | |
CN109120462B (zh) | 机会网络链路的预测方法、装置及可读存储介质 | |
CN113361680B (zh) | 一种神经网络架构搜索方法、装置、设备及介质 | |
US20200167659A1 (en) | Device and method for training neural network | |
CN111860982A (zh) | 一种基于vmd-fcm-gru的风电场短期风电功率预测方法 | |
US20220147877A1 (en) | System and method for automatic building of learning machines using learning machines | |
CN110571792A (zh) | 一种电网调控系统运行状态的分析评估方法及系统 | |
WO2022083624A1 (zh) | 一种模型的获取方法及设备 | |
CN110826692B (zh) | 一种自动化模型压缩方法、装置、设备及存储介质 | |
CN113723438A (zh) | 分类模型校准 | |
Loni et al. | Densedisp: Resource-aware disparity map estimation by compressing siamese neural architecture | |
Cai et al. | On-device image classification with proxyless neural architecture search and quantization-aware fine-tuning | |
CN115114128A (zh) | 一种卫星健康状态评估系统及评估方法 | |
CN113128689A (zh) | 一种调控知识图谱的实体关系路径推理方法及系统 | |
JP7214863B2 (ja) | 人工画像生成用コンピュータアーキテクチャ | |
CN115963420A (zh) | 一种电池soh影响因素分析方法 | |
WO2022147583A2 (en) | System and method for optimal placement of interacting objects on continuous (or discretized or mixed) domains | |
CN116822722A (zh) | 水位预测方法、系统、装置、电子设备及介质 | |
CN118251679A (zh) | 一种神经网络架构搜索的方法和装置 | |
CN115238874A (zh) | 一种量化因子的搜索方法、装置、计算机设备及存储介质 | |
CN115620046A (zh) | 一种基于半监督性能预测器的多目标神经架构搜索方法 | |
CN115238775A (zh) | 模型构建方法 | |
CN115361318A (zh) | 一种复杂环境下动态负载均衡的lstm边缘计算流量预测方法 | |
CN116157809A (zh) | 基于人工智能的模型的压缩的模型压缩技术的自动确定的方法 | |
CN114186668A (zh) | 一种物联网数据流预测的在线深度学习方法、系统和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication |