掌桥专利:专业的专利平台
掌桥专利
首页

神经网络架构的优化方法、装置、计算机设备及存储介质

文献发布时间:2023-06-19 19:28:50


神经网络架构的优化方法、装置、计算机设备及存储介质

技术领域

本申请实施例涉及机器学习领域,特别涉及一种神经网络架构的优化方法、装置、计算机设备及存储介质。

背景技术

神经结构搜索(Neural Architecture Search,NAS)是一种自动设计神经网络的技术,可以通过算法根据样本集自动设计出高性能的网络结构。可微神经网络搜索(Differentiable Architecture Search,DARTS)作为NAS的方法之一,通过构建通过连续松弛的搜索空间,提高了神经网络架构的优化的效率,被广泛应用于机器学习领域。

相关技术中,DARTS通过搜索一个子网络,然后将多个子网络相连来构建神经网络模型。具体地,构建搜索空间,搜索空间由节点和连接节点的有向边组成,通过对每条有向边上可能存在的候选操作的混合来松弛搜索空间。通过双层优化方法联合优化架构参数和模型参数,选取最大的架构参数对应的操作生成最终的子网络。

上述相关技术方案存在的问题是,通过双层优化方法联合优化架构参数和模型参数后,选取最大的架构参数对应的操作,舍弃其他操作,容易造成网络参数选择极端化,影响神经网络模型的精度和泛化性能。

发明内容

本申请实施例提供了一种神经网络架构的优化方法、装置、计算机设备及存储介质,能够避免神经网络架构的优化过程中网络参数选择极端化,提高神经网络模型的精度和泛化性能。所述技术方案如下:

一方面,本申请实施例提供了一种神经网络架构的优化方法,所述方法包括:

确定子网络,所述子网络为神经网络架构中的可微网络,所述子网络由至少两个节点以及连接节点的边构成,所述连接节点的边用于表征神经网络中的基本操作;

基于第一训练数据集,确定所述子网络的网络损失;

通过优化网络参数以最小化所述网络损失,所述网络参数包括架构参数和模型参数,所述架构参数用于表征所述基本操作的权重,所述模型参数用于表征所述基本操作的操作方式;

基于所述网络参数在优化过程的变化趋势和/或优化结果,从优化后的所述网络参数中确定目标网络参数;

基于所述目标网络参数生成优化后的所述子网络。

另一方面,本申请实施例提供了一种神经网络架构的优化装置,所述装置包括:

第一构建模块,用于确定子网络,所述子网络为神经网络架构中的可微网络,所述子网络由至少两个节点以及连接节点的边构成,所述连接节点的边用于表征神经网络中的基本操作;

第一确定模块,用于基于第一训练数据集,确定所述子网络的网络损失;

优化模块,用于通过优化网络参数以最小化所述网络损失,所述网络参数包括架构参数和模型参数,所述架构参数用于表征所述基本操作的权重,所述模型参数用于表征所述基本操作的操作方式;

第二确定模块,用于基于所述网络参数在优化过程的变化趋势和/或优化结果,从优化后的所述网络参数中确定目标网络参数;

生成模块,用于基于所述目标网络参数生成优化后的所述子网络。

另一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述方面所述的神经网络架构的优化方法。

另一方面,本申请实施例提供了一种计算机可读存储介质,所述可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述方面所述的神经网络架构的优化方法。

另一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面提供的神经网络架构的优化方法。

本申请提供的技术方案可以包括以下有益效果:

在本申请实施例中,基于网络参数在优化过程中的变化趋势或者优化结果或者二者的结合确定多个目标网络参数,与相关技术中直接选取最大的架构参数对应的单一目标网络参数相比,避免了网络参数选择的极端化,提高神经网络模型的精度和泛化性能。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

图1示出了本申请一个示例性实施例提供的可微神经网络搜索过程的实施示意图;

图2示出了本申请一个示例性实施例提供的神经网络模型应用过程的示意图;

图3示出了本申请一个示例性实施例提供的神经网络架构的优化方法的流程图;

图4示出了本申请一示例性实施例示出的子网络的结构示意图;

图5示出了本申请一示例性实施例提供的网络参数确定过程的流程图;

图6示出了本申请一示例性实施例示出的网络参数确定过程的实施示意图;

图7示出了本申请另一示例性实施例示出的网络参数确定过程的实施示意图;

图8示出了本申请一示例性实施例示出的网络损失随网络参数变化的示意图;

图9示出了本申请一示例性实施例示出的网络损失对比的示意图;

图10示出了本申请另一示例性实施例提供的神经网络架构的优化方法的流程图;

图11示出了本申请一示例性实施例示出的网络参数范围的示意图;

图12示出了本申请一示例性实施例提供的目标网络模型生成以及验证过程的流程图;

图13示出了本申请一示例性实施例提供的神经网络架构的优化装置的结构方框图;

图14示出了本申请一示例性实施例提供的计算机设备的结构框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

