神经网络结构的搜索方法、系统、存储介质以及设备与流程

文档序号:18198748发布日期:2019-07-17 06:01阅读:167来源:国知局
神经网络结构的搜索方法、系统、存储介质以及设备与流程

本发明涉及信号处理领域,特别是涉及一种神经网络结构的搜索方法、系统、存储介质以及设备。



背景技术:

对于信号数据的分类,现在主要的方法是传统机器学习方法和深度学习方法。前者是人为地提取信号数据的一些特征,再将特征输入到各种分类器中去学习,最后再用学习后的分类器进行分类;后者是使用深度神经网络来同时学习信号的特征并进行分类。在如今的大数据时代,深度学习方法能够从大数据中学习到更丰富更有用的特征,因此,深度学习方法在大数据下使用越来越广泛。

深度学习方法的核心在于神经网络的结构,而神经网络主要包括卷积神经网络;卷积神经网络的结构主要包括输入层、多个中间层和输出层;其中,中间层可选择为卷积层、池化层、归一化层和全连接层等层结构,这些层结构又有其各自的参数如权值,层结构的选择以及每个参数的设置对神经网络的性能具有很大的影响;除了各层的参数设置之外,层与层之间的连接同样影响着卷积神经网络的性能。因此,当针对信号分类任务而设计一个卷积神经网络结构时,需要设计者具备一定的神经网络结构设计和参数调整经验,并且需要不断尝试精心调整,整个设计过程复杂且耗费精力的。



技术实现要素:

基于此,本发明的目的在于,提供一种神经网络结构的搜索方法,其具有可自动搜索出效果最契合分类任务的神经网络结构,无需设计者不断调整神经网络结构,节省时间,提高效率的优点。

一种神经网络结构的搜索方法,包括如下步骤:

步骤s1:获取预设的神经网络架构和采样结构;其中,所述神经网络架构包括输入层、输出层以及多个依序排列的中间层;每个中间层包括待确定的网络结构、以及该网络结构对应的结构搜索区间;

步骤s2:根据各个中间层中待确定的网络结构、以及该网络结构对应的结构搜索区间,通过采样结构进行多次采样,获得多个子神经网络结构;

步骤s3:对多个所述子神经网络结构进行分类训练,并更新多个所述子神经网络结构中各中间层的网络结构的参数、以及各中间层的结构搜索区间中的网络结构的参数,获得更新后的多个所述子神经网络结构以及更新后的各中间层的结构搜索区间;

步骤s4:对更新后的多个子神经网络结构进行分类验证,获得更新后的多个子神经网络结构的分类的准确率,并根据所述准确率更新采样结构的参数,获得更新后的采样结构;

步骤s5:重复步骤s2至步骤s4直到达到预设次数后,根据更新后的采样结构和更新后的各中间层的结构搜索区间,确定需求的神经网络结构。

本发明预设神经网络结构中各个中间层的网络结构对应的结构搜索区间,通过采样结构自动搜索出效果最契合分类任务的神经网络结构,无需人工调整神经网络结构,节省了时间,提高了效率。

在一个实施例中,所述待确定的网络结构包括输入结构和处理结构;在所述待确定的网络结构为输入结构时,所述网络结构对应的结构搜索区间为输入结构搜索区间;在所述待确定的网络结构为处理结构时,所述网络结构对应的结构搜索区间为处理结构搜索区间。

在一个实施例中,所述采样结构包括序列生成模型、编码器和解码器;

所述根据各个中间层中待确定的网络结构、以及该网络结构对应的结构搜索区间,通过采样结构进行多次采样,获得多个子神经网络结构的步骤,包括:

步骤s21:获取神经网络架构中各中间层需确定的网络结构的顺序;

步骤s22:将预设值输入序列生成模型中,获得序列生成模型的输出值;

步骤s23:获取当前需确定的中间层的网络结构对应的结构搜索区间;

步骤s24:根据当前需确定的中间层的网络结构对应的结构搜索区间,确定所述结构搜索空间的大小,并通过解码器将序列生成模型的输出值解码为与所述结构搜索区间的大小相匹配的解码数据;

步骤s25:根据所述解码数据与所述结构搜索区间中各个网络结构的对应关系,计算所述结构搜索区间中各个网络结构的获得概率;

步骤s26:根据所述获得概率,对所述结构搜索区间中各个网络结构进行随机采样,确定当前需确定的中间层的网络结构;

步骤s27:判断神经网络架构中各中间层的网络结构是否确定完毕,若未确定完,则将当前确定的中间层的网络结构通过编码器进行编码,并将编码后的数据输入至序列生成模型,且根据所述各中间层需确定的网络结构的顺序,将下一需确定的中间层的网络结构作为当前需确定的中间层的网络结构,回到步骤s23;若已确定完,则根据各中间层确定的网络结构,获得一子神经网络结构;

步骤s28:重复步骤s22至步骤s27达到预设次数后,获得多个子神经网络结构。

