CN117337437A - 减少用于训练神经网络的操作 - Google Patents

减少用于训练神经网络的操作 Download PDF

Info

Publication number
CN117337437A
CN117337437A CN202280035750.5A CN202280035750A CN117337437A CN 117337437 A CN117337437 A CN 117337437A CN 202280035750 A CN202280035750 A CN 202280035750A CN 117337437 A CN117337437 A CN 117337437A
Authority
CN
China
Prior art keywords
loss values
neural network
loss
determining
training data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202280035750.5A
Other languages
English (en)
Inventor
M·梅斯马克霍斯罗沙希
B·D·鲁哈尼
E·S·钟
D·C·伯格
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN117337437A publication Critical patent/CN117337437A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Feedback Control In General (AREA)

Abstract

本公开的实施例包括用于减少训练神经网络的操作的系统和方法。从训练数据集中选择的多个训练数据被用作用于训练神经网络的多个输入。神经网络包括多个权重。多个损失值基于由神经网络生成的输出和多个训练数据的预期输出数据集确定。多个损失值的子集被确定。平均损失值基于多个损失值的子集确定。梯度集合基于平均损失值和神经网络中的多个权重计算。神经网络中的多个权重基于梯度集合调整。

Description

减少用于训练神经网络的操作
背景技术
本公开涉及计算硬件。更具体地,本公开涉及用于训练神经网络的技术。
神经网络是一种机器学习模型,用于各种不同的应用(例如,图像分类、计算机视觉、自然语言处理、语音识别、写作识别等)。训练神经网络可以通过运行数据集、将神经网络的结果与已知结果进行比较、以及根据差异更新网络来为特定目的训练。
存在许多用来减少训练神经网络所需时间的技术。例如,一些这样的技术利用多个设备来并行化神经网络的训练。其他这样的技术寻找机会来稀疏化神经网络中使用的数据和/或由神经网络使用的数据。
附图说明
本公开的各种实施例在附图的图中以示例的方式图示而非限制。
图1图示了根据一些实施例的用于训练神经网络的计算系统。
图2图示了根据一些实施例的减少用于训练神经网络的操作的示例。
图3图示了根据一些实施例的用于基于方差值的平均损失计算的示例比例的图。
图4图示了根据一些实施例的在前向传递期间减少操作的示例。
图5图示了根据一些实施例的减少用于训练神经网络的操作的过程。
图6描绘了根据一些实施例的示例计算机系统的简化框图。
图7图示了根据一些实施例的神经网络处理系统。
具体实施方式
在下面的描述中,为了便于解释,列出了许多示例和具体细节,以提供对本公开的透彻理解。此类示例和细节不得解释为不适当地限制权利要求的要素或整个权利要求主题。对于本领域技术人员来说,基于不同权利要求的语言,显而易见的是,所要求保护的主题可以单独或组合地包括这些示例中的一些或所有特征,并且可以进一步包括本文描述的特征和技术的修改和等效。
这里描述了用于减少训练神经网络的操作的技术。在一些实施例中,计算系统被配置为训练神经网络。神经网络可以包括数个层,并且每一层可以包括若干权重。当训练这样的神经网络时,计算系统可以通过训练神经网络的三个阶段(前向传递阶段、反向传递阶段和优化阶段)来处理从训练数据集中随机选择的多批样本。在针对特定批样本的前向传递阶段中,计算系统通过神经网络处理每个样本。然后,计算系统根据由神经网络针对样本生成的输出以及样本的预期输出来计算针对每个样本的损失值。接下来,计算系统确定损失值中具有最高值的定义比例的损失值(例如,损失值中最高的50%的损失值,损失值中最高的75%的损失值等),并丢弃余下的损失值。然后,计算系统基于损失值中具有最高值的定义比例的损失值来计算损失值的平均。在针对特定批样本的反向传递阶段,计算系统基于计算出的损失值的平均来计算梯度集合。对于特定批样本的优化阶段,计算系统使用该梯度集合来更新神经网络中的权重。
与使用神经网络硬件处理器的传统处理方法相比,本申请中描述的技术提供了许多好处和优点。首先,在神经网络的训练期间从平均损失值计算中丢弃一些样本损失值允许神经网络更快地被训练,从而更快地达到收敛。其次,在神经网络的训练期间,基于从一些样本损失值计算的平均损失值来计算梯度,然后基于梯度来调整神经网络中的权重,减少了针对给定数目的样本训练神经网络的操作的数目。使用相同数目的给定样本来训练神经网络的传统方法利用更多的操作来实现相同的神经网络的训练。
图1图示了根据一些实施例的用于训练神经网络的计算系统100。如图所示,计算系统100包括神经网络管理器105、前向传递管理器110、反向传递管理器115、优化管理器120以及存储125-135。神经网络定义存储125被配置为存储神经网络的定义。在一些实施例中,神经网络的定义指定神经网络中的层数、每层中的节点数、神经网络中的权重、节点中使用的激活函数、用于计算损失的损失函数等。
训练参数存储130存储用于神经网络的训练参数。训练参数的示例包括训练数据集中的样本数目、批大小、训练阶段数目、在每个训练阶段中要处理的训练数据集的比例、在每个训练阶段中要使用的损失值中的具有最高值的损失值的比例、每个训练阶段的批大小比例等。批大小可以表示在前向传递阶段中要处理的样本数目。训练阶段数可以表示用于处理整个数据训练集的阶段数目。批大小比例可以表示在训练阶段期间要用于前向传递训练阶段的批大小的比例。
训练数据存储135被配置为存储用于训练神经网络的训练数据集。在一些实施例中,训练数据集包括样本集(也被称为训练样本)。每个样本包括输入集合(也被称为输入数据)和预期输出集合(也被称为预期输出数据)。例如,样本的输入集合可以是数值集合(例如,整数、浮点数等)的矩阵或向量。类似地,样本的预期输出集合可以是数值集合(例如,整数、浮点数等)的矩阵或向量。在一些实施例中,存储125-135在单个物理存储中实现,而在其他实施例中,存储125-135可以跨多个物理存储实现。尽管图1示出了作为计算系统100一部分的存储125-135,本领域普通技术人员将理解,在一些实施例中神经网络定义存储125、训练参数存储130和/或训练数据存储135可以在计算系统100外部。
神经网络管理器105负责创建神经网络。例如,神经网络管理器105可以从计算系统100或客户端设备(图1中未示出)的用户接收利用训练数据集训练神经网络的请求。作为响应,神经网络管理器105访问神经网络定义存储125以检索与所请求的神经网络相关联的神经网络定义。神经网络管理器105基于神经网络定义生成神经网络。接下来,神经网络管理器105访问训练参数存储130以检索与神经网络相关联的训练参数。然后,神经网络管理器105访问训练数据存储135以检索用于训练神经网络的指定训练数据集。
基于训练参数,神经网络管理器105指示前向传递管理器110、反向传递管理器115以及优化管理器120来控制神经网络的训练。作为示例,为了在神经网络上执行前向传递阶段,神经网络管理器105通过从训练数据集随机选择定义数目的样本来生成一批样本。然后,神经网络管理器105向前向传递管理器110发送该批样本以及用以在神经网络上执行前向传递的请求。作为回应,神经网络管理器105可以从前向传递管理器110接收由神经网络生成的输出集合。接下来,神经网络管理器105可以基于该输出集合以及该批样本中的预期输出集合来计算损失值。然后,神经网络管理器105计算损失值的平均,并向反向传递管理器115发送损失值的平均以及用以在神经网络上执行反向传递的请求。一旦神经网络管理器105从反向传递管理器115接收梯度集合,神经网络管理器105将它们与用以调整神经网络中的权重的请求一起发送给优化管理器120。
前向传递管理器110负责管理训练神经网络的前向传递阶段。例如,前向传递管理器110可以从神经网络管理器105接收用以处理神经网络上一批样本的请求。作为响应,前向传递管理器110通过神经网络迭代处理该批样本中的每个样本,并跟踪由神经网络生成的每个输出。一旦前向传递管理器110完成处理该批样本,前向传递管理器110将向神经网络管理器105发送输出。
反向传递管理器115被配置为管理训练神经网络的反向传递阶段。例如,反向传递管理器115可以从神经网络管理器105接收损失值的平均以及用以在神经网络上执行反向传递的请求。响应于该请求,反向传递管理器115基于损失值的平均生成梯度集合。在一些实施例中,反向传递管理器115使用反向传播技术来生成该梯度集合。
优化管理器120管理训练神经网络的优化阶段。例如,优化管理器120可以从神经网络管理器105接收梯度集合以及用以更新神经网络中的权重的请求。作为响应,优化管理器120基于该梯度集合调整神经网络中的权重。在一些实施例中,优化管理器120使用梯度方法(例如,梯度下降法、随机梯度下降法等)来调整神经网络中的权重。
图2图示了根据一些实施例的减少用于训练神经网络210的操作的示例。对于示例操作,计算系统100被用于训练神经网络210。在示例操作之前,神经网络管理器105接收来自计算系统100的请求,以利用训练数据集来训练神经网络210。响应于接收该请求,神经网络管理器105访问神经网络定义存储125,并检索与所请求的神经网络相关联的神经网络定义。接下来,神经网络管理器105基于神经网络定义生成神经网络210。如图2所描绘的,神经网络210包括层215a-n。层215a-n中的每一个层都包括相应的权重220的集合。神经网络管理器105可以利用随机生成的值(例如,整数、浮点数等)来初始化权重220a-n的值。接下来,神经网络管理器105访问训练参数存储130以检索与神经网络210相关联的训练参数。然后,神经网络管理器105访问训练数据存储135以检索用于训练神经网络210的指定训练数据集。
示例操作演示了操作是如何通过由神经网络210处理一批样本来减少的。该操作始于神经网络管理器105从训练数据集中随机选择样本来生成一批样本200。如图所示,一批样本200包括训练数据样本205a-m。在生成一批样本200之后,神经网络管理器105向前向传递管理器110发送一批样本200以及用以在神经网络210上执行前向传递的请求。响应于该请求,前向传递管理器110通过神经网络210处理一批样本200中的每个样本205。神经网络210针对通过其处理的每个样本205生成输出。一旦前向传递管理器110完成处理一批样本200,前向传递管理器110将由神经网络210生成的输出发送给神经网络管理器105。
在接收到输出后,神经网络管理器105基于由神经网络210生成的输出以及一批样本200中训练数据样本205a-m的预期输出,计算一批损失值,该批损失值包括损失值230a-m。在该示例中,神经网络210被配置为使用均方误差损失函数来计算损失值。然后,神经网络管理器105确定一批损失值225中具有最高值的定义部分的损失值。在一些实施例中,该定义部分在与神经网络210相关联的训练参数中被指定。例如,如果与神经网络210相关联的训练参数指定75%为具有最高值的损失值的定义比例,则神经网络管理器105确定损失值中具有最高值的75%的损失值,并丢弃损失值中最低25%的损失值。如图2所示,在操作235,神经网络管理器105从一批损失值225中丢弃损失值以形成一批损失值240,该批损失值240包括样本损失值230a-i。
在一些实施例中,定义比例基于从先前处理的批样本中收集的统计以及从处理一批样本200中收集的统计来确定。例如,在一些这样的实施例中,神经网络管理器105可以在训练神经网络210的特定阶段期间处理训练数据集的定义比例,并且在特定训练阶段期间收集一些统计信息,该定义比例可以在与神经网络210相关联的训练参数中被指定。神经网络管理器105生成从训练数据集中随机选择的几批样本,这几批样本集体达到训练参数中所指定的定义比例。作为示例,与神经网络210相关联的训练参数在训练神经网络210的第一阶段期间可以指定从处理25%的训练数据集来收集统计信息。如果与神经网络210相关联的训练参数指定训练数据集包括500个样本和25个样本的批大小,则神经网络管理器105将随机选择125个样本,并生成五批25个样本来训练神经网络210。然后,神经网络管理器105将指示前向传递管理器110、反向传递管理器115和优化管理器120以与上面参考图1所描述的类似的方式来处理这五批样本。在处理这五批样本中的每一批样本期间,神经网络管理器105计算这批样本的损失值的方差。在这第一阶段的训练完成之后(即在神经网络210使用这五批样本被训练之后),神经网络管理器105计算方差的平均并确定具有最高值的方差。基于平均方差和最高方差,神经网络管理器105确定用于计算平均的损失值230a-m的比例。
图3图示了根据一些实施例的示出了用于基于方差值的平均损失计算的示例比例的图300。如图所示,图300包括表示方差值的x轴和表示比例值的y轴。Var_ave表示神经网络管理105基于在训练的特定阶段(例如,在上述训练神经网络210的第一阶段期间五批样本的处理)中针对样本的处理确定的方差来计算的平均方差。Var_max是神经网络管理器105确定的具有最高值的方差。P_max是最高比例值,P_min是最低比例值。P_max和P_min可以在用于训练神经网络的训练参数中被指定。基于图300,如果损失值230a-m的方差小于或等于Var_ave值,则神经网络管理器105将P_max的值确定为损失值230a-m的比例。如果损失值230a-m的方差大于Var_ave的值且小于Var_max的值,则神经网络管理器105基于损失值230a-m的方差值将损失值230a-m的比例确定为P_min和P_max之间的线性缩放值。如果损失值230a-m的方差大于或等于Var_max的值,则神经网络管理器105将P_min的值确定为损失值230a-m的比例。神经网络管理器105使用确定比例值来确定一批损失值240。
上面的示例解释了一种用于测量损失值的传播(例如,损失值的分散程度)的方法,本领域普通技术人员将理解,在一些实施例中可以使用其他方法来测量损失值的传播。例如,损失值的传播可以使用损失值的范围(例如,最小和最大损失值)、四分位数、四分位距、绝对偏差、标准差等来测量。
回到图2,神经网络管理器105基于一批损失值240来计算损失值230a-I的平均。然后,神经网络管理器105向反向传递管理器115发送损失值230a-i的平均以及用以在神经网络210上执行反向传递的请求。响应于从神经网络管理器105接收该请求和损失值的平均,反向传递管理器115基于损失值的平均生成梯度集合。对于该示例,反向传递管理器115使用反向传播技术来生成该梯度集合。特别地,反向传递管理器115通过计算相对于神经网络210中的权重220a-n的损失函数的梯度来生成该梯度集合。接下来,反向传递管理器115将该梯度集合发送给神经网络管理器105。响应于接收该梯度集合,神经网络管理器105向优化管理器120发送该梯度集合以及用以调整神经网络210中的权重220a-n的请求。响应于该请求,在操作245,优化管理器120使用该梯度集合来调整神经网络210中的权重220a-n。在该示例中,优化管理器120采用随机梯度下降技术基于该梯度集合来调整权重220a-n。如经由该示例操作中使用的技术所示,神经网络210是基于一批样本200使用一批损失值240来训练的,一批损失值240是一批损失值225的一部分。
以下示例示出了在使用参考图2描述的示例操作中所描绘的技术来训练神经网络时操作数目可以如何被减少。对于这些示例,N表示训练数据集中的样本数目,B表示批大小。假设一批B个样本上的前向传递操作需要F个操作数目。当大于B的批大小被用于前向传递操作时,需要2F个操作数目来完成。此外,假设使用一批B个样本的反向传递操作和优化操作需要2F个操作数目。
表1
表1所示的示例将神经网络的训练分为四个阶段。第一阶段使用12.5%的训练数据集,第二阶段使用另外12.5%的训练数据集,第三阶段使用25%的训练数据集,第四阶段使用最后50%的训练数据集。对于四个不同的阶段,使用了不同的批大小并丢弃了不同比例的损失值。在第一阶段,在每个前向传递中B个数目的样本通过神经网络被处理。神经网络管理器105在第一阶段中不丢弃任何损失值,因此B个数目的样本在反向传递中被使用。也就是说,在第一阶段的反向传递期间,来自B个数目的样本的损失值被用于训练神经网络(例如,生成梯度以及调整神经网络的权重)。
对于第二阶段,在每个前向传递中1.25B个数目的样本通过神经网络被处理。换句话说,前向传递中所使用的批大小比第一阶段中使用的批大小大25%。神经网络管理器105被配置为在训练神经网络的第二阶段中,使用80%的最高损失值(即丢弃20%的最低损失值)针对反向传递计算平均损失值。这导致在这些反向传递中使用B个数目的样本。
第三阶段在前向传递期间使用包含1.5B个样本的批来训练神经网络。对于第三阶段中的每个反向传递,神经网络管理器105使用66.66%的最高损失值,即B个数目的损失值,来计算平均损失值(即丢弃33.33%的最低损失值)。在最后阶段,2B的批大小被用来在前向传递中训练神经网络。神经网络管理器105使用50%的最高损失值(即丢弃50%的最低损失值)针对每个反向传递计算平均损失值。这导致B个数目的样本在最后阶段中被用于反向传递。
总基线操作数目表示在不丢弃平均损失值计算的任何损失值的情况下训练神经网络的操作数目。因此,B的批大小被用于前向传递和反向传递两者。如表1所示,使用上面参考图2描述的示例操作中演示的技术和表1中的训练参数,相对于总基线操作数目,训练神经网络的操作数目减少了18.8%。
表2
表1中的训练参数示出了四个阶段的训练配置。当使用较少的训练阶段时,可以进一步减少操作数目。表2中所示的示例将神经网络的训练分为两个阶段。第一阶段使用12.5%的训练数据集,第二阶段使用剩余的87.5%的训练数据集。第一阶段使用B个数目的样本来训练每个前向传递的神经网络。对于第一阶段,神经网络管理器105不会丢弃任何损失值。因此,B个数目的样本被用于第一阶段的反向传递。
在第二阶段中,2B的批大小被用来训练前向传递中的神经网络。神经网络管理器105被配置为使用50%的最高损失值(即丢弃50%的最低损失值)来计算每个反向传递的平均损失值。因此,B个数目的样本被用于第二阶段中的反向传递。
总基线操作数目表示在不丢弃平均损失值计算的任何损失值的情况下训练神经网络的操作数目。因此,B的批大小被用于前向传递和反向传递两者。如表2所示,使用上面参考图2描述的示例操作中演示的技术和表2中的训练参数,相对于总基线操作数目,训练神经网络的操作数目减少了41%。
在一些实施例中,通过F个数目的操作中的前向传递(与表1和表2中所示的配置中的2F相比),用于处理神经网络的硬件能够处理大于B的批大小。
表3
表3包括与表1相同的训练参数。唯一的区别是在第二、第三和第四阶段执行前向传递仅需要F个数目的操作。如所示,在使用这种硬件时操作数目减少了36%。
表4
表4包括与表2相同的训练参数。这里,在第二阶段中执行前向传递需要F个数目的操作。使用这种类型的硬件可以将训练神经网络的操作数目减少56%。
以上参考图2和图3以及表1-4描述的示例和实施例示出了操作如何在训练神经网络的反向传递期间被减少。在一些实施例中,类似的技术可以被采用来减少在前向传递期间训练神经网络的操作的数目。图4图示了根据一些实施例的在前向传递期间减少操作的示例。具体地,图4图示了类似于图2中所示的示例操作的在前向传递中通过神经网络210处理的一批样本200。然而,在该示例中,前向传递管理器110被配置为以不同的方式处理一批样本200。特别地,前向传递管理器110通过特定层处理一批样本200中的每个样本,计算特定层的输出的损失值,并基于损失值确定要丢弃的输出的定义比例。
对于此示例,在第一层215a之后,神经网络210生成包括输出410a-m的一批输出405。在此,前向传递管理器110不会在一批输出405中丢弃任何输出410a-m。因此,输出410a-m被用作层215b的输入。在层215b使用输出410a-m作为输入生成输出之后,前向传递管理器110计算那些输出的损失并确定与最高损失值相关联的输出的定义比例(即丢弃与最低损失值相关联的输出),前向传递管理器110将定义比例的输出馈送给层215c进行处理。在此示例中,前向传递管理器110传递给层215c的输出是包括输出420a-k的一批输出415。前向传递管理器110对神经网络210中的后续层215重复这些操作。在层215n之后,神经网络针对该示例生成i个数目的输出。样本损失值225a-i是与那些输出相关联的损失值。神经网络的权重220a-n的反向传递和优化与上述参考图2描述的示例操作以相同的方式操作。
图4示出了与图2图示的示例实现相同结果的不同技术。与图2所示的前向传递中执行的操作数目相比,该技术减少了前向传递中所执行的操作数目,这使得在神经网络210的训练期间,相比上面参考图2所示的示例描述的技术甚至减少更多的操作。
图5图示了根据一些实施例的减少用于训练神经网络的操作的过程500。在一些实施例中,计算系统100执行过程500。过程500开始于510,使用从训练数据集中选择的多个训练数据作为用于训练神经网络的多个输入。神经网络包括多个权重。神经网络被配置为基于多个权重迭代地处理多个输入中的每个输入以生成多个输出。训练数据集中的每个训练数据包括输入数据集和预期输出数据集。参考图2作为示例,神经网络管理器105使用一批样本200作为训练神经网络210的输入。
接下来,在520,过程500基于多个输出和多个训练数据的预期输出数据集确定多个损失值。参考图2作为示例,在神经网络管理器105接收由神经网络210针对样本205a-m生成的输出之后,神经网络管理器105基于训练数据样本205a-m的输出和预期输出确定损失值230a-m。
然后,在530,过程500确定多个损失值的子集。参考图2作为示例,神经网络管理器105确定一批损失值225中具有最高值的定义比例的损失值(即丢弃一批损失值中具有最低值的定义比例的损失值)。在540,过程500基于多个损失值的子集确定平均损失值。参考图2作为示例,神经网络管理器105确定损失值230a-i的平均。
然后,在550,过程500基于平均损失值和神经网络中的多个权重计算梯度集合。参考图2作为示例,反向传递管理器115使用反向传播技术基于平均损失值计算梯度集合。最后,在560,过程500基于梯度集合调整神经网络中的多个权重。参考图2作为示例,优化管理器120使用随机梯度下降法基于该梯度集合调整神经网络210的权重220a-n。
上述技术可在配置用于处理神经网络的各种计算机系统中实现。图6描绘了示例计算机系统600的简化框图,可用于实现上述描述的技术。如图6所示,计算机系统600包括一个或多个处理器602,它们通过总线子系统604与多个外围设备通信。这些外围设备可能包括存储子系统606(例如,包括存储器子系统608和文件存储子系统610)和网络接口子系统616。一些计算机系统可能还包括用户接口输入设备612和/或用户接口输出设备614。
总线子系统604可以提供一种机制,让计算机系统600的各个组件和子系统按预期相互通信。虽然总线子系统604示意图显示为一条总线,但总线子系统的替代实施例可以使用多条总线。
网络接口子系统616可以用作计算机系统600和其他计算机系统或网络之间的数据通信接口。网络接口子系统616的实施例可以包括,例如,以太网、Wi-Fi和/或蜂窝适配器、调制解调器(电话、卫星、电缆、ISDN等)、数字用户线(DSL)单元等。
存储子系统606包括存储器子系统608和文件/磁盘存储子系统610。子系统608和610以及本文描述的其他存储器是非暂时性计算机可读存储介质的示例,可以存储提供本公开实施例功能的可执行程序代码和/或数据。
存储器子系统608包括若干存储器,包括用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)618和存储固定指令的只读存储器(ROM)620。文件存储子系统610可以为程序和数据文件提供持久(例如,非易失性)存储,并且可以包括磁性或固态硬盘驱动器、光盘驱动器以及相关的可移动介质(例如,CD-ROM、DVD、Blu-Ray等)、基于可移动闪存的驱动器或卡,和/或本领域已知的其他类型的存储介质。
应该理解的是,计算机系统600是示例性的,与系统600相比,许多其他配置的组件可能更多或更少。
图7示出了根据一些实施例的神经网络处理系统。在各种实施例中,可以在包括一个或多个神经网络处理器的硬件环境中实现和训练根据本公开的神经网络。神经网络处理器可以指各种图形处理单元(GPU)(例如用于处理Nvidia生产的神经网络的GPU)、现场可编程门阵列(FPGA)(例如,用于处理/>生产的神经元网络的FPGA),或各种特定应用集成电路(ASIC)或神经网络处理器,包括为神经网络计算优化的硬件架构。在这个示例环境中,一个或多个服务器702(可能包含上面图6所示的架构)可以通过网络701(例如交换机、路由器等)耦合到多个控制器710(1)-710(M)。控制器710(1)-710(M)也可以包括上图6所示的架构。每个控制器710(1)-710(M)可以耦合到一个或多个NN处理器,例如处理器711(1)-711(N)和712(1)-712(N)。NN处理器711(1)-711(N)和712(1)-712(N)可以包括为神经网络处理优化的功能处理块和存储器的各种配置,例如训练或推理。神经网络处理器针对神经网络计算进行了优化。服务器702可以用NN模型配置控制器710,并向模型输入数据,例如,可以由NN处理器711(1)-711(N)和712(1)-712(N)并行加载和执行。例如,模型可能包括如上的层和相关权重。NN处理器可以加载模型并应用输入来产生输出结果。例如,NN处理器还可以实现本文描述的训练算法。
其他示例实施例
在各种实施例中,本公开包括用于减少用于训练神经网络的操作的系统、方法和设备。本文的技术可以体现在存储计算机系统可执行程序的非暂时性机器可读介质中,该程序包括用于执行本文技术的指令集。在一些实施例中,系统包括处理器集和非暂时性机器可读介质存储指令,当由该处理器集中的至少一个处理器执行时,该指令会导致至少一个加工单元执行上述技术。在一些实施例中,非临时机器可读介质可以是存储器,例如,它可以耦合到一个或多个控制器或一个或多个人工智能处理器。
以下技术可以单独实施或以不同的组合实施,并且可以使用本文描述的其他技术进一步实施。
例如,在一个实施例中,本公开包括非暂时性机器可读介质,非暂时性机器可读介质存储有能够由设备的至少一个处理单元执行的程序。该程序包括用于使用从训练数据集中选择的多个训练数据作为用于训练神经网络的多个输入的指令集,其中神经网络包括多个权重,其中神经网络被配置为基于多个权重迭代地处理多个输入中的每个输入以生成多个输出,其中训练数据集中的每个训练数据包括输入数据集和预期输出数据集;基于多个输出和多个训练数据的预期输出数据集确定多个损失值;确定多个损失值的子集;基于多个损失值的子集确定平均损失值;基于平均损失值和神经网络中的多个权重计算梯度集合;以及基于梯度集合调整神经网络中的多个权重,其中基于多个损失值的子集确定平均损失值使得神经网络更快地达到收敛,其中根据基于多个损失值的子集确定的平均损失值计算梯度集合减少用以训练神经网络的操作数目。
在一个实施例中,确定多个损失值的子集包括:确定多个损失值中具有最高值的定义比例的损失值;以及将多个损失值中定义比例的损失值包括在多个损失值的子集中。
在一个实施例中,本公开还包括使用从训练数据集中选择的多组多个训练数据作为用于训练神经网络的多组多个输入,其中神经网络进一步被配置为针对多组多个输入中的每组多个输入基于多个权重迭代地处理多个输入中的每个输入以生成多组多个输出;针对多组多个输出中的每组多个输出,基于多个输出和多组多个训练数据中对应的多个训练数据的预期输出数据集确定多个损失值;针对多组多个输出中的每组多个输出,确定多个损失值的分布;确定分布的平均;以及确定分布中具有最高值的分布。
在一个实施例中,确定多个损失值的子集包括:确定多个损失值的特定分布;响应于确定多个损失值的特定分布小于分布的平均,将多个损失值中具有最高值的第一定义比例的损失值包括在多个损失值的子集中;响应于确定多个损失值的特定分布大于分布中具有最高值的分布,将多个损失值中具有最高值的第二定义比例的损失值包括在多个损失值的子集中;以及响应于确定多个损失值的特定分布大于或等于分布的平均并且小于或等于分布中具有最高值的分布,将多个损失值中具有最高值的第三定义比例的损失值包括在多个损失值的子集中。
在一个实施例中,第一定义比例大于第二比例和第三比例,并且其中第三比例大于第二比例。
在一个实施例中,累加器是第一累加器,值是第一值,和是第一和。在接收第二对非零值的第二乘积的多个累加器中的第二累加器执行将第二对非零值的第二乘积加到第二值以产生第二和以及在第三执行周期期间利用第二和对第二值更新。
在一个实施例中,多个训练数据是第一多个训练数据,是用于训练神经网络的第一多个输入,其中多个输出是第一多个输出,其中多个损失值是第一多个损失值,其中平均损失值是第一损失值,其中梯度集合是第一梯度集合。程序还包括用于如下操作的指令集:使用从训练数据集中选择的第二多个训练数据作为用于训练神经网络的第二多个输入,其中神经网络进一步被配置为基于多个权重迭代地处理第二多个输入中的每个输入以生成第二多个输出;基于第二多个输出和第二多个训练数据的预期输出数据集确定第二多个损失值;确定第二多个损失值的子集,其中第一多个损失值的子集中的损失值的数目与第一多个损失值中的损失值数目之间的第一比例小于第二多个损失值的子集中的损失值的数目与第二多个损失值中的损失值的数目之间的第二比例;基于第二多个损失值的子集确定第二平均损失值;基于第二平均损失值和神经网络中的多个权重计算第二梯度集合;基于第二梯度集合调整神经网络中的多个权重。
在一个实施例中,第二多个训练数据中的训练数据的数目大于第一多个训练数据中的训练数据的数目。
以上描述示出了本公开的各种实施例以及可以如何实现特定实施例的方面的示例。上述实施例不应被视为唯一的实施例,其提出是为了说明由以下权利要求书定义的特定实施例的灵活性和优点。基于上述公开内容和以下权利要求,在不偏离权利要求书所定义的本公开内容的范围的情况下,可以采用其他安排、实施方案、实现方式和等价物。