本申请实施例涉及神经网络的应用,为了便于理解,下面对本申请实施例可能涉及的神经网络的相关术语和概念进行介绍。

1.神经网络

神经网络是模拟生物的神经网络构建的数学模型,被广泛应用到机器学习领域。神经网络是由大量节点和节点之间的相互连接构成的网络。节点用于接收外界的输入信号,并通过激活函数将输入信号转换为输出值传递给下一个节点。该输出值可以作为下一个节点的输入值。激活函数用于将非线性特征引入神经网络。节点之间的连接都代表一个对于通过该连接信号的加权值,称之为权重。通过大量数据训练,不断调整神经网络结构的节点数量、权重以及其他相关参数,得到神经网络模型,用以解决实际生活中的问题,例如图像分类,目标识别、数据预测等。

2.神经网络优化(搜索)

神经网络优化(搜索)是一种自动设计神经网络的技术,可以通过算法根据训练数据集自动设计出高性能的网络结构。神经网络优化(搜索)的具体流程为:首先定义搜索空间,根据结构搜索策略在预定义的搜索空间中选择神经网络,通过性能评估方法评估该神经网络,将评估结果返回结构搜索策略用于调整下一次神经网络选择,直到搜索出符合性能要求的神经网络模型。

3.可微神经网络搜索

可微神经网络搜索是神经网络优化(搜索)的方法之一,该方法不是搜索离散的候选网络结构,而是将搜索空间松弛为连续的,通过梯度下降来优化神经网络,最终搜索到符合性能要求的神经网络模型。可微神经网络搜索方法通过搜索一个子网络,然后将多个子网络相连来构建神经网络模型。如图1,其示出可微神经网络搜索过程的实施示意图的过程。第一步,构建搜索空间,搜索空间由节点和连接节点的有向边组成。节点之间有向边的操作是未知的;第二步,通过对每条有向边上的候选操作的混合来松弛搜索空间;第三步,通过双层优化方法来联合优化架构参数和模型参数;第四步,根据混合概率生成最终的子网络。

下面对可微神经网络搜索过程中存在的问题进行相应的分析。

可微神经网络搜索方法通过双层优化方法联合优化架构参数和模型参数后,选取最大的架构参数对应的操作,舍弃其他操作,容易造成网络参数选择极端化,影响神经网络模型的精度和泛化性能。

另外在搜索神经网络的过程中会出现跳连(skip connection),即出现跨节点连接的问题。随着搜索轮数增大,跳连会逐渐主导网络架构,导致搜索的网络结构的层数减少,从而导致最后搜索得到的神经网络模型的性能不佳。

具体的,本申请实施例提供的方案,可以具体应用在图像分类、图像检索、图像分割、目标检测以及自然语言处理等领域。

在一种可能的应用场景下,以图像分类进行说明。利用本申请实施例提供的神经网络架构的优化方法得到适用于图像分类的子网络,通过对子网络进行堆叠得到神经网络,然后再根据训练数据集中的图片对神经网络进行训练,得到适用于图片分类的神经网络模型。在一种可能的实施方式中,该适用于图片分类的神经网络模型应用于计算机设备,用于对计算机设备存储的图像进行分类。

可选地,计算机设备可以是智能手机、平板电脑、膝上便携式笔记本电脑等移动计算机设备,也可以是台式电脑、投影式电脑等计算机设备,本申请实施例对此不做限定。

在另一种可能的实施方式中,该适用于图片分类的神经网络模型应用于服务器端,用于对服务器端存储的图像进行分类。

可选地,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器,本申请实施例对此不作限定。

以适用于图片分类的神经网络模型应用于计算机设备为例。如图2所示,图像拍摄过程中,相机传感器21(camerasensor)原始图像数据(RAW格式)传输至协处理器22(Coprocessor Chip,CC)。CC 22集合了图像信号处理器221(Image Signal Processor,ISP)和嵌入式神经网络处理器222(Neural network Processing Unit,NPU),ISP 221用于对原始图像数据进行去噪、锐化等处理,NPU222用于运行神经网络模型,并利用神经网络模型对ISP 221处理后的图像进行进一步AI(Artificial Intelligence,人工智能)处理,得到图像处理结果,比如对图像进行内容识别得到内容识别结果、对图像进行AI降噪得到的降噪后图像等等。之后,CC 22将图像处理结果传递给应用处理器23(ApplicationProcessor,AP),由应用处理器23对图像处理结果进一步处理,比如,根据内容识别结果切换拍摄模式、对AI降噪后的图像进行进一步优化等等。

需要说明的是,本申请实施例仅以上述应用场景为例进行说明,在实际应用中,本领域技术人员可将利用本申请实施例提供的神经网络架构的优化方法得到的神经网络模型应用于目标检测任务、图像分割等场景,本申请实施例对此不作限定。

下面对本申请实施例提供的神经网络架构的优化方法进行详细介绍。请参考图3,其示出了本申请一示例性实施例提供的神经网络架构的优化方法的流程图。