通过采样结构循环自动确定子神经网络结构,进而使子神经网络结构的每个中间层结构相互关联,符合子神经网络结构对处理的数据处理流程,提高了预测的准确性。

在一个实施例中,所述对多个所述子神经网络结构进行分类训练,并更新多个所述子神经网络结构中各中间层的网络结构的参数、以及各中间层的结构搜索区间中的网络结构的参数,,获得更新后的多个所述子神经网络结构以及更新后的各中间层的结构搜索区间的步骤,包括:

步骤s31:获取训练集,并将所述训练集随机分成多个数量相同的子集;

步骤s32:取其中一子集对多个所述子神经网络结构进行分类训练,获得多个所述子神经网络结构的交叉熵损失;

步骤s33:根据多个所述神经网络结构的交叉熵损失,获取多个所述子神经网络结构中各中间层的处理结构的参数梯度;

步骤s34:在多个所述子神经网络结构中,获取同一中间层的同一处理结构的所述参数梯度,并将所述参数梯度进行均值处理,且将处理后的均值作为所述同一中间层的同一处理结构的参数更新梯度;

步骤s35:根据所述参数更新梯度,更新多个所述子神经网络结构中同一中间层的同一处理结构的参数、以及同一中间层的处理结构搜索区间中的同一处理结构的参数;

步骤s36:判断所有的子集是否均对多个所述子神经网络结构进行分类训练,若是,则获得更新后的多个所述子神经网络结构、以及更新后的各中间层的处理结构搜索区间;若否,则取下一未训练的子集,回到步骤s32。

逐个对子神经网络结构进行分类训练,并以同一中间层的同一处理结构的参数梯度作为该同一中间层的同一处理结构的参数更新梯度,提高了参数更新的精度。

在一个实施例中,所述对更新后的多个子神经网络结构进行分类验证,获得更新后的多个子神经网络结构的分类的准确率,并根据所述准确率更新采样结构的参数,获得更新后的采样结构的步骤,包括:

步骤s41:获取验证集,并通过验证集计算更新后的各子神经网络结构的准确率;

步骤s42:根据所述准确率,计算所述采样结构的损失值;

步骤s43:根据所述采样结构的损失值,获得序列生成模型的参数更新梯度、编码器的参数更新梯度和解码器的参数更新梯度;

步骤s44:根据序列生成模型的参数更新梯度、编码器的参数更新梯度和解码器的参数更新梯度,更新序列生成模型的参数、编码器的参数和解码器的参数,获得更新后的采样结构。

在一个实施例中,所述根据更新后的采样结构和更新后的各中间层的结构搜索区间,确定需求的神经网络结构的步骤,包括:

步骤s51:根据各个中间层中待确定的网络结构、以及该网络结构对应的更新后的结构搜索区间,通过更新后的采样结构进行多次采样,获得多个子神经网络结构;

步骤s52:对多个所述子神经网络结构进行分类验证,获得分类准确率最高的子神经网络结构;

步骤s53:对分类准确率最高的子神经网络结构进行训练,并将训练后的子神经网络结构作为需求的神经网络结构。

通过确定的采集器和各个网络结构对应更新后的结构搜索区间,获得多个子神经网络结构,再通过验证集来确定分类准确率最高的子神经网络结构,最后对该子神经网络结构进行训练,提高了分类的准确率。

本发明还提供一种神经网络结构的搜索系统,包括:

预设数据获取模块,用于获取预设的神经网络架构和采样结构;其中,所述神经网络架构包括输入层、输出层以及多个依序排列的中间层;每个中间层包括待确定的网络结构、以及该网络结构对应的结构搜索区间;

采样模块,用于根据各个中间层中待确定的网络结构、以及该网络结构对应的结构搜索区间,通过采样结构进行多次采样,获得多个子神经网络结构;

训练模块,用于对多个所述子神经网络结构进行分类训练,并更新多个所述子神经网络结构中各中间层的网络结构的参数、以及各中间层的结构搜索区间中的网络结构的参数,获得更新后的多个所述子神经网络结构以及更新后的各中间层的结构搜索区间;

采样结构更新模块,用于对更新后的多个子神经网络结构进行分类验证,获得更新后的多个子神经网络结构的分类的准确率,并根据所述准确率更新采样结构的参数,获得更新后的采样结构;

神经网络结构确定模块,用于根据更新后的采样结构和更新后的各中间层的结构搜索区间,确定需求的神经网络结构。

本发明预设神经网络结构中各个中间层的网络结构对应的结构搜索区间,通过采样结构自动搜索出效果最契合分类任务的神经网络结构,无需人工调整神经网络结构,节省了时间,提高了效率。

本发明还提供一种计算机可读存储介质,其上储存有计算机程序,该计算机程序被处理器执行时实现如上述任意所述的神经网络结构的搜索方法的步骤。

