用于优化人工神经网络的执行时间的方法与流程

文档序号:32383217发布日期:2022-11-30 03:37阅读:123来源:国知局
用于优化人工神经网络的执行时间的方法与流程
用于优化人工神经网络的执行时间的方法
1.相关申请的交叉引用
2.本技术要求于2021年5月28日提交的法国申请no.2105613的优先权,该法国申请通过引入被整体并入本文中。
技术领域
3.本公开总体涉及人工神经网络,并且在特定实施例中,涉及对人工神经网络的执行时间的优化。


背景技术:

4.人工神经网络用在工业、电信和娱乐中,例如用在消费电子设备中,以识别图像、声音、手势和对工业过程的控制。
5.人工神经网络通常包括一系列的神经元层。该一系列层包括被配置为接收数据集的输入层、至少一个隐藏层和被配置为传递最终结果的输出层。每个层包括至少一个神经元。层的每个人工神经元接收至少一个输入并产生单个输出,该输出可以被发送到下一层的至少一个神经元。因此,从神经网络的前一层接收每个隐藏层的输入。
6.每层包括若干神经元,这些神经元可以在神经网络的设计阶段被确定,这取决于特定的应用。神经元的输出取决于在设计阶段所选择的神经元的类型。例如,在感知器中,将权重应用于所有先前层的输出以获得加权输入。然后,通过对每个神经元的加权输入求和来计算加权和。可以将偏项添加到加权和。然后使结果通过(通常是非线性的)激活函数以产生神经元的输出。
7.特别地,在大多数常见类型的神经元(诸如卷积神经元)中,计算加权输入的和。
8.通过神经网络的训练阶段来确定权重和偏差的值。在训练阶段,使用已知的外部输入数据,期望从该外部输入数据获得对应的预期外部输出数据。
9.从已知的外部输入数据开始,使用初始权重和初始偏差来计算初始输出数据。然后修改初始权重和初始偏差以使由预期外部输出数据与初始输出数据之间的差异给出的成本函数最小化。
10.人工神经网络通常包括非常大数目的神经元。因此,人工神经网络的执行时间很高。此外,人工神经网络的执行需要高计算资源,该高计算资源特别适于通过使用并行计算来执行神经网络。
11.假设人工神经网络由电子设备执行,例如,在包括具有有限计算资源的微控制器的嵌入式系统中。在这种情况下,执行时间长并且不适合于特定应用。实际上,嵌入式系统循序地执行神经网络。
12.用于减少人工神经网络的执行时间的解决方案是已知的。
13.这些解决方案中的大多数涉及剪枝算法。在剪枝算法中,已经训练的人工神经网络的神经元根据它们的重要性被排序。从人工神经网络中去除较不重要的神经元以减少运行网络所需的计算资源。然后,人工神经网络通常在剪枝算法结束时被再训练。
14.然而,再训练神经网络在计算资源方面是冗长且昂贵的。因此,期望仅训练神经网络一次。而且,可能无法根据应用再训练神经网络。此外,剪枝之后获得的神经网络对于由集成电路对其的执行而言也可能太复杂。
15.备选地,可以使用较不复杂的人工神经网络,诸如具有较少的神经元和隐藏层。然而,这也限制了神经网络解决复杂问题的能力。
16.因此,问题在于提供一种能够克服现有技术缺点的用于减少人工神经网络的执行时间的方法。


技术实现要素:

17.根据本公开,提出了一种用于简化经训练的人工神经网络的方法,该方法包括获得具有神经元层的经训练的神经网络,每个层被配置为接收至少一个输入,每个输入通过将权重(称为经训练的权重)应用于输入的连接而被连接到层的至少一个神经元,并且针对经训练的神经网络的每个层的每个输入,形成被连接到层的所述输入的层的连接的经训练的权重的簇,计算针对每个簇的表示性权重,该表示性权重表示簇的权重。在经训练的神经网络中,利用该簇的表示性权重替换每个簇的经训练的权重,以获得简化的神经网络。
18.还提出了一种用于执行简化的神经网络的方法,该简化的神经网络通过以上用于简化经训练的神经网络的方法来获得,该方法包括:针对简化的神经网络的每个层,针对层的每个输入,通过将输入乘以被连接到该输入的不同连接的表示性权重来计算加权输入;以及针对层的每个神经元:计算加权输入与被连接到该神经元的偏差的求和以获得累加值,通过在神经元的激活函数中传递累加值来计算神经元的输出。
19.因此,用于简化经训练的人工神经网络的方法在人工神经网络的学习过程之后实现。人工神经网络的学习过程允许定义神经网络的不同层的经训练的权重。
20.该方法允许修改经训练的人工神经网络以获得简化的神经网络。
21.在简化的神经网络中,经训练的神经网络的层的经训练的权重由表示性权重替换。优选地,选择表示性权重以使人工神经网络的成本函数的增加最小化。
22.特别地,被连接到相同输入的连接的权重中的一些权重可以具有非常相似或甚至相等的值。
23.经训练的权重的替换可以影响人工神经网络的成本函数。更具体地,替换经训练的权重中的一些可能比替换其它经训练的权重对成本函数具有更大的影响。为此,优选地,根据考虑了权重相对于成本函数的梯度的目标函数来形成簇,以选择使其增加最小化的表示性权重。
24.然后,将经训练的权重替换为它们相关联的表示性权重,这允许简化人工神经网络。
25.改进神经网络的执行以开发对人工神经网络的简化。特别地,乘积不是逐个神经元地计算的,而是逐个输入地计算的,以减少要计算的乘积的数目,并且因此减少神经网络的执行时间。
26.这样的方法不需要对神经网络的再训练,因为从经训练的权重直接获得表示性权重。
27.该方法允许减少用于执行神经网络的计算资源。因此,该方法可由具有有限计算
资源的嵌入式系统使用而不损害其准确性。该方法还可以与诸如剪枝的其它减化技术同时使用。
28.当执行简化的神经网络时,被连接到神经元的加权输入之和可以在计算了所有加权输入之后被执行。
29.然而,加权输入的求和可以通过在该神经元的加权输入的每次计算之后累加加权输入来计算。在这种情况下,用于执行简化的神经网络的方法包括:针对简化的神经网络的每个层,针对该层的每个神经元:将累加值初始化为被连接到该神经元的偏差,针对层的每个输入以及针对被关联到该输入的每个表示性权重:通过乘以针对当前输入的表示性权重来计算加权输入,使用当前表示性权重将加权输入加到所有神经元的累加值,针对该层的每个神经元:通过在神经元的激活函数中传递累加值来计算神经元的输出。
30.根据特别有利的实现,该方法包括:针对经训练的神经网络的每个层的每个输入,形成被连接到该层的所述输入的该层的连接的经训练的权重的簇的多个不同集合;针对每个集合的每个簇计算表示性权重,该表示性权重表示簇的权重;当利用表示性权重替换经训练的权重时,选择允许获得最小成本函数的簇的集合;在经训练的神经网络中,利用该簇的表示性权重替换所选择的集合的每个簇的经训练的权重,以获得简化的神经网络。这允许获得简化的神经网络的精度最接近初始经训练的神经网络的精度的表示性权重。
31.有利地,允许获得最小成本函数的簇的子集通过使用公式来选择,其中si是被关联到神经元的输入i的簇的集合,s
i,k
是集合si的簇,k是每个集合si的簇s
i,k
的的数目,针对j∈{1,

,l}的wi,j是被应用到输入i的层的经训练的权重,是针对簇s
i,k
的经训练的权重的表示性权重,并且针对j∈{1,

,l}的是成本函数相对于当前权重wi,j的偏梯度。
32.例如,可以通过修改已知的聚类算法(例如,k均值算法,通过使用上述成本函数)来计算每个簇集合。
33.优选地,简化的神经网络由嵌入式系统执行。然而,也可以由另一计算系统执行神经网络。
34.根据另一方面,提出了一种包括指令的计算机程序产品,当该程序由计算机执行时,该指令使得计算机获得具有神经元层的经训练的人工神经网络,每个层被配置为接收至少一个输入,每个输入通过将权重(命名为经训练的权重)应用于该输入的连接而被连接到该层的至少一个神经元,并且针对神经网络的每个层的每个输入,使计算机:形成被连接到该层的所述输入的该层的连接的经训练的权重的簇,针对每个簇计算表示性权重,该表示性权重表示该簇的权重,在经训练的神经网络中利用该簇的表示性权重替换每个簇的经训练的权重,以获得简化的神经网络。
35.根据另一方面,一种用于执行前述简化的人工神经网络的计算机程序产品,该计算机程序包括指令,当该程序由计算机执行时,该指令使计算机:针对简化的神经网络的每个层:针对该层的每个输入,通过将该输入乘以被连接到该输入的不同连接的表示性权重来计算加权输入,然后并且使计算机:针对该层的每个神经元:计算加权输入与被连接到该神经元的偏差的求和以获得累加值,通过在神经元的激活函数中传递累加值来计算神经元
的输出。
附图说明
36.为了更完整地理解本公开及其优点,现在结合附图参考以下描述,其中:
37.图1是实施例人工神经网络的示意图;
38.图2是经训练的人工神经网络的实施例隐藏层的示意图;
39.图3是用于简化经训练的神经网络的实施例方法的流程图;
40.图4是简化的、经训练的人工神经网络的实施例的示意图;
41.图5是用于执行简化的神经网络的实施例方法的流程图;以及
42.图6是实施例系统的示意图。
具体实施方式
43.图1示出了人工神经网络nn。神经网络nn包括神经元nr的一系列层ly。一系列层ly包括被配置为接收数据集的输入层ily、至少一个隐藏层hly、以及被配置为传递最终结果的输出层oly。每个层ly包括至少一个神经元nr。每个层ly被配置为接收至少一个输入。隐藏层hly被配置为接收前一层的(多个)输出作为(多个)输入。层的每个输入通过对输入权重应用的连接cn被连接到该层的至少一个神经元。通过神经网络的训练阶段来确定权重的值。
44.图2示出了经训练的人工神经网络的给定隐藏层hly的示例。在该示例中,给定的隐藏层hly具有数量等于l的神经元。每个神经元具有偏差b1…bl
。每个神经元具有m个输入数据xi(x1,...,xm)。针对每个输入数据xi,神经网络被训练以使用l个经训练的权重wi,1,

,wi,l,每个神经元n1,

,nl对应一个经训练的权重。通过神经网络的训练阶段来确定权重wi,1,

,wi,l。神经元被配置为分别传递输出,wi,l。神经元被配置为分别传递输出
45.经训练的权重wi,1,

,wi,l通常彼此不同。然而,被连接到相同输入的连接的权重中的一些可以具有非常相似或甚至相等的值。
46.图3示出了用于简化经训练的神经网络的方法。该方法包括由具有例如高计算资源的计算系统实现的步骤20至22。具体地,该计算系统包括存储器,该存储器存储具有指令的计算机程序,当该程序由计算机执行时,该指令使该计算机实现用于简化经训练的神经网络的方法。步骤20到22允许从经训练的神经网络获得简化的神经网络。
47.图4示出了这种简化的神经网络的给定隐藏层hly,其可以从经训练的神经网络的图2所示的层获得。
48.返回参考图3,在步骤20,计算系统获得经训练的神经网络。对神经网络的每一层的每个输入执行步骤21到22。特别地,在步骤21,对被连接到输入xi的连接的经训练的权重wi,1,

,wi,l执行聚类算法。经训练的权重被分成k个簇si,1,

,si,k的集合si,其中k小于l。每个簇si,1,

,si,k包括至少一个经训练的权重wi,1,