步骤310,确定子网络,子网络为神经网络架构中的可微网络,子网络由至少两个节点以及连接节点的边构成,连接节点的边用于表征神经网络中的基本操作。

在本申请实施例中,子网络是一个有向无环图,由N个(N为大于等于2的整数)有序节点以及连接节点的边构成。每个节点表示一个特征图,每个连接节点的边代表一种基本操作,用于对输入的特征图进行处理。基本操作属于候选操作集中的任意一项或者多项操作。

另外,在本申请实施例中,子网络可以是实时构建得到,也可以是从若干个预先构建得到的子网络中选取确定得到,本申请实施例对此不作限定。

可选地,子网络可以根据目标网络模型的应用需求和处理数据的类型来确定。

在一种可能的实施方式中,目标网络模型是用于处理图像数据的神经网络时,构建的子网络要与图像数据的处理相适应;

在另一种可能的实施方式中,目标网络模型是用于处理语音数据的神经网络时,构建的子网络要与语音数据的处理相适应。

需要说明的是,本申请实施例对子网络的要求仅以目标网络模型用于处理图像数据或者语音数据为例予以说明,在实际应用中,本领域技术人员可以根据目标网络模型的应用需求和处理数据的类型确定子网络,本申请实施例对此不作限定。

可选地,子网络中节点的数量可以根据目标网络模型的应用需求和计算机设备的显存资源条件确定的。具体的,可以先根据目标网络模型的应用需求确定节点的初始数量,然后再根据计算机设备的显存资源进一步调整节点的初始数量,从而确定节点的最终数量。

可选地,计算机设备的显存资源条件可以是计算机设备的显存资源大小。

可选地,该候选操作集包括输入0操作、3×3深度可分离卷积、5×5深度可分离卷积、3×3空洞深度可分离卷积、5×5空洞深度可分离卷积,3×3极大值池化、3×3均值池化等,本申请实施例对此不作限定。其中输入0操作表示节点与节点之间不存在基本操作。

在一种可能的实施方式中,i,j分别表示第i个节点、第j个节点。其中,i,j为大于等于0的整数,且i

示例性的,如图4,子网络为由4个节点41以及连接节点的边42构成的有向无环图。子网络中的节点41分别为节点0、1、2和3。其中x

另外,子网络为神经网络架构中的可微网络。神经网络架构的优化过程中,通过在候选操作集中选取基本操作从而确定优化后的子网络。相关技术中,采用强化学习或演化算法等方法在候选操作集中选取某个基本操作的方式是离散操作,即在候选操作集中选取可能的基本操作的方式相互没有关联。离散操作进行数学求导运算时比较困难,加大了计算机设备的运算量和运算空间,导致优化效率较低。在本申请实施例中,子网络为神经网络架构中的可微网络。具体地,在优化过程中,候选操作集中的每个基本操作都对子网络中每个节点的特征图进行处理,然后对所有基本操作得到的结果进行加权求和,此时每两个节点之间并非单一确定的某个基本操作,而是由多种基本操作混合而成的一种混合操作,从操作候选集中选出的各个基本操作之间相互存在联系,子网络变成可微网络。该混合操作定义为:

其中

因此基于混合操作,本申请实施例中从候选操作集中选取基本操作的过程由离散操作变为连续操作,对子网络的优化变成了对架构参数α的学习,进而减少了计算机设备的运算量,提高优化效率。

示例性的,节点0和节点1之间的边(0,1)可能存在的基本操作为3×3深度可分离卷积o

步骤320,基于第一训练数据集,确定子网络的网络损失。

计算机设备在优化子网络过程中,希望子网络输出的预测值尽可能的接近训练数据对应的真实值(groundtruth),通过比较当前子网络的预测值和真实值,再根据二者之间的差值更新子网络的网络参数,使子网络输出的预测值趋近于真实值,得到优化后的子网络。网络损失即为预测值和真实值之间的差值。

真实值根据目标网络模型待处理的目标任务进行确定,是目标任务实际的需求结果。

可选地,目标网络模型待处理的目标任务为图像分类时,真实值为训练数据对应的图像分类标签;目标网络模型待处理的目标任务为目标检测时,真实值为训练数据对应的检测结果标签。

需要说明的是,本申请实施例仅以上述真实值予以说明,在实际的应用中,本领域的技术人员可以根据目标网络模型待处理的目标任务确定真实值,本申请实施例不作限定。

第一训练数据集用于优化子网络从而得到优化后的子网络。第一训练数据集的类型与目标网络模型待处理的目标任务有关。第一训练数据集包括训练数据集和测试数据集。训练数据集的数据量大于测试数据集的数据量。

可选地,第一训练数据集可以通过网络下载、人工收集等方式获取,本申请实施例对此不作限定。

可选地,当目标网络模型待处理的目标任务为图像分类时,第一训练数据集可以是CIFAR-10数据集、CIFAR-100数据集、ImageNet数据集等,本实施例对此不作限定。

