一种基于搜索空间优化的前馈神经网络结构搜索方法转让专利

申请号 : CN202010068826.7

文献号 : CN111275172A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张文强

申请人 : 复旦大学

摘要 :

本发明涉及一种基于搜索空间优化的前馈神经网络结构搜索方法,包括以下步骤:S1:按照搜索空间的定义随机生成设定数量的搜索空间并转化为离散编码,构建搜索空间初始种群;S2:利用超网络对初始种群中的所有搜索空间进行性能评估;S3:根据性能评估结果对搜索空间进行优化,输出最优搜索空间;S4:对应搜索算法在最优搜索空间中,搜索设定模型评估算法下最优的前馈神经网络结构,并利用该神经网络结构完成需求数据集下的需求任务,与现有技术相比,本发明具有提高神经网络结构搜索的效率和性能等优点。

权利要求 :

1.一种基于搜索空间优化的前馈神经网络结构搜索方法,其特征在于,包括以下步骤:S1:按照搜索空间的定义随机生成设定数量的搜索空间并转化为离散编码,构建搜索空间初始种群;

S2:利用超网络对初始种群中的所有搜索空间进行性能评估;

S3:根据性能评估结果对搜索空间进行优化,输出最优搜索空间;

S4:对应搜索算法在最优搜索空间中,搜索设定模型评估算法下最优的前馈神经网络结构,并利用该神经网络结构完成需求数据集下的需求任务。

2.根据权利要求1所述的一种基于搜索空间优化的前馈神经网络结构搜索方法,其特征在于,所述的搜索空间的定义包括搜索空间拓扑结构的定义和操作符及操作符集合的定义,所述的搜索空间拓扑结构包括单元式搜索空间的拓扑结构和全网络式搜索空间的拓扑结构,所述的操作符包括前馈神经网络中的所有操作符,所述的操作符集合为由有限种前馈神经网络操作符构成的有序集合。

3.根据权利要求2所述的一种基于搜索空间优化的前馈神经网络结构搜索方法,其特征在于,所述的步骤S1具体包括:S11:按照搜索空间的定义随机生成设定数量的搜索空间;

S12:根据操作符在操作符集合中的顺序对各操作符进行编码;

S13:利用广度优先搜索,从对应搜索空间有向无环图的入口开始,遍历图中的各边,得到各边的编码向量并对各边依次编号,所述的编码向量由对应边上所有可选操作符对应的编码构成;

S14:根据编号顺序依次将各边的编码向量连接,得到一个长向量作为该搜索空间对应的离散编码;

S15:将所有搜索空间对应的离散编码作为搜索空间初始种群。

4.根据权利要求3所述的一种基于搜索空间优化的前馈神经网络结构搜索方法,其特征在于,所述的超网络与搜索空间一一对应,包括对应搜索空间中所有的神经网络结构,其各节点之间的边为对应搜索空间各节点之间的操作符,且每条边包括对应的操作符参数和结构参数。

5.根据权利要求4所述的一种基于搜索空间优化的前馈神经网络结构搜索方法,其特征在于,所述的步骤S2具体包括:S21:构建各搜索空间对应的超网络;

S22:通过反向传播和梯度下降法,在需求数据集和需求任务下,对各超网络的操作符参数和结构参数进行设定轮次的训练,得到训练完成的超网络;

S23:在需求数据集和需求任务下,获取训练完成的超网络的性能指标数值,作为对应搜索空间的性能评估结果。

6.根据权利要求1所述的一种基于搜索空间优化的前馈神经网络结构搜索方法,其特征在于,所述的步骤S3具体包括:S31:根据性能评估结果,选取设定比例的较优搜索空间;

S32:判断是否达到设定迭代次数,若是,则执行步骤S34,若否,则执行步骤S33;

S33:将较优搜索空间进行交叉组合和突变,构建与初始种群大小相同的种群,作为新的初始种群,并返回执行步骤S2;

S34:输出较优搜索空间中性能评估结果最好的搜索空间,作为最优搜索空间。

