一种全连接神经网络优化方法和装置与流程

文档序号:19572557发布日期:2019-12-31 19:05阅读:241来源:国知局
一种全连接神经网络优化方法和装置与流程

本发明涉及人工智能技术领域,特别是一种全连接神经网络优化方法和装置。



背景技术:

近几年来,人工智能神经网络的研究工作不断深入,在模式识别、智能机器人、预测估计、生物医学等领域良好地解决了许多现代计算机难以解决的实际问题。

随着科技的发展和社会的需求,人工神经网络的应用越来越广泛。当神经网络处于外太空等恶劣辐射环境下时,会造成神经网络的可靠性降低,最终导致失效,这是一个不可忽视的问题。对神经网络中部分神经元进行加固可以有效地提高其可靠性。

高效的内存和数据访问对于实现神经网络来说至关重要。在小规模神经网络中,通过内存传输最小化可以有效地提高效率,但对于大规模神经网络而言却不适用,因此,高可靠性以及高效内存和数据访问效率仍是目前业内针对大规模神经网络的主要研究目标。



技术实现要素:

本发明的发明构思为:在大多数神经网络中,部分神经元对输出的影响较小,若能在一定程度上放宽这些神经元的计算精度要求,即对这些神经元进行近似计算,则可以在满足输出精度要求的前提下有效地减少内存占比和功耗开销。

因此,本发明的目的是提供一种全连接神经网络优化方法和装置,通过近似存储,在保证输出精度的基础上,减少内存占比和功耗开销。

本发明采取的技术方案为:一种全连接神经网络优化方法,包括:

获取已训练完成的待优化神经网络结构数据及其输入样本数据集;

以输入层的输入为变量,计算得到神经网络中各隐藏层与输出层中各神经元的输入表达式;

基于各神经元的输入表达式,计算得到各隐藏层中各神经元对输出层各神经元的影响程度表达式;

基于各隐藏层神经元对输出层各神经元的影响程度表达式,计算得到各隐藏层神经元对输出层的总影响程度表达式;

基于输入样本数据集中的样本数据,通过各隐藏层神经元对输出层的总影响程度表达式,计算得到各隐藏层神经元对输出层的总影响程度值;

针对总影响程度值较小的神经元,将它们的输入进行近似处理,即得到优化后的神经网络。

所述近似处理可为位宽缩减等现有处理方法。本发明对总影响程度值较小的神经元的输入进行近似处理,可有效减小神经网络的功耗开销。

可选的,方法还包括:对预设数量的总影响程度值较大的神经元的输入进行加固处理。所述加固处理可为三模冗余等现有处理方法。对总影响程度值较大的神经元输入进行加固,可进一步提高神经网络的可靠性。

可选的,方法还包括:根据总影响程度值的从大到小对各隐藏层神经元进行排序;然后对排序中在前的设定m个隐藏层神经元的输入进行加固处理,对排序中在后的设定n个隐藏层神经元的输入进行近似处理。当然,排序操作也可以是从小到大进行排列,此时则总影响程度较大的m个隐藏层神经元在后,总影响程度较小的n个隐藏层神经元在前。m和n的数量可根据隐藏层神经元的总数进行调整。

可选的,待优化神经网络结构包括1个输入层、1个输出层和至少1个隐藏层,各层分别包含多个神经元;所述待优化神经网络结构数据包括神经网络中各层所包含的神经元数量、各神经元的激活函数,以及相邻层神经元之间的权重值。

当隐藏层仅有一个时,只需对其中各神经元分别求得其对输出层各神经元的影响程度表达式即可。

可选的,隐藏层数量为2个以上,计算各隐藏层中各神经元对输出层各神经元的影响程度表达式包括:

基于各神经元的输入表达式,计算任意两个相邻隐藏层中,前一隐藏层中各神经元对后一隐藏层中各个神经元的影响程度表达式;