Claims (15)

1.一种机器可读介质,存储能够由设备的至少一个处理单元执行的程序,所述程序包括用于如下操作的指令集:
使用从训练数据集中选择的多个训练数据作为用于训练神经网络的多个输入,其中所述神经网络包括多个权重,其中所述神经网络被配置为基于所述多个权重迭代地处理所述多个输入中的每个输入以生成多个输出,其中所述训练数据集中的每个训练数据包括输入数据集和预期输出数据集;
基于所述多个输出和所述多个训练数据的所述预期输出数据集确定多个损失值;
确定所述多个损失值的子集;
基于所述多个损失值的所述子集确定平均损失值;
基于所述平均损失值和所述神经网络中的所述多个权重计算梯度集合;以及
基于所述梯度集合调整所述神经网络中的所述多个权重,
其中基于所述多个损失值的所述子集确定所述平均损失值使得所述神经网络更快地达到收敛,
其中根据基于所述多个损失值的所述子集确定的所述平均损失值计算所述梯度集合减少用以训练所述神经网络的操作数目。
2.根据权利要求1所述的机器可读介质,其中确定所述多个损失值的所述子集包括:
确定所述多个损失值中具有最高值的定义比例的损失值;以及
将所述多个损失值中所述定义比例的损失值包括在所述多个损失值的所述子集中。
3.根据权利要求1所述的机器可读介质,其中所述程序还包括用于如下操作的指令集:
使用从所述训练数据集中选择的多组多个训练数据作为用于训练所述神经网络的多组多个输入,其中所述神经网络进一步被配置为针对所述多组多个输入中的每组多个输入基于所述多个权重迭代地处理所述多个输入中的每个输入以生成多组多个输出;
针对所述多组多个输出中的每组多个输出,基于所述多个输出和所述多组多个训练数据中对应的所述多个训练数据的所述预期输出数据集确定多个损失值;
针对所述多组多个输出中的每组多个输出,确定所述多个损失值的分布;
确定所述分布的平均;以及
确定所述分布中具有最高值的分布。
4.根据权利要求3所述的机器可读介质,其中确定所述多个损失值的所述子集包括:
确定所述多个损失值的特定分布;
响应于确定所述多个损失值的所述特定分布小于所述分布的所述平均,将所述多个损失值中具有所述最高值的第一定义比例的损失值包括在所述多个损失值的所述子集中;
响应于确定所述多个损失值的所述特定分布大于所述分布中具有所述最高值的分布,将所述多个损失值中具有所述最高值的第二定义比例的损失值包括在所述多个损失值的子集中;以及
响应于确定所述多个损失值的所述特定分布大于或等于所述分布的所述平均并且小于或等于所述分布中具有最高值的分布,将所述多个损失值中具有所述最高值的第三定义比例的损失值包括在所述多个损失值的所述子集中。
5.根据权利要求4所述的机器可读介质,其中所述第一定义比例大于所述第二比例和所述第三比例,并且其中所述第三比例大于所述第二比例。
6.根据权利要求1所述的机器可读介质,其中所述多个训练数据是第一多个训练数据,是用于训练所述神经网络的第一多个输入,其中所述多个输出是第一多个输出,其中所述多个损失值是第一多个损失值,其中所述平均损失值是第一损失值,其中所述梯度集合是第一梯度集合,其中所述程序还包括用于如下操作的指令集:
使用从所述训练数据集中选择的第二多个训练数据作为用于训练所述神经网络的第二多个输入,其中所述神经网络进一步被配置为基于所述多个权重迭代地处理所述第二多个输入中的每个输入以生成第二多个输出;
基于所述第二多个输出和所述第二多个训练数据的所述预期输出数据集确定第二多个损失值;
确定所述第二多个损失值的子集,其中所述第一多个损失值的所述子集中的损失值的数目与所述第一多个损失值中的损失值数目之间的第一比例小于所述第二多个损失值的所述子集中的损失值的数目与所述第二多个损失值中的损失值的数目之间的第二比例;
基于所述第二多个损失值的所述子集确定第二平均损失值;
基于所述第二平均损失值和所述神经网络中的所述多个权重计算第二梯度集合;
基于所述第二梯度集合调整所述神经网络中的所述多个权重。
7.根据权利要求6所述的机器可读介质,其中所述第二多个训练数据中的训练数据的数目大于所述第一多个训练数据中的训练数据的数目。
8.一种方法,包括:
使用从训练数据集中选择的多个训练数据作为用于训练神经网络的多个输入,其中所述神经网络包括多个权重,其中所述神经网络被配置为基于所述多个权重迭代地处理所述多个输入中的每个输入以生成多个输出,其中所述训练数据集中的每个训练数据包括输入数据集和预期输出数据集;
基于所述多个输出和所述多个训练数据的所述预期输出数据集确定多个损失值;
确定所述多个损失值的子集;
基于所述多个损失值的所述子集确定平均损失值;
基于所述平均损失值和所述神经网络中的所述多个权重计算梯度集合;以及
基于所述梯度集合调整所述神经网络中的所述多个权重,
其中基于所述多个损失值的所述子集确定所述平均损失值使得所述神经网络更快地达到收敛,
其中根据基于所述多个损失值的所述子集确定的所述平均损失值计算所述梯度集合减少用以训练所述神经网络的操作数目。
9.根据权利要求8的方法,其中确定所述多个损失值的所述子集包括:
确定所述多个损失值中具有最高值的定义比例的损失值;以及
将所述多个损失值中所述定义比例的损失值包括在所述多个损失值的所述子集中。
10.根据权利要求8的方法,还包括:
使用从所述训练数据集中选择的多组多个训练数据作为用于训练所述神经网络的多组多个输入,其中所述神经网络进一步被配置为针对所述多组多个输入中的每组多个输入基于所述多个权重迭代地处理所述多个输入中的每个输入以生成多组多个输出;
针对所述多组多个输出中的每组多个输出,基于所述多个输出和所述多组多个训练数据中对应的所述多个训练数据的所述预期输出数据集确定多个损失值;
针对所述多组多个输出中的每组多个输出,确定所述多个损失值的分布;
确定所述分布的平均;以及
确定所述分布中具有最高值的分布。
11.根据权利要求10的方法,其中确定所述多个损失值的所述子集包括:
确定所述多个损失值的特定分布;
响应于确定所述多个损失值的所述特定分布小于所述分布的所述平均,将所述多个损失值中具有所述最高值的第一定义比例的损失值包括在所述多个损失值的所述子集中;
响应于确定所述多个损失值的所述特定分布大于所述分布中具有所述最高值的分布,将所述多个损失值中具有所述最高值的第二定义比例的损失值包括在所述多个损失值的子集中;以及
响应于确定所述多个损失值的所述特定分布大于或等于所述分布的所述平均并且小于或等于所述分布中具有最高值的分布,将所述多个损失值中具有所述最高值的第三定义比例的损失值包括在所述多个损失值的所述子集中。
12.根据权利要求11的方法,其中所述第一定义比例大于所述第二比例和所述第三比例,并且其中所述第三比例大于所述第二比例。
13.根据权利要求8所述的方法,其中所述多个训练数据是第一多个训练数据,是用于训练所述神经网络的第一多个输入,其中所述多个输出是第一多个输出,其中所述多个损失值是第一多个损失值,其中所述平均损失值是第一损失值,其中所述梯度集合是第一梯度集合,所述方法还包括:
使用从所述训练数据集中选择的第二多个训练数据作为用于训练所述神经网络的第二多个输入,其中所述神经网络进一步被配置为基于所述多个权重迭代地处理所述第二多个输入中的每个输入以生成第二多个输出;
基于所述第二多个输出和所述第二多个训练数据的所述预期输出数据集确定第二多个损失值;
确定所述第二多个损失值的子集,其中所述第一多个损失值的所述子集中的损失值的数目与所述第一多个损失值中的损失值数目之间的第一比例小于所述第二多个损失值的所述子集中的损失值的数目与所述第二多个损失值中的损失值的数目之间的第二比例;
基于所述第二多个损失值的所述子集确定第二平均损失值;
基于所述第二平均损失值和所述神经网络中的所述多个权重计算第二梯度集合;
基于所述第二梯度集合调整所述神经网络中的所述多个权重。
14.根据权利要求13的方法,其中所述第二多个训练数据中的训练数据的数目大于所述第一多个训练数据中的训练数据的数目。
15.一种系统,包括:
处理单元集合;以及
机器可读介质,存储有指令,当所述指令由所述处理单元集中至少一个处理单元执行时使所述至少一个处理单元:
使用从训练数据集中选择的多个训练数据作为用于训练神经网络的多个输入,其中所述神经网络包括多个权重,其中所述神经网络被配置为基于所述多个权重迭代地处理所述多个输入中的每个输入以生成多个输出,其中所述训练数据集中的每个训练数据包括输入数据集和预期输出数据集;
基于所述多个输出和所述多个训练数据的所述预期输出数据集确定多个损失值;
确定所述多个损失值的子集;
基于所述多个损失值的所述子集确定平均损失值;
基于所述平均损失值和所述神经网络中的所述多个权重计算梯度集合;以及
基于所述梯度集合调整所述神经网络中的所述多个权重,
其中基于所述多个损失值的所述子集确定所述平均损失值使得所述神经网络更快地达到收敛,
其中根据基于所述多个损失值的所述子集确定的所述平均损失值计算所述梯度集合减少用以训练所述神经网络的操作数目。
CN202280035750.5A 2021-05-17 2022-04-26 减少用于训练神经网络的操作 Pending CN117337437A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/322,194 2021-05-17
US17/322,194 US20220366236A1 (en) 2021-05-17 2021-05-17 Reducing operations for training neural networks
PCT/US2022/026239 WO2022245477A1 (en) 2021-05-17 2022-04-26 Reducing operations for training neural networks