步骤330,通过优化网络参数以最小化网络损失,网络参数包括架构参数和模型参数,架构参数用于表征基本操作的权重,模型参数用于表征基本操作的操作方式。

神经网络架构的优化方法是计算机设备通过不断调整网络参数使网络损失最小化。网络损失最小化表示子网络输出的预测值接近于真实值,此时的子网络即为优化后的子网络。不断调整网络参数的过程即为优化网络参数的过程。

在一种可能的实施方式中,当网络损失满足收敛条件,或者,达到优化次数上限时,计算机设备停止网络参数优化,并基于最终优化得到的网络参数得到优化后的子网络。

在本申请实施例中,网络参数包括架构参数(Architecture Parameters)和模型参数(Network Parameters),架构参数为每两个节点之间基本操作的权重α,模型参数为基本操作自身的配置参数。

可选地,基本操作为卷积操作,模型参数可以是通道数量、卷积核的大小、卷积核的数量、卷积核的步长等,本申请实施例对此不作限定。

可选地,基本操作为池化操作,模型参数可以是池化的核大小、池化方法、池化的不长等,本申请实施例对此不作限定。

需要说明的,本申请实施例仅以基本操作为卷积操作和池化操作为例进行说明,在实际的应用中,本领域的技术人员可以根据不同的基本操作设置相应的模型参数,本申请实施例对此不作限定。

步骤340,基于网络参数在优化过程的变化趋势和/或优化结果,从优化后的网络参数中确定目标网络参数。

基于子网络为神经网络架构中的可微网络,因此计算机设备在优化网络参数以最小化网络损失的过程中,节点之间存在多个可能的基本操作。这些基本操作的架构参数和模型参数可以相同也可以不同。在相关技术中,计算机设备从优化后的网络参数中确定目标网络参数的因素比较单一,仅考虑网络参数的数值大小进而确定单个目标网络参数,容易造成网络参数选择极端化,进而影响目标网络模型的精度和泛化性能。在本申请实施例中,计算机设备从优化后的网络参数中确定目标网络参数,需综合考量网络参数在优化过程中的变化趋势以及优化结果等多种因素。另外相比相关技术,计算机设备需确定多个目标网络参数,因而避免网络参数选择极端化,提高目标网络模型的精度和泛化性能。

在一种可能的实施方式中,网络参数在优化过程的变化趋势是指网络参数中架构参数随优化时间的变化趋势。

在一种可能的实施方式中,网络参数在优化过程的优化结果是指网络参数中架构参数数值的降序排列结果。

需要说明的是,在本申请实施例中和/或表示至少存在三种可能的实施方式。

在一种可能的实施方式中,基于网络参数在优化过程的变化趋势,从优化后的网络参数中确定目标网络参数。

在另一种可能的实施方式中,基于网络参数在优化过程中的优化结果,从优化后的网络参数中确定目标网络参数。

在另一种可能的实施方式种,基于网络参数在优化过程中的变化趋势和优化结果,从优化后的网络参数中确定目标网络参数。

步骤350,基于目标网络参数生成优化后的子网络。

在本申请实施例中,计算机设备从优化后的网络参数中确定多个目标基本操作的目标网络参数。目标网路参数包括目标架构参数和目标模型参数。拼接融合多个目标基本操作的目标架构参数和目标模型参数,基于拼接后的目标网络参数生成优化后的子网络。

可选地,拼接融合的方式为加(addition)操作或者拼接组合(concatenate)操作,本申请实施例对此不作限定。

综上所述,在本申请实施例中,在本申请实施例中,基于网络参数在优化过程中的变化趋势或者优化结果或者二者的结合确定多个目标网络参数,与相关技术中直接选取最大的架构参数对应的单一目标网络参数相比,避免了网络参数选择的极端化,提高神经网络模型的精度和泛化性能。

需要说明的是,在一种可能的实施方式中,计算机设备基于架构参数在优化过程中的变化趋势和/或优化结果,从优化后的架构参数中确定目标架构参数。进一步,计算机设备将优化后的模型参数中目标架构参数对应的模型参数确定为目标模型参数。

下面对该方法进行介绍,请参考图5,其示出了本申请一示例性实施例提供的网络参数确定过程的流程图。

步骤341,基于优化后的架构参数的降序,将前k个架构参数确定为目标架构参数,k为大于1的整数;和/或。

在本申请实施例中,子网络为神经网络的可微网络,候选操作集中的所有操作都对每个节点进行处理,基于优化后的架构参数得到节点之间的基本操作为混合操作。该混合操作包含了若干可能的基本操作,而且这些基本操作的架构参数和模型参数并不相同。将这些基本操作对应的优化后的架构参数降序排列,选择前k个架构参数确定为目标架构参数。舍弃该目标架构参数以外的其他架构参数。

示例性的,如图6,以确定节点0和节点1之间的目标架构参数为例。节点0和节点1之间存在可能的四个基本操作,分别用不同的线条表示。基本操作1的架构参数为α