通过迭代求导计算各隐藏层中各神经元对输出层各神经元的影响程度表达式。

可选的,相邻隐藏层之间,或隐藏层与相邻的输出层之间,前一层中任一神经元p对后一层中任一神经元q的影响程度cpq计算公式为:

其中,代表偏微分符号,x代表神经元的输入,y=f(x)代表神经元的输出,f′(xp)代表神经元p的输出对输入的一次导数,ωq-p代表神经元p和q之间的权重值。

通过迭代求导,可求得不相邻任两个隐藏层之间神经元的影响程度表达式。

可选的,定义神经网络的隐藏层有l个,最后一个隐藏层中的神经元数量为k,则第l个隐藏层之外的第i个隐藏层中神经元h对输出层中各神经元o的影响程度cho计算公式为:

为神经元h对最后一个隐藏层中第k个神经元的影响程度:

为第l个隐藏层中第k个神经元的影响程度对输出层神经元o的影响程度。

可选的,定义神经网络的输出层神经元数量为j,则隐藏层中任一神经元h对输出层的总影响程度ch为:

其中,为神经元h对输出层中第i个神经元oi的影响程度。

可选的,输入样本数据集包括多个样本数据;计算单个隐藏层神经元对输出层的总影响程度值包括:

将多个样本数据分别输入隐藏层神经元对输出层的总影响程度表达式中,得到相应多个总影响程度计算结果;

将多个总影响程度计算结果相加后除以输入样本数据集的样本容量,得到相应隐藏层神经元对输出层的总影响程度值。

本发明还公开一种全连接神经网络优化装置,包括:

数据输入模块,用于获取已训练完成的待优化神经网络结构数据及其输入样本数据集;

输入表达式计算模块,用于以输入层的输入为变量,计算得到神经网络中各隐藏层与输出层中各神经元的输入表达式;

影响程度表达式计算模块,用于基于各神经元的输入表达式,计算得到各隐藏层中各神经元对输出层各神经元的影响程度表达式;

总影响程度表达式计算模块,用于基于各隐藏层神经元对输出层各神经元的影响程度表达式,计算得到各隐藏层神经元对输出层的总影响程度表达式;

总影响程度值计算模块,用于基于输入样本数据集中的样本数据,通过各隐藏层神经元对输出层的总影响程度表达式,计算得到各隐藏层神经元对输出层的总影响程度值;

以及近似处理模块,用于对总影响程度值较小的神经元的输入进行近似处理,即得到优化后的神经网络。

有益效果

本发明通过迭代求导计算隐藏层中所有神经元对输出的总影响程度,从而可筛选出对输出影响较小的神经元,以及对输出影响较大的神经元,再对影响较小的神经元的输入进行近似处理,对影响较大的神经元的输入进行加固处理,可在有效减小神经网络功耗开销的同时,提高神经网络的可靠性,即实现了一种低开销高可靠性的全连接神经网络优化方法。

附图说明

图1所示为本发明一种应用例的待优化神经网络结构示意图;

图2所示为图1所示应用例中神经网络的计算分解示意图;

图3所示为本发明一种实施例的方法流程示意图。

具体实施方式

以下结合附图和具体实施例进一步描述。

近似存储是实现高效数据访问和减小功耗开销的最有前景的技术之一,本发明即通过近似存储,在保证输出精度的基础上,减少内存占比和功耗开销。

实施例1

参考图3所示,本实施例的全连接神经网络优化方法包括:

获取已训练完成的待优化神经网络结构数据及其输入样本数据集;

以输入层的输入为变量,计算得到神经网络中各隐藏层与输出层中各神经元的输入表达式;

基于各神经元的输入表达式,计算得到各隐藏层中各神经元对输出层各神经元的影响程度表达式;

基于各隐藏层神经元对输出层各神经元的影响程度表达式,计算得到各隐藏层神经元对输出层的总影响程度表达式;