本发明还提供一种数据处理设备,包括存储器、主处理器以及储存在所述存储器中并可被所述主处理器执行的计算机程序,所述主处理器执行所述计算机程序时实现如上述任意所述的神经网络结构的搜索方法的步骤。

为了更好地理解和实施,下面结合附图详细说明本发明。

附图说明

图1本发明在一个实施例中神经网络结构的搜索方法的应用环境结构示意框图;

图2为本发明神经网络结构的搜索方法的流程图;

图3为本发明一个实施例中神经网络架构的结构示意图;

图4为本发明获得多个子神经网络结构的流程图;

图5为本发明一个实施例中获取子神经网络结构的原理图;

图6为本发明一个实施例中获取的子神经网络结构的结构示意图;

图7为本发明更新网络结构的参数的流程图;

图8为本发明更新采样结构的参数的流程图;

图9为本发明获得需求的神经网络结构的流程图;

图10为本发明神经网络结构的搜索系统的结构示意图;

图11为本发明采样模块的结构示意图;

图12为本发明训练模块的结构示意图;

图13为本发明采样结构更新模块的结构示意图;

图14为本发明神经网络结构确定模块的结构示意图。

具体实施方式

请参阅图1,图1为本发明在一个实施例中神经网络结构的搜索方法的应用环境结构示意框图。如图1所示,该实施例的神经网络结构的搜索方法的应用环境为数据处理设备10。所述数据处理设备10包括用户输入接收器11,主处理器12、存储器13和显示器14。

所述数据处理设备10通过所述用户输入接收器11获取用户预设的神经网络架构以及采样结构。所述存储器13存储预设的神经网络架构和采样结构存储,其中,所述神经网络架构包括输入层、输出层以及多个依序排列的中间层;每个中间层包括待确定的网络结构、以及该网络结构对应的结构搜索区间。所述主处理器12根据各个中间层中待确定的网络结构、以及该网络结构对应的结构搜索区间,通过采样结构进行多次采样,获得多个子神经网络结构,并对多个所述子神经网络结构进行分类训练,且更新多个所述子神经网络结构中各中间层的网络结构的参数、以及各中间层的结构搜索区间中的网络结构的参数;对更新后的多个子神经网络结构进行分类验证,获得更新后的多个子神经网络结构的分类的准确率,并根据所述准确率更新采样结构的参数。此时,所述主处理器12判断上述步骤次数是否达到预设次数,若没有,则重复上述步骤,若已经达到预定,则所述主处理器12根据更新后的采样结构和各中间层的结构搜索区间中的网络结构发送,确定需求的神经网络结构,并通过所述显示器14显示该神经网络结构。

所述用户输入接收器11用于接收用户输入的数据,包括用户预设时输入的神经网络架构、采样结构和预设次数等,其可以是键盘、鼠标等。

所述主处理器12由至少一个硬件处理器实现,以执行数据处理设备10的操作,其可以为台式计算机、便携式计算机、一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件。

所述存储器13可以存储在数据处理设备10处输入和/或显示的信息。作为数据处理设备10中提供存储数据的存储器13可以实现为非易失性存储器,例如闪存。存储器13还可存储所述主处理器12在处理过程中产生的所有数据。存储器13中存储的数据不限于上述示例,并且存储器13还可以存储数据处理设备10需要或用于执行其操作的所有信息。

所述显示器14可将所述用户输入接收器11获取的用户预设的神经网络架构、采样结构和预设次数等数据进行显示,以供用户核对,同时,所述显示器14也可将所述主处理器12的处理结果数据如神经网络结构进行显示。其中,显示器14的类型不受限制,并且显示器14可以以各种形式实现,例如等离子体显示面板(pdp),液晶显示器(lcd),有机发光二极管(oled),柔性显示器等。

其中,包括在数据处理设备10中的组件不限于如上所述的示例性实施例。

请参阅图2,本发明的神经网络结构的搜索方法,包括如下步骤:

步骤s1:获取预设的神经网络架构和采样结构;其中,所述神经网络架构包括输入层、输出层以及多个依序排列的中间层;每个中间层包括待确定的网络结构、以及该网络结构对应的结构搜索区间。

其中,所述神经网络架构的输入层为用于输入待处理的数据;所述神经网络架构的中间层为用于处理数据的层结构,其可根据需要设置多个;所述神经网络架构的输出层为经过多个中间层处理后输出的数据。例如,请参阅图3,所述神经网络架构包括输入层、输出层以及三个依序排列的中间层;所述三个中间层依序为第一中间层、第二中间层和第三中间层。

其中,所述待确定的网络结构包括输入结构和处理结构;在所述待确定的网络结构为输入结构时,所述网络结构对应的结构搜索区间为输入结构搜索区间;在所述待确定的网络结构为处理结构时,所述网络结构对应的结构搜索区间为处理结构搜索区间。