7.根据权利要求6所述的一种基于搜索空间优化的前馈神经网络结构搜索方法,其特征在于,所述的交叉组合具体为:首先分别将两个搜索空间的离散编码从相同位置截断,得到四个向量,然后将四个向量重新组合,得到与原离散编码长度相同的编码向量,作为新的搜索空间离散编码;

所述的突变具体为:

将离散编码设定位置的元素随机替换为另一个合法元素,所述的合法元素对应的操作符为操作符集合内的操作符。

8.根据权利要求2所述的一种基于搜索空间优化的前馈神经网络结构搜索方法,其特征在于,所述的单元式搜索空间的拓扑结构中,所述的操作符及操作符集合按照有向无环图的方式构成单元,所述的单元按照有向无环图的方式构成前馈神经网络;所述的全网络式搜索空间的拓扑结构中,所述的操作符及操作符集合按照有向无环图的方式构成前馈神经网络。

9.根据权利要求5所述的一种基于搜索空间优化的前馈神经网络结构搜索方法,其特征在于,所述的超网络训练时,所述的操作符参数和结构参数轮替训练。

10.根据权利要求9所述的一种基于搜索空间优化的前馈神经网络结构搜索方法,其特征在于,所述的操作符参数为各操作符对应的参数,所述的结构参数为每个操作符对输出节点输出值的权重。

说明书 :

一种基于搜索空间优化的前馈神经网络结构搜索方法

技术领域

[0001] 本发明涉及神经网络结构搜索,尤其是涉及一种基于搜索空间优化的前馈神经网络结构搜索方法。

背景技术

[0002] 前馈神经网络作为基于深度学习的计算机视觉系统的核心组成部分,用于完成各种机器视觉任务,如图像分类、目标检测、语音分割等。随着相关软硬件技术的发展,现代前馈神经网络已经被广泛应用于各种系统中。然而,不同规模、不同目的的系统对其使用的神经网络有着不同的要求。如用于大型安全系统的人脸识别模块要求其中的神经网络有着极高的准确性,而容忍其可能带来的巨大运算开销;而用于手机等移动设备的人脸识别模块则要更多地考虑运行速度,以带给用户更流畅的使用体验。
[0003] 因此,针对不同场景下的不同任务,算法开发者往往需要分别设计神经网络模型的结构,使之充分适应不同环境下的需求。一方面,这样的设计往往耗费大量的人力物力。另一方面,人工设计的模型往往种类有限,很难做到对拓扑结构和运算符组合的极致利用来充分发挥模型的能力。进而,算法开发者们开始研究可以自动生成神经网络结构的方法和系统,希望通过自动化来降低模型结构设计的成本,同时获得更加优质的模型。神经网络结构搜索应运而生。
[0004] 神经网络结构搜索一般包含三个要素:搜索空间、搜索算法和模型评估算法。神经网络结构搜索就是在给定的搜索空间下,依照一定的搜索算法,找出在特定模型评估算法下搜索空间中的较好的神经网络结构。国内外研究者在搜索算法和模型评估算法这两个要素上均进行了大量的研究。搜索算法如基于强化学习的搜索、基于进化算法的搜索、基于可微分系统的搜索均能在一定的条件下取得不错的效果;而模型评估算法如训练法、代理模型法、参数共享法、差值外推法等也各有其适用的情况。
[0005] 然而对于搜索空间这一要素的设计和优化,目前还很少有研究涉及。而搜索空间本身的属性对搜索算法又尤其重要。对于某个特定的搜索算法和目标任务,一个合适的搜索空间不仅能节约搜索时的开销,又能为神经网络结构搜索提供更高的上限。

发明内容