基于输入样本数据集中的样本数据,通过各隐藏层神经元对输出层的总影响程度表达式,计算得到各隐藏层神经元对输出层的总影响程度值;

对总影响程度值较小的神经元的输入进行近似处理,即得到优化后的神经网络。

实施例1-1

基于实施例1,本实施例方法还可包括:对预设数量的总影响程度值较小的神经元的输入进行加固处理。

所述近似处理可为位宽缩减等现有处理方法,所述加固处理可为三模冗余等现有处理方法。本发明对总影响程度值较小的神经元的输入进行近似处理,可有效减小神经网络的功耗开销,对总影响程度值较大的神经元输入进行加固,,提高神经网络的可靠性。

在筛选影响度值较小或较大的神经元时,本实施例采取的方案可为:根据总影响程度值的从大到小对各隐藏层神经元进行排序;然后对排序中在前的设定m个隐藏层神经元的输入进行加固处理,对排序中在后的设定n个隐藏层神经元的输入进行近似处理。当然,排序操作也可以是从小到大进行排列,此时则总影响程度较大的m个隐藏层神经元在后,总影响程度较小的n个隐藏层神经元在前。m和n的数量可根据隐藏层神经元的总数进行调整。

本发明可适用的全连接神经网络,即待优化神经网络结构包括1个输入层、1个输出层和至少1个隐藏层,各层分别包含多个神经元;所述待优化神经网络结构数据包括神经网络中各层所包含的神经元数量、各神经元的激活函数,以及相邻层神经元之间的权重值。

当隐藏层仅有一个时,只需对其中各神经元分别求得其对输出层各神经元的影响程度表达式即可。

当隐藏层数量为2个以上,则首先分别计算各隐藏层中各神经元对输出层各神经元的影响程度表达式,包括:

基于各神经元的输入表达式,计算任意两个相邻隐藏层中,前一隐藏层中各神经元对后一隐藏层中各个神经元的影响程度表达式;

通过迭代求导计算各隐藏层中各神经元对输出层各神经元的影响程度表达式。

相邻隐藏层之间,或隐藏层与相邻的输出层之间,前一层中任一神经元p对后一层中任一神经元q的影响程度cpq计算公式为:

其中,代表偏微分符号,x代表神经元的输入,y=f(x)代表神经元的输出,f′(xp)代表神经元p的输出对输入的一次导数,ωq-p代表神经元p和q之间的权重值。

通过迭代求导,可求得不相邻任两个隐藏层之间神经元的影响程度表达式,即可求得任一隐藏层神经元对最后一个隐藏层中各神经元的影响程度表达式。

定义神经网络的隐藏层有l个,最后一个隐藏层中的神经元数量为k,则第l个隐藏层之外的第i个隐藏层中神经元h对输出层中各神经元o的影响程度cho计算公式为:

为神经元h对最后一个隐藏层中第k个神经元的影响程度:

为第l个隐藏层中第k个神经元的影响程度对输出层神经元o的影响程度。

定义神经网络的输出层神经元数量为j,则隐藏层中任一神经元h对输出层的总影响程度ch为:

其中,为神经元h对输出层中第i个神经元oi的影响程度。

输入样本数据集包括多个样本数据;计算单个隐藏层神经元对输出层的总影响程度值包括:

将多个样本数据分别输入隐藏层神经元对输出层的总影响程度表达式中,得到相应多个总影响程度计算结果;

将多个总影响程度计算结果相加后除以输入样本数据集的样本容量,得到相应隐藏层神经元对输出层的总影响程度值。

实施例1-2

与实施例1和实施例2基于相同的构思,本实施例应用本发明方法进行神经网络优化具体如下。

参考图1所示,待优化的神经网络包括一个输入层(input)、三个隐藏层(hidden_a,hidden_b,hidden_c)和一个输出层(output),每一个空心圈代表一个神经元。层与层之间的有向连接线代表了数据传递的权重以及方向。此处假设神经网络训练后连接线上的权重值分别为:

ωia代表输入层各输入分别到隐藏层hidden_a中各神经元的权重值,其中ωij代表输入层输入ini到hidden_a中第j个神经元的权重,如ω12为in1到hidden_a中第2个神经元的权重。

ωab代表隐藏层hidden_a中各神经元到hidden_b中各神经元的权重值,矩阵中的元素解释参考ωia中对矩阵元素的解释。

参考图2所示,以输入层的输入in1、in2、in3为变量,计算得到神经网络中各隐藏层与输出层中各神经元的输入表达式如下:

隐藏层hidden_a中第i个神经元:神经元的输出:yai=f(xai),f(xai)即为神经元ai的传递函数,其中b0为常数,代表hidden_a层神经元的偏置输入;

隐藏层hidden_b中第i个神经元:神经元的输出:ybi=f(xbi),其中b1为常数,代表hidden_b层神经元的偏置输入;

隐藏层hidden_c中的第i个神经元:神经元的输出:yci=f(xci),其中b2为常数,代表hidden_c层神经元的偏置输入;

输出层output中的第i个神经元:神经元的输出:yoi=f(xoi),其中b3为常数,代表output层神经元的偏置输入。

求取hidden_a层中神经元a2对输出的总影响程度ca2的迭代步骤如下:

s1,求神经元a2对hidden_b层中各个神经元bi的影响程度ca2bi:

代表,f′(xa2)代表;

s2,求神经元a2对hidden_c层中各个神经元ci的影响程度

s3,求神经元a2对output层中各个神经元oi的影响程度

s4,将神经元a2对output层中各个神经元的影响程度表达式累加后除以输出层神经元数量,得到神经元a2对输出的总影响程度ca2:

最后,基于神经网络的输入样本数据集进行总影响程度值的计算,具体为:

将输入样本数据集中的样本数据分别代入ca2,得到各个输入样本下该神经元a2对输出的影响程度值,将这些值累加再除以样本容量,得到该神经元对输出的总影响程度值。

对各隐藏层的每个神经元均进行上述迭代以及样本数据输入计算,可得到隐藏层所有神经元对输出的总影响程度值,然后即可根据总影响程度值的排序,对总影响程度值较小的神经元的输入进行近似处理,可以有效地减小该神经网络的功耗开销。同时可对总影响程度值较大的神经元的输入进行加固处理,可以有效地提高神经网络的可靠性。

近似或加固处理时,被处理的对象“神经元的输入”为,如对于神经元a2来说,其输入即xa2。

在进行神经元筛选时,可通过预设排序中的前n位或后m位来确定总影响程度值较大或较小的神经元,也可通过预设总影响程度值的最高和最低门槛值来实现。

具体近似处理和加固处理可采用现有相应处理方法。

实施例2

本实施例为一种全连接神经网络优化装置,包括:

数据输入模块,用于获取已训练完成的待优化神经网络结构数据及其输入样本数据集;

输入表达式计算模块,用于以输入层的输入为变量,计算得到神经网络中各隐藏层与输出层中各神经元的输入表达式;

影响程度表达式计算模块,用于基于各神经元的输入表达式,计算得到各隐藏层中各神经元对输出层各神经元的影响程度表达式;

总影响程度表达式计算模块,用于基于各隐藏层神经元对输出层各神经元的影响程度表达式,计算得到各隐藏层神经元对输出层的总影响程度表达式;

总影响程度值计算模块,用于基于输入样本数据集中的样本数据,通过各隐藏层神经元对输出层的总影响程度表达式,计算得到各隐藏层神经元对输出层的总影响程度值;

以及近似处理模块,用于对总影响程度值较小的神经元的输入进行近似处理,即得到优化后的神经网络。

进一步的,本实施例装置还包括加固处理模块,用于对总影响程度值较大的神经元的输入进行加固处理,将近似处理以及加固处理后得到的神经网络作为优化后的最终神经网络。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

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