所述输入结构为中间层的输入来源;所述输入结构搜索区间为中间层的所有输入来源构成的区间。每个中间层既可以将其上一层的输出作为输入,又可将其更前面的上一层的输出作为输入;但是,每个中间层的输入结构搜索区间并不同,排列越后的中间层的输入来源越多,其对应的输入结构搜索区间也越大,具体的,若将所述多个依序排列的中间层依序定义为第一层、第二层、第三层…第k层,则第一层的输入结构搜索区间默认为[输入层的输出];第二层的输入结构搜索区间为[第一层的输出];第三层的输入结构搜索区间为[第一层的输出,第二层的输出]…第k层的输入结构搜索区间为[第一层的输出,第二层的输出,第三层的输出…第k-1层的输出]。

所述处理结构为中间层对输入的数据进行处理的一层结构;所述处理结构搜索空间为中间层对输入的数据进行处理的所有层结构构成的区间。所述层结构为对输入的数据采用不同的计算参数和不同的函数计算方法进行处理的方法结构,具体的,其可为具有不同卷积核的卷积层、具有不同池化核的最大池化层、具有不同池化核的平均池化层、仅仅对输入的数据进行传送不进行处理的传送层、或者其他任何可对输入数据进行处理的结构。所述层结构的计算参数主要包括权重参数。进一步地,所述层结构为与所述输入的数据的信号维度匹配的结构,如若输入的数据为一维信号,则设计为一维处理层结构;若输入的数据为二维信号,则设计为二维处理层结构;若输入的数据为三维信号,则设计为三维处理层结构。为减少运算,进而实现便捷快速地确定神经网络结构,每个中间层的处理结构搜索空间均相同,对应的在本实施例中,为提高搜索效率,通过排除一些学术效果上不佳的处理结构,将所述处理结构搜索空间设置为[卷积核为5的卷积层,卷积核为3的卷积层,池化核为3的最大池化层,池化核为5的平均池化层,传送数据的传送层]。对于输入为一维信号,所述处理结构搜索空间设置为[卷积核为5的一维卷积层,卷积核为3的一维卷积层,池化核为3的一维最大池化层,池化核为5的一维平均池化层,传送数据的传送层]。

步骤s2:根据各个中间层中待确定的网络结构、以及该网络结构对应的结构搜索区间,通过采样结构进行多次采样,获得多个子神经网络结构。

其中,每个子神经网络结构包括输入层、输出层以及多个依序排列的中间层;每个中间层包括确定的网络结构。

请参阅图4至图6,在一个实施例中,所述采样结构包括序列生成模型、编码器和解码器;所述根据各个中间层中待确定的网络结构、以及该网络结构对应的结构搜索区间,通过采样结构进行多次采样,获得多个子神经网络结构的步骤,包括:

步骤s21:获取神经网络架构中各中间层的需确定的网络结构的顺序。

其中,神经网络架构中各中间层的网络结构的确定顺序为依序排列的每个中间层的输入结构和处理结构,具体的,若将所述多个依序排列的中间层依序定义为第一层、第二层、第三层…第k层,第一层的输入默认为输入层的输入,第k层的输出默认为输出层的输入,则神经网络架构中各中间层需确定的网络结构的顺序为:第一层的处理结构、第二层的输入结构、第二层的处理结构、第三层的输入结构、第三层的处理结构…第k层的输入结构、第k层的处理结构。

步骤s22:将预设值输入序列生成模型中,获得序列生成模型的输出值。

为方便计算,将预设值为全是0的向量输入序列生成模型中,获得序列生成模型的输出。

所述序列生成模型可为隐马尔可夫模型、循环神经网络模型、长短期记忆网络、或其他任何可以生成序列的模型。所述序列生成模型中包括了权重参数和计算函数,初始时,对所述权重参数赋予了随机值,将预设值输入至序列生成模型中后,则将预设值与序列生成模型中的权重参数按照计算函数进行计算,进而获得序列生成模型的输出值。

步骤s23:获取当前需确定的中间层的网络结构对应的结构搜索区间。

步骤s24:根据当前需确定的中间层的网络结构对应的结构搜索区间,确定所述结构搜索空间的大小,并通过解码器将序列生成模型的输出值解码为与所述结构搜索区间的大小相匹配的解码数据。

例如,若当前需确定的中间层的对应的结构搜索区间为第k层的输入搜索区间,也即为[第一层的输出,第二层的输出,第三层的输出…第k-1层的输出],则该输入结构搜索区间的大小为k-1,则将序列生成模型的输出解码成长度为k-1的向量作为解码后的数据。

步骤s25:根据所述解码数据与所述结构搜索区间中各个网络结构的对应关系,计算所述结构搜索区间中各个网络结构的获得概率。

其中,可预设解码数据与各输入结构或各处理结构之间的对应关系,例如,若当前需确定的中间层的网络结构为第四层的输入结构,解码器解码获得的解码数据为[x1,x2,x3],则可预设x1为第1层的输出,x2为第2层的输出,x3为第3层的输出;也可预设x1为第2层的输出,x2为第3层的输出,x3为第1层的输出等,但当预设确定以后,后续将不再进行改变。