步骤342,确定优化过程中呈上升趋势的架构参数;将呈上升趋势的架构参数确定为目标架构参数。

确定混合操作中若干可能的基本操作的架构参数随优化时间的变化趋势,将呈现上升趋势的架构参数确定为目标架构参数,舍弃其他架构参数。

示例性的,如图7,以确定节点0和节点1之间的目标架构参数为例。节点0和节点1之间存在可能的三个基本操作,分别用不同的线条表示。基本操作1的架构参数为α

步骤343,将优化后的模型参数中,目标架构参数对应的模型参数确定为目标模型参数。

在本申请实施例中,计算机设备基于优化后的架构参数的降序和/或优化过程中呈上升趋势的架构参数,确定出多个目标基本操作。每个目标基本操作都有自己对应的架构参数和模型参数,基于目标架构参数确定出目标基本操作后,保留目标基本操作对应的模型参数,舍弃其他模型参数。将所有目标基本操作的网络参数拼接融合,得到优化后的子网络。示例性的,如图6所示,基于优化后的架构参数的降序排列,确定基本操作3和基本操作4的架构参数作为目标架构参数,确定基本操作3和基本操作4为目标基本操作,舍弃基本操作1和基本操作2。基本操作3为3×3深度可分离卷积操作,基本操作4为3×3极大值池化操作。进一步,基于优化后的模型参数,确定基本操作3对应的目标模型参数为卷积核大小3×3、步长为1、边缘填充值为0、通道数为4,基本操作4对应的目标模型参数为池化核尺寸3×3、步长为3、边缘填充值为0。拼接融合基本操作3和基本操作4的目标网络参数和目标模型参数,得到优化后的子网络。

需要说明的是,在本申请实施例中,和/或表示至少存在三种可能的实施方式。

在一种可能的实施方式中,基于优化后的架构参数的降序,将前k个架构参数确定为目标架构参数,k为大于1的整数。

在另一种可能的实施方式中,确定优化过程中呈上升趋势的架构参数,将呈上升趋势的架构参数确定为目标架构参数。

在另一种可能的实施方式中,基于优化后的架构参数的降序,将前k个架构参数确定为目标架构参数,k为大于1的整数,和,确定优化过程中呈上升趋势的架构参数,将呈上升趋势的架构参数确定为目标架构参数。示例性的,图6中,基于优化后的架构参数的降序,确定基本操作3和基本操作4的架构参数作为目标架构参数,舍弃基本操作1和基本操作2。如图7,基于优化过程中架构参数随优化时间的变化,确定呈上升趋势的基本操作2和基本操作3对应的架构参数作为目标架构参数,舍弃基本操作操作和1基本操作4。在本申请实施例中,选择上述两种技术方案的合集作为目标架构参数,即确定基本操作2、基本操作3、基本操作4的架构参数作为目标架构参数,舍弃基本操作1。

综上所述,在本申请实施例中,基于优化后的架构参数的降序以及优化过程中架构参数的上升趋势综合确定多个网络参数,相比于相关技术中通过架构参数数值大小这一单一因素确定单一网络参数,避免网络参数选择极端化,提高目标网络模型的精度和泛化性能。

另外,需要说明的是,在一种可能的实施方式中,计算机设备基于第一训练数据集,通过锐度感知最小化(Sharpness Aware Minimization,SAM)方法确定子网络在网络参数范围内的网络损失,该网络参数范围是以网络参数为中心的参数范围。具体地,在相关技术中,仅通过一组网络参数确定网络损失,再次更新网络参数时,网络损失可能会产生较大的波动变化,造成网络损失收敛在损失尖峰区域。示例性的,如图8,网络损失随网络参数变化的示意图图中可知,网络参数1更新至网络参数2的优化过程中,网络损失变化波动小;当网络参数3更新到网络参数4的优化过程中,网络损失产生了较大的波动,在网络参数4范围内产生尖峰区域,网络性能出现崩塌。在本申请实施例中,为了减少优化网络参数过程中网络损失产生较大的波动,通过网络参数范围确定网络损失,使网络参数范围内所有的网络参数对应的网络损失最小,网络损失收敛在损失平坦区域,提高优化的子网络的精度和泛化性能。示例性的,如图9,构建两个相同的子网络,其中一个子网络采用相关技术中的优化方法,即通过某一网络参数确定网络损失,另一子网络采用本申请实施例中的优化方法,即通过网络参数范围内的所有参数确定网络损失。基于相同的第一训练数据集优化网络参数以最小化网络损失。从网络损失地貌图中可知,相关技术的技术方案中,网络损失收敛在损失尖峰区域,而本申请实施例的技术方案中,相应的网络损失收敛在损失平坦区域。

下面对该方法进行介绍。请参考图10,其示出了本申请另一示例性实施例提供的神经网络架构的优化方法的流程图。

步骤1001,确定子网络,子网络为神经网络架构中的可微网络,子网络由至少两个节点以及连接节点的边构成,连接节点的边用于表征神经网络中的基本操作。

步骤1001同步骤310,本申请实施例不再进行赘述。

步骤1002,基于网络参数和范围尺寸,确定网络参数范围。

本申请实施例中,网络参数范围是以当前网络参数为中心的邻域范围。邻域范围的大小需根据范围尺寸确定。范围尺寸需根据计算机设备的显存资源条件确定。

可选地,网络参数范围可以是以当前网络参数为中线的球形范围,范围尺寸为球形的半径。示例性的,如图11,网络参数范围是以当前网络参数为中心,范围尺寸为球形半径ρ的邻域范围。

步骤1003,基于参数选取步长,确定网络参数范围内的候选网络参数。

由于网络参数范围内存在无数个参数,因此计算机设备无法实现确定网络参数范围内所有参数对应的网络损失,因此需对网络参数范围进行分割,以步长为单位选取候选网络参数。网络参数范围内的网络损失通过候选网络参数对应的候选网络损失确定。采用这种优化方式减少了计算机设备的运算量,提高了优化的效率。

关于参数步长的选取需根据网络参数范围的大小以及计算机设备的显存资源条件确定的。另外,神经网络架构的优化过程中,参数步长不是固定值,需要根据网络损失不断的调整。

可选地,参数步长可以是0.5、1、1.5、2等,本申请实施例对此不作限定。

步骤1004,对于网络参数范围内的候选网络参数,将第一训练数据集中的训练数据输入采用候选网络参数的子网络,得到子网络的网络输出。

计算机设备将各个候选网络参数确定为子网络的参数,通过第一训练数据集中的训练数据集对子网络进行训练,得到各个候选网络参数对应的子网络输出的预测值。

步骤1005,基于网络输出确定候选网络参数对应的候选网络损失。

各个候选网络参数对应的子网络输出的预测值与真实值的差值即为候选网络参数对应的候选网络损失。网络损失根据目标网络模型待处理的目标任务进行确定。

可选地,目标网络模型待处理的目标任务为图像分类时,网络损失为图像分类的结果;目标网络模型待处理的目标任务为目标检测时,网络损失为目标的检测结果。

步骤1006,将各个候选网络参数对应的候选网络损失的损失之和,确定为子网络在网络参数范围内的网络损失。

网络损失收敛在平坦区域时,网络损失是网络参数范围所有参数对应的网络损失的损失之和,在本申请实施例中表示为网络参数范围内各个候选网络参数对应的候选网络损失的损失之和,而不是某一网络参数对应的网络损失。因此网络参数范围内的网络损失表示为

min

其中,w表示为网络参数,L

步骤1007,通过一阶优化算法优化网络参数以最小化网络损失,得到优化后的网络参数。

本申请实施例中,采用一阶优化算法同时优化网络参数,具体地,利用同一训练数据集同时优化架构参数和模型参数,提高了训练数据的利用率。

可选地,一阶优化算法可以是梯度下降算法、牛顿算法等,本实施例对此不进行限定。

步骤1008,基于网络参数在优化过程的变化趋势和/或优化结果,从优化后的网络参数中确定目标网络参数。

步骤1008同步骤340,本申请实施例不再进行赘述。

步骤1009,基于目标网络参数生成后地子网络。

步骤1009同步骤350,本申请实施例不再进行赘述。

综上所述,本申请实施例中,通过网络参数范围内所有参数确定相应的网络损失,优化网络参数,使得网络损失收敛在损失平坦区域。而相关技术中,通过某一网络参数确定网络损失,优化网络参数过程中,网络损失易产生较大的波动变化,使得网络损失收敛在损失尖峰区域,进而造成神经网络模型性能崩塌。相比于相关技术,本申请提供的技术方案通过确定网络参数范围内的网络损失,优化网络参数过程中,网络损失不会产生较大的波动变化,使得网络损失从损失尖峰区域收敛在损失平坦区域,进而降低神经网络模型性能的不稳定性,提高神经网络模型的精度和泛化性能。

另外,需要说明的是,本申请实施例中,优化网络参数以最小化网络损失的方法不限于一阶优化算法。在另一种可能的实施方式中,基于网络参数确定对应的网络损失,通过二阶优化算法优化网络参数以最小化网络损失,得到优化后的网络参数。具体地,对网络参数中架构参数和模型参数采用双层优化方法进行优化。将训练数据集分成两部分输入计算机设备,其中一部分训练数据集用于对架构参数进行优化,另一部分训练数据集用于对模型参数进行优化。采用梯度下降的优化方式,即先固定架构参数,对模型参数进行优化,然后固定模型参数,对架构参数进行优化,依次交替进行,直到网络损失收敛,得到优化后的网络参数。

在本申请实施例中,通过对优化后的子网络进行堆叠,得到最终的目标网络模型,下面对目标网络模型生成方法进行介绍。请参考图12,其中示出了本申请一示例性实施例提供的目标网络模型生成以及验证过程的流程图。

步骤360,基于优化后的子网络构建目标网络模型,目标网络模型由优化后的子网络堆叠得到。

在本申请实施例中,目标网络模型通过优化后的子网络通过预定的方式堆叠得到。

可选地,该目标网络模型可以为卷积神经网络(Convolutional NeuralNetworks,CNN)结构、循环神经网络(Recurrent Neural Networks,RNN)结构、长短期记忆网络(Long Short Term Memory,LSTM)结构等,本实施例对此并不进行限定。

可选地,优化后子网络的数量可以是一个,也可以是多个,本申请实施例对此不进行限定。优化后的子网络的数量对应确定子网络的数量。

在一种可能的实施方式中,优化后的子网络为两个,即上采样(upsampled)子网络和下采样(downsampled)子网络。通过构建两个子网络并采用相同的第一训练数据集进行训练,得到优化后的上采样子网络和下采样子网络。将上采样子网络和下采样子网络进行堆叠得到U型(U-net)神经网络架构。

需要说明的是,本申请实施例中仅以优化后的子网络堆叠得到U型神经网络架构予以说明,在实际应用中,本领域的技术人员可以根据实际需求得到优化子网络并堆叠得到相应的目标网络模型,本实施例对此不进行限定。

步骤370,基于第一训练数据集对目标网络模型进行模型训练,得到训练后的目标网络模型。

第一训练数据集中包括训练数据集和测试数据集,在本申请实施例中,利用第一训练数据集中的测试数据集对目标网络模型进行训练,进一步优化目标网络模型。

步骤380,基于第二训练数据集,对训练后的目标网络模型进行性能验证,得到性能验证结果,第二训练数据集不同于第一训练数据集,性能验证结果包括准确性验证结果和泛化性验证结果。

利用第二训练数据集,验证步骤250中得到的目标网络模型的性能,并对其性能进行评价。性能包括目标网络模型的准确性和泛化性,准确性评价目标网络模型和真实值相符合程度,泛化性评价目标网络模型对新训练数据的适应能力。性能的评价标准需要根据目标网络模型的待处理的目标任务确定。第二训练数据集和第一训练数据集属于不同的数据集,第一训练数据集的数据量大于第二训练数据集的数据量。另外第二训练数据集中的数据不需要预处理。第二训练数据集的类型与目标网络模型待处理的目标任务有关。

可选地,第二训练数据集可以通过网络下载、人工收集等方式获取,本申请实施例对此不作限定。

可选地,目标网络模型待处理的目标任务为图像分类时,第二训练数据集可以是CIFAR-10数据集、CIFAR-100数据集、ImageNet数据集等,本实施例对此不进行限定。

在一种可能的实施方式中,目标网络模型待处理的目标任务是图像分类时,目标网络模型性能的评价标准为峰值信噪比(Peak Signal to Noise Ratio,PSNR)和图片相似度(Structural Similarity Index Measurement,SSIM)。

需要说明的,本申请实施例仅以上述目标网络模型性能评价标准予以说明,在实际应用中,本领域的技术人员可以根据目标网络模型的待处理的目标任务选择模型的评价标准,本申请实施例对此不作限定。

综上所述,本申请实施例中,先优化子网络,通过优化后的子网络构建目标网络模型,相比于相关技术中先构建目标网络模型再对构建好的目标网络模型进行优化的方法,减小了计算机设备优化的计算量,提高优化效率,另外基于本申请实施例优化的子网络结构简单,最终构建的目标网络模型精度和泛化性能高于相关技术中构建的目标网络模型。

请参考图13,其示出了本申请一示例性实施例提供的神经网络架构的优化装置的结构方框图。该装置可以包括:

第一构建模块1301,用于确定子网络,子网络为神经网络架构中的可微网络,子网络由至少两个节点以及连接节点的边构成,连接节点的边用于表征神经网络中的基本操作;

第一确定模块1302,用于基于第一训练数据集,确定子网络的网络损失;

优化模块1303,用于通过优化网络参数以最小化网络损失,网络参数包括架构参数和模型参数,架构参数用于表征基本操作的权重,模型参数用于表征基本操作的操作方式;

第二确定模块1304,用于基于网络参数在优化过程的变化趋势和/或优化结果,从优化后的网络参数中确定目标网络参数;

生成模块1305,用于基于目标网络参数生成优化后的子网络。

可选地,第二确定模块1304包括:

第一确定单元,用于基于架构参数在优化过程中的变化趋势和/或优化结果,从优化后的架构参数中确定目标架构参数;

第二确定单元,用于将优化后的模型参数中,目标架构参数对应的模型参数确定为目标模型参数。

可选地,第一确定单元,用于:

基于优化后的架构参数的降序,将前k个架构参数确定为目标架构参数,k为大于1的整数;和/或,

确定优化过程中呈上升趋势的架构参数,将呈上升趋势的架构参数确定为所述目标架构参数。

可选地,第一确定模块1302包括:

第三确定单元,用于基于第一训练数据集,通过锐度感知最小化方法确定子网络在网络参数范围内的网络损失,网络参数范围是以网络参数为中心的参数范围。

