神经网络的深度并行训练制造技术

技术编号:34083284 阅读:7 留言:0更新日期:2022-07-11 19:23
本发明专利技术涉及用于执行神经网络的深度并行训练的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。方法中的一个包括接收输入序列;并且在处理时间步序列中的每个处理时间步:使用层块堆叠中的第一层块来处理输入项,以生成第一块输出;对于每个后续层块,处理由先前层块在先前处理时间步生成的块输出,以生成当前块输出;计算i)由最后层块生成的输出项中的当前误差,和ii)当前误差的当前梯度;生成最后层块的参数更新;对于不是最后层块的每个特定层块,计算该特定层块的当前梯度并生成参数更新。参数更新。参数更新。

【技术实现步骤摘要】
【国外来华专利技术】神经网络的深度并行训练


[0001]本说明书涉及训练神经网络。

技术介绍

[0002]神经网络是采用一层或多层非线性单元来预测接收到的输入的输出的机器学习模型。除了输出层之外,一些神经网络还包括一个或多个隐藏层。每个隐藏层的输出被用作网络中下一层的输入,即,下一隐藏层或输出层。网络的每一层根据相应参数集的当前值从接收到的输入生成输出。

技术实现思路

[0003]本说明书描述了实现为一个或多个位置的一个或多个计算机上的计算机程序的系统,该系统训练被配置成处理输入序列以生成输出序列的神经网络。具体地,该系统能够执行神经网络的深度并行训练。在本说明书中,如果训练系统在训练期间使用神经网络的相应不同神经网络层并行处理多个不同的网络输入,则该训练系统执行神经网络的深度并行训练。
[0004]该系统能够通过并行执行多个“前向传递”和多个“后向传递”来执行深度并行训练。在本说明书中,神经网络的“前向传递”指的是系统使用神经网络处理网络输入以生成对应于网络输入的网络输出的操作。在本说明书中,神经网络的“后向传递”指的是系统使用神经网络响应于网络输入而生成的网络输出中的误差来更新神经网络参数的操作。
[0005]使用现有技术,当训练包括多个神经网络层的神经网络时,在开始处理输入序列中的后续输入项之前,训练系统通常必须执行对应于输入项的全部前向传递和后向传递。这是因为,对于每个神经网络层,训练系统使用由神经网络层在前向传递期间生成的层输出,以便在后向传递期间更新神经网络层的参数。因此,如果神经网络包括N个神经网络层,则训练系统处理输入项需要大约2N个处理时间步(前向传递的N个处理时间步,以及后向传递的N个处理时间步),在此期间,训练系统不能处理输入序列中的任何其他输入项。因此,对于包括k个输入项的输入序列,训练系统需要大约2Nk个处理时间步来处理输入序列。
[0006]使用本说明书中描述的技术,对于神经网络的每个神经网络层,训练系统能够使用对应于第二输入项的层输出来近似对应于第一输入项的层输出,该第二输入项在输入序列中比第一输入项晚。因此,在处理第二输入项之前,训练系统不需要等待直到第一输入项的完全前向传递和后向传递完成。具体地,在每个处理时间步,神经网络的每个神经网络层能够生成对应于输入序列的相应不同输入项的层输出。因此,训练系统能够在大约k+2N个处理时间步中处理具有k个输入项的输入序列。
[0007]能够实现本说明书中描述的主题的特定实施例,以便实现一个或多个以下优点。
[0008]如上所述,使用现有技术处理输入项的时间复杂度为O(Nk),其中N是神经网络中神经网络层数,并且k是输入序列中输入项的数量。使用本说明书中描述的技术处理输入项的时间复杂度为O(N+k)。这表示效率的显著提高,从而减少训练神经网络所需的时间。
[0009]使用本说明书中描述的技术,训练系统能够进一步减少训练神经网络的存储器需求。具体地,因为训练系统对于每个神经网络层使用对应于第一输入项的层输出以近似对应于第二输入项的层输出,所以训练系统不需要在存储器中存储对应于输入序列中每个输入项的相应层输出。此外,通过消除训练系统维护层输出的存储器存储并在需要时检索相应层输出的需求,本文中描述的技术能够进一步提高训练系统的计算和时间效率。
[0010]本说明书中描述的一些系统能够通过依赖于第一输入项和第二输入项相当相似的假设,使用对应于输入序列中的第二输入项的层输出来近似对应于输入序列中的第一输入项的层输出。对于在输入序列中彼此接近的两个输入项(例如,彼此在1、10或100个输入时间步内),这通常是有效的假设,从而允许系统生成神经网络层的高度准确的参数更新。
[0011]因此,所描述的系统的一些实施方式提供了利用了实际上局部的处理的对后向传播的替代,确定仅是近似的梯度,因为它们基于来自不同时间步的层输出,并且从而运用输入序列中的平滑度。与直觉相反地,这可以提供一些另外的正则化,帮助系统进行泛化。相应地,在要求系统参数快速适应的设置中,这通过避免由首先在前向方向上传播数据然后在后向方向上传播数据引入的固有延迟来实现。所描述的技术具有普遍适用性,但是该系统的一些实施方式对于处理时间序列是有用的,诸如包括视频或音频数据帧的输入项。
[0012]本说明书主题的一个或多个实施例的细节在附图和以下描述中阐述。根据说明书、附图和权利要求书,本主题的其他特征、方面和优点将变得明显。
附图说明
[0013]图1图示了示例现有技术训练系统的操作。
[0014]图2A和图2B图示了示例训练系统的操作。
[0015]图3是示例训练系统的框图。
[0016]图4是用于训练神经网络的示例过程的流程图。
[0017]不同附图中相同的附图标记和名称表示相同的元件。
具体实施方式
[0018]本说明书描述了一种训练系统,其将训练具有多个神经网络层的神经网络的操作并行化。神经网络被配置成接收在多个输入时间步具有相应输入项的输入序列,并处理输入序列以生成网络输出。
[0019]神经网络处理输入序列以生成输出序列,其中输出序列中的每个输出项对应于输入序列中的相应输入项。输出项有时也被称为对应于输入项的“项输出”。
[0020]在一些实施方式中,在处理输入序列中的每个输入项之后,神经网络使用相应的输出项生成网络输出。例如,网络输出能够是输出项的平均值。作为另一示例,网络输出能够是输出项中的一个,例如,最后输出项(即,对应于输入序列中的最后输入项的输出项)。在一些实施方式中,网络输出本身能够是序列,例如,生成的输出项的序列。因此,通常网络输出可以从输出项中的一个或多个生成。
[0021]输入序列能够由任何适当类型的输入项组成。
[0022]在一些实施方式中,输入序列是视频序列,其中输入项中的每一个是视频序列中的一帧。然后,可以训练网络输出来表征视频序列,例如,视频序列的静止或运动内容。例
如,神经网络能够被配置成生成视频序列的类别预测。作为特定示例,神经网络能够预测视频序列描绘了对象,例如,“狗”、“海洋”或“汽车”;或者识别的动作集中的一个;或者视频序列中描绘的识别的条件集中的一个或多个的存在(例如,一天中的时间、天气条件等);等等。在这个示例中,对应于视频序列中的给定帧的输出项能够是预测概率的向量,其中向量中的每个预测概率表征了在该帧中描绘对应的类别的可能性。神经网络输出也能够是预测概率的向量,其中向量中的每个预测概率表征了在视频序列中描绘对应的类别的可能性。在另一示例中,输出项能够包括视频序列的压缩表示。在另一示例中,输出项能够包括或被用于生成输出视频帧,例如,从输入视频序列的输入帧推断视频帧属性,诸如输入视频帧的图像深度或颜色。
[0023]在一些其他实施方式中,输入序列是人类语音的音频序列,其中每个输入项表示一个音频样本或音频样本组。例如,输入项能够各自包括数字化的原始音频数据或处理后的音频数据。作为另一示例,输入项能够各自是从原始音频数本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种训练神经网络的计算机实现的方法,所述神经网络被配置成处理输入序列并生成所述输入序列的网络输出,其中:所述神经网络生成所述输入序列中的多个输入项中的每一个的相应的输出项,并且所述神经网络包括层块堆叠,每个层块包括一个或多个神经网络层,所述层块堆叠包括第一层块和最后层块,其中所述训练包括:接收输入序列,所述输入序列包括在多个输入时间步中的每一个的相应输入项;以及在处理时间步序列中的多个处理时间步的每一个处:使用所述第一层块处理对应于所述处理时间步的输入时间步的输入项,以生成第一块输出;对于不是所述第一层块的每个特定层块,使用所述特定层块处理由所述层块堆叠中的先前层块在所述处理时间步序列中的先前处理时间步生成的块输出,以生成当前块输出,其中由所述最后层块生成的当前块输出是比对应于所述处理时间步的输入时间步更早的输入时间步的输入项的输出项;计算i)由所述最后层块在所述处理时间步生成的输出项中的当前误差,和ii)所述最后层块的当前误差的当前梯度;根据所述输出项中的所述当前误差生成所述最后层块的参数更新;对于不是所述最后层块的每个特定层块,根据i)由所述层块堆叠中的后续层块在所述处理时间步序列中的所述先前处理时间步计算的先前梯度、和ii)由所述层块堆叠中的所述先前层块在所述处理时间步序列中的所述先前处理时间步生成的先前块输出,来计算所述特定层块的所述当前梯度;以及对于不是所述最后层块的每个特定层块,根据由所述层块堆叠中的所述后续层块在所述处理时间步序列中的所述先前处理时间步计算的所述先前梯度,生成所述特定层块的参数更新。2.根据权利要求1所述的方法,进一步包括,在第二处理时间步序列中的多个第二处理时间步的每一个处:使用所述第一层块处理对应于所述第二处理时间步的输入时间步的输入项,以生成第一块输出;以及对于不是所述第一层块的每个特定层块,使用所述特定层块处理由所述层块堆叠中的所述先前层块在所述第二处理时间步序列中的先前第二处理时间步生成的块输出,以生成当前块输出,其中由所述最后层块生成的所述当前块输出是比对应于所述第二处理时间步的输入时间步更早的输入时间步的输入项的输出项;计算i)由所述最后层块在所述第二处理时间步生成的所述输出项中的当前误差,和ii)所述最后层块的当前误差的当前梯度;根据所述输出项中的所述当前误差生成所述最后层块的参数更新;以及对于不是所述最后层块的每个特定层块,其中针对所述特定层块在所述层块堆叠中的所述后续层块在所述第二处理时间步序列中的所述先前第二处理时间步计算了先前梯度:根据i)由所述后续层块在所述先前第二处理时间步计算的所述先前梯度、和ii)由所述层块堆叠中的所述先前层块在所述先前第二处理时间步生成的所述当前块输出,来计算
所述层块堆叠中的所述特定层块的当前梯度;以及根据由所述后续层块在所述先前第二处理时间步计算的所述先前梯度,生成所述层块堆叠中的所述特定层块的参数更新,其中,所述第二处理时间步序列在所述处理时间步序列之前。3.根据权利要求1或2中的任一项所述的方法,进一步包括,在第三处理时间步序列中的多个第三处理时间步中的每一个处:对于i)在所述第三处理时间步序列中的所述先前第三处理时间步生成了先前块输出并且ii)不是所述最后层块的每个特定层块,使用所述层块堆叠中的所述后续层块处理由所述特定层块在所述先前第三处理时间步生成的所述先前块输出,以生成当前块输出,其中由所述最后层块生成的所述当前块输出是比对应于所述第三处理时间步的所述输入时间步更早的输入时间步的输入项的输...

【专利技术属性】
技术研发人员:马特乌什
申请(专利权)人:渊慧科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1