一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种神经网络的抽象精化方法、装置、终端及存储介质

2022-06-25 05:53:42 来源:中国专利 TAG:


1.本发明涉及神经网络技术领域,尤其涉及的是一种神经网络的抽象精化方法、装置、终端及存储介质。


背景技术:

2.近年来,深度神经网络在多方面取得了长足进步,并且在越来越多安全攸关场合得到应用。但是诸多工作表明了神经网络本身易受到输入干扰从而导致作出错误判断。因此,深度神经网络的鲁棒性亟需得到严格的验证。由于神经网络验证问题的复杂度与网络的规模存在正相关关系,所以大规模网络的验证问题极具挑战性。在神经网络的验证问题中通常会应用到神经网络的抽象精化方法。然而目前的神经网络的抽象精化方法,由于抽象过程存在较大误差,精化过程又难以有效恢复精度,导致最终的网络规模无法被有效地降低。
3.因此,现有技术还有待改进和发展。


技术实现要素:

4.本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种神经网络的抽象精化方法、装置、终端及存储介质,旨在解决现有技术中的神经网络的抽象精化方法,由于抽象过程存在较大误差,精化过程又难以有效恢复精度,导致最终的网络规模无法被有效地降低的问题。
5.本发明解决问题所采用的技术方案如下:
6.第一方面,本发明实施例提供一种神经网络的抽象精化方法,其中,所述方法包括:
7.获取原始神经网络,将所述原始神经网络转化为等价神经网络,其中,所述等价神经网络和所述原始神经网络具有相同的输入输出关系,且所述等价神经网络中包括若干类别的神经元;
8.根据若干所述类别对所述等价神经网络进行抽象操作,得到抽象神经网络,其中,所述抽象神经网络对应的神经元数量小于所述等价神经网络对应的神经元数量,且所述抽象神经网络中包含一个或者若干删除神经元,每一所述删除神经元的激活值为固定值;
9.对所述抽象神经网络进行性质验证,当基于所述性质验证获取到所述抽象神经网络对应的伪反例时,根据所述伪反例对所述抽象神经网络中的目标神经元进行精化操作,得到精化神经网络,其中,所述精化操作为所述抽象操作的逆操作,所述抽象神经网络中无任何一个神经元对应的抽象操作与所述目标神经元对应的抽象操作具有依赖关系。
10.在一种实施方式中,若干所述类别包括两类,所述将所述原始神经网络转化为等价神经网络,包括:
11.以反向逐层的顺序,将所述原始神经网络中除输出神经元之外的每一原始神经元分裂为第一神经元和第二神经元,得到所述等价神经网络,其中,所述第一神经元和所述第
二神经元分别对应不同的网络输出单调性影响。
12.在一种实施方式中,每一所述原始神经元对应的所述第一神经元和所述第二神经元的入边和偏置均为该原始神经元对应的入边和偏置;该第一神经元对应的出边为该原始神经元与相邻层中的第一神经元连接的正权重出边,以及与相邻层中的第二神经元连接的负权重出边;该第二神经元对应的出边为该原始神经元与相邻层中的第二神经元连接的正权重出边,以及与相邻层中的第一神经元连接的负权重出边。
13.在一种实施方式中,所述抽象操作包括合并操作和/或删除操作:
14.所述合并操作为:将所述等价神经网络每一层中每两个所述第一神经元合并为一个第一抽象神经元、每两个所述第二神经元合并为一个第二抽象神经元;
15.所述删除操作为:将基于入边权重差距大于预设值的两个所述第一神经元生成的所述第一抽象神经元和/或基于入边权重差距大于预设值的两个所述第二神经元生成的所述第二抽象神经元作为所述删除神经元;
16.若所述删除神经元为第一抽象神经元,将该删除神经元对应的激活值调节为该第一抽象神经元对应的激活范围的上限值;
17.若所述删除神经元为第二抽象神经元,将该删除神经元对应的激活值调节为该第二抽象神经元对应的激活范围的下限值。
18.在一种实施方式中,每一所述第一抽象神经元的入边取值由合并生成该第一抽象神经元的两个所述第一神经元的入边取值的最大值确定,该第一抽象神经元的出边取值由合并生成该第一抽象神经元的两个所述第一神经元分别对应的出边的和确定;每一所述第二抽象神经元的入边取值由合并生成该第二抽象神经元的两个所述第二神经元的入边取值的最小值确定,该第二抽象神经元的出边取值由合并生成该第二抽象神经元的两个所述第二神经元分别对应的出边的和确定。
19.在一种实施方式中,所述目标神经元的确定方法,包括:
20.获取所述抽象神经网络对应的抽象操作序列,其中,所述抽象操作序列包括若干操作元素,每一所述操作元素用于反映一次抽象操作,或合并操作,或删除操作;
21.确定若干所述操作元素之间的依赖关系,根据若干所述操作元素之间的依赖关系构建有向无环图,其中,所述有向无环图中每一节点为一个所述操作元素,每一有向边用于反映两个节点之间的依赖关系;
22.根据所述有向无环图确定所述目标神经元,其中,所述目标神经元对应的节点不位于任何有向边所指向的顶点。
23.在一种实施方式中,所述依赖关系基于所述抽象操作发生的先后顺序确定,所述依赖关系的定义为:
24.第k层的抽象操作与发生在该抽象操作之前的第j层的删除操作具有依赖关系(其中j》k);
25.第k层的合并操作与产生用于执行该合并操作的两个神经元的合并操作具有依赖关系;
26.第k层的合并操作与第k 1层的合并操作和第k-1层的合并操作具有依赖关系,其中,k为非负数。
27.第二方面,本发明实施例还提供一种神经网络的抽象精化装置,其中,所述装置包
括:
28.转化模块,用于获取原始神经网络,将所述原始神经网络转化为等价神经网络,其中,所述等价神经网络和所述原始神经网络具有相同的输入输出关系,且所述等价神经网络中包括若干类别的神经元;
29.抽象模块,用于根据若干所述类别对所述等价神经网络进行抽象操作,得到抽象神经网络,其中,所述抽象神经网络对应的神经元数量小于所述等价神经网络对应的神经元数量,且所述抽象神经网络中包含一个或者若干删除神经元,每一所述删除神经元的激活值为固定值;
30.精化模块,用于对所述抽象神经网络进行性质验证,当基于所述性质验证获取到所述抽象神经网络对应的伪反例时,根据所述伪反例对所述抽象神经网络中的目标神经元进行精化操作,得到精化神经网络,其中,所述精化操作为所述抽象操作的逆操作,所述抽象神经网络中无任何一个神经元对应的抽象操作与所述目标神经元对应的抽象操作具有依赖关系。
31.第三方面,本发明实施例还提供一种终端,其特征在于,所述终端包括有存储器和一个或者一个以上处理器;所述存储器存储有一个或者一个以上的程序;所述程序包含用于执行如上述任一所述的神经网络的抽象精化方法的指令;所述处理器用于执行所述程序。
32.第四方面,本发明实施例还提供一种计算机可读存储介质,其上存储有多条指令,其中,所述指令适用于由处理器加载并执行,以实现上述任一所述的神经网络的抽象精化方法的步骤。
33.本发明的有益效果:本发明实施例通过改变部分神经元的激活值来降低抽象操作引入的误差,并在精化操作中针对特定的神经元进行精化来有效恢复精度。解决了现有技术中的神经网络的抽象精化方法,由于抽象过程存在较大误差,精化过程又难以有效恢复精度,导致最终的网络规模无法被有效地降低的问题。
附图说明
34.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
35.图1是本发明实施例提供的神经网络的抽象精化方法的流程示意图。
36.图2是本发明实施例提供的预处理前的神经网络的示意图。
37.图3是本发明实施例提供的预处理后的神经网络的示意图。
38.图4是本发明实施例提供的合并操作的示意图。
39.图5是本发明实施例提供的删除操作的示意图。
40.图6是本发明实施例提供的基于形式化验证领域经典的反例指导的抽象精化的框架示意图。
41.图7是本发明实施例提供的经网络的抽象精化装置的内部模块示意图。
42.图8是本发明实施例提供的终端的原理框图。
具体实施方式
43.本发明公开了一种神经网络的抽象精化方法、装置、终端及存储介质,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
44.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
45.本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
46.近年来,深度神经网络在多方面取得了长足进步,并且在越来越多安全攸关场合得到应用。但是诸多工作表明了神经网络本身易受到输入干扰从而导致作出错误判断。因此,深度神经网络的鲁棒性亟需得到严格的验证。由于神经网络验证问题的复杂度与网络的规模存在正相关关系,所以大规模网络的验证问题极具挑战性。在神经网络的验证问题中通常会应用到神经网络的抽象精化方法。然而目前的神经网络的抽象精化方法,由于抽象过程存在较大误差,精化过程又难以有效恢复精度,导致最终的网络规模无法被有效地降低。
47.针对现有技术的上述缺陷,本发明提供一种神经网络的抽象精化方法,其中,所述方法包括:获取原始神经网络,将所述原始神经网络转化为等价神经网络,其中,所述等价神经网络和所述原始神经网络具有相同的输入输出关系,且所述等价神经网络中包括若干类别的神经元;根据若干所述类别对所述等价神经网络进行抽象操作,得到抽象神经网络,其中,所述抽象神经网络对应的神经元数量小于所述等价神经网络对应的神经元数量,且所述抽象神经网络中包含一个或者若干删除神经元,每一所述删除神经元的激活值为固定值;对所述抽象神经网络进行性质验证,当基于所述性质验证获取到所述抽象神经网络对应的伪反例时,根据所述伪反例对所述抽象神经网络中的目标神经元进行精化操作,得到精化神经网络,其中,所述精化操作为所述抽象操作的逆操作,所述抽象神经网络中无任何一个神经元对应的抽象操作与所述目标神经元对应的抽象操作具有依赖关系。本发明通过改变部分神经元的激活值来降低抽象操作引入的误差,并在精化操作中针对特定的神经元进行精化来有效恢复精度。解决了现有技术中的神经网络的抽象精化方法,由于抽象过程存在较大误差,精化过程又难以有效恢复精度,导致最终的网络规模无法被有效地降低的问题。
48.如图1所示,所述方法包括如下步骤:
49.步骤s100、获取原始神经网络,将所述原始神经网络转化为等价神经网络,其中,
所述等价神经网络和所述原始神经网络具有相同的输入输出关系,且所述等价神经网络中包括若干类别的神经元。
50.具体地,本实施例中的原始神经网络可以为需要进行网络验证的任何一个神经网络。由于原始神经网络无法直接进行抽象精化,因此本实施例在进行抽象精化之前需要先对原始神经网络进行预处理,即需要先将原始神经网络转化为等价神经网络。其中,等价神经网络和原始神经网络具有相同的输入输出关系,即针对原始神经网络n和等价神经网络n',对任意的输入x,n(x)=n'(x)恒成立。此外,转化过程中包含神经元的分类过程,因此转化后得到的等价神经网络中包含有已完成分类的多个类别的神经元。
51.在一种实现方式中,若干所述类别包括两类,所述步骤s100具体包括如下步骤:
52.步骤s101、将所述原始神经网络中除输出神经元之外的每一原始神经元分裂为第一神经元和第二神经元,得到所述等价神经网络,其中,所述第一神经元和所述第二神经元分别对应不同的网络输出单调性影响。
53.具体地,本实施例中以反向逐层的顺序,将原始神经网络中除了输出神经元之外的其他每个神经元分裂为两个不同类别的神经元,即每个神经元分裂为一个第一神经元和一个第二神经元,这两类神经元分别具有不同的网络输出单调性影响。其中,第一神经元对应的类别为inc,表示若增加该神经元的激活值,同时保持该层其他神经元值不变,则网络输出增大;第二神经元对应的类别为dec,表示若增加该神经元的激活值,同时保持该层其他神经元值不变,则网络输出减小。由于本实施例中只将每个原始神经元分裂为两个不同类别的神经元,因此网络规模相对较小,网络效率较高。
54.在一种实现方式中,每一所述原始神经元对应的所述第一神经元和所述第二神经元的入边和偏置均为该原始神经元对应的入边和偏置;该第一神经元对应的出边为该原始神经元与相邻层中的第一神经元连接的正权重出边,以及与相邻层中的第二神经元连接的负权重出边;该第二神经元对应的出边为该原始神经元与相邻层中的第二神经元连接的正权重出边,以及与相邻层中的第一神经元连接的负权重出边。
55.具体地,如图2、3所示,首先将唯一输出神经元y分类为第一神经元inc,之后依次对上一层逐层地处理。假设第i 1层的原始神经元已经被分类为第一神经元inc和dec,则可以对第i层的原始神经元v
i,j
进行分类:首先,将v
i,j
分裂为两个神经元,即第一神经元和第二神经元第二神经元和的入边相同,都为v
i,j
的入边的拷贝。不同之处在于,保留v
i,j
连向inc节点的权重为正的边和连向dec节点的权重为负的边;保留v
i,j
连向dec节点的权重为正的边和连向inc节点的权重为负的边。分裂后得到的该第一神经元和该第二神经元与原始神经元v
i,j
在网络中的作用完全等价。
56.举例说明,如图2所示,神经网络中最后两层神经元已被分类为inc/dec,当前转化并分类神经元v
1,1
,v
1,1
所连接的权重值和偏置值已在图中标出。转化的结果如图3所示,神经元v
1,1
被分裂为和分裂后的神经元拥有和v
1,1
相同的入边和偏置。此外,仅保留连接inc神经元的权重为2的出边,保留连接dec神经元的正权重出边和连接
inc神经元的负权重出边。
57.如图1所示,所述方法还包括如下步骤:
58.步骤s200、根据若干所述类别对所述等价神经网络进行抽象操作,得到抽象神经网络,其中,所述抽象神经网络对应的神经元数量小于所述等价神经网络对应的神经元数量,且所述抽象神经网络中包含一个或者若干删除神经元,每一所述删除神经元的激活值为固定值。
59.具体地,本实施例中的抽象操作实际是为了降低等价神经网络的网络规模,因此本实施例中的抽象神经网络的神经元数量会小于等价神经网络的神经元数量。此外,由于抽象操作会引入误差,因此为了降低误差,本实施例中会将抽象神经网络中的某些神经元作为删除神经元,其中,删除神经元可以为容易引起较大网络误差的神经元。由于删除神经元的激活值是固定值,当该固定值为该神经元的激活范围的上限值/下限值时,可以有效降低抽象操作引入的网络误差。
60.在一种实现方式中,所述抽象操作包括合并操作和/或删除操作:
61.所述合并操作为:将所述等价神经网络每一层中每两个所述第一神经元合并为一个第一抽象神经元、每两个所述第二神经元合并为一个第二抽象神经元;
62.所述删除操作为:将基于入边权重差距大于预设值的两个所述第一神经元生成的所述第一抽象神经元和/或基于入边权重差距大于预设值的两个所述第二神经元生成的所述第二抽象神经元作为所述删除神经元;
63.若所述删除神经元为第一抽象神经元,将该删除神经元对应的激活值调节为该第一抽象神经元对应的激活范围的上限值;
64.若所述删除神经元为第二抽象神经元,将该删除神经元对应的激活值调节为该第二抽象神经元对应的激活范围的下限值。
65.简单来说,抽象操作为了降低网络规模,需要对神经元进行合并,并且为了降低网络误差,需要将一部分神经元设定为删除神经元。因此本实施例中的抽象操作包括合并操作和/或删除操作。其中,合并操作可以将等价神经网络中位于同一层的两个相同类别的神经元合并为一个神经元。若两个合并的神经元为第一神经元,则合并后得到一个第一抽象神经元;若两个合并的神经元为第二神经元,则合并后得到一个第二抽象神经元。由于当两个合并的神经元的入边权重差距较大时,合并后得到的神经元容易引起较大的网络误差。因此若某一第一抽象神经元是基于入边权重差距大于预设值的两个第一神经元合并得到的,则该第一抽象神经元可以被设定为删除神经元,将其激活值调节为该第一抽象神经元对应的激活范围的上限值;若某一第二抽象神经元是基于入边权重差距大于预设值的两个第二神经元合并得到的,则该第二抽象神经元也可以被设定为删除神经元,将其激活值调节为该第二抽象神经元对应的激活范围的下限值。从而达到增加网络输出值,降低网络误差的目的。
66.举例说明,图5中神经网络n(左边)在v1处的激活值范围已知为[0,2]。神经网络(右边)由神经网络n经过一步删除得到。如图5所示,v1的偏置被替换为它的激活值上界2。此时对于输入x0=(1,1)
t
,,这表明了删除在一些情况下比合并带来的误差更小。
[0067]
在一种实现方式中,每一所述第一抽象神经元的入边取值由合并生成该第一抽象神经元的两个所述第一神经元的入边取值的最大值确定,该第一抽象神经元的出边取值由合并生成该第一抽象神经元的两个所述第一神经元分别对应的出边的和确定;每一所述第二抽象神经元的入边取值由合并生成该第二抽象神经元的两个所述第二神经元的入边取值的最小值确定,该第二抽象神经元的出边取值由合并生成该第二抽象神经元的两个所述第二神经元分别对应的出边的和确定。
[0068]
具体地,抽象操作除了降低网络规模,还需要保证性质在抽象神经网络上成立能推导出性质在原始神经网络n上成立,因此对于任意输入x,抽象神经网络的输出都不小于原始神经网络n的输出,即因此本实施例中抽象操作需要保证合并得到的第一抽象神经元的值增大,合并得到的第二抽象神经元的值减小,以此确保网络输出值的增大。为此,本实施例设定每一个第一抽象神经元的入边取值为生成该第一抽象神经元的两个第一神经元的入边取值的最大值,出边取值为两个第一神经元的出边取值的和;每一个第二抽象神经元的入边取值为生成该第二抽象神经元的两个第二神经元的入边取值的最小值,出边取值为两个第二神经元的出边取值的和。
[0069]
举例说明,图4中神经网络n(左边)的inc神经元v1和v2的权重和偏置已标出,现对它们应用合并操作得到图4中的抽象网络(右边)。抽象神经元的入边权重4由max{1,4}得到,偏置2等于max{1,2},分别是原两神经元对应权重和偏置的最大值。抽象神经元连接输出的出边权重为3,是原出边值1与2的和。取输入x0=(1,1)
t
,可得合并操作每次使网络的神经元个数减1,代价是为神经网络引入了误差。
[0070]
如图1所示,所述方法还包括:
[0071]
步骤s300、对所述抽象神经网络进行性质验证,当基于所述性质验证获取到所述抽象神经网络对应的伪反例时,根据所述伪反例对所述抽象神经网络中的目标神经元进行精化操作,得到精化神经网络,其中,所述精化操作为所述抽象操作的逆操作,所述抽象神经网络中无任何一个神经元对应的抽象操作与所述目标神经元对应的抽象操作具有依赖关系。
[0072]
具体地,如图6所示,获取到抽象神经网络以后,其将被后端的验证引擎验证。若性质成立,则返回“成立”的结果,流程结束。若不成立则可以得到反例,该反例是证明当前的抽象神经网络不满足性质的一个输入。此时需要判断该输入是否在原始神经网络上也不满足待验证的性质。若是,则判定待验证性质不成立,并返回该反例,流程结束。若该输入(反例)在原始神经网络上可以满足待验证的性质,表示该反例的出现是抽象误差导致的伪反例。此时,需要对抽象神经网络进行精化操作,即抽象操作的逆操作,以恢复网络精度。精化操作将受到假反例的指导,这样能保证假反例不会在后续得到的精化神经网络上再次出现。可以理解的是,精化神经网络也将重新被验证。此外,由于不同的精化顺序会产生不同的网络,而某些情况下会产生非过近似的网络,这会使得验证结果失去可靠性,因此为了有效恢复网络精度,本实施例需要选取抽象神经网络中特定的神经元进行精化操作,这类特定的神经元即为目标神经元,其需要满足以下条件:抽象神经网络中无任何一个神经元对应的抽象操作与目标神经元对应的抽象操作具有依赖关系。
[0073]
在一种实现方式中,所述目标神经元的确定方法,包括:
[0074]
步骤s301、获取所述抽象神经网络对应的抽象操作序列,其中,所述抽象操作序列包括若干操作元素,每一所述操作元素用于反映一次抽象操作,或合并操作,或删除操作;
[0075]
步骤s302、确定若干所述操作元素之间的依赖关系,根据若干所述操作元素之间的依赖关系构建有向无环图,其中,所述有向无环图中每一节点为一个所述操作元素,每一有向边用于反映两个节点之间的依赖关系;
[0076]
步骤s303、根据所述有向无环图确定所述目标神经元,其中,所述目标神经元对应的节点不位于任何有向边所指向的顶点。
[0077]
具体地,本实施例将基于所有抽象操作的数据生成抽象操作序列,该序列中每一操作元素表示一次抽象操作,或合并操作,或删除操作。并根据抽象操作序列构建一个有向无环图来反映各操作元素之间的依赖关系。例如,给定一个抽象操作序列τ=β1β2…
βm,根据抽象操作序列τ的依赖关系可以构造一个有向无环图,该有向无环图的顶点是τ中的操作元素,该有向无环图中从βi指向βj的有向边表示βi依赖于βj。本实施例从该有向无环图中找到不位于任何有向边所指向的顶点的节点,则该节点不被任何节点所依赖,可以将该节点对应的神经元作为用于进行精化操作的目标神经元。
[0078]
在一种实现方式中,所述依赖关系基于所述抽象操作发生的先后顺序确定,所述依赖关系的定义为:
[0079]
第k层的抽象操作与发生在该抽象操作之前的第j层的删除操作具有依赖关系(其中j》k);
[0080]
第k层的合并操作与产生用于执行该合并操作的两个神经元的合并操作具有依赖关系;
[0081]
第k层的合并操作与第k 1层的合并操作和第k-1层的合并操作具有依赖关系,其中,k为非负数。
[0082]
具体地,本实施例中定义了各操作之间的依赖关系,主要为以下几种:
[0083]
1.第k层的抽象操作与发生在该抽象操作之前的第j层的删除操作具有依赖关系(其中j》k)。
[0084]
例如,当j《i且kj》ki时,应用在ki层的抽象操作βi依赖于应用在kj层的删除操作βj。可以理解的是,当ki《kj时,只要第kj层删除操作发生在ki层的抽象操作前,此时kj层节点的激活值上下界没有因前层的抽象操作而改变。
[0085]
2.第k层的合并操作与产生用于执行该合并操作的两个神经元的合并操作具有依赖关系。
[0086]
例如,假设合并操作βi对第k层神经元v和v'进行合并,则其依赖于产生v和(或)v'的合并操作。可以理解的是,应用于v和v'的合并操作需要知道两个神经元信息,所以依赖于产生这两个神经元的合并操作。
[0087]
3.第k层的合并操作与第k 1层的合并操作和第k-1层的合并操作具有依赖关系,其中,k为非负数。
[0088]
例如,假设合并操作βi对第k层神经元v和v'进行合并,则其依赖于当j《i时,发生在k-1和k 1层的合并操作βj。可以理解的是,应用于v和v'的合并操作需要知道两个神经元信息,所以也会依赖于影响这两个神经元权重值的相邻层的合并操作。
[0089]
基于上述实施例,本发明还提供了一种神经网络的抽象精化装置,如图7所示,所
述装置包括:
[0090]
转化模块01,用于获取原始神经网络,将所述原始神经网络转化为等价神经网络,其中,所述等价神经网络和所述原始神经网络具有相同的输入输出关系,且所述等价神经网络中包括若干类别的神经元;
[0091]
抽象模块02,用于根据若干所述类别对所述等价神经网络进行抽象操作,得到抽象神经网络,其中,所述抽象神经网络对应的神经元数量小于所述等价神经网络对应的神经元数量,且所述抽象神经网络中包含一个或者若干删除神经元,每一所述删除神经元的激活值为固定值;
[0092]
精化模块03,用于对所述抽象神经网络进行性质验证,当基于所述性质验证获取到所述抽象神经网络对应的伪反例时,根据所述伪反例对所述抽象神经网络中的目标神经元进行精化操作,得到精化神经网络,其中,所述精化操作为所述抽象操作的逆操作,所述抽象神经网络中无任何一个神经元对应的抽象操作与所述目标神经元对应的抽象操作具有依赖关系。
[0093]
基于上述实施例,本发明还提供了一种终端,其原理框图可以如图8所示。该终端包括通过系统总线连接的处理器、存储器、网络接口、显示屏。其中,该终端的处理器用于提供计算和控制能力。该终端的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该终端的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现神经网络的抽象精化方法。该终端的显示屏可以是液晶显示屏或者电子墨水显示屏。
[0094]
本领域技术人员可以理解,图8中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0095]
在一种实现方式中,所述终端的存储器中存储有一个或者一个以上的程序,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行神经网络的抽象精化方法的指令。
[0096]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0097]
综上所述,本发明公开了一种神经网络的抽象精化方法、装置、终端及存储介质,所述方法包括:获取原始神经网络,将所述原始神经网络转化为等价神经网络,其中,所述等价神经网络和所述原始神经网络具有相同的输入输出关系,且所述等价神经网络中包括
若干类别的神经元;根据若干所述类别对所述等价神经网络进行抽象操作,得到抽象神经网络,其中,所述抽象神经网络对应的神经元数量小于所述等价神经网络对应的神经元数量,且所述抽象神经网络中包含一个或者若干删除神经元,每一所述删除神经元的激活值为固定值;对所述抽象神经网络进行性质验证,当基于所述性质验证获取到所述抽象神经网络对应的伪反例时,根据所述伪反例对所述抽象神经网络中的目标神经元进行精化操作,得到精化神经网络,其中,所述精化操作为所述抽象操作的逆操作,所述抽象神经网络中无任何一个神经元对应的抽象操作与所述目标神经元对应的抽象操作具有依赖关系。本发明通过改变部分神经元的激活值来降低抽象操作引入的误差,并在精化操作中针对特定的神经元进行精化来有效恢复精度。解决了现有技术中的神经网络的抽象精化方法,由于抽象过程存在较大误差,精化过程又难以有效恢复精度,导致最终的网络规模无法被有效地降低的问题。
[0098]
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献