Publications (1)

Publication Number Publication Date
CN117337437A true CN117337437A (zh) 2024-01-02

Family

ID=81748325

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280035750.5A Pending CN117337437A (zh) 2021-05-17 2022-04-26 减少用于训练神经网络的操作

Country Status (4)

Country Link
US (1) US20220366236A1 (zh)
EP (1) EP4341861A1 (zh)
CN (1) CN117337437A (zh)
WO (1) WO2022245477A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220383123A1 (en) * 2021-05-28 2022-12-01 Microsoft Technology Licensing, Llc Data-aware model pruning for neural networks
CN113191461B (zh) * 2021-06-29 2021-09-17 苏州浪潮智能科技有限公司 一种图片识别方法、装置、设备及可读存储介质

Also Published As

Publication number Publication date
WO2022245477A1 (en) 2022-11-24
US20220366236A1 (en) 2022-11-17
EP4341861A1 (en) 2024-03-27

Similar Documents

Publication Publication Date Title
CN117337437A (zh) 减少用于训练神经网络的操作
CN109784474B (zh) 一种深度学习模型压缩方法、装置、存储介质及终端设备
JP2022501677A (ja) データ処理方法、装置、コンピュータデバイス、及び記憶媒体
JP2020109647A (ja) 多層ニューラルネットワークモデルの学習及び適用方法、装置、並びに記憶媒体
Kozierski et al. Resampling in particle filtering-comparison
CN112099345B (zh) 一种基于输入磁滞的模糊跟踪控制方法、系统及介质
WO2020003434A1 (ja) 機械学習方法、機械学習装置、及び機械学習プログラム
US11620514B2 (en) Training artificial neural networks with reduced computational complexity
CN116029359A (zh) 计算机可读记录介质、机器学习的方法以及信息处理设备
TWI740338B (zh) 具有動態最小批次尺寸之運算方法,以及用於執行該方法之運算系統及電腦可讀儲存媒體
WO2022020006A1 (en) Compressing tokens based on positions for transformer models
CN117413281A (zh) 用于神经网络的数据感知模型修剪
CN117529730A (zh) 稀疏化用于神经网络的窄数据格式
CN116384471A (zh) 模型剪枝方法、装置、计算机设备、存储介质和程序产品
US20220222043A1 (en) Accelerating processing based on sparsity for neural network hardware processors
WO2022154879A1 (en) Efficient weight updates
CN114548360A (zh) 用于更新人工神经网络的方法
CN109491594B (zh) 矩阵求逆过程中优化数据存储空间的方法和装置
US20230334284A1 (en) Sparsifying vectors for neural network models based on overlapping windows
US20220027724A1 (en) Stash balancing in model parallelism
JP2023077818A (ja) 機械学習プログラム、機械学習方法、及び、情報処理装置
US20230281440A1 (en) Computer-readable recording medium having stored therein machine learning program, method for machine learning, and information processing apparatus
Situ et al. Machine learning distributions of quantum ansatz with hierarchical structure
WO2023224693A1 (en) Model customization of transformers for improved efficiency
KR20230133966A (ko) 인공 신경망을 훈련시키기 위한 시스템

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination