用于训练神经网络的系统和方法与流程

阅读: 评论:0


用于训练神经网络的系统和方法


背景技术:



1.本公开涉及一种计算。更具体地,本公开涉及用于训练神经网络的技术。
2.人工神经网络(以下简称神经网络)在人工智能应用和现代计算中已变得越来越重要。图1示出了一个示例神经网络。神经网络100接收与要识别的特征对应的输入值。输入值被乘以权重(由边101表示),并在节点102中结合(例如相加)。激活函数应用于节点102中的结果以生成输出值。值在多个节点和节点层中组合以生成与结果对应的网络输出值。
3.此类系统通过考虑示例“学习”执行任务,通常不使用任务特别化的规则进行编程。最初,权重可能未经训练。在训练阶段,网络处理相应已知结果的输入值,并确定网络输出值和已知值之间的差异(或误差)。可以使用称为后向传播(backpropagation)的过程根据误差调整权重,其中计算在反向上(例如,从输出到输入)流经神经网络。训练可能涉及在许多输入样本和相应的已知网络输出值之间连续调整权重。这通常称为训练阶段。一旦经过训练,系统就可以接收输入并产生有意义的结果(例如,分类或识别)。这通常被称为推理阶段。
4.训练非常大的神经网络可能需要进行大量的计算。此外,存储器使用通常是神经网络的一个问题。可能需要具有较大深度的神经网络来存储整个网络深度的激活。当网络使用流水线时,这个问题会更加复杂,这可能会导致存储器大小显著增加。例如,在某些神经网络中,管道可能会导致存储器大小呈平方增长。
5.本公开涉及减少存储器使用并且提供其他益处的神经网络训练技术。
附图说明
6.本公开的各种实施例通过示例加以说明,而不限于所附图中的图。
7.图1示出了一个神经网络。
8.图2示出了神经网络的训练。
9.图3示出了根据一个实施例的示例残差神经网络的训练。
10.图4示出了根据另一实施例的分割神经网络。
11.图5示出了根据一个实施例的分割广义n层神经网络。
12.图6示出了根据一个实施例的训练神经网络的方法。
13.图7示出了根据另一个实施例的神经网络训练。
14.图8示出了根据另一实施例的示例方法。
15.图9描绘了根据特定实施例的示例计算机系统的简化框图。
16.图10示出了根据一些实施例的神经网络处理系统。
具体实施方式
17.在下面的描述中,为了便于解释,列出了许多示例和具体细节,以提供对本公开的透彻理解。此类示例和细节不得解释为不适当地限制权利要求的要素或作为整体的权利要求主题。对于本领域技术人员来说,基于不同权利要求的语言,显而易见的是,所要求保护
的主题可以单独或组合地包括这些示例中的一些或所有特征,并且可以进一步包括本文描述的特征和技术的修改和等效项。
18.图2示出了神经网络的训练。在本例中,管道中配置了四(4)层残差神经网络201-204。残差神经网络(nn)是一类利用跳跃连接或快捷方式跳过某些层的神经网络。在此示例中,使用加法器211-214将每个层的输出添加到层的输入。例如,可以使用一个或多个层跳跃来实现各种残差nn模型。在某些示例中,残差nn可以使用附加的权重矩阵来学习跳跃权重。也可以使用具有多个并行跳跃的模型。在层上进行跳跃的一个动机是避免梯度消失的问题,即,跨神经网络层的梯度可能随着深度的增加而减小。残差nn通过重用前一层的激活来避免这种情况,直到相邻层学习其权重。
19.输入数据在管道的输入in处被接收,并由每个层相继处理。
20.输入数据可被网络连续接收,以产生输出结果的流。在本例中,为了便于说明,输出了输入数据序列dl、d2、d3和d4。训练一些神经网络的一个挑战是,具有大量层的网络需要较多的存储器。图2示出了流经网络的数据。网络输出out的输出结果可与220的已知结果进行比较以产生误差。误差被耦合到输出,并且通过网络在相反方向上传播(即后向传播),以产生新的权重值。例如,在每层处,可以确定权重差异。然而,如图2所示,可能需要每个层存储激活,以便能够执行反向传播。激活函数是确定神经网络输出的数学公式。激活是指权重的值,其例如在特定时间产生特定输出。数据可能会不断地流经网络,并且权重可能会发生变化,因此可以存储特定时间的激活。在本例中,可能需要四(4)层网络来存储4个激活。例如,在时间t1,针对对应输入数据dl的来自第4层的输出结果(例如,r4(d1))可在网络输出处被生成。然而,如图所示,中间输出处的其他结果可能流经系统(例如,第3层输出处的针对d2的r3(d2)结果,第2层输出处的针对d3的r2(d3)结果,以及第1层输出处的针对d4的r1(d4)结果)。如果对每个输出结果进行训练,则可存储用于在每个层生成每个输出的权重。例如,为了调整r4(d1)的权重,层1必须记住处理dl时使用的激活。因此,与dl、d2、d3和d4的结果相对应的权重可能需要第1层中的四(4)个激活的存储。对于多层神经网络,可能需要较大的存储器。此外,权重的收敛时间可能很长。
21.本公开的特征和优点包括将误差耦合到神经网络的中间输出。图3示出了根据实施例训练包括四(4)层201-204的示例残差神经网络。这里,网络在层二(2)202和层三(3)203之间被分成两个部分,这两个部分都执行后向传播(例如,误差在相反方向上流经网络)。误差被耦合到整个网络的输出(例如,在加法器214处)和中间输出(例如,在加法器212处)。有利的是,由于分段网络的每个部分具有较少的层,因此用于训练目的而存储的激活较少。在本例中,网络被分割为两个相等的部分。因此,存储的激活的数目减少了两倍。在其他实施例中,例如,可以基于网络拓扑和性能考虑进行其他分段。
22.图4示出了根据另一实施例的分割神经网络。在这个例子中,网络被进一步分割为各层。由此,存储器需求进一步减少到仅一个激活。
23.本公开的一些实施例可以将网络输出处计算出的误差应用于在网络中层的中间输出。已经认识到,在一些网络拓扑中,跨不同层的权重可能会在某些层收敛到相似的值。通过将输出误差直接耦合到输出以及一个或多个中间输出,训练可被加速。例如,这种技术可以有利地导致减少的存储器需求和较快的收敛。
24.图5示出了根据一个实施例的分割广义n层神经网络。例如,500a示出了被配置为
在前向上处理数据的网络,并且500b示出了被配置为在反向上处理错误以更新网络的每一层中的权重的网络。在该示例中,输入数据可以在第一层501的输入in上被接收,并沿着n层管道在前向上被处理,以便在最后一层503的输出out上产生输出结果。网络可以包括多个中间输出,例如第i层502上的中间输出。每一层可包括权重,权重基于误差被更新,误差使用输出结果和如上所述的已知结果而被计算。在该示例中,误差被直接耦合到输出,并且被直接耦合到一个或多个中间输出。该网络可以被分割成如图5中的括号所示的多个部分510(a)-510(m),其示出了直接耦合到最后一层(例如,第i层)中间输出的误差。将会理解例如,第i层之后的多个附加部分可以接收每个部分的最后一层的中间输出上的误差。使用上述技术,可以采用多种训练方案。例如,在各种实施例中,这些部分可以包括相等数目的层。在一些实施例中,网络可能被分割成等于二(2)的幂的多个部分。例如,具有40层的网络可以被划分为8个部分、每个部分5层,4个部分、每个部分10层,或者2个部分、每个部分20层。
25.图6示出了根据实施例的训练神经网络的方法。如上文详述,本公开的实施例可以基于输出结果来确定残差前馈网络的输出处的误差,输出结果响应于输入数据和残差前馈神经网络的权重而生成。误差可以从残差前馈神经网络的输出和一个或多个中间输出通过残差前馈神经网络在相反方向上被传播(例如,独立通过每个部分),以调整残差前馈神经网络的权重。例如,在601处,输入数据在神经网络中被处理以产生输出结果。针对特定数据输入的输出结果可与针对该数据输入的已知结果进行比较。由此,在602处,在神经网络的输出处确定误差。在603处,误差在神经网络的输出和第一中间输出(例如,网络被分割之处)之间传播。在604处,误差被耦合到一个或多个中间输出,并且在一个或多个中间输出之间以相反方向传播。网络每个子部分的层中权重在605处更新。
26.图7示出了根据另一个实施例的神经网络训练。在一些实施例中,可以在输入数据和输出结果的一个或多个周期内调整每个部分中的每个层中的权重,并且部分的数目可被减少二(2)倍。部分中的权重调整和减少可被重复,直到误差通过整个网络被后向传播(例如,部分的数目等于一(1))。例如,图7中的700a显示了n层残差神经网络,其被配置成管道,以接收网络输入in上的数据输入,并在网络输出out上产生输出结果。700b显示了将层分割为多个部分710(1)-710(m)。例如,每个部分可能包括一个或多个层。在训练期间,错误被耦合到每个部分的最后一层。在此示例中,部分基于两(2)的幂——例如,网络被二分、四分、八分,等等。如果m个部分被标记为i=l-m,则误差可被耦合到针对m个部分的每个部分的最后一层的中间输出,其中m=2、4、8、16、32等。在这个例子中,针对每个部分的层中的权重基于对每个中间输出的误差输入而被独立地训练。在700c,部分的数目减少二(2)倍。由此,在700c,网络中有m/2个部分。每个部分被再次训练,并且每个层中的权重被调整。当部分的数目减少二(2)倍时,每个部分中的层的数目增加二(2)倍。重复上述过程,直到有两个部分,如700d所示(例如,误差被应用于输出和网络中的中点处的中间输出),然后只有一个部分,如700e所示(例如,全网)。应用上述训练技术例如可以减少存储器使用并且提高收敛性和准确性。
27.图8示出了根据另一实施例的示例方法。在该示例中,神经网络在801处被分割成多个部分。在802处,网络输出处的误差被耦合到多个部分中每个部分的最后一层。在803处,基于误差,在针对每个部分的每个层中更新权重。在804处,系统确定是否需要进一步减少部分,并且在805可以减少部分的数目。可以重复步骤802和803,直到剩下一个部分(例
如,整个网络)。误差可以在806处通过整个网络反向传播,并且权重被更新。
28.上述技术可在配置为用于处理神经网络的各种计算机系统中实现。图9描绘了示例计算机系统900的简化框图,其可用于实现上述公开中描述的技术。如图9所示,计算机系统900包括一个或多个处理器902,其通过总线子系统904与多个外围设备通信。这些外围设备可以包括存储子系统906(例如,包括存储器子系统908和文件存储子系统910)和网络接口子系统916。一些计算机系统可以还包括用户接口输入设备912和/或用户接口输出设备914。
29.总线子系统904可以一种机制,用于让计算机系统900的各个组件和子系统按预期相互通信。虽然总线子系统904示意图显示为单个总线,但总线子系统的替代实施例可以使用多个总线。
30.网络接口子系统916可以用作用于计算机系统900和其他计算机系统或网络之间传送数据的接口。网络接口子系统916的实施例可以包括例如以太网、wi-fi和/或蜂窝适配器、调制解调器(电话、卫星、电缆、isdn等)、数字用户线(dsl)单元和/或其他。
31.存储子系统906包括存储器子系统908和文件/磁盘存储子系统910。子系统908和910以及本文描述的其他存储器是非瞬态计算机可读存储介质的示例,该可读存储介质可以存储提供本公开实施例功能的可执行程序代码和/或数据。
32.存储器子系统908包括多个存储器,包括用于在程序执行期间存储指令和数据的主随机存取存储器(ram)918和存储固定指令的只读存储器(rom)920。文件存储子系统910可以为程序和数据文件提供持久(例如,非易失性)存储,并且可以包括磁性或固态硬盘驱动器、光盘驱动器以及相关的可移动介质(例如,cd-rom、dvd、蓝光等)、基于可移动闪存的驱动器或卡,和/或本领域已知的其他类型的存储介质。
33.应该理解的是,计算机系统900是示例性的,并且具有比系统900更多或更少组件的许多其他配置是可能的。
34.图10示出了根据一些实施例的神经网络处理系统。在各种实施例中,根据本公开的神经网络可以在包括一个或多个神经网络处理器的硬件环境中实施和训练。神经网络处理器可以指各种图形处理单元(gpu)(由nvidia生产的用于处理神经网络的gpu)、现场可编程门阵列(fpga)(例如,由生产的用于处理神经网络的fpga),或各种专用集成电路(asic)或神经网络处理器,包括针对神经网络计算优化的硬件架构。在该示例环境中,一个或多个服务器1002,其可以包括以上图9所示的架构,可以通过通信网络1001(例如交换机、路由器等)耦合到多个控制器1010(1)-1010(m)。控制器1010(1)-1010(m)还可以包括以上图9所示的架构。例如,每个控制器1010(1)-1010(m)可以耦合到一个或多个nn处理器,例如处理器1011(1)-1011(n)和1012(1)-10012(n)。nn处理器1011(1)-1011(n)和1012(1)-1012(n)可以包括针对神经网络处理优化的功能处理块和存储器的多种配置,例如训练或推理。nn处理器针对神经网络计算进行了优化。服务器1002可以为控制器1010配置nn模型以及模型的输入数据,,例如,这些数据可以由nn处理器1011(1)-1011(n)和1012(1)-1012(n)并行加载和执行。例如,模型可以包括如上所述的层和相关权重。nn处理器可以加载模型并应用输入来产生输出结果。例如,nn处理器还可以实现本文描述的训练算法。
35.进一步的示例实施例
36.在各种实施例中,本公开包括用于神经网络训练的系统、方法和设备。本文所述的技术可以体现在非瞬态计算机可读存储介质中,该存储介质上存储了可由计算机系统执行的程序代码,该程序代码使计算机系统执行本文所述技术。在一些实施例中,计算机系统包括一个或多个处理器和配置有执行上述技术的程序代码的存储器。在一些实施例中,非瞬态计算机可读存储介质可以是例如存储器,其例如可以耦合到一个或多个控制器或一个或多个人工智能处理器。
37.以下技术可以单独实施或以不同的组合实施,并且可以与本文描述的其他技术进一步实施。
38.例如,在一个实施例中,本公开包括一种计算机系统,该计算机系统包括:一个或多个处理器;以及非瞬态计算机可读存储介质,该存储介质存储有可由计算机系统执行的程序代码,该程序代码使计算机系统执行一种方法,该方法包括:基于输出结果来确定残差前馈神经网络的输出处的误差,所述输出结果响应于该残差前馈神经网络的输入数据和权重而被生成;以及从残差前馈神经网络的输出和前馈神经网络的一个或多个残差中间输出,通过残差前馈神经网络,在反向上传播误差,以调整残差前馈神经网络的权重。
39.在一个实施例中,误差直接耦合到输出和一个或多个中间输出。
40.在一个实施例中,本公开还包括在多个训练周期中连续减少中间输出的数目。
41.在一个实施例中,残差前馈神经网络包括多个层。
42.在一个实施例中,每个层的输入被添加到每个层的输出。
43.在一个实施例中,残差前馈神经网络被分割成多个部分,其中误差被输入到每个部分的最后一层中。
44.在一个实施例中,部分的数目等于二(2)的幂。
45.在一个实施例中,这些部分包含相等数目的层。
46.在一个实施例中,本公开还包括在所述输入数据和所述输出结果的一个或多个周期内,针对所述多个部分中的每个部分调整所述多个层中的每个层中的权重;减少部分的数目;以及针对多个不同数目的部分重复所述调整和减少步骤。
47.在一个实施例中,本公开还包括在所述输入数据和所述输出结果的一个或多个周期内,针对所述多个部分中的每个部分,调整所述多个层中的每个层中的权重;将部分数目减少二(2)倍;以及对多个不同数目的部分,包含数目等于一(1)的部分,重复所述调整和减少步骤。
48.上述描述示出了本公开的各种实施例以及如何实现特定实施例的各个方面的示例。上述示例不应被视为唯一的实施例,并且提出这些实施例是为了说明由以下权利要求所定义的特定实施例的灵活性和优点。基于上述公开和以下权利要求,可以采用其它布置、实施例、实现和等效物,而不偏离本公开权利要求所定义的范围。

技术特征:


1.一种计算机系统,包括:一个或多个处理器;以及计算机可读存储介质,具有存储在其上的程序代码,所述程序代码可由所述计算机系统执行,所述程序代码使所述计算机系统执行包括以下的方法:基于响应于残差前馈神经网络的输入数据和权重而生成的输出结果,在所述残差前馈神经网络的输出处确定误差;以及将所述误差从所述输出和所述残差前馈神经网络的一个或多个中间输出通过所述残差前馈网络反向传播,以调整所述残差前馈神经网络的所述权重。2.根据权利要求1所述的计算机系统,其中所述误差直接耦合到所述输出和所述一个或多个中间输出。3.根据权利要求1所述的计算机系统,所述方法还包括在多个训练周期相继地减少中间输出的数目。4.根据权利要求1所述的计算机系统,其中所述残差前馈神经网络包括多个层。5.根据权利要求4所述的计算机系统,其中每个层的输入被添加到每个层的输出。6.根据权利要求4所述的计算机系统,其中所述残差前馈神经网络被分割成多个部分,并且其中所述误差被输入到每个部分的最后一层中。7.根据权利要求6所述的计算机系统,其中部分的数目等于二(2)的幂。8.根据权利要求6所述的计算机系统,其中所述部分包括相等数目的层。9.根据权利要求6所述的计算机系统,所述方法还包括:在所述输入数据和所述输出结果的一个或多个周期内,针对所述多个部分中的每个部分,调整所述多个层中的每个层中的所述权重;减少所述部分的数目;以及针对多个不同数目的部分重复所述调整和减少的步骤。10.一种训练神经网络的方法,包括:基于响应于残差前馈神经网络的输入数据和权重而生成的输出结果,在所述残差前馈神经网络的输出处确定误差;以及将所述误差从所述输出和所述残差前馈神经网络的一个或多个中间输出通过所述残差前馈网络反向传播,以调整所述残差前馈神经网络的所述权重。11.根据权利要求10所述的方法,还包括在多个训练周期内连续减少中间输出的数目。12.根据权利要求10所述的方法,其中所述残差前馈神经网络包括多个层,并且其中所述残差前馈神经网络被分割成多个部分,并且其中所述误差被输入到每个部分的最后一层中。13.根据权利要求12所述的方法,其中部分的数目等于二(2)的幂。14.根据权利要求12所述的方法,其中所述部分包括相等数目的层。15.根据权利要求12所述的方法,还包括:在所述输入数据和所述输出结果的一个或多个周期内,针对所述多个部分中的每个部分,调整所述多个层中的每个层中的所述权重;将所述部分的数目减少二(2)倍;以及针对多个不同数目的部分,包括数目等于一(1)的部分,重复所述调整和减少的步骤。

技术总结


本公开的实施例包括用于训练神经网络的系统和方法。在一个实施例中,神经网络可以接收输入数据,并且响应于输入数据和神经网络的权重来产生输出结果。基于输出结果在神经网络的输出处确定误差。误差通过神经网络从输出和一个或多个中间输出被反向传播,以调整权重。以调整权重。以调整权重。


技术研发人员:

A

受保护的技术使用者:

微软技术许可有限责任公司

技术研发日:

2021.04.20

技术公布日:

2022/12/16

本文发布于:2022-12-20 22:56:52,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/2/39891.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:神经网络   多个   所述   权重
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图