可选地,第三确定单元,用于:

基于网络参数和范围尺寸,确定网络参数范围;

对于网络参数范围内的候选网络参数,将第一训练数据集中的训练数据输入采用候选网络参数的子网络,得到子网络的网络输出;

基于网络输出确定候选网络参数对应的候选网络损失;

将各个候选网络参数对应的候选网络损失的损失之和,确定为子网络在网络参数范围内的网络损失。

可选地,第三确定单元,还用于:

基于参数选取步长,确定网络参数范围内的候选网络参数。

可选地,优化模块1303,用于:

通过一阶优化算法优化网络参数以最小化网络损失,得到优化后的网络参数。

可选地,该装置还包括:

第二构建模块,用于基于优化后的子网络构建目标网络模型,目标网络模型由优化后的子网络堆叠得到;

训练模块,用于基于第一训练数据集对目标网络模型进行模型训练,得到训练后的目标网络模型。

可选地,目标网络模型采用U型神经网络架构,目标网络模型基于优化后的上采样子网络和下采样子网络构建得到。

可选地,该装置还包括:

性能验证模块,用于基于第二训练数据集,对训练后的目标网络模型进行性能验证,得到性能验证结果,第二训练数据集不同于第一训练数据集,性能验证结果包括准确性验证结果和泛化性验证结果。

综上所述,在本申请实施例中,基于网络参数在优化过程中的变化趋势或者优化结果或者二者的结合确定多个目标网络参数,与相关技术中直接选取最大的架构参数对应的单一目标网络参数相比,避免了网络参数选择的极端化,提高神经网络模型的精度和泛化性能。

请参考图14,其示出了本申请一个示例性实施例提供的计算机设备的结构示意图。具体来讲:所述计算机设备1400包括中央处理单元(Central Processing Unit,CPU)1401、包括随机存取存储器(RandomAccess Memory,RAM)1402和只读存储器(Read-OnlyMemory,ROM)1403的系统存储器1404,以及连接系统存储器1404和中央处理单元1401的系统总线1405。所述计算机设备1400还包括帮助计算机内的各个器件之间传输信息的基本输入/输出(Input/Output,I/O)系统1406,和用于存储操作系统1413、应用程序1414和其他程序模块1415的大容量存储设备1407。

所述基本输入/输出系统1406包括有用于显示信息的显示器1408和用于用户输入信息的诸如鼠标、键盘之类的输入设备1409。其中所述显示器1408和输入设备1409都通过连接到系统总线1405的输入输出控制器1410连接到中央处理单元1401。所述基本输入/输出系统1406还可以包括输入输出控制器1410以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1410还提供输出到显示屏、打印机或其他类型的输出设备。

所述大容量存储设备1407通过连接到系统总线1405的大容量存储控制器(未示出)连接到中央处理单元1401。所述大容量存储设备1407及其相关联的计算机可读介质为计算机设备1400提供非易失性存储。也就是说,所述大容量存储设备1407可以包括诸如硬盘或者CD-ROM(CompactDiscRead-OnlyMemory,只读光盘)驱动器之类的计算机可读介质(未示出)。

不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM(ErasableProgrammableRead-OnlyMemory,可擦除可编程只读存储器)、EEPROM(ElectricallyErasableProgrammableRead-OnlyMemory,电可擦除可编程只读存储器)、闪存(FlashMemory)或其他固态存储其技术,CD-ROM、DVD(DigitalVideoDisc,高密度数字视频光盘)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1404和大容量存储设备1407可以统称为存储器。

存储器存储有一个或多个程序,一个或多个程序被配置成由一个或多个中央处理单元1401执行,一个或多个程序包含用于实现上述模型训练方法的指令,中央处理单元1401执行该一个或多个程序实现上述各个方法实施例提供的方法。

根据本申请的各种实施例,所述计算机设备1400还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1400可以通过连接在所述系统总线1405上的网络接口单元1411连接到网络1412,或者说,也可以使用网络接口单元1411来连接到其他类型的网络或远程计算机系统(未示出)。

所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,所述一个或者一个以上程序包含用于进行本申请实施例提供的方法中由计算机设备所执行的步骤。

本申请实施例中,还提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如上述方面所述的神经网络架构的优化方法。

根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面的各种可选实现方式中提供的神经网络架构的优化方法。

本领域技术人员在考虑说明书及实践这里公开的实施例后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

相关技术
  • 基于神经网络的商户管理方法、装置、计算机设备及存储介质
  • 一种神经网络训练方法、装置、计算机设备和存储介质
  • 神经网络处理方法、装置、设备及计算机可读存储介质
  • 基于神经网络的投保信息配置方法、装置、计算机设备及存储介质
  • 应用程序启动优化方法、装置、计算机设备及存储介质
  • 神经网络架构的优化方法、装置、计算机设备及存储介质
  • 神经网络架构搜索方法、装置、计算机设备及存储介质
技术分类

06120115924787