其中,通过softmax函数计算每个输入结构或处理结构的概率。例如,若当前需确定的中间层为第四层的输入结构,解码器解码获得的解码数据为x=[x1,x2,x3],且x1为第1层的输出,x2为第2层的输出,x3为第3层的输出;则该中间层的输入结构为第1层的输出、x2为第2层的输出、x3为第3层的输出的概率的计算方式如下:

步骤s26:根据所述获得概率,对所述结构搜索区间中各个网络结构进行随机采样,确定当前需确定的中间层的网络结构。

步骤s27:判断神经网络架构中各中间层的网络结构是否确定完毕,若未确定完,则将当前确定的中间层的网络结构通过编码器进行编码,并将编码后的数据输入至序列生成模型,且根据所述各中间层需确定的网络结构的顺序,将下一需确定的中间层的网络结构作为当前需确定的中间层的网络结构,回到步骤s23;若已确定完,则根据各中间层确定的网络结构,获得一子神经网络结构。

其中,若将所述多个依序排列的中间层依序定义为第一层、第二层、第三层…第k层,则各个中间层需确定的网络结构的顺序依次为:第一层的处理结构、第二层的输入结构、第二层的处理结构、第三层的输入结构、第三层的处理结构…第k层的输入结构、第k层的处理结构,也即,开始时,先将第一层的处理结构作为当前需确定的中间层的网络结构,待确定了第一层的处理结构之后,则将第二层的输入结构作为当前需确定的中间层的网络结构,待确定了第二层的输入结构之后,则将第二层的处理结构作为当前需确定的中间层的网络结构,以此类推,直至确定完所有中间层的网络结构。

请参阅图6,对于神经网络架构包括输入层、第一中间层、第二中间层、第三中间层和输出层的神经网络,在每个中间层的处理结果搜索区间均为[卷积核为5的一维卷积层,卷积层为3的一维卷积层,池化核为3的一维最大池化层,池化核为5的一维平均池化层,传送数据的传送层]时,通过采样结构进行采样获得的一子神经网络结构为输入层、卷积核为3的一维卷积层、卷积核为3的一维卷积层、池化核为3的一维最大池化层和输出层。

步骤s28:重复步骤s23至步骤s27达到预设次数后,获得多个子神经网络结构。

其中,可根据需要获得的子神经网络结构的数量,预设重复步骤s23至步骤s27的次数,具体的,预设次数的取值范围为2至100,若需快速确定需求的神经网络结构,则可将预设的次数设置小一些,如为5,6次等,如需准确确定需求的神经网络结构,则可将将预设的次数设置大一些,如n为80,90等。

其中,为避免后续训练子神经网络结构时,每次均从头训练一个新采样出来的子神经网络,以节省训练时间,多个所述子神经网络结构中同一中间层中的同一处理结构共享参数,例如,若第一个子神经网络结构的第一中间层的处理结构采用卷积核为5的一维卷积层,第二中间层的处理结构采用卷积层为3的一维卷积层,第三中间层的处理结构采用卷积核为5的一维卷积层;第二个子神经网络结构的第一中间层的处理结构采用卷积核为5的一维卷积层,第二中间层的处理结构采用池化核为5的一维平均池化,第三中间层的处理结构采用池化核为3的一维最大池化层;第三个子神经网络结构的第一中间层的处理结构采用池化核为5的一维平均池化,第二中间层的处理结构采用池化核为5的一维平均池化,第三中间层的处理结构采用卷积层为3的一维卷积;则第一个子神经网络结构和第二个子神经网络结构的第一中间层的卷积核为5的一维卷积层的参数相同;第二个子神经网络结构和第三个子神经网络结构的第二中间层采用池化核为5的一维平均池化的参数相同。

通过采样结构循环自动确定子神经网络结构,进而使子神经网络结构的每个中间层结构相互关联,符合子神经网络结构对处理的数据处理流程,提高了预测的准确性。

步骤s3:对多个所述子神经网络结构进行分类训练,并更新多个所述子神经网络结构中各中间层的网络结构的参数、以及各中间层的结构搜索区间中的网络结构的参数,获得更新后的多个所述子神经网络结构以及更新后的各中间层的结构搜索区间。

其中,初始时各中间层的结构搜索区间中的网络结构的参数为随机赋予的数值,进而所述子神经网络结构中各中间层的网络结构的参数也为随机赋予的数值。

请参阅图7,在一个实施例中,所述对多个所述子神经网络结构进行分类训练,并更新多个所述子神经网络结构中各中间层的网络结构的参数、以及各中间层的结构搜索区间中的网络结构的参数,获得更新后的多个所述子神经网络结构以及更新后的各中间层的结构搜索区间的步骤,包括:

步骤s31:获取训练集,将所述训练集随机分成多个数量相同的子集。