,wi,l,并且由表示性权重表示。在聚类算法中使用的成本函数,例如经修改的k均值算法,可以是:
49.其中s
i,k
是集合si的簇,k是集合si的簇s
i,k
的数目,针对j∈{1,

,l}的wi,j是该层的被应用于输入i的经训练的权重,集合的簇包括总计l个经训练的权重(w
i,1
,w
i,2
,

,w
i,l
),是针对簇s
i,k
的经训练的权重的表示性权重,并且针对j∈{1,

,l}的是成本函数相对于当前权重wi,j的偏梯度。
50.重要的是使经修改的神经网络的输出数据与将使用经训练的神经网络而获得的输出数据和将使用表示性权重而获得的外部输出数据之间的差异最小化,以维持可接受的成本函数。这通过在成本函数中包括权重的梯度来实现。实际上,通过乘以每个经训练的权重与其表示性权重的平方差的平方梯度,即如果w
i,j
利用来替换,则聚类算法获得对所获得的成本函数的增加的估计。
51.一旦使成本函数最小化的最佳簇集合被选择,该方法包括步骤22。在步骤22,将层的被应用于给定输入的经训练的权重替换为与该集合的簇相关联的表示性权重。更具体地,层的组成簇的经训练的权重利用该簇的表示性权重来替换。因此,构成相同簇的经训练的权重利用神经网络中的相同表示性权重来替换。
52.如上所述,对每个层的每个输入执行步骤21到22。当处理了所有的神经网络层时,获得简化的神经网络。在该简化的神经网络中,被连接到层的相同输入的连接的类似的经训练的权重利用一表示性权重来替换。因此,该方法减少了经训练的神经网络的不同权重的数量。
53.图5示出了用于执行通过上述方法所获得的简化的神经网络的方法。该方法包括用于在诸如嵌入式系统的最终计算系统上执行简化的神经网络的步骤23至27。嵌入式系统可以包括微控制器mcu以执行简化的神经网络,如图6所示。微控制器可以是任何类型的处理器。特别地,微控制器mcu包括存储器mem,该存储器mem存储具有指令的计算机程序prg,当该程序由计算机执行时,该指令使计算机实现用于执行简化的神经网络的方法。存储器可以是非瞬态存储器存储装置。
54.在步骤23,将简化的神经网络提供给最终计算系统。最终计算系统可以执行神经网络。对神经网络的每个层的执行遵循特定的顺序。对简化的神经网络的每个层执行步骤24和27。对该层的每个不同的加权输入执行步骤25和26,逐个输入。
55.对于给定层的执行,最终计算系统通过在步骤24将层的每个神经元的累加值a1…al
初始化为神经元的偏差b1…bl
来开始。
56.在步骤25,通过将输入乘以被连接到该输入的连接的表示性权重来计算针对当前输入xi的当前加权输入
57.例如,针对给定的输入xi,该给定的输入xi通过与权重相关联的连接被连接到层的神经元。计算系统在该步骤中一个接一个地计算加权输入
58.然后,在步骤26,计算系统将当前加权输入添加到接到该加权输入的神经元n1的累加值a
l

59.例如,神经元nx、ny和nz可以共享相同的加权和以这种方式,值仅被计算一次,并且被添加到三个累加值a
x
、ay和az。
60.然后,在步骤27,在层的每个神经元上通过累加和a1至a
l
计算激活函数以获得输出至
61.例如,为了执行图4中的神经元n1,嵌入式系统通过累加值a1计算神经元的激活函数,以获得神经元n1的输出
62.以相同的方式,为了执行神经元n2,嵌入式系统通过累加值a2计算神经元的激活函数,以获得神经元n2的输出
63.为了执行神经元nl,嵌入式系统通过累加值a
l
计算神经元的激活函数,以获得神经元nl的输出
64.该方法允许改进对神经网络的执行。特别地,乘积不是逐个神经元地计算的,而是逐个输入地计算的,以便减少要计算的乘积的数量,因此减少神经网络的执行时间。
65.这种方法不需要再训练神经网络,因为从经训练的权重直接获得表示性权重。
66.该方法允许减少用于执行神经网络的计算资源。因此,该方法可以由具有有限计算资源的嵌入式系统使用,而不损害准确性。
67.尽管已经详细描述了本说明书,但是应当理解,在不脱离由所附权利要求限定的本公开的精神和范围的情况下,可以进行各种改变、替换和变更。在各个附图中,相同的元件用相同的附图标记表示。此外,本公开的范围不旨在限于本文中所描述的特定实施例,因为本领域的普通技术人员根据本公开将容易理解,当前存在的或以后将开发的过程、机器、制造、物质组成、手段、方法或步骤可以执行与本文中所描述的对应实施例基本相同的功能或实现与本文中所描述的对应实施例基本相同的结果。因此,所附权利要求书旨在将此类过程、机器、制造、物质组成、手段、方法或步骤包括在其范围内。
68.因此,说明书和附图仅被认为是由所附权利要求限定的本公开的说明,并且被预期覆盖了落入本公开的范围内的任何和所有修改、变化、组合或等效。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1