一种神经网络架构搜索方法、系统、设备及可读存储介质

文档序号:29910166发布日期:2022-05-06 01:09阅读:96来源:国知局
一种神经网络架构搜索方法、系统、设备及可读存储介质

1.本发明属于人工智能技术领域,涉及一种神经网络架构搜索方法、系统、设备及可读存储介质。


背景技术:

2.深度学习在计算机视觉中的成功在很大程度上要归功于人类专家的深厚的先验专业知识,然而这种手动设计成本高昂,并且随着网络变得越来越大和越来越复杂变得越来越困难。神经网络架构搜索(nas)使神经网络设计过程自动化,因此受到广泛关注。然而这种方法对计算能力的需求非常高,早期的nas方法需要花费数千个gpu来寻找高效的网络架构。为了提高效率,最近的许多研究已经转向降低搜索成本,其中最流行的范式之一被称为可微神经网络架构搜索(darts)框架。darts采用连续松弛将操作选择问题转换为一组候选操作的连续幅度优化,然后将其转化为双层优化问题,在权重中通过梯度下降交替优化架构参数和模型权重。
3.尽管可微神经网络架构搜索(darts)由于其简单和高效已经成为神经网络架构搜索(nas)的主流范式,但最近的研究发现,随着darts的优化进程,搜索体系结构的性能几乎没有提高,因为他们只是简单地将相应体系结构的参数值作为体系结构选择的重要指标。这将导致从搜索空间中选择的网络架构通常陷入次优状态,这表明darts所获得的网络架构参数最终值几乎无法表明操作的重要性。以上的观察表明,darts中的监督信号对于网络架构搜索来说可能是一个较差或不可靠的指标,wang et al.最近的一项工作表明,dart经过超级网络训练后获得的体系结构参数的大小是根本错误的,几乎不能表明操作的重要性。更有趣的是,有几个研究利用简单的早停策略在搜索过程中中断超级网络训练,而这可以显著提高darts的性能。这些经验观察表明,超级网络训练随着搜索的进展而恶化性能。
4.网络剪枝是一种压缩过参数神经网络的有效方法,它通过去除参数而使神经网络的性能退化最小。darts的最后一个离散化阶段,即根据操作的大小从超参数化的超网络中选择一个离散的体系结构,可以认为是一个操作级网络剪枝,基于这个动机,architecture search,anneal and prune.in international conference on artificial intelligence and statistics,pages 493

503.pmlr,2020.提出了一个可微的可退火搜索空间,可以在搜索过程中逐步修剪劣等操作。由于在搜索过程中减少了候选操作的数量,还可以加速搜索。同样,progressive differentiable architecture search:bridging the depth gap between search and evaluation.in proceedings of the ieee international conference on computer vision也在搜索过程中对cell候选操作进行修剪,同时逐步增加网络深度,以缓解体系结构搜索和评估过程中的深度差距,这些操作都在一定程度上加速了网络的搜索过程,但是对于网络架构搜索来说,过重的搜索成本依然使得其应用场景有限。


技术实现要素:

5.本发明的目的在于提供一种神经网络架构搜索方法、系统、设备及可读存储介质,解决现有的darts算法过于沉重的搜索成本和搜索指标不能反映操作的重要性问题。
6.一种神经网络架构搜索方法,包括以下步骤:
7.s1,初始化darts网络的相关参数;
8.s2,将图像训练集输入至初始化后的darts网络中,根据目标函数计算损失值,根据梯度信息使用二阶泰勒展开式计算出网络损失变化,使用基于突触显著性的评分指标计算指标显著性;
9.s3,根据操作的显著性指标、网络损失变化和损失值解析计算最优cell网络结构,根据得到的最优cell网络结构堆叠形成搜索到的模型结构。
10.进一步的,初始化的相关参数包括权重参数、架构参数、学习率和批大小。
11.进一步的,采用r作为移除该操作所带来的网络损失变化
12.r=l(d,w,α,sp)-l(d,w|(1-α
kt
)sp)
13.其中d,w,α,sp,k分别为数据集,网络参数,架构参数,搜索空间,所要移除的操作。
14.进一步的,基于突触显著性的评分指标如公式(1)所示
[0015][0016]
α为架构参数。
[0017]
进一步的,采用二阶泰勒级数展开设计的网络损失变化r:
[0018][0019]
进一步的,采用cifar-10数据集作为训练集。
[0020]
进一步的,darts网络结构包括normal cell结构和reduction cell结构。
[0021]
一种神经网络架构搜索系统,包括初始化模块,优化训练模块和搜索模块;
[0022]
初始化模块,用于初始化darts网络的相关参数;
[0023]
优化训练模块,用于根据初始化后的darts网络对图像训练集进行处理,根据目标函数计算损失值,根据梯度信息使用二阶泰勒展开式计算出网络损失变化,使用基于突触显著性的评分指标计算指标显著性,根据操作的显著性指标、网络损失变化和损失值解析计算最优cell网络结构;
[0024]
搜索模块,根据得到的最优cell网络结构堆叠形成搜索到的模型结构。
[0025]
一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述神经网络架构搜索方法的步骤。
[0026]
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述神经网络架构搜索方法的步骤。
[0027]
与现有技术相比,本发明具有以下有益的技术效果:
[0028]
本发明一种神经网络架构搜索方法,初始化darts网络的相关参数,将图像训练集输入至初始化后的darts网络中,根据目标函数计算损失值,根据梯度信息使用二阶泰勒展开式计算出网络损失变化,使用基于突触显著性的评分指标计算指标显著性,采用连接敏感性指标到神经网络架构搜索,用来指示操作的重要性,将可微架构结构搜索定义为初始化时的网络剪枝,在网络剪枝的初始化中采用称为操作显著性度量,实验结果表明,该框架是一种有前景的、可靠的可微神经结构搜索解决方案,在不同基准数据集和darts搜索空间上都取得了良好的性能。本发明方法非常高效,可以在几秒钟内完成架构搜索。
[0029]
进一步的,由于其内存和计算效率,将本发明应用于一个更灵活的搜索空间,在这个空间中,网络在架构搜索和评估中的深度可以相同,本方法可以直接应用于大数据集进行架构搜索,然后转移到大数据集进行评估,显示了本发明的灵活性。
附图说明
[0030]
图1为本发明实施例中darts网络cell内部结构示意图。
[0031]
图2为本发明实施例中darts模型网络结构示意图。
[0032]
图3为本发明实施例中实现流程图。
具体实施方式
[0033]
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0034]
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0035]
设输入图像x的图像大小为h
×w×
c,其中h、w、c分别为输入图像的高、宽和通道;darts网络为s(x),分类网络的分类类别为n,darts网络的架构参数为α,权重参数为w。
[0036]
本发明基于显著性的神经网络架构搜索方法,包括以下步骤:
[0037]
s1,采集输入图像并将其划分为训练集t
train
和测试集t
test

[0038]
s2,初始化darts网络s(x)中的权重参数w、架构参数α、学习率和批大小;
[0039]
s3,将训练集t
train
中的图像数据x输入到初始化后的darts网络s(x),根据目标函数计算损失值,使用基于突触显著性的评分指标计算指标显著性m,根据梯度信息使用二阶泰勒展开式计算出网络损失变化r;
[0040]
基于突触显著性的评分指标如公式(1)所示
[0041][0042]
突触显著性的评分指标用于初始化时的网络剪枝;本技术没有使用显著性指标来为超级网络权重参数进行打分;利用对网络架构修剪的重要性,相应地采用突触显著性的评分指标为超级网络中的操作打分;本技术采用突触显著性的评分指标,免训练,这使我们能够在没有训练的情况下在初始化时对超网络进行剪枝操作,即移除该操作。
[0043]
采用r作为移除该操作所带来的网络损失变化
[0044]
r=l(d,w,α,sp)-l(d,w|(1-α
kt
)sp)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0045]
其中d,w,α,sp,k分别为数据集,网络参数,架构参数,搜索空间,所要移除的操作;本技术以r作为最佳体系结构选择准则。具体地说,将网络架构显著性定义为从神经网络搜索空间中移除该架构所引起的网络损失的变化,这反映了候选体系结构对网络性能的贡献,有效消除了架构选择中的偏差。
[0046]
采用二阶泰勒级数展开设计的网络损失变化r,在泰勒级数展开中,一阶梯度可以通过在验证数据集上的一次反向传播来计算,二阶导数可以通过两次反向传播来计算:
[0047][0048]
s4,根据操作的显著性指标m和网络损失变化r解析计算最优cell网络结构,根据得到的最优cell网络结构堆叠形成搜索到的模型结构。
[0049]
本发明一个实施例中,提供了一种终端设备,该终端设备包括处理器以及存储器,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器用于执行所述计算机存储介质存储的程序指令。处理器采用中央处理单元(cpu),或者采用其他通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其是终端的计算核心以及控制核心,其适于实现一条或一条以上指令,具体适于加载并执行一条或一条以上指令从而实现相应方法流程或相应功能;本发明实施例所述的处理器可用于神经网络架构搜索方法的操作。
[0050]
一种神经网络架构搜索系统,包括:
[0051]
包括初始化模块,优化训练模块和搜索模块;
[0052]
初始化模块,用于初始化darts网络的相关参数;
[0053]
优化训练模块,用于根据初始化后的darts网络对图像训练集进行处理,根据目标函数计算损失值,根据梯度信息使用二阶泰勒展开式计算出网络损失变化,使用基于突触显著性的评分指标计算指标显著性,根据操作的显著性指标、网络损失变化和损失值解析计算最优cell网络结构;
[0054]
搜索模块,根据得到的最优cell网络结构堆叠形成搜索到的模型结构
[0055]
本发明再一个实施例中,本发明还提供了一种存储介质,具体采用计算机可读存储介质(memory),所述计算机可读存储介质是终端设备中的记忆设备,用于存放程序和数
据。计算机可读存储介质包括终端设备中的内置存储介质,提供存储空间,存储了终端的操作系统,也可包括终端设备所支持的扩展存储介质。并且,在该存储空间中还存放了适于被处理器加载并执行的一条或一条以上的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质可以是高速ram存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。可由处理器加载并执行计算机可读存储介质中存放的一条或一条以上指令,以实现上述实施例中可用于神经网络架构搜索方法的相应步骤。
[0056]
如图3本发明的实现流程图所示,本发明提出一种基于显著性的神经网络架构搜索方法;下面结合附图对本发明进行详细说明:
[0057]
数据说明:
[0058]
我们使用cifar-10、nas-bench-201数据集评估进行训练和评估,使用darts和nas-bench-201搜索空间。cifar-10数据集由10个类的60000个32x32彩色图像组成,每个类有6000个图像。有50000个训练图像和10000个测试图像。数据集分为五个训练批次和一个测试批次,每个批次有10000个图像。测试批次包含来自每个类别的恰好1000个随机选择的图像。训练批次以随机顺序包含剩余图像。总体来说,五个训练集之和包含来自每个类的正好5000张图像。
[0059]
nas-bench-201中定义的搜索空间包括由4个节点和5个相关操作选项生成的所有可能的cell结构,总共产生56=15625个cell候选对象。为三个数据集(cifar-10,cifar-100,imagenet下采样16*16,选取120类)提供了使用相同设置的训练日志以及每种结构候选的性能
[0060]
网络训练:
[0061]
本实例所采用darts网络模型,如图2所示,darts网络结构共由normal cell和reduction cell两种类型的cell构成,共计20个cell,其结构如图2所示。
[0062]
对搜索到的模型评估:
[0063]
本发明使用cifar-10数据集对上述训练模型进行评估,如式(4)所示,交叉熵损失是在图像分类领域的重要的评价指标,该指标越低,证明效果越好,本实例通过计算训练50000个样本600个epoch的预测评分得分97.4%,交叉熵损失下降到0.12。相比其他darts的方法,本发明使得搜索时间急剧减少。
[0064][0065]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明构思的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1