其中,将多条序列信号切分成等长的多个子序列信号,再将这些子序列信号按照预设的比例分成训练集和验证集。例如,若该多条序列信号为一维信号,其通道数为c,切分后的子序列的长度为n,则切分后的信号格式为nxc,这些子序列一部分作为训练集,另外一部分则作为验证集。

步骤s32:取其中一子集对多个所述子神经网络结构进行分类训练,获得多个所述子神经网络结构的交叉熵损失。

其中,所述交叉熵损失的计算方式为:

上述公式中,l为交叉熵损失,c为分类数量,x[jtrue]为采用子神经网络结构进行分类时,数据x分属在正确的类的预测结果;x[j]为采用子神经网络结构进行分类时,数据x分属于其中一类的预测结果;log()为以自然常数e为底对括号内的数据取对数。

步骤s33:根据多个所述神经网络结构的交叉熵损失,获取多个所述子神经网络结构中各中间层的处理结构的参数梯度。

步骤s34:在多个所述子神经网络结构中,获取同一中间层的同一处理结构的所述参数梯度,并将所述参数梯度进行均值处理,且将处理后的均值作为所述同一中间层的同一处理结构的参数更新梯度。

其中,所述同一中间层的同一处理结构的参数更新梯度的计算方式为:

上述公式中,w表示同一中间层的同一处理结构的参数,例如,权重参数;表示w的梯度;em~π(l(m,w))表示在采样结构π确定的子神经网络结构的交叉熵损失期望值;m表示具有同一中间层的同一处理结构的子神经网络的数量;mi表示通过第i个子神经网络结构;表示第i个子神经网络结构的交叉熵损失函数对同一中间层的同一处理结构的梯度。

步骤s35:根据所述参数更新梯度,更新多个所述子神经网络结构中同一中间层的同一处理结构的参数、以及同一中间层的处理结构搜索区间中的同一处理结构的参数。

例如,若第一个子神经网络结构的第一中间层的处理结构采用卷积核为5的一维卷积层,第二中间层的处理结构采用卷积层为3的一维卷积层,第三中间层的处理结构采用卷积核为5的一维卷积层;第二个子神经网络结构的第一中间层的处理结构采用卷积核为5的一维卷积层,第二中间层的处理结构采用池化核为5的一维平均池化,第三中间层的处理结构采用池化核为3的一维最大池化层;第三个子神经网络结构的第一中间层的处理结构采用池化核为5的一维平均池化,第二中间层的处理结构采用池化核为5的一维平均池化,第三中间层的处理结构采用卷积层为3的一维卷积层;则第一个子神经网络结构的第一中间层和第二个子神经网络结构的第一中间层的处理结构相同,取这两个子神经网络结构的交叉熵损失对卷积层为3的一维卷积层的参数梯度,再求解这两个参数梯度的均值,进而将该均值作为第一中间层的卷积层为3的一维卷积层的参数更新梯度,从而根据所述参数更新梯度对第一个子神经网络结构的第一中间层的卷积层为3的一维卷积层的参数进行更新,对第二个子神经网络结构的第一中间层的卷积层为3的一维卷积层的参数进行更新,同时,更新所述第一中间层中卷积层为3的一维卷积层。

步骤s36:判断所有的子集是否均对多个所述子神经网络结构进行分类训练,若是,则获得更新后的多个所述子神经网络结构、以及更新后的各中间层的处理结构搜索区间;若否,则取下一未训练的子集,回到步骤s32。

逐个对子神经网络结构进行分类训练,并以同一中间层的同一处理结构的参数梯度作为该同一中间层的同一处理结构的参数更新梯度,提高了参数更新的精度。

步骤s4:对更新后的多个子神经网络结构进行分类验证,获得更新后的多个子神经网络结构的分类的准确率,并根据所述准确率更新采样结构的参数,获得更新后的采样结构。

其中,初始时采样结构的参数为随机赋予的数值。

请参阅图8,在一个实施例中,所述对更新后的多个子神经网络结构进行分类验证,获得更新后的多个子神经网络结构的分类的准确率,并根据所述准确率更新采样结构的参数,获得更新后的采样结构的步骤,包括:

步骤s41:获取验证集,并根据验证集计算更新后的多个所述子神经网络结构的准确率。

步骤s42:根据所述准确率,计算所述采样结构的损失函数。

其中,所述采样结构损失值的计算方式为:

上述公式中,l表示损失值;n表示子神经网络的数量;p(k)表示采样结构采样出第k个子神经网络结构的概率,这个结果由采样结构在各个时间节点的输出的汇总来决定;rk表示第k个子神经网络的准确率;log()为以自然常数e为底对括号内的数据取对数。

步骤s43:根据所述采样结构的损失值,获得序列生成模型的参数更新梯度、编码器的参数更新梯度和解码器的参数更新梯度。

其中,序列生成模型的参数更新梯度的计算方式为:

上述公式中,θ表示序列生成模型的参数,例如为权重参数;表示θ的梯度。

其中,所述编码器的权重的梯度和解码器的参数相同,两者的计算方式均为:

上述公式中,w表示编码器的权重或解码器的参数,例如为权重参数;表示w的梯度。

步骤s44:根据序列生成模型的参数更新梯度、编码器的参数更新梯度和解码器的参数更新梯度,更新序列生成模型的参数、编码器的参数和解码器的参数,获得更新后的采样结构。

步骤s5:重复步骤s2至步骤s4直到达到预设次数后,根据更新后的采样结构和更新后的各中间层的结构搜索区间,确定需求的神经网络结构。

其中,可根据需要预设重复步骤s2至步骤s4的次数,具体的,预设次数的取值范围为2至100,若需快速确定需求的神经网络结构,则可将预设的次数设置小一些,如为5,6次等,如需准确确定需求的神经网络结构,则可将将预设的次数设置大一些,如n为80,90等。

请参阅图9,在一个实施例中,所述根据更新后的采样结构和更新后的各中间层的结构搜索区间,确定需求的神经网络结构的步骤,包括:

步骤s51:根据各个中间层中待确定的网络结构、以及该网络结构对应的更新后的结构搜索区间,通过更新后的采样结构进行多次采样,获得多个子神经网络结构;

步骤s52:对多个所述子神经网络结构进行分类验证,获得分类准确率最高的子神经网络结构。

步骤s53:对分类准确率最高的子神经网络结构进行训练,并将训练后的子神经网络结构作为需求的神经网络结构。

其中,在对分类准确率最高的子神经网络结构进行训练时,将所述子神经网络结构中的各网络结构参数随机赋予数值,再通过训练集对所述子神经网络结构进行训练,获得需求的神经网络结构。

本发明预设神经网络结构中各个中间层的网络结构对应的结构搜索区间,通过采样结构自动搜索出效果最契合分类任务的神经网络结构,无需人工调整神经网络结构,节省了时间,提高了效率。

请参阅图10,本发明还提供一种神经网络结构的搜索系统20,包括:

预设数据获取模块21,用于获取预设的神经网络架构和采样结构;其中,所述神经网络架构包括输入层、输出层以及多个依序排列的中间层;每个中间层包括待确定的网络结构、以及该网络结构对应的结构搜索区间;

采样模块22,用于根据各个中间层中待确定的网络结构、以及该网络结构对应的结构搜索区间,通过采样结构进行多次采样,获得多个子神经网络结构;

训练模块23,用于对多个所述子神经网络结构进行分类训练,并更新多个所述子神经网络结构中各中间层的网络结构的参数、以及各中间层的结构搜索区间中的网络结构的参数,获得更新后的多个所述子神经网络结构以及更新后的各中间层的结构搜索区间;

采样结构更新模块24,用于对更新后的多个子神经网络结构进行分类验证,获得更新后的多个子神经网络结构的分类的准确率,并根据所述准确率更新采样结构的参数,获得更新后的采样结构;

神经网络结构确定模块25,用于根据更新后的采样结构和更新后的各中间层的结构搜索区间,确定需求的神经网络结构。

本发明预设神经网络结构中各个中间层的网络结构对应的结构搜索区间,通过采样结构自动搜索出效果最契合分类任务的神经网络结构,无需人工调整神经网络结构,节省了时间,提高了效率。

请参阅图11,在一个实施例中,所述采样模块22包括:

网络结构顺序确定单元221,用于获取神经网络架构中各中间层需确定的网络结构的顺序;

输出值获取单元222,用于将预设值输入序列生成模型中,获得序列生成模型的输出值;

结构搜索区间获取单元223,用于获取当前需确定的中间层的网络结构对应的结构搜索区间;

解码单元224,用于根据当前需确定的中间层的网络结构对应的结构搜索区间,确定所述结构搜索空间的大小,并通过解码器将序列生成模型的输出值解码为与所述结构搜索区间的大小相匹配的解码数据;

获得概率计算单元225,用于根据所述解码数据与所述结构搜索区间中各个网络结构的对应关系,计算所述结构搜索区间中各个网络结构的获得概率;

网络结构确定单元226,用于根据所述获得概率,对所述结构搜索区间中各个网络结构进行随机采样,确定当前需确定的中间层的网络结构;

判断单元227,用于判断神经网络架构中各中间层的网络结构是否确定完毕,若未确定完,则则将当前确定的中间层的网络结构通过编码器进行编码,并将编码后的数据输入至序列生成模型,且根据所述各中间层需确定的网络结构的顺序,将下一需确定的中间层的网络结构作为当前需确定的中间层的网络结构,继续确定当前中间层的网络结构;若已确定完,则根据各中间层确定的网络结构,获得一子神经网络结构;

子神经网络结构获取单元228,用于获得多个子神经网络结构。

通过采样结构循环自动确定子神经网络结构,进而使子神经网络结构的每个中间层结构相互关联,符合子神经网络结构对处理的数据处理流程,提高了预测的准确性。

请参阅图12,在一个实施例中,所述采样结构更新模块23包括:

训练集划分单元231,用于获取训练集,并将所述训练集随机分成多个数量相同的子集;

交叉熵损失计算单元232,用于取其中一子集对多个所述子神经网络结构进行分类训练,获得各子神经网络结构的交叉熵损失;

参数梯度计算单元233,用于根据多个所述神经网络结构的交叉熵损失,获取多个所述子神经网络结构中各中间层的处理结构的参数梯度;

参数更新梯度计算单元234,用于在多个所述子神经网络结构中,获取同一中间层的同一处理结构的所述参数梯度,并将所述参数梯度进行均值处理,且将处理后的均值作为所述同一中间层的同一处理结构的参数更新梯度;

更新单元235,用于根据所述参数更新梯度,更新多个所述子神经网络结构中同一中间层的同一处理结构的参数、以及同一中间层的处理结构搜索区间中的同一处理结构的参数;

分类判断单元236,用于判断所有的子集是否均对多个所述子神经网络结构进行分类训练,若是,则获得更新后的更新多个子神经网络结构、以及更新后的各中间层的处理结构搜索区间;若否,则取下一未训练的子集,继续对多个所述子神经网络结构进行分类训练。

逐个对子神经网络结构进行分类训练,并以同一中间层的同一处理结构的参数梯度作为该同一中间层的同一处理结构的参数更新梯度,提高了参数更新的精度。

请参阅图12,在一个实施例中,所述训练模块24包括:

准确率获取单元241,用于获取验证集,并通过验证集计算更新后的各子神经网络结构的准确率;

损失值计算单元242,用于根据所述准确率,计算所述采样结构的损失值;

梯度计算单元243,用于根据所述采样结构的损失值,获得序列生成模型的参数更新梯度、编码器的参数更新梯度和解码器的参数更新梯度;

采样结构更新单元244,用于根据序列生成模型的参数更新梯度、编码器的参数更新梯度和解码器的参数更新梯度,更新序列生成模型的参数、编码器的参数和解码器的参数,获得更新后的采样结构。

请参阅图14,在一个实施例中,所述神经网络结构确定模块25包括:

子神经网络结构采样单元251,用于根据各个中间层中待确定的网络结构、以及该网络结构对应的更新后的结构搜索区间,通过更新后的采样结构进行多次采样,获得多个子神经网络结构;

子神经网络结构获取单元252,用于对多个所述子神经网络结构进行分类验证,获得分类准确率最高的子神经网络结构。

神经网络结构获取单元253,用于对分类准确率最高的子神经网络结构进行训练,并将训练后的子神经网络结构作为需求的神经网络结构。

通过确定的采集器和各个网络结构对应更新后的结构搜索区间,获得多个子神经网络结构,再通过验证集来确定分类准确率最高的子神经网络结构,最后对该子神经网络结构进行训练,提高了分类的准确率。

本发明还提供一种计算机可读存储介质,其上储存有计算机程序,该计算机程序被处理器执行时实现如上述任意所述的神经网络结构的搜索方法的步骤。

本发明可采用在一个或多个其中包含有程序代码的存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。计算机可读储存介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于:相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。

本发明还提供一种数据处理设备,包括存储器、主处理器以及储存在所述存储器中并可被所述主处理器执行的计算机程序,所述主处理器执行所述计算机程序时实现如上述任意所述的神经网络结构的搜索方法的步骤。

所述存储器存储获取的预设的神经网络架构和采样结构存储,其中,所述神经网络架构包括输入层、输出层以及多个依序排列的中间层;每个中间层包括待确定的网络结构、以及该网络结构对应的结构搜索区间。所述主处理器根据各个中间层中待确定的网络结构、以及该网络结构对应的结构搜索区间,通过采样结构进行多次采样,获得多个子神经网络结构,并对多个所述子神经网络结构进行分类训练,且更新多个所述子神经网络结构中各中间层的网络结构的参数、以及各中间层的结构搜索区间中的网络结构的参数;对更新后的多个子神经网络结构进行分类验证,获得更新后的多个子神经网络结构的分类的准确率,并根据所述准确率更新采样结构的参数。此时,所述主处理器判断上述步骤次数是否达到预设次数,若没有,则重复上述步骤,若已经达到预定,则所述主处理器根据更新后的采样结构和各中间层的结构搜索区间中的网络结构发送,确定需求的神经网络结构。

所述主处理器由至少一个硬件处理器实现,以执行数据处理设备10的操作,其可以为台式计算机、便携式计算机、一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件。

所述存储器可以存储在数据处理设备处输入和/或显示的信息。作为数据处理设备中提供存储数据的存储器可以实现为非易失性存储器,例如闪存。所述存储器可以在一个或多个其中包含有程序代码的存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。计算机可读储存介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于:相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息存储器还可存储所述主处理器在处理过程中产生的所有数据。存储器中存储的数据不限于上述示例,并且存储器还可以存储数据处理设备需要或用于执行其操作的所有信息。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1