用于训练稀疏神经网络同时保持稀疏性的系统和方法技术方案

技术编号:35559009 阅读:11 留言:0更新日期:2022-11-12 15:41
一种训练神经网络的计算机实现的方法。该方法包括通过选择神经网络的参数的第一子集并将网络参数的前向传递集合的所有其他参数设置为零来重复地确定网络参数的前向传递集合。然后,该方法根据网络参数的前向传递集合使用神经网络来处理训练数据项以生成神经网络输出,从神经网络输出和训练数据项来确定目标函数的值,选择网络参数的第二子集,确定包括参数的第一子集和第二子集的网络参数的后向传递集合,并且使用从目标函数的值确定的梯度估计来更新与网络参数的后向传递集合相对应的参数。应的参数。应的参数。

【技术实现步骤摘要】
【国外来华专利技术】用于训练稀疏神经网络同时保持稀疏性的系统和方法
[0001]对相关申请的交叉引用
[0002]本申请要求于2020年6月5日提交的美国临时申请第63/035,526号的优先权。在先申请的公开内容被认为是本申请的公开内容的一部分,并且通过引用并入本申请的公开内容中。

技术介绍

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

技术实现思路

[0005]本说明书描述了被实现为在一个或多个位置中的一个或多个计算机上的计算机程序的系统和方法,其在始终遵守稀疏性要求的同时训练神经网络。特别地,在前向传递期间或在后向传递期间可以不使用完全密集的参数集来训练神经网络以更新网络参数。这允许更有效地训练神经网络,具有更低的计算负担和更低的能量消耗。这还允许在计算能力较低的设备上或在具有较少能量资源的设备上训练神经网络。此外,本文描述了使本方法适应于特定硬件配置以优化性能的特定实施例。
[0006]因此,在一个方面,一种训练神经网络的计算机实现的方法,所述神经网络具有多个网络参数并且被配置为处理输入数据项以生成神经网络输出,所述方法包括:通过从多个网络参数中选择参数的第一子集并将网络参数的前向传递集合的所有其他参数设置为零来重复地确定网络参数的前向传递集合;根据网络参数的前向传递集合使用神经网络来处理训练数据项,以生成神经网络输出,神经网络输出根据所述神经网络输出和训练数据项确定目标函数的值,从多个网络参数中选择参数的第二子集,确定包括参数的第一子集和参数的第二子集的网络参数的后向传递集合,并且使用根据目标函数的值确定的梯度估计,更新多个网络参数中与网络参数的后向传递集合相对应的参数。
[0007]可以通过选择可用参数的子集作为训练步骤的参数集来训练神经网络。未被选择的参数被设置为零,从而在前向训练传递上施加稀疏性准则。使用该参数集对训练数据执行的前向训练传递产生神经网络输出,该神经网络输出可以与训练数据一起使用以确定用于计算网络参数的更新的目标函数。如果以这种方式更新的参数集被限制为包括少于网络的所有参数,则还对更新步骤施加稀疏性约束。神经网络输出可以是训练数据的特征表示,例如,诸如向量的数值的有序集合,其将数据表示为多维特征空间中的点。
[0008]被选择包括在前向传递——即第一子集——中的参数可以是具有最大幅度——例如范数——的参数的百分比(或数量),例如具有最大范数的参数的最高百分比(例如10%)。例如通过目标函数——即第二子集——的梯度的反向传播在后向传递中更新的参
数可以包括被选择用于前向传递的参数,并且另外包括具有其次最大幅度(例如范数)的另一百分比(或另一数量)的参数。例如,可以选择参数的另一个(例如,下一个)百分比(例如,10%)。在示例中,附加参数排他地是未被包括在用于前向传递的非零参数中的参数。为了维持由参数的选择施加的稀疏性约束,未被选择的参数不被更新。可以改变选择参数的子集的步骤的顺序,以及前向传递和后向传递通过神经网络的顺序(注意该方法重复)。
[0009]在示例实施方式中,神经网络包括多个神经网络层。在实施例中,方法还包括:逐个神经网络的层来选择参数的第一子集和参数的第二子集中的一个或两个。
[0010]当更新时,可以使用正则化函数(损失)来惩罚为前向传递选择的参数。也可以使用正则化函数(损失)来惩罚被选择用于更新的另外的参数。两个正则化函数可以是不同的函数。未被选择用于更新的参数不受这些正则化函数的影响。在一个示例中,被选择用于前向传递的参数被惩罚小于被选择用于更新的附加参数。这有助于缓解这样的情况,其中:在前向传递中尚未被选择为非零的、被选择用于更新的参数以使得其在下一个前向训练传递中被选择为非零的方式演变,仅在下一次被更新时失去重要性并且在随后的前向传递中从非零参数中排除。
[0011]在示例实施方式中,替选地或附加地,可以应用正则化项,该正则化项对第二子集的参数的惩罚比对多个网络参数中不在第一子集或第二子集中的参数惩罚得更多。
[0012]在示例实施方式中,替选地或附加地,可以应用正则化项,该正则化项对第一子集的参数的惩罚比对多个网络参数中不在第一子集中或第二子集中的参数惩罚得更多。
[0013]在示例实施方式中,目标函数包括正则化项,正则化项包括对第一子集和第二子集的参数的惩罚比对不在第一子集或第二子集中的任一个中的参数惩罚得更多的一个或多个项。
[0014]在示例实施方式中,不存在使用梯度估计来更新多个网络参数。
[0015]在示例实施方式中,选择第一子集和第二子集中的至少一个以满足预定稀疏性准则。一旦已经满足预定质量准则,就可以停止重复,并且此后,可以仅使用多个网络参数的最后选择的参数的第一子集作为多个参数的非零参数来训练神经网络。
[0016]训练可以在专用训练硬件上执行。这样的硬件可以包括例如用于接收训练数据、训练参数或其索引并且用于以高通信速度将训练的任何结果传送到通信地连接的处理器的接口,并且也可以包括矩阵乘法硬件和/或本地存储器。一个示例的专用硬件包括被配置用于高效矩阵乘法运算和/或乘法和累加运算的布置。
[0017]不需要专用训练硬件的特定架构的任务可以替代地在通用处理器上执行,该通用处理器可以与专用训练硬件一起形成训练系统的一部分,但是与训练硬件分离。要在前向传递期间保持非零或要包括在参数更新中的参数的选择可能需要将整个参数集或至少一层的完整参数集被保存在存储器中。如果在专用训练硬件中执行,例如,如果训练硬件的本地存储器不足以存储神经网络的完整参数集,则这可能损害训练速度并降低稀疏训练的益处。通过在专用训练硬件外部的处理器中识别要被保留为非零参数或待用于参数更新的参数,专用训练硬件可被用于训练步骤。因此,不需要在任何一个时间将多个网络参数的完整集合加载到神经网络训练硬件中。相反,该方法可以被拆分,使得确定参数子集的存储器密集型操作由通用处理器执行,用于竞争神经网络或逐层,同时降低的存储器稀疏前向和/或后向计算传递由专用于该任务的训练硬件实现。
[0018]在示例实施方式中,从不同时将多个网络参数加载到神经网络训练硬件中,即,从不需要神经网络训练硬件在任何给定时间点加载所有多个网络参数。
[0019]在示例实施方式中,神经网络包括多个神经网络层。然后,该方法可以包括在通用处理器上一次一个神经网络层地执行重复的步骤。
[0020]在一个示例中,在每个训练传递之后重新确定第一子集和第二子集。在其他示例中,如果需要,在重新考虑和更新子组的组成之前,可以使用相应的第一和第二子组中的相同参数来执行多个训练传递。
[0021]在示例中,在通用处理器上执行重复的步骤之前,在神经网络训练硬件上多次执行重复的步骤。
[0本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种训练神经网络的计算机实现的方法,所述神经网络具有多个网络参数并且被配置为处理输入数据项以生成神经网络输出,该方法包括重复地:通过从多个网络参数中选择参数的第一子集并将网络参数的前向传递集合的所有其他参数设置为零,来确定网络参数的前向传递集合;根据网络参数的前向传递集合、使用神经网络来处理训练数据项以生成神经网络输出;从神经网络输出和训练数据项确定目标函数的值;从多个网络参数中选择参数的第二子集;确定包括参数的第一子集和参数的第二子集的、网络参数的后向传递集合;以及使用从目标函数的值确定的梯度估计来更新多个网络参数中与所述网络参数的后向传递集合相对应的参数。2.根据权利要求1所述的方法,还包括:在通用处理器和神经网络训练硬件之间分配所述方法,以及在通用处理器上执行以下重复步骤:选择参数的第一子集并选择参数的第二子集;以及在神经网络训练硬件上执行以下重复步骤:根据网络参数的前向传递集合使用神经网络处理训练数据项,以及更新多个网络参数中与网络参数的后向传递集合相对应的参数。3.根据权利要求2所述的方法,其中,多个网络参数从不同时被加载到神经网络训练硬件中。4.根据权利要求2

3中任一项所述的方法,其中,所述神经网络包括多个神经网络层,所述方法包括在所述通用处理器上一次一个神经网络层地执行所述重复步骤。5.根据权利要求2

4中任一项所述的方法,包括:在通用处理器上执行所述重复步骤之前,在神经网络训练硬件上多次执行所述重复步骤。6.根据权利要求2

5中任一项所述的方法,包括:在重复所述方法的同时,在通用处理器上以及在神经网络训练硬件上并行地执行所述重复步骤。7.根据权利要求2

6中任一项所述的方法,其中,参数的第一子集包括多个网络参数中的最大网络参数的子集。8.根据权利要求7所述的方法,其中,参数的第二子集包括多个网络参数中的其次最大网络参数的子集。9.根据权利要求1

8中任一项所述的方法,其中,所述神经网络包括多个神经网络层,所述方法还包括:逐个神经网络的层来选择参数的第一子集和参数的第二子集中的一个或两个。10.根据权利要求1

9中任一项所述的方法,其中,处理训练数据项、确定目标函数和更新多个网络参数中的参数中的至少一个在专用训练硬件上被执行,其中,参数的第一子集包括多个网络参数中的最大网络参数的子集,其中,至少确定多个网络参数中的最大网络参数在与训练硬件分开的处理器上被执行。11.根据权利要求1

10中任一项所述的方法,其中,目标函数包括正则化项,所述正则化项包括以下中的一个或多个:对第二子集的参数的惩罚比对第一子集的参数的惩罚更多的项;
对第二子集的参数惩罚比对多个网络参数中不在第一子集或第二子集中的参数惩罚更多的项;以及对第一子集的参数惩罚比对多个网络参数中不在第一子集...

【专利技术属性】
技术研发人员:SM贾亚库马尔R帕斯卡努JW雷S奥辛德罗EK埃尔森
申请(专利权)人:渊慧科技有限公司
类型:发明
国别省市:

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

1