[0006] 本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种提高网络结构搜索效率和性能的基于搜索空间优化的前馈神经网络结构搜索方法。
[0007] 本发明的目的可以通过以下技术方案来实现:
[0008] 一种基于搜索空间优化的前馈神经网络结构搜索方法,包括以下步骤:
[0009] S1:按照搜索空间的定义随机生成设定数量的搜索空间并转化为离散编码,构建搜索空间初始种群;
[0010] S2:利用超网络对初始种群中的所有搜索空间进行性能评估;
[0011] S3:根据性能评估结果对搜索空间进行优化,输出最优搜索空间;
[0012] S4:对应搜索算法在最优搜索空间中,搜索设定模型评估算法下最优的前馈神经网络结构,并利用该神经网络结构完成需求数据集下的需求任务。
[0013] 进一步地,所述的搜索空间的定义包括搜索空间拓扑结构的定义和操作符及操作符集合的定义,所述的搜索空间拓扑结构包括单元式搜索空间的拓扑结构和全网络式搜索空间的拓扑结构,所述的操作符包括前馈神经网络中的所有操作符,如零输出层、直接输出层、全连接层、卷积层、空洞卷积层、变形卷积层、池化层、归一化层和空连接等,所述的操作符集合为由有限种前馈神经网络操作符构成的有序集合,即所有前馈神经网络操作符构成的集合的任意有限的有序子集。
[0014] 进一步地,所述的单元式搜索空间的拓扑结构中,所述的操作符及操作符集合按照有向无环图(可以包含重边)的方式构成单元,所述的单元按照有向无环图(可以包含重边)的方式构成前馈神经网络,所述的全网络式搜索空间的拓扑结构中,所述的操作符及操作符集合按照有向无环图(可以包含重边)的方式构成前馈神经网络。
[0015] 进一步地,所述的步骤S1具体包括:
[0016] S11:按照搜索空间的定义随机生成设定数量的搜索空间;
[0017] S12:根据操作符在操作符集合中的顺序对各操作符进行编码;
[0018] S13:利用广度优先搜索,从对应搜索空间有向无环图的入口开始,遍历图中的各边,得到各边的编码向量并对各边依次编号,所述的编码向量由对应边上所有可选操作符对应的编码构成;
[0019] S14:根据编号顺序依次将各边的编码向量连接,得到一个长向量作为该搜索空间对应的离散编码;
[0020] S15:将所有搜索空间对应的离散编码作为搜索空间初始种群。
[0021] 进一步地,所述的超网络与搜索空间一一对应,包括对应搜索空间中所有的神经网络结构,其各节点之间的边为对应搜索空间各节点之间的操作符,且每条边包括对应的操作符参数和结构参数。
[0022] 进一步地,所述的步骤S2具体包括:
[0023] S21:构建各搜索空间对应的超网络;
[0024] S22:通过反向传播和梯度下降法,在需求数据集和需求任务下,对各超网络的操作符参数和结构参数进行设定轮次的训练,得到训练完成的超网络;
[0025] S23:在需求数据集和需求任务下,获取训练完成的超网络的性能指标数值,作为对应搜索空间的性能评估结果。
[0026] 其中,需求的任务为神经网络结构搜索的目标任务,包括图像分类、目标检测、图像分割等;需求数据集为神经网络结构搜索的目标数据集或者目标数据集的子集或代理数据集。
[0027] 进一步地,所述的步骤S3具体包括:
[0028] S31:根据性能评估结果,选取设定比例的较优搜索空间;
[0029] S32:判断是否达到设定迭代次数,若是,则执行步骤S34,若否,则执行步骤S33;
[0030] S33:将较优搜索空间进行交叉组合和突变,构建与初始种群大小相同的种群,作为新的初始种群,并返回执行步骤S2;
[0031] S34:输出较优搜索空间中性能评估结果最好的搜索空间,作为最优搜索空间。
[0032] 进一步地,所述的交叉组合具体为:
[0033] 首先分别将两个搜索空间的离散编码从相同位置截断,得到四个向量,然后将四个向量重新组合,得到与原离散编码长度相同的编码向量,作为新的搜索空间离散编码;
[0034] 所述的突变具体为:
[0035] 将离散编码设定位置的元素随机替换为另一个合法元素,所述的合法元素对应的操作符为操作符集合内的操作符。
[0036] 进一步地,所述的超网络训练时,所述的操作符参数和结构参数轮替训练,确保超网络的稳定性。
[0037] 进一步地,所述的操作符参数为各操作符对应的参数,所述的结构参数为每个操作符对输出节点输出值的权重。
[0038] 与现有技术相比,本发明具有以下优点:
[0039] 1)本发明通过优化搜索空间,得到最优搜索空间,以供搜索算法进行搜索,提高前馈神经网络结构搜索的效率和性能;
[0040] 2)本发明在步骤S3中采用超网络的技术来验证搜索空间,当搜索空间过大时,超网络训练过慢,其性能较弱,在迭代优化时会被淘汰;当搜索空间过小时,该搜索空间会迅速对数据集过拟合,也会导致其因验证准确率较低被淘汰,因此本发明可以有效发现大小合理的搜索空间;
[0041] 3)根据在步骤S2中评估得到的搜索空间性能与最终搜得的模型性能之间的正相关关系,利用本发明产生的搜索空间能带来更好的搜索结果,得到潜力较高的搜索空间;
[0042] 4)通过在步骤S2评估搜索空间和步骤S3优化搜索空间时,直接使用目标任务和目标数据集来评估搜索空间,对给定任务和数据集具有较好的适应性,得到适合给定任务和数据集的前馈神经网络搜索空间;
[0043] 5)本发明产生的搜索空间通过实验验证,相比于其他随机生成的同类搜索空间以及人工设计的一些经典搜索空间,在同样的任务、数据集和搜索算法上,搜得了性能更强的前馈神经网络模型结构。

