网络结构的搜索方法、装置、设备及存储介质
技术领域
本申请实施例涉及机器学习
技术领域
,具体涉及一种网络结构的搜索方法、装置、设备及存储介质。背景技术
随着深度学习技术的快速发展,深度学习技术已经被广泛地应用,如应用于图像识别、语音识别等等。
但是,依靠人工设计神经网络并具有优秀的性能是十分困难的事情,例如,神经网络的结构设计、训练策略、调参手段等方面往往需要研究者耗费大量人力物力进行实验探索。
目前现有技术中提出了神经网络架构搜索算法,旨在自动化完成神经网络架构的搜索,以解决人工设计神经网络所存在的问题。但是,现有的神经网络架构搜索算法存在搜索时间较长的问题。
发明内容
本申请实施例提供一种网络结构的搜索方法、装置、设备及存储介质,可以减短网络结构的实例训练时间,进而减短网络结构的搜索时间。
一方面,本申请实施例提供一种网络结构的搜索方法,所述方法包括:
根据预设的搜索策略,获取第一网络结构;
通过预设的性能预测模型,确定所述第一网络结构的目标网络性能;
根据所述目标网络性能更新所述搜索策略,并根据更新后的所述搜索策略获取第二网络结构,直至满足预设的停止搜索条件。
在本申请的一些实施例中,所述通过预设的性能预测模型,确定所述第一网络结构的目标网络性能,包括:
通过所述性能预测模型确定所述第一网络结构的第一网络性能,并获取所述第一网络结构的第二网络性能,所述第一网络性能是指基于所述性能预测模型预测得出的所述第一网络结构的网络性能,所述第二网络性能是指基于第一训练数据集和验证数据集确定的所述第一网络结构的网络性能;
根据所述第一网络性能和所述第二网络性能,确定所述第一网络结构的目标网络性能。
在本申请的一些实施例中,所述获取所述第一网络结构的第二网络性能,包括:
获取第一训练数据集和验证数据集;
根据所述第一训练数据集对所述第一网络结构进行训练,得到已训练网络结构;
根据所述验证数据集,获取所述已训练网络结构的网络性能,以作为所述第一网络结构的第二网络性能。
在本申请的一些实施例中,所述方法还包括:
获取历史网络结构的激励值,所述历史网络结构是指当满足预设的停止搜索条件时,当前搜索过的每个网络结构;
根据所述激励值和预设的目标函数,确定所述历史网络结构的目标函数值;
从所述历史网络结构中,获取目标网络结构,所述目标网络结构是指所述目标函数值最大值对应的网络结构。
在本申请的一些实施例中,所述获取历史网络结构的激励值,包括:
获取预设的需求性能;
根据所述需求性能和所述历史网络结构的网络性能,确定所述历史网络结构的激励值。
在本申请的一些实施例中,所述获取预设的需求性能,包括:
获取模型精度性能和模型速度性能,所述模型精度性能是指预设的对网络结构在验证数据集上的精度要求值,所述模型速度性能是指预设的对网络结构在预测速度上的要求值;
根据所述模型精度性能和所述模型速度性能,确定所述需求性能。
在本申请的一些实施例中,所述性能预测模型通过下列步骤得到:
获取第二训练数据集,所述第二训练数据集包括样本模型以及所述样本模型的网络性能;
根据所述第二训练数据集对初始模型进行训练;
将完成训练的模型确定为性能预测模型。
另一方面,本申请实施例提供一种网络结构的搜索装置,所述网络结构的搜索装置包括:
获取单元,用于根据预设的搜索策略,获取第一网络结构;
处理单元,用于通过预设的性能预测模型,确定所述获取单元获取的所述第一网络结构的目标网络性能;根据所述目标网络性能更新所述搜索策略,并根据更新后的所述搜索策略获取第二网络结构,直至满足预设的停止搜索条件。
在本申请的一些实施例中,所述处理单元具体还用于:
通过所述性能预测模型确定所述第一网络结构的第一网络性能,并获取所述第一网络结构的第二网络性能,所述第一网络性能是指基于所述性能预测模型预测得出的所述第一网络结构的网络性能,所述第二网络性能是指基于第一训练数据集和验证数据集确定的所述第一网络结构的网络性能;
根据所述第一网络性能和所述第二网络性能,确定所述第一网络结构的目标网络性能。
在本申请的一些实施例中,所述处理单元具体还用于:
获取第一训练数据集和验证数据集;
根据所述第一训练数据集对所述第一网络结构进行训练,得到已训练网络结构;
根据所述验证数据集,获取所述已训练网络结构的网络性能,以作为所述第一网络结构的第二网络性能。
在本申请的一些实施例中,所述网络结构的搜索装置还包括确定单元,所述确定单元具体用于:
获取历史网络结构的激励值,所述历史网络结构是指当满足预设的停止搜索条件时,当前搜索过的每个网络结构;
根据所述激励值和预设的目标函数,确定所述历史网络结构的目标函数值;
从所述历史网络结构中,获取目标网络结构,所述目标网络结构是指所述目标函数值最大值对应的网络结构。
在本申请的一些实施例中,所述确定单元具体还用于:
获取预设的需求性能;
根据所述需求性能和所述历史网络结构的网络性能,确定所述历史网络结构的激励值。
在本申请的一些实施例中,所述确定单元具体还用于:
获取模型精度性能和模型速度性能,所述模型精度性能是指预设的对网络结构在验证数据集上的精度要求值,所述模型速度性能是指预设的对网络结构在预测速度上的要求值;
根据所述模型精度性能和所述模型速度性能,确定所述需求性能。
在本申请的一些实施例中,所述处理单元具体还用于:
获取第二训练数据集,所述第二训练数据集包括样本模型以及所述样本模型的网络性能;
根据所述第二训练数据集对初始模型进行训练;
将完成训练的模型确定为性能预测模型。
另一方面,本申请实施例还提供一种网络结构的搜索设备,所述网络结构的搜索设备包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时执行本申请实施例提供的任一种网络结构的搜索方法中的步骤。
另一方面,本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行所述的网络结构的搜索方法中的步骤。
本申请实施例中在搜索到第一网络结构后,通过预设的性能预测模型确定第一网络结构的目标网络性能,一方面,使得搜索设备可以根据所确定的第一网络结构的目标网络性能,不断地优化搜索策略,进而保证可以搜索出最优的网络结构。另一方面,由于经过预设的性能预测模型可以预测出第一网络结构的网络性能,而无需经过大量的训练数据对第一网络结构进行训练后才能确定第一网络结构的网络性能,减短了网络结构的训练时间,进而减短了网络结构的搜索时间。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例中提供的网络结构的搜索方法的一种实施例流程示意图;
图2是本申请实施例步骤S20细化的一种流程示意图;
图3是本申请实施例提供的网络结构的搜索方法的又一种流程示意图;
图4是本申请实施例中提供的网络结构的搜索装置的一个实施例结构示意图;
图5是本申请实施例中提供的网络结构的搜索设备的一个实施例结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请实施例的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本申请实施例的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
为了使本领域任何技术人员能够实现和使用本申请,给出了以下描述。在以下描述中,为了解释的目的而列出了细节。应当明白的是,本领域普通技术人员可以认识到,在不使用这些特定细节的情况下也可以实现本申请。在其它实例中,不会对公知的过程进行详细阐述,以避免不必要的细节使本申请实施例的描述变得晦涩。因此,本申请并非旨在限于所示的实施例,而是与符合本申请实施例所公开的原理和特征的最广范围相一致。
首先,在介绍本申请实施例之前,先介绍下本申请实施例关于应用背景的相关内容。
深度学习技术在机器学习领域下的多种视觉任务(例如,目标分类任务、目标检测任务、目标分割任务等)上均取得了优异的泛化性能表现。给定了优化目标后,深度学习将特征学习的过程实现了自动化处理,但是深度模型的结构设计、训练策略、调参手段等等方面往往需要研究者耗费大量人力物力进行实验探索。近年来,自动学习方法,例如神经网络架构搜索等技术,为若干需要人工设计的步骤提供了自动化的可能。
但是现有的神经网络架构搜索方法中,在搜索到网络结构后,需要针对所搜索到的网络结构进行训练,以检验所搜索到的网络结构的性能,进而根据所搜索到的网络结构的性能更新搜索策略,以搜索出最优的网络结构。然而,对网络结构进行训练需要花费大量的时间,进而导致网络结构搜索的整体时间较长;并且,对网络结构进行训练需要依赖大量的硬件资源。
由于模型在训练至收敛时才能表现出接近其真实的网络性能,在检测模型的网络性能时,为了准确地检测出模型的网络性能,现有技术中一般是考虑先将模型训练至收敛后,再进行采用验证数据集检测模型的。由于此种限制,在搜索到一个网络结构后,本领域技术人员容易想到的是对搜索的网络结构进行训练至收敛(网络结构训练所需的时间较长),再检测网络结构的网络性能,从而导致了网络结构的搜索时间较长。
基于现有的相关技术存在的上述缺陷,本申请实施例提供了网络结构的搜索方法,在搜索到网络结构后,通过预设的性能预测模型,可以预测出所搜索到的网络结构的网络性能,减少网络结构的训练时间,进而减短网络结构的搜索时间,至少在一定程度上克服现有的相关技术所存在的缺陷。
本申请实施例提供一种网络结构的搜索方法,在本申请实施例中,基于强化学习进行网络结构的搜索。其中,网络结构是指卷积神经网络(Convolutional NeuralNetworks,CNN)。
强化学习是通过接收环境对动作的奖励(反馈)获得学习信息并更新模型参数。具体地,在强化学习中,智能体(又称为控制器)作为学习系统,获取外部环境的当前状态信息s,对环境采取试探行为u,并获取环境反馈的对此动作的评价r和新的环境状态。如果智能体的某动作u导致环境正的奖赏,那么智能体以后产生这个动作的趋势便会加强;反之,智能体产生这个动作的趋势将减弱。在学习系统的控制行为与环境反馈的状态及评价的反复的交互作用中,以学习的方式不断修改从状态到动作的映射策略,以达到优化系统性能目的。
在本申请实施例中,采用智能体(后续称为控制器)来搜索网络结构(即强化学习中的动作),首先,根据控制器搜索到的网络结构的网络性能,确定控制器搜索到该网络结构获得的激励值(即强化学习中对动作的评价r);再根据控制器搜索到该网络结构所获得的激励值,更新控制器的决策参数;然后,在控制器的决策参数更新后,控制器继续搜索网络结构,直至满足停止搜索的条件。
本申请实施例网络结构的搜索方法的执行主体可以为本申请实施例提供的网络结构的搜索装置,或者集成了该网络结构的搜索装置的服务器设备、物理主机或者用户设备(User Equipment,UE)等不同类型的网络结构的搜索设备,其中,网络结构的搜索装置可以采用硬件或者软件的方式实现,UE具体可以为智能手机、平板电脑、笔记本电脑、掌上电脑、台式电脑或者个人数字助理(Personal Digital Assistant,PDA)等终端设备。
该网络结构的搜索设备可以采用单独运行的工作方式,或者也可以采用设备集群的工作方式,通过应用本申请实施例提供的网络结构的搜索方法,可以减少网络结构的训练时间,进而减短网络结构的搜索时间。
下面,开始介绍本申请实施例提供的网络结构的搜索方法,本申请实施例中以网络结构的搜索设备作为执行主体,为了简化与便于描述,后续方法实施例中将省略该执行主体,或直接将网络结构的搜索设备简称为搜索设备,该网络结构的搜索方法包括:根据预设的搜索策略,获取第一网络结构;通过预设的性能预测模型,确定所述第一网络结构的目标网络性能;根据所述目标网络性能更新所述搜索策略,并根据更新后的所述搜索策略获取第二网络结构,直至满足预设的停止搜索条件。
参照图1,图1为本申请实施例提供的网络结构的搜索方法的一种流程示意图。需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。该网络结构的搜索方法包括步骤S10~S30,其中:
S10、根据预设的搜索策略,获取第一网络结构。
首先,构建网络结构的搜索空间。具体可以通过长短期记忆网络(Long Short-Term Memory,LSTM)构建网络结构的搜索空间;其中,网络结构的搜索空间定义了优化问题的变量(包括卷积核数目、卷积核尺寸、有无残差操作、卷积操作步长、网络层数等)。
然后,基于控制器获取第一网络结构。具体地,控制器根据初始的决策参数以及网络结构的搜索空间,确定用于构建第一网络结构的各个变量的具体取值,搜索设备根据各个变量的具体取值构建CNN网络,至此,完成一次网络结构的搜索。其中,第一网络结构是指根据各个变量的具体取值构建形成的CNN网络。
其中,预设的搜索策略可以有多种实施方式,例如,搜索出结构符合特定规律(如结构为5个卷积层、3个全连接层共8层的网络结构,或者结构为4个卷积层、2个全连接层共6层的网络结构)的网络结构。又如,本申请实施例中采用的实施方式:搜索设备基于强化学习生成CNN网络,具体是指控制器根据初始的决策参数以及网络结构的搜索空间,确定用于构建CNN网络的各个变量的具体取值,搜索设备根据各个变量的具体取值构建CNN网络;即基于强化学习搜索出网络结构。
为了方便理解具体如何搜索网络结构,以下以一具体实施例进行说明。例如,控制器根据初始的决策参数以及网络结构的搜索空间,确定用于构建第一网络结构的各个变量分别为:卷积核数目为3、卷积核尺寸为5×5、卷积操作步长为1,则搜索设备根据各个变量构建形成CNN网络,所构建形成的CNN网络即为搜索到的网络结构。
S20、通过预设的性能预测模型,确定所述第一网络结构的目标网络性能。
其中,网络性能是指衡量网络结构的性能高低的指标,网络性能的高低与网络结构的预测精度、预测速度等有关;例如,网络结构的预测精度越高,网络结构的网络性能越高;网络结构的预测速度越快,网络结构的网络性能也越高。
由于不同的性能衡量标准表示单位不同,为了便于衡量网络结构的性能,在本申请实施例中,采用分数来表示网络性能。例如,对于预测精度为80%、90%、100%,分别采用8分、9分、10分来表示;对预测速度为慢速、中速、快速,分别采用2分、4分、6分来表示。对于预测精度为“80%”、预测速度为“中速”的网络结构,确定其网络性能为:8+4=12分;对于预测精度为“90%”、预测速度为“快速”的网络结构,确定其网络性能为:8+4=12分。
网络性能的具体分数取值与网络结构的预测精度、预测速度等中的至少一种相关,例如,若只想用网络结构的预测精度来衡量网络结构的网络性能,则可直接根据网络结构的预测精度值确定具体的网络性能值。若想同时根据网络结构的预测精度、预测速度来衡量网络结构的网络性能,则可同时根据网络结构的预测精度值、预测速度确定具体的网络性能值,具体可根据实际需求而设置。
目标网络性能是指第一网络结构的网络性能。预设的性能预测模型是指通过预先训练得到的用于预测网络结构的网络性能的模型,预设的性能预测模型的具体确定方式可以参考以下步骤a1至步骤a3。
“通过预设的性能预测模型,确定所述第一网络结构的目标网络性能”的一种实施方式为:将第一网络结构的网络配置编码输入至预设的性能预测模型,以使得预设的性能预测模型根据第一网络结构的网络配置编码,以及步骤a3中的预测函数,预测得到第一网络结构的网络性能,并将预测得到的第一网络结构的网络性能作为第一网络结构的目标网络性能。
“通过预设的性能预测模型,确定所述第一网络结构的目标网络性能”的一种实施方式为:一方面,将第一网络结构的网络配置编码输入至预设的性能预测模型,以使得预设的性能预测模型根据第一网络结构的网络配置编码,以及步骤a3中的预测函数,预测得到第一网络结构的网络性能。另一方面,通过训练数据集训练第一网络结构,并通过验证数据集检测训练后的第一网络结构的网络性能。最后,根据性能预测模型预测的第一网络结构的网络性能,以及经过验证数据集检测得到的第一网络结构(指训练后的第一网络结构)的网络性能,确定第一网络结构的目标网络性能(例如,将性能预测模型预测的网络性能与经过验证数据集检测得到的网络性能的平均值,作为第一网络结构的目标网络性能)。
为了提高性能预测模型预测的网络性能的准确率,进而为后续根据网络性能更新搜索策略提供准确率更高的数据依据,在本申请的一些实施例中,所述性能预测模型通过下列步骤a1至步骤a3得到:
a1、获取第二训练数据集。
其中,第二训练数据集包括样本模型以及样本模型的网络性能。
具体地,“获取第二训练数据集”的一种实施方式为:首先,收集多个已有(发表过或开源过)的人工设计深度网络模型作为样本模型。然后,收集这些已有的人工设计深度网络模型的网络性能,作为样本模型的网络性能。最后,将收集的样本模型以及样本模型的网络性能作为第二训练数据集。
“获取第二训练数据集”的另一种实施方式为:首先,收集多个已有(发表过或开源过)的人工设计深度网络模型作为样本模型。然后,对已有的人工设计深度网络模型进行多轮训练,得到多个训练后的深度网络模型,并将多个训练后的深度网络模型也作为样本模型,并确定所有样本模型的网络性能(具体地,可以通过验证数据集来检测样本模型的网络性能)。最后,将收集到的样本模型以及样本模型的网络性能作为第二训练数据集。
a2、根据所述第二训练数据集对初始模型进行训练。
具体地,“根据所述第二训练数据集对初始模型进行训练”的一种实施方式为:将每个样本模型的网络配置编码、网络性能表征为向量数据,并将向量数据输入至初始模型,以使得初始模型根据向量数据进行学习,确定模型性能的预测函数。
由于同一模型在不同的训练数据下训练后模型的网络性能可能不同,为了考虑不同训练数据对模型的网络性能的影响,在本申请的一些实施例中,“根据所述第二训练数据集对初始模型进行训练”的另一种实施方式为:将训练数据集中的样本数量、样本类别分布情况、扰动后样本信噪比的均值和方差、样本的平均输入等,以及每个样本模型的网络配置编码、网络性能表征为向量数据,并将向量数据输入至初始模型,以使得初始模型根据向量数据进行学习,确定模型性能的预测函数。
a3、将完成训练的模型确定为性能预测模型。
当训练后的初始模型输出的网络性能可以满足损失函数或者其他目标条件时,即完成模型的训练,此时该模型可作为性能预测模型,用于预测网络结构的网络性能。
为了方便理解如何收集并根据第二训练数据集,对初始模型进行训练,得到性能预测模型,以下以一具体实施例进行说明。
例如,收集已有的人工设计网络模型(发表过或开源过)的网络配置编码A、人工设计网络模型的训练轮数I、其在分类任务上的性能fp以及训练数据集的描述向量D,作为第二训练数据集。将第二训练数据集输入至初始模型,以使得初始模型根据第二训练数据集进行学习,确定网络性能的预测函数,进而得到性能预测模型。其中,网络性能的预测函数如下:
fp=f(D,A,I) 公式(1)
其中,D表示结合样本数量、样本类别分布情况、扰动后样本信噪比的均值和方差、样本的平均输入,以及盲图像质量评价体系下评估值的均值和方差等,对人工设计网络模型(即样本模型)的训练数据集进行描述得到的描述向量,A表示人工设计网络模型(即样本模型)的网络配置编码,I表示人工设计网络模型的训练轮数。
在这里增加训练轮数I作为训练数据的目的在于:使得同一个网络结构的模型,经过不同轮数训练后,可以作为不同的样本模型,从而增强训练数据的多样性。
本申请实施例中,通过获取第二训练数据集对模型进行训练,以得到用于预测网络结构的网络性能的性能预测模型,并且由于经过训练数据集进行训练,提高了性能预测模型预测的网络性能的准确率,进而为后续根据网络性能更新搜索策略提供准确率更高的数据依据。
S30、根据所述目标网络性能更新所述搜索策略,并根据更新后的所述搜索策略获取第二网络结构,直至满足预设的停止搜索条件。
其中,预设的停止搜索条件可以有多种,例如,当搜素设备的搜索时长大于一定时长时,停止搜索网络结构;又如,当搜索到的网络结构对应的目标函数值(网络结构对应的目标函数值可以参照以下步骤S50中的目标函数确定)变化小于预设阈值时,停止搜索网络结构。
具体地,考虑到实际应用中,对于算法模型有性能上的要求(例如,对于分类任务的算法模型则对其分类的准确率有要求、对于目标检测任务的算法模型则对其检测目标的准确率有要求,又如,实际应用中对算法模型推断并输出结果的时间有要求),为了使得搜索到的网络结构的网络性能尽可能高,在本申请实施例中,在基于强化学习进行搜索时,根据对模型性能的要求值和搜索到的网络结构的网络性能构建奖励函数,并根据所构建的激励函数更新控制器的决策参数。
在本申请的一些实施例中,激励函数如下:
R=P-K 公式(2)
其中,R表示搜索到该网络结构的激励值,P表示搜索到的网络结构的网络性能,K表示预设的算法模型的性能需求值。
在本申请的一些实施例中,激励函数如下:
其中,R表示搜索到该网络结构的激励值,Pe表示搜索到的网络结构通过性能预测器预测得到的网络性能,Pl表示搜索到的网络结构通过训练数据集训练后,在验证集上检测得到的网络性能,K表示预设的算法模型的性能需求值。
“根据所述目标网络性能更新所述搜索策略,并根据更新后的所述搜索策略获取第二网络结构,直至满足预设的停止搜索条件”具体包括:
(1)在确定第一网络结构的目标网络性能后,首先,根据第一网络结构的目标网络性能以及预设的算法模型的性能需求值,依据以上公式(2)确定第一网络结构对应的激励值,并根据第一网络结构对应的激励值更新控制器的决策参数。
(2)然后,基于控制器获取第二网络结构。具体地,控制器根据更新后的决策参数以及网络结构的搜索空间,确定用于构建第二网络结构的各个变量的具体取值,搜索设备根据各个变量的具体取值构建CNN网络,至此,再次完成一次网络结构的搜索。其中,第二网络结构是指根据各个变量的具体取值构建形成的CNN网络。
(3)迭代循环以上步骤(1)和(2),直至满足预设的停止搜索条件。
本申请实施例中,在搜索到第一网络结构后,通过预设的性能预测模型确定第一网络结构的目标网络性能,一方面,使得搜索设备可以根据所确定的第一网络结构的目标网络性能,不断地优化搜索策略,进而保证可以搜索出最优的网络结构。
另一方面,由于经过预设的性能预测模型可以预测出第一网络结构的网络性能,而无需经过大量的训练数据对第一网络结构进行训练后才能确定第一网络结构的网络性能,减短了网络结构的训练时间,进而减短了网络结构的搜索时间。
为了提高了所确定的第一网络结构的目标网络性能的准确率,参照图2,图2为本申请实施例步骤S20细化的一种流程示意图。在本申请的一些实施例中,步骤S20具体可以包括以下步骤21至步骤22,其中:
21、通过所述性能预测模型确定所述第一网络结构的第一网络性能,并获取所述第一网络结构的第二网络性能。
其中,第一网络性能是指基于性能预测模型预测得出的第一网络结构的网络性能。第二网络性能是指基于第一训练数据集和验证数据集确定的第一网络结构的网络性能(具体地,通过训练数据集训练第一网络结构,并通过验证数据集检测训练后的第一网络结构的网络性能,作为第一网络结构的第二网络性能)。
在本申请的一些实施例中,所述获取所述第一网络结构的第二网络性能的步骤,具体可以包括以下步骤b1至步骤b3,其中:
b1、获取第一训练数据集和验证数据集。
具体地,根据具体的模型任务获取多个样本数据,并对多个样本数据进行标注;并将标注好的样本数据分为第一训练数据集和验证数据集,以供后续根据第一训练数据集对第一网络结构进行训练、根据验证数据集检测已训练的第一网络结构的网络性能。
例如,对于分类任务,首先获取多个样本图像,然后标注每个样本图像的类别,再将标注好的样本图像中的一部分作为第一训练数据集、另一部分作为验证数据集。对于分割任务,首先获取多个样本图像,然后标注每个样本图像的分割数据,再将标注好的样本图像中的一部分作为第一训练数据集、另一部分作为验证数据集。
b2、根据所述第一训练数据集对所述第一网络结构进行训练,得到已训练网络结构。
为了方便理解如何根据第一训练数据集对第一网络结构进行训练,得到已训练网络结构,以下通过具体实施例进行说明。
例如,对于分类任务,将第一训练数据集中标注好的每个样本图像输入至初始模型中,以使得初始模型根据样本图像进行正向传播,再根据为初始模型配置的损失函数进行反向传播,以输出分类结果为目标,迭代更新初始模型的模型参数。直至初始模型输出的分类结果可以满足损失函数或者其他目标条件时,即完成模型的训练,此时将该模型作为已训练网络结构。
又如:对于分割任务,将第一训练数据集中标注好的每个样本图像输入至初始模型中,以使得初始模型根据样本图像进行正向传播,再根据为初始模型配置的损失函数进行反向传播,以输出分割结果为目标,迭代更新初始模型的模型参数(即迭代更新模型的预测函数)。直至初始模型输出的分割结果可以满足损失函数或者其他目标条件时,即完成模型的训练,此时将该模型作为已训练网络结构。
b3、根据所述验证数据集,获取所述已训练网络结构的网络性能,以作为所述第一网络结构的第二网络性能。
具体地,首先,将验证数据集中的每个样本数据输入已训练网络结构,以使得已训练网络结构根据每个样本数据以及已训练网络结构的预测函数,确定并输出预测结果。然后,根据预测结果与标注数据之间的误差,确定已训练网络结构的网络性能,以作为第一网络结构的第二网络性能;其中,预测结果与标注数据之间的误差越大,已训练网络结构的网络性能越低(即第一网络结构的第二网络性能越低)。
例如,对于分类任务,验证数据集包括样本图片1、样本图片2、样本图片3,根据标注数据可知样本图片1、样本图片2、样本图片3分别对应的物体分别为:桌子、椅子、衣柜。已训练网络结构基于样本图片1、样本图片2、样本图片3分别预测得出的分类结果依次为:椅子、椅子、衣柜,则已训练网络结构对样本图片1预测的分类结果错误、对样本图片2和样本图片3的分类结果均正确,由此可以确定已训练网络结构的预测精度为:2/3≈67%,进而可以确定已训练网络结构的网络性能(具体可以参照以上步骤S20中的例子)。
本申请实施例中,通过采用第一训练数据集对第一网络结构进行训练,并采用验证数据集,检测已训练的第一网络结构的网络性能,从而实现检测第一网络结构在验证集上的网络性能(即第二网络性能),为后续根据第二网络性能确定目标网络性能提供了准确的数据依据。
22、根据所述第一网络性能和所述第二网络性能,确定所述第一网络结构的目标网络性能。
作为确定目标网络性能的一种实施方式为:将第一网络性能与第二网络性能的平均值作为第一网络结构的目标网络性能。具体地,通过以下公式(4)计算第一网络结构的目标网络性能,其中公式为:
其中,P表示第一网络结构的目标网络性能,Pe表示第一网络结构通过性能预测器预测得到的网络性能(即第一网络性能),Pl表示第一网络结构通过训练数据集训练后,在验证集上检测得到的网络性能(即第二网络性能)。
作为确定目标网络性能的另一种实施方式为:首先,分别确定第一网络性能的权重系数、第二网络性能的权重系数。然后,根据第一网络性能的权重系数、第二网络性能的权重系数、第一网络性能以及第二网络性能,确定第一网络结构的目标网络性能。从而通过权重系数,均衡第一网络性能与第二网络性能对目标网络性能的影响。
本申请实施例中,一方面,由于结合验证数据集检测出的网络性能确定第一网络结构的目标网络性能,使得所确定的目标网络性能更贴近于第一网络结构实际的网络性能;另一方面,由于结合性能预测器粗略预测的网格性能确定第一网络结构的目标网络性能,无需在网络结构训练较长时间后才能检测出其网络性能,从而可以减短网络结构的训练时间,进而减短网络结构的搜索时间。
由此可见,通过将性能预测器粗略预测的网格性能,结合基于第一训练数据集和验证数据集确定的网络性能,综合确定第一网络结构的目标网络性能,可以保证网络结构的网络性能检测的准确性,同时减短了网络结构的搜索时间。
参照图3,图3为本申请实施例提供的网络结构的搜索方法的又一种流程示意图。在本申请的一些实施例中,该网络结构的搜索方法还包括以下步骤S40至步骤S50,其中:
S40、获取历史网络结构的激励值。
在执行以上步骤S10至步骤S30后,搜索设备基于控制器可以搜索到多个网络结构。
其中,历史网络结构是指当满足预设的停止搜索条件时,当前搜索过的每个网络结构。例如,预设的停止搜索条件为搜索时长大于或等于预设阈值(如2天),根据预设的搜索策略(如策略1),获取到网络结构1;在根据网络结构1的网络性能更新策略1得到策略2,根据策略2搜索到网络结构2;再根据网络结构2的网络性能更新策略2得到策略3,根据策略3搜索到网络结构3;依此循环直至搜索时长等于2天时,搜索到网络结构1、网络结构2、网络结构3、网络结构4、网络结构5共五个网络结构,则历史网络结构是指网络结构1、网络结构2、网络结构3、网络结构4、网络结构5中的每一个网络结构。
历史网络结构的激励值是指根据控制器搜索到的该历史网络结构的网络性能,确定控制器搜索到该历史网络结构获得的激励值;历史网络结构的激励值具体可以参照以上步骤S30中的公式(2)或公式(3)而确定。具体地:首先,参照以上步骤S20(或者参照以上步骤21至22)获取历史网络结构的网络性能;然后,获取预设的算法模型的性能需求值;最后,将参照以上步骤S20(或者参照以上步骤21至22)获取到的历史网络结构的网络性能,与预设的算法模型的性能需求值之差,作为该历史网络结构的激励值。
在本申请的一些实施例中,所述获取历史网络结构的激励值的步骤,具体包括以下步骤c1和c2:
c1、获取预设的需求性能;
在实际应用中,对模型性能存在性能要求,例如,对于分类任务的算法模型则对其分类的准确率有要求、对于目标检测任务的算法模型则对其检测目标的准确率有要求,又或者,实际应用中对模型在硬件环境下的推断要求时间等等。
预设的需求性能是指衡量目标性能(目标性能是指对网络结构要求的性能)高低的指标,预设的需求性能的高低与对网络结构的预测精度、预测速度等要求有关;例如,对网络结构的预测精度要求越高,则预设的需求性能越高;要求网络结构的预测速度越快,则预设的需求性能也越高。预设的需求性能的具体取值与网络结构的预测精度要求、预测速度要求等中的至少一种相关,例如,若只对网络结构的预测精度有要求,则可直接根据对网络结构的预测精度要求值确定具体的需求性能值;若同时对网络结构的预测精度、预测速度有要求,则可同时根据对网络结构的预测精度要求值、预测速度要求值确定具体的网络性能值,具体可根据实际需求而设置。
在本申请的一些实施例中,获取对网络结构的预测精度要求值作为预设的需求性能。例如,对网络结构的预测精度要求值对应分数为9分,则预设的需求性能为9分。
为了同时均衡所获取的网络结构的预测精度和预测速度,在本申请的一些实施例中,所述获取预设的需求性能的步骤,具体包括以下步骤(c11)和(c12):
(c11)获取模型精度性能和模型速度性能。
其中,模型精度性能是指预设的对网络结构在验证数据集上的精度要求值,模型速度性能是指预设的对网络结构在预测速度上的要求值。
例如,若预设的对网络结构在验证数据集上的精度要求值为80%,精度为80%对应分数为8分,则模型精度性能为8分。若预设的对网络结构在预测速度上的要求值为“快速”,速度为“快速”对应分数为6分,则模型速度性能为6分。
(c12)根据所述模型精度性能和所述模型速度性能,确定所述需求性能。
具体地,通过以下公式计算出需求性能,其中公式为:
K=precision-μlatency 公式(5)
其中,K表示预设的需求性能,precision表示预设的对网络结构在验证数据集上的精度要求值(即模型精度性能),latency表示预设的对网络结构在预测速度上的要求值(即模型速度性能),μ表示平衡因子。
本申请实施例中,通过同时根据对网络结构在验证数据集上的精度要求值、对网络结构在预测速度上的要求值,确定需求性能。由于激励值与需求性能直接相关、激励值又影响搜索策略的更新,从而可以均衡预测精度和预测速度来搜索网络结构。
c2、根据所述需求性能和所述历史网络结构的网络性能,确定所述历史网络结构的激励值。
在本申请的一些实施例中,将参照以上步骤S20获取到的历史网络结构的网络性能,与以上步骤(c11)和(c12)中确定的需求性能(或者以上步骤c1中获取预设的需求性能)之差,作为历史网络结构的激励值。
在本申请的一些实施例中,将参照以上步骤21至22获取到的历史网络结构的网络性能,与以上步骤(c11)和(c12)中确定的需求性能(或者以上步骤c1中获取预设的需求性能)之差,作为历史网络结构的激励值。
其中,历史网络结构的激励值是指控制器搜索到该历史网络结构所获取的激励值。
本申请实施例中,通过根据对网络结构的性能要求(即需求性能)以及历史网络的网络性能,确定历史网络结构的激励值,一方面,为后续根据历史网络结构的激励值确定历史网络结构的目标函数值提供了准确的数据依据。另一方面,由于激励值与需求性能直接相关、激励值又影响搜索策略的更新,使得后续搜索到的网络结构的网络性能更贴近于实际需求。
S50、根据所述激励值和预设的目标函数,确定所述历史网络结构的目标函数值。
在确定了历史网络结构的激励值后,根据预设的目标函数确定每个历史网络结构的目标函数值,其中预设的目标函数为:
其中,L是网络结构的目标函数值,m是控制器搜索到的网络结构的数量,T是控制器预测的总的超参数的数量,at是在给定网络结构中的时间步长t处的输出,Rk是第k个网络结构测试后得到的激励值,P表示生成该网络结构的概率,θc是控制器的决策参数。
60、从所述历史网络结构中,获取目标网络结构。
其中,目标网络结构是指历史网络结构中,目标函数值最大值对应的网络结构。
为了方便理解目标网络结构的确定方式,以一具体实施例进行说明。例如,历史网络结构包括网络结构A、网络结构B、网络结构C,网络结构A、网络结构B、网络结构C的目标函数值分别为10、20、30,则目标函数值最大值对应的网络结构为网络结构C,获取网络结构C作为目标网络结构,作为网络搜索的输出结果。
本申请实施例中,通过根据预设的目标函数和历史网络结构的激励值,在搜索到的历史网络结构中,获取目标函数值最大值对应的网络结构作为目标网络结构,从而实现搜索出最优的网络结构。
为了更好实施本申请实施例中网络结构的搜索方法,在网络结构的搜索方法基础之上,本申请实施例中还提供一种网络结构的搜索装置,如图4所示,为本申请实施例中网络结构的搜索装置的一个实施例结构示意图,该网络结构的搜索装置400包括:
获取单元401,用于根据预设的搜索策略,获取第一网络结构;
处理单元402,用于通过预设的性能预测模型,确定所述获取单元401获取的所述第一网络结构的目标网络性能;根据所述目标网络性能更新所述搜索策略,并根据更新后的所述搜索策略获取第二网络结构,直至满足预设的停止搜索条件。
在本申请的一些实施例中,所述处理单元402具体还用于:
通过所述性能预测模型确定所述第一网络结构的第一网络性能,并获取所述第一网络结构的第二网络性能,所述第一网络性能是指基于所述性能预测模型预测得出的所述第一网络结构的网络性能,所述第二网络性能是指基于第一训练数据集和验证数据集确定的所述第一网络结构的网络性能;
根据所述第一网络性能和所述第二网络性能,确定所述第一网络结构的目标网络性能。
在本申请的一些实施例中,所述处理单元402具体还用于:
获取第一训练数据集和验证数据集;
根据所述第一训练数据集对所述第一网络结构进行训练,得到已训练网络结构;
根据所述验证数据集,获取所述已训练网络结构的网络性能,以作为所述第一网络结构的第二网络性能。
在本申请的一些实施例中,所述网络结构的搜索装置还包括确定单元(图中未示出),所述确定单元具体用于:
获取历史网络结构的激励值,所述历史网络结构是指当满足预设的停止搜索条件时,当前搜索过的每个网络结构;
根据所述激励值和预设的目标函数,确定所述历史网络结构的目标函数值;
从所述历史网络结构中,获取目标网络结构,所述目标网络结构是指所述目标函数值最大值对应的网络结构。
在本申请的一些实施例中,所述确定单元具体还用于:
获取预设的需求性能;
根据所述需求性能和所述历史网络结构的网络性能,确定所述历史网络结构的激励值。
在本申请的一些实施例中,所述确定单元具体还用于:
获取模型精度性能和模型速度性能,所述模型精度性能是指预设的对网络结构在验证数据集上的精度要求值,所述模型速度性能是指预设的对网络结构在预测速度上的要求值;
根据所述模型精度性能和所述模型速度性能,确定所述需求性能。
在本申请的一些实施例中,所述处理单元402具体还用于:
获取第二训练数据集,所述第二训练数据集包括样本模型以及所述样本模型的网络性能;
根据所述第二训练数据集对初始模型进行训练;
将完成训练的模型确定为性能预测模型。
此外,为了更好实施本申请实施例中网络结构的搜索方法,在网络结构的搜索方法基础之上,本申请实施例还提供一种网络结构的搜索设备,参阅图5,图5示出了本申请实施例网络结构的搜索设备的一种结构示意图,具体的,本申请实施例提供的网络结构的搜索设备包括处理器501,处理器501用于执行存储器502中存储的计算机程序时实现如图1至图3对应任意实施例中网络结构的搜索方法的各步骤;或者,处理器501用于执行存储器502中存储的计算机程序时实现如图4对应实施例中各单元的功能。
示例性的,计算机程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器502中,并由处理器501执行,以完成本申请实施例。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在计算机装置中的执行过程。
网络结构的搜索设备可包括,但不仅限于处理器501、存储器502。本领域技术人员可以理解,示意仅仅是网络结构的搜索设备的示例,并不构成对网络结构的搜索设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如网络结构的搜索设备还可以包括输入输出设备、网络接入设备、总线等,处理器501、存储器502、输入输出设备以及网络接入设备等通过总线相连。
处理器501可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是网络结构的搜索设备的控制中心,利用各种接口和线路连接整个网络结构的搜索设备的各个部分。
存储器502可用于存储计算机程序和/或模块,处理器501通过运行或执行存储在存储器502内的计算机程序和/或模块,以及调用存储在存储器502内的数据,实现计算机装置的各种功能。存储器502可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据网络结构的搜索设备的使用所创建的数据(比如音频数据、视频数据等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的网络结构的搜索装置、设备及其相应单元的具体工作过程,可以参考如图1至图3对应任意实施例中网络结构的搜索方法的说明,具体在此不再赘述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请如图1至图3对应任意实施例中网络结构的搜索方法中的步骤,具体操作可参考如图1至图3对应任意实施例中网络结构的搜索方法的说明,在此不再赘述。
其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。
由于该计算机可读存储介质中所存储的指令,可以执行本申请如图1至图3对应任意实施例中网络结构的搜索方法中的步骤,因此,可以实现本申请如图1至图3对应任意实施例中网络结构的搜索方法所能实现的有益效果,详见前面的说明,在此不再赘述。
以上对本申请实施例所提供的一种网络结构的搜索方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:识别图像的方法和设备