附图说明

[0044] 图1为本发明方法的流程图;
[0045] 图2为搜索空间优化过程的框架图;
[0046] 图3为实施例中搜索空间离散编码示意图;
[0047] 图4为实施例中构建的超网络示意图;
[0048] 图5为实施例中特化的搜索空间遗传算法示意图。

具体实施方式

[0049] 下面结合附图和具体实施例对本发明进行详细说明。显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
[0050] 实施例
[0051] 一、本发明的操作流程
[0052] 如图1所示,本发明方法主要通过优化搜索空间得到最优搜索空间,提高前馈神经网络结构搜索方法的效率和性能,对应搜索算法在最优搜索空间中,搜索设定模型评估算法下最优的前馈神经网络结构,并利用该神经网络结构完成需求数据集下的需求任务。
[0053] 如图2所示,优化搜索空间的方法流程框架可以分为搜索空间定义、搜索空间评估和搜索空间优化三个部分。搜索空间定义是为了明确目标搜索空间的具体结构和参数,并将其表示为可以优化的离散向量。搜索空间评估是为了给搜索空间的优化提供量化指标,以衡量搜索空间的优劣。最后,搜索空间优化将具体负责寻找适合特定任务、特定数据集、特定搜索算法上的搜索空间。
[0054] 1.搜索空间定义:定义搜索空间并转化为离散编码
[0055] 具体步骤如下:
[0056] 11)定义搜索空间的拓扑结构;
[0057] 12)定义搜索空间可能包含的操作符及操作符集合;
[0058] 13)将搜索空间转换为离散编码。
[0059] 步骤11)中,定义搜索空间的拓扑结构,既可以是单元式搜索空间的拓扑结构,也可以是全网络式搜索空间的拓扑结构。单元式搜索空间是指,该搜索空间内包含的前馈神经网络由单元构成,其拓扑结构定义为:操作符及其集合按照有向无环图(可以包含重边)的方式构成单元,单元按照有向无环图(可以包含重边)的方式构成神经网络;全网络式搜索空间的拓扑结构定义为:操作符及其集合按照有向无环图(可以包含重边)的方式直接构成神经网络。
[0060] 步骤12)中可能包含的操作符是指前馈神经网络每个前向连接中可能出现的各种操作,包括但不限于零输出层、直接输出层、全连接层、卷积层、空洞卷积层、变形卷积层、池化层、归一化层和空连接等。前向连接的操作符集合大小为其可以选择的操作符数量,操作符集合为包含所有可能操作符的有序集合。
[0061] 步骤13)中将搜索空间转为离散编码,其具体方法如下:
[0062] 131)将所有的可能的操作符组织为一个有序集合,操作符对应的编码为其在集合中的顺序;
[0063] 132)从代表搜索空间的有向无环图的入口开始,使用广度优先搜索遍历所有的边,并给边依次编号;
[0064] 133)遍历到某条边时,在操作符集合中查询该边上所有可以选择的操作符对应的编码,这些编码构成对应的边的编码向量;
[0065] 134)按照边的遍历顺序,依次将边的编码向量连接起来,得到的长向量就是搜索空间对应的离散编码。
[0066] 2.搜索空间评估:使用搜索空间对应的超网络评估搜索空间性能
[0067] 具体步骤如下:
[0068] 21)构建搜索空间对应的超网络;
[0069] 22)对超网络进行一定轮次的训练;
[0070] 23)利用超网络进行搜索空间性能评估。
[0071] 步骤21)构建搜索空间对应的超网络,是根据某个特定的搜索空间,构造出一个大的神经网络,且该网络的子图包含了所有在该搜索空间中的神经网络结构。对于搜索空间中两个节点之间的边和边上可选的操作符集合,该超网络的对应节点之间连接若干条边,边的数量为操作符集合的大小,每条边分别为操作符集合中所包含的操作符,每个操作符上有一定的参数,即操作符参数。同时,这些边上包含一组权重,表示每条边(每个操作符)对输出节点的输出值的贡献大小,即结构参数。
[0072] 步骤22)对超网络进行一定轮次的训练,训练在需求任务和需求数据集上进行。其中,需求的任务为神经网络结构搜索的目标任务,包括但不限于图像分类、目标检测、图像分割。需求数据集为神经网络结构搜索的目标数据集或者目标数据集的子集或代理数据集。训练时,超网络上的操作符参数和结构参数使用反向传播和梯度下降法训练,且操作符参数和结构参数轮替训练。当训练进行到一定程度时,训练终止,并进入下一步骤。
[0073] 步骤23)所述的利用超网络进行搜索空间性能评估,是在需求任务和需求数据集上测试和评估超网络性能,并用超网络的相关性能指标作为该搜索空间的性能指标,以用于后续的评估和比较。
[0074] 3.搜索空间优化:使用特化的遗传算法对搜索空间进行优化
[0075] 具体步骤如下:
[0076] 31)构建初始的搜索空间种群;
[0077] 32)对种群中的所有搜索空间,使用搜索空间对应的超网络评估搜索空间性能;
[0078] 33)取评估结果靠前的搜索空间,若达到指定迭代次数,则转到步骤36),否则进入步骤34);
[0079] 34)对于取出的搜索空间,对其进行交叉组合和突变;
[0080] 35)取交叉组合和突变的若干结果,构建一个与初始种群同样大小的新种群,并转到步骤32);
[0081] 36)返回评估结果最好的搜索空间,作为该方法的最终结果。
[0082] 步骤31)所述的构建初始的搜索空间种群,是按照搜索空间的定义随机生成指定数量的搜索空间,并将其转换为离散编码,用于后续的步骤。同时,规定最大迭代次数N,并初始化当前迭代次数n为0。
[0083] 步骤32)所述的对种群中的搜索空间进行评估,具体方法如下。对于每一个种群中的搜索空间,按照搜索空间评估中的方法,首先构建其对应的超网络,进而进行相应超网络的训练和评估,得到其指标,包括但不限于准确率、召回率、精确度、F1分数等。将该指标的数值作为该搜索空间的性能数值记录下来。
[0084] 步骤33)所述的取评估结果靠前的搜索空间,具体是指,将上一步骤记录得到的搜索空间性能数值进行排序,然后取出一定百分比较优的搜索空间。若该指标越高越好,则拥有越高指标的搜索空间为较优的搜索空间;反之,拥有越低指标的搜索空间为较优的搜索空间。将取出若干个较优搜索空间组成新的集合,供步骤34)使用。若已经达到规定的迭代次数,即n>=N,则跳转到步骤36)。
[0085] 步骤34)所述的对取出的搜索空间进行交叉组合和突变,其具体过程如下所述。交叉组合是指,对于两个搜索空间的离散编码A和离散编码B,按照一定概率随机选择向量中的一个位置,从该位置分别将离散编码A和离散编码B切断,得到4个较短的向量,分别记为A_head、A_tail、B_head和B_tail。接着,将A_head和B_tail重新组合,得到一个长度与离散编码A和离散编码B相同的新的编码向量C,突变是指,对于一个搜索空间的离散编码A中的每一个位置,按照一定的概率选择是否突变,若突变,则将相应位置的元素按照一定概率随机替换为另一个合法的元素,即新元素对应的操作符在步骤12)所定义的操作符集合内。
[0086] 步骤35)所述的取交叉组合和突变得到的新搜索空间构建新种群,按照如下方式操作。记步骤31)中的初始种群数量为K,则按照一定的比例,取出共计K个交叉组合和突变得到的新搜索空间,并将这些新搜索空间构成一个新的集合,作为下一次迭代的初始种群。然后,将迭代次数n加1,跳转至步骤32)。
[0087] 步骤36)所述的返回评估结果最好的搜索空间作为结果,是指依照步骤32)中记录的搜索空间指标数值,取出最优的搜索空间。若指标数值的值越大越好,则拥有最大指标的搜索空间为最优搜索空间;反之,拥有最小指标的搜索空间为最优搜索空间。该最优搜索空间即为该面向可微神经网络结构的搜索空间优化方法的最终结果。
[0088] 二、本发明的具体操作实例
[0089] 此处以CIFAR10数据集上的图像分类任务为例,展示本发明的具体实施过程。
[0090] 1.搜索空间定义
[0091] 本实施例中,定义搜索空间为六层的前馈卷积神经网络,连接拓扑结构为链式结构,即前一层的输出为下一层的输入。每条连接相邻两层的边上有3种可能的选择,即对于3
一个确定的搜索空间,一共包含5 共243种神经网络结构。可供使用的操作符有8种,为3x3卷积、5x5卷积、空连接、单位连接、3x3分离卷积、5x5分离卷积、3x3最大池化以及3x3平均池化。这8种操作被分别编号1-8。如图2所示,为该定义下一个合法的搜索空间结构,及其转换而成的离散编码。
[0092] 2.搜索空间评估
[0093] 根据图3的搜索空间编码,构造出一个可训练的超网络,如图4所示。其中,搜索空间上的一条边对应超网络上并列的3条边,分别为搜索空间边上的操作符。另外,超网络上的每条边均有一个权值wi,j,代表第i层第j个连接对下一层输入的贡献度。记第i层的输出为xi,第i层和第i+1层之间的操作符为fi,j,则该超网络的前向传播为:
[0094]
[0095] 这样,每个操作符fi,j上的参数以及超网络的结构参数wi,j都可以被反向传播和梯度下降法训练。在目标数据集CIFAR10和相应的目标任务分类任务上,训练设定轮次的超网络后,计算超网络在CIFAR10数据集上的验证分类正确率,作为图4所示搜索空间的量化评估结果。该值越大,表明该搜索空间性能越好,越可能搜索出性能优越的神经网络结构。
[0096] 3.搜索空间优化
[0097] 整体流程如图5所示。首先,随机生成若干合法的搜索空间编码,将其放入初始种群中。之后,使用上一步骤搜索空间评估中的算法,逐个评估初始种群中的搜索空间。接下来,将这些搜索空间按照其量化指标从高到低进行排序,取出最高的一半。在这一半较好的搜索空间编码上,使用交叉组合和突变构造出新的合法搜索空间编码。这些新的搜索空间构成了下一次迭代的初始种群。迭代设定次数后,选出量化指标最高的搜索空间输出。
[0098] 经过以上三步,最终得到了范围合理、潜力较高的搜索空间,从而为后续的神经网络结构搜索提供了更优的条件。
[0099] 以下是在一种单元式搜索空间上得到的结果:在CIFAR10的分类任务上,如果随机选择搜索空间,最终搜索得到的模型准确率平均值为96.9%;如果使用本发明预先进行搜索空间优化,最终搜索得到的模型准确率可达97.5%。在CIFAR100的分类任务上,如果随机选择搜索空间,最终搜索得到的模型准确率平均值为79.5%;如果使用本发明预先进行搜索空间优化,最终搜索得到的模型准确率可达84.2%。在ImageNet的分类任务上,如果随机选择搜索空间,最终搜索得到的模型准确率平均值为71.8%;如果使用本发明预先进行搜索空间优化,最终搜索得到的模型准确率可达74.8%。
[0100] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的工作人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。