CN115335831A - 用于训练稀疏神经网络同时保持稀疏性的系统和方法 - Google Patents
用于训练稀疏神经网络同时保持稀疏性的系统和方法 Download PDFInfo
- Publication number
- CN115335831A CN115335831A CN202180024183.9A CN202180024183A CN115335831A CN 115335831 A CN115335831 A CN 115335831A CN 202180024183 A CN202180024183 A CN 202180024183A CN 115335831 A CN115335831 A CN 115335831A
- Authority
- CN
- China
- Prior art keywords
- parameters
- network
- subset
- neural network
- training
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/211—Selection of the most significant subset of features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Image Analysis (AREA)
- Filters That Use Time-Delay Elements (AREA)
Abstract
一种训练神经网络的计算机实现的方法。该方法包括通过选择神经网络的参数的第一子集并将网络参数的前向传递集合的所有其他参数设置为零来重复地确定网络参数的前向传递集合。然后,该方法根据网络参数的前向传递集合使用神经网络来处理训练数据项以生成神经网络输出,从神经网络输出和训练数据项来确定目标函数的值,选择网络参数的第二子集,确定包括参数的第一子集和第二子集的网络参数的后向传递集合,并且使用从目标函数的值确定的梯度估计来更新与网络参数的后向传递集合相对应的参数。
Description
对相关申请的交叉引用
本申请要求于2020年6月5日提交的美国临时申请第63/035,526号的优先权。在先申请的公开内容被认为是本申请的公开内容的一部分,并且通过引用并入本申请的公开内容中。
背景技术
本说明书涉及训练稀疏神经网络。
神经网络是采用一层或多层非线性单元来预测接收到的输入的输出的机器学习模型。一些神经网络除了输出层之外还包括一个或多个隐藏层。每个隐藏层的输出用作网络中的下一层——即,下一隐藏层或输出层——的输入。网络的每个层根据相应参数集的当前值从接收的输入生成输出。
发明内容
本说明书描述了被实现为在一个或多个位置中的一个或多个计算机上的计算机程序的系统和方法,其在始终遵守稀疏性要求的同时训练神经网络。特别地,在前向传递期间或在后向传递期间可以不使用完全密集的参数集来训练神经网络以更新网络参数。这允许更有效地训练神经网络,具有更低的计算负担和更低的能量消耗。这还允许在计算能力较低的设备上或在具有较少能量资源的设备上训练神经网络。此外,本文描述了使本方法适应于特定硬件配置以优化性能的特定实施例。
因此,在一个方面,一种训练神经网络的计算机实现的方法,所述神经网络具有多个网络参数并且被配置为处理输入数据项以生成神经网络输出,所述方法包括:通过从多个网络参数中选择参数的第一子集并将网络参数的前向传递集合的所有其他参数设置为零来重复地确定网络参数的前向传递集合;根据网络参数的前向传递集合使用神经网络来处理训练数据项,以生成神经网络输出,神经网络输出根据所述神经网络输出和训练数据项确定目标函数的值,从多个网络参数中选择参数的第二子集,确定包括参数的第一子集和参数的第二子集的网络参数的后向传递集合,并且使用根据目标函数的值确定的梯度估计,更新多个网络参数中与网络参数的后向传递集合相对应的参数。
可以通过选择可用参数的子集作为训练步骤的参数集来训练神经网络。未被选择的参数被设置为零,从而在前向训练传递上施加稀疏性准则。使用该参数集对训练数据执行的前向训练传递产生神经网络输出,该神经网络输出可以与训练数据一起使用以确定用于计算网络参数的更新的目标函数。如果以这种方式更新的参数集被限制为包括少于网络的所有参数,则还对更新步骤施加稀疏性约束。神经网络输出可以是训练数据的特征表示,例如,诸如向量的数值的有序集合,其将数据表示为多维特征空间中的点。
被选择包括在前向传递——即第一子集——中的参数可以是具有最大幅度——例如范数——的参数的百分比(或数量),例如具有最大范数的参数的最高百分比(例如10%)。例如通过目标函数——即第二子集——的梯度的反向传播在后向传递中更新的参数可以包括被选择用于前向传递的参数,并且另外包括具有其次最大幅度(例如范数)的另一百分比(或另一数量)的参数。例如,可以选择参数的另一个(例如,下一个)百分比(例如,10%)。在示例中,附加参数排他地是未被包括在用于前向传递的非零参数中的参数。为了维持由参数的选择施加的稀疏性约束,未被选择的参数不被更新。可以改变选择参数的子集的步骤的顺序,以及前向传递和后向传递通过神经网络的顺序(注意该方法重复)。
在示例实施方式中,神经网络包括多个神经网络层。在实施例中,方法还包括:逐个神经网络的层来选择参数的第一子集和参数的第二子集中的一个或两个。
当更新时,可以使用正则化函数(损失)来惩罚为前向传递选择的参数。也可以使用正则化函数(损失)来惩罚被选择用于更新的另外的参数。两个正则化函数可以是不同的函数。未被选择用于更新的参数不受这些正则化函数的影响。在一个示例中,被选择用于前向传递的参数被惩罚小于被选择用于更新的附加参数。这有助于缓解这样的情况,其中:在前向传递中尚未被选择为非零的、被选择用于更新的参数以使得其在下一个前向训练传递中被选择为非零的方式演变,仅在下一次被更新时失去重要性并且在随后的前向传递中从非零参数中排除。
在示例实施方式中,替选地或附加地,可以应用正则化项,该正则化项对第二子集的参数的惩罚比对多个网络参数中不在第一子集或第二子集中的参数惩罚得更多。
在示例实施方式中,替选地或附加地,可以应用正则化项,该正则化项对第一子集的参数的惩罚比对多个网络参数中不在第一子集中或第二子集中的参数惩罚得更多。
在示例实施方式中,目标函数包括正则化项,正则化项包括对第一子集和第二子集的参数的惩罚比对不在第一子集或第二子集中的任一个中的参数惩罚得更多的一个或多个项。
在示例实施方式中,不存在使用梯度估计来更新多个网络参数。
在示例实施方式中,选择第一子集和第二子集中的至少一个以满足预定稀疏性准则。一旦已经满足预定质量准则,就可以停止重复,并且此后,可以仅使用多个网络参数的最后选择的参数的第一子集作为多个参数的非零参数来训练神经网络。
训练可以在专用训练硬件上执行。这样的硬件可以包括例如用于接收训练数据、训练参数或其索引并且用于以高通信速度将训练的任何结果传送到通信地连接的处理器的接口,并且也可以包括矩阵乘法硬件和/或本地存储器。一个示例的专用硬件包括被配置用于高效矩阵乘法运算和/或乘法和累加运算的布置。
不需要专用训练硬件的特定架构的任务可以替代地在通用处理器上执行,该通用处理器可以与专用训练硬件一起形成训练系统的一部分,但是与训练硬件分离。要在前向传递期间保持非零或要包括在参数更新中的参数的选择可能需要将整个参数集或至少一层的完整参数集被保存在存储器中。如果在专用训练硬件中执行,例如,如果训练硬件的本地存储器不足以存储神经网络的完整参数集,则这可能损害训练速度并降低稀疏训练的益处。通过在专用训练硬件外部的处理器中识别要被保留为非零参数或待用于参数更新的参数,专用训练硬件可被用于训练步骤。因此,不需要在任何一个时间将多个网络参数的完整集合加载到神经网络训练硬件中。相反,该方法可以被拆分,使得确定参数子集的存储器密集型操作由通用处理器执行,用于竞争神经网络或逐层,同时降低的存储器稀疏前向和/或后向计算传递由专用于该任务的训练硬件实现。
在示例实施方式中,从不同时将多个网络参数加载到神经网络训练硬件中,即,从不需要神经网络训练硬件在任何给定时间点加载所有多个网络参数。
在示例实施方式中,神经网络包括多个神经网络层。然后,该方法可以包括在通用处理器上一次一个神经网络层地执行重复的步骤。
在一个示例中,在每个训练传递之后重新确定第一子集和第二子集。在其他示例中,如果需要,在重新考虑和更新子组的组成之前,可以使用相应的第一和第二子组中的相同参数来执行多个训练传递。
在示例中,在通用处理器上执行重复的步骤之前,在神经网络训练硬件上多次执行重复的步骤。
在示例中,在重复该方法的同时,在通用处理器上并且在神经网络训练硬件上并行地执行重复的步骤。
神经网络可以被配置为接收任何种类的数字数据输入并基于输入生成任何种类的分数、分类或回归输出。
如本文所述的训练方法和系统可以被用于训练包括一个或多个前馈、递归、自回归和/或卷积层的神经网络。
输入数据项可以包括例如图像像素形式的图像数据(这里包括视频数据)、例如表征音频波形的数字数据形式的音频数据、或者自然语言的文本数据,例如单词或单词片段(或其表示,例如嵌入)。输入数据项可以包括顺序数据,例如表示数字化音频的数据样本序列或表示为像素序列的图像,或由图像序列表示的视频,或表示自然语言中的单词序列的序列。这里,“图像”包括例如雷达或LIDAR图像。(在整个说明书中,使用神经网络处理图像是指使用神经网络处理与图像的像素相关联的强度值)。
在一些实施方式中,神经网络输出可以包括特征表示,然后可以进一步处理该特征表示以生成系统输出。例如,系统输出可以包括用于将输入数据项分类为多个类别(例如图像、视频或音频类别)之一的分类输出,例如表示输入数据项或输入数据项的对象/元素属于(多个数据项类别中的)类别的估计可能性的数据。或者系统输出可以是用于将输入数据项的区域分割成例如在图像或视频中表示的对象或动作的分割输出,例如,对于每个像素,输出可以包括分配的分割类别或像素属于分割类别——诸如在图像或视频中表示的对象或动作——的概率。或者,系统输出可以是强化学习系统中的动作选择输出,例如用于控制在现实世界环境中操作的机械代理以执行任务。
在一些其他实施方式中,网络输出可以包括相同或不同类型的另一数据项。例如,输入数据项可以是图像(例如,图像像素)、音频(例如,数字化波形)或文本;并且输出数据项可以是图像、音频或文本的修改版本,例如改变输入数据项或输入数据项内的一个或多个对象或元素的样式、内容、属性、姿势等;或者填充输入数据项的(丢失)部分;或者预测数据项的另一版本或者视频或音频数据项的扩展;或者提供输入数据项的上采样(或下采样)版本。例如,输入数据项可以是第一语言的文本的表示,并且输出数据项可以是文本到另一种语言的翻译,或者是文本到另一种语言的翻译的分数。在另一示例中,输入图像可以被转换为视频或线框模型或CAD模型(即,转换为表示这些的输出数据项);或者可以将2D的输入图像转换为3D;或反之亦然。或者,输入数据项可以包括从口头话语或口头话语序列导出的特征或从其导出的特征,并且网络系统输出可以包括一组文本片段中的每一个的分数,每个分数表示该文本片段基于特征是正确转录的估计可能性。在另一示例中,输入数据项可以是图像(例如,图像像素)、音频(例如,数字化波形)或文本;并且输出数据项可以是不同格式的输入数据项的表示,即输入可以是图像(例如图像像素)、音频(例如数字化波形)或文本中的一个;以及输出是这些中的另一个。例如,神经网络可以将文本转换为语音,或者反之亦然以用于语音识别,或者将图像(或视频)转换为文本(例如,用于字幕)。当生成包括顺序数据的输出时,神经网络可以包括一个或多个卷积层,例如扩张卷积层。
在一些其他实施方式中,网络输出可以包括用于选择要由代理——诸如环境中的机器人或其他机械代理,例如现实世界环境或现实世界环境的模拟——执行的动作的输出。输入数据项可以是环境的观察,例如包括环境的图像(或视频)观察。
在一些实施方式中,神经网络被配置为接收输入数据项并根据网络参数处理输入数据项以生成输入数据项的特征表示。通常,数据项的特征表示是将数据项表示为多维特征空间中的点的数值(例如,向量)的有序集合。换句话说,每个特征表示可以包括输入数据项的多个特征中的每个特征的数值。如前所述,神经网络可以被配置为接收任何种类的数字数据输入作为输入,并从输入生成特征表示。例如,输入数据项(其也可以被称为网络输入)可以是图像、文档的部分、文本序列、音频数据、医疗数据等。
神经网络可以具有适合于由神经网络处理的网络输入的类型的任何架构。例如,当网络输入是图像时,神经网络可以是卷积神经网络或视觉变换器神经网络(arXiv:2010.11929)。例如,特征表示可以是神经网络的最终卷积层的输出。替选地,输入数据项可以包括时间序列数据,例如视频图像帧、由机械代理的一个或多个传感器捕获的环境观察。
一旦被训练,特征表示可以(直接)用于任务,或者可以向另一系统提供输入,例如,用于对网络输入执行机器学习任务。示例任务可以包括基于特征的检索、聚类、近似重复检测、验证、特征匹配、域适配、基于视频的弱监督学习;以及对于视频,例如跨视频帧的对象跟踪,由视频中描绘的实体执行的姿势的姿势识别。例如,基于特征的检索、聚类和近似重复检测可以涉及比较来自不同输入数据项的特征表示;如前所述,输入数据项可以包括例如图像(例如图像像素)、音频(例如数字化波形)或文本。
如果神经网络的输入是图像或已经从图像中提取的特征,则由神经网络为给定图像生成的输出可以是一组对象类别中的每一个的分数,其中每个分数表示图像包含属于该类别的对象的图像的估计可能性。
作为另一示例,如果对神经网络的输入是互联网资源(例如,网页)、文档或文档的部分或从互联网资源、文档或文档的部分提取的特征,则由神经网络针对给定互联网资源、文档或文档的部分生成的输出可以是一组主题中的每个主题的分数,其中每个分数表示互联网资源、文档或文档部分与主题有关的估计可能性。
作为另一示例,如果神经网络的输入是特定广告的闪现上下文的特征,则由神经网络生成的输出可以是表示特定广告将被点击的估计可能性的分数。
作为另一示例,如果对神经网络的输入是针对用户的个性化推荐的特征,例如,表征推荐的场境的特征,例如,表征用户采取的先前动作的特征,则由神经网络生成的输出可以是一组内容项中的每一个的分数,其中每个分数表示用户将有利地响应被推荐该内容项的估计可能性。
作为另一示例,如果对神经网络的输入是一种语言的文本序列,则由神经网络生成的输出可以是另一种语言的文本片段集合中的每一个文本片段的分数,其中每个分数表示另一种语言的文本片段是输入文本到另一种语言的适当翻译的估计可能性。作为另一示例,如果对神经网络的输入是表示口头话语的序列,则由神经网络生成的输出可以是文本片段集合中的每一个文本片段的分数,每个分数表示该文本片段是话语的正确转录的估计可能性。
在另一方面,提供了一种系统,包括一个或多个计算机和存储指令的一个或多个存储设备,所述指令在由所述一个或多个计算机执行时使所述一个或多个计算机:确定神经网络的网络参数的前向传递集合,所述神经网络具有多个网络参数并且被配置为通过从多个网络参数中选择参数的第一子集并将网络参数的前向传递集合的所有其他参数设置为零来处理输入数据项以生成神经网络输出;根据网络参数的前向传递集合使用神经网络来处理训练数据项以生成所述神经网络输出;从神经网络输出和训练数据项确定目标函数的值;从多个网络参数中选择参数的第二子集;确定包括参数的第一子集和参数的第二子集的网络参数的后向传递集合;以及使用从目标函数的值确定的梯度估计,更新多个网络参数中与网络参数的后向传递集合相对应的参数。
在示例实施方式中,所述系统还包括处理器和与处理器通信连接的专用训练硬件,其中,指令中的至少一个在由专用训练硬件执行时使专用训练硬件执行处理训练数据项、确定目标函数和更新多个网络参数中的参数中的至少一个,并且指令在由处理器执行时,使处理器选择多个网络参数中的用于包括在第一子集中的参数和多个网络参数中的用于包括在第二子集中的参数中的至少一个。
在示例实施方式中,指令在由处理器执行时使处理器确定多个网络参数中的最大参数的集合。
在另一方面,提供了一种系统,其包括一个或多个计算机和存储指令的一个或多个存储设备,所述指令在由一个或多个计算机执行时使一个或多个计算机执行相应的上述方法中的任何方法的操作。
在另一方面,提供了计算机可读指令或存储计算机可读指令的一个或多个计算机存储介质,当由一个或多个计算机执行时,使得所述一个或多个计算机实现任何一个权利要求的任何上述方法或任何上述系统。
在另一方面,提供了计算机可读指令或存储计算机可读指令的一个或多个计算机存储介质,当由一个或多个计算机执行时,使得一个或多个计算机实现根据本文描述的任何方法训练的稀疏神经网络,稀疏神经网络被配置为在输入层处接收输入参数集合,基于输入参数集合生成推断,并在输出层处输出推断。
在另一方面,提供了一种方法,包括实现根据本文描述的任何方法训练的稀疏神经网络,该稀疏神经网络被配置为在输入层处接收输入参数集合,基于输入参数集合生成推断,并在输出层处输出推断。
在另一方面,提供了一种系统,包括一个或多个计算机和存储指令的一个或多个存储设备,所述指令在由一个或多个计算机执行时使一个或多个计算机实现根据本文描述的任何方法训练的稀疏神经网络,所述稀疏神经网络被配置为在输入层处接收输入参数集合,基于输入参数集合生成推断,并在输出层处输出推断。
在所附权利要求中阐述了本说明书的主题的某些新颖方面。
本说明书中描述的主题可以在特定实施例中实现,以便实现以下优点中的一个或多个。
增加大小的神经网络可能显著增加其训练中涉及的计算负担,而不管神经网络一旦被训练后的密度如何。特别地,如果训练涉及处理完全密集的矩阵,则训练中涉及的计算负担可能变得压倒性的,并且可能限制可以在给定的计算设备上训练的神经网络的大小。用于训练神经网络的设备的能量消耗也随着网络大小的增加而增加。通过在整个训练中保持稀疏性,与训练练习相关联的能量消耗是有限的,使得在具有有限能量预算的设备中的训练更可行。
本文描述的方法允许训练和运行大小超过一些设备的当前计算限制的神经网络。通过在整个训练过程中保持稀疏性,需要在存储器中保持的矩阵的大小是有限的,从而提供对存储器空间的更有效的使用。通过允许在计算能力较低的设备上或在具有较小能量资源的设备上进行训练,训练可以例如在由特定用户拥有的计算设备上在能力较低的处理硬件(例如,仅具有CPU的消费者硬件,诸如移动电话和平板计算机)上进行。以这种方式,训练可以对用户被个性化。在这些计算环境中,神经网络可以在硬件上本地实现,这意味着网络可以在没有到数据中心的网络连接的情况下执行,而不使用像GPU的专用并行处理硬件,并且不需要专用硬件。例如,这可以允许在手持移动设备上执行甚至实时的音频波形生成,例如,用于文本到语音应用。它也允许在具有显著延迟要求的环境中实现更复杂和更复杂的神经网络。例如,通过将语言识别神经网络放置在用户设备上,可以训练这样的神经网络以识别个体用户的口语。使用大型稀疏神经网络还允许提高预测准确度。
此外,本文描述的方法在实现训练方法的附加编程努力方面是直接的,并且与一些现有机器学习框架中的部署兼容。
在附图和以下描述中阐述了本说明书中描述的主题的一个或多个实施例的细节。根据说明书、附图和权利要求书,主题的其他特征、方面和优点将变得显而易见。
附图说明
图1A示出训练神经网络的计算机实现的方法的示例。
图1B示出在图1A的方法中使用的网络参数A、B和C。
图2是用于训练神经网络的示例系统的图。
图3示出用于视觉任务的稀疏训练的方法的性能。
图4图示用于语言任务的稀疏训练的方法的性能。
在附图中,类似的组件或特征可以具有相同的附图标记。
具体实施方式
本说明书描述了一种方法,该方法可以被用于训练神经网络,同时在从神经网络的输入到输出的整个过程中——即,在通过网络的前向后向训练过程中,反之亦然——保持稀疏性,以执行梯度下降训练。该方法的一些实施方式特别适合于硬件实施方式。
在一个实施例中,神经网络包括多个层,其中一些层可以是隐藏层。每个层接收输入,例如输入向量。输入的值也可以被称为激活值。在层L是神经网络的第一层的情况下,激活值是神经网络的输入。在一个示例中,输入向量可以由具有预定义顺序的元素组成(例如,它们可以指示文本段落中的相应文本字符,或者描述连续时间的环境的数据)。在层L是神经网络的隐藏层的情况下,激活值是来自先前(即,L-1)层的输出。神经网络系统可以包括用于神经网络的每个层的激活引擎。激活引擎被配置为使用由层接收的输入和层L的参数矩阵,以使用激活函数生成多个输出值。多个输出值形成层L+1的激活值,或者如果神经网络层是神经网络的最后一层,则形成神经网络系统的输出。
由各个激活引擎占据的计算足迹和在生成输出值时消耗的能量取决于需要执行的计算的复杂性。计算复杂度进而取决于所讨论的层中使用的参数的数量。当神经网络和神经网络层的大小增加时,所产生的计算足迹和相关联的功耗增加。
在稀疏神经网络中,神经网络(并且因此还有各个层)的大量参数为零,从而限制了计算足迹以及与生成网络/网络层的输出值相关联的功率要求。当神经网络的大小增加时,稀疏神经网络通过允许放大同时避免或至少减轻计算足迹和功耗的这种增加,在帮助改善性能方面变得越来越重要。
即使完全训练的神经网络可以具有稀疏参数集,任何这样的神经网络的标准训练也使用更密集或完全密集的参数集。可能潜在地限制神经网络的使用的计算足迹同样限制了可以用给定的一组计算资源训练的神经网络的大小。
为了避免或至少减轻这些问题,期望神经网络的训练能够:
1.在训练完成之后产生期望的权重稀疏性Sfinal的网络。
2.相对于训练固定(即静态)拓扑稀疏模型,具有最小的计算和存储器开销。
本文描述了一种解决方案,其满足第一准则和第二准则两者,并且针对给定数量的训练浮点运算(FLOP)实现高准确度,同时易于集成到现有框架中。
目的是在整个训练过程中保持网络权重稀疏性S∈[0,1],其中S表示为零的权重的比例(D=1一S是具有非零权重的网络的对应比例)。为此,在每个时间点,定义了参数化αt,即保留来自的权重子集并用零替换其余权重的参数化。因此,在实施方式中:
其中,At定义在时间t被认为是“活动的”,即,非零的,参数索引的稀疏子集。At的成员资格按幅度被限制为权重(来自θt)的前D比例,即通过TopK(D)操作选择,即:
在一个实施方式中,每层执行TOPK操作。在另一实施方式中,它是对完整的“平坦化”的参数集执行的。逐层修剪提供了避免将整个层的权重设置为零的优点。
根据权重的幅度选择权重提供了对哪些参数对定义密集参数化函数f(θ,x)的行为贡献最大的有效但廉价的估计。理想地,f(α,x)应当是使用固定稀疏比例S的α的f(θ,x)的最佳近似。为了获得对实施例中使用的TopK近似的性能的洞察,考虑围绕θ对于f(α,x)的泰勒级数展开,其中G是梯度向量,并且H是Hessian矩阵:
虽然能够计算高阶导数将提供更准确的灵敏度信息,但是对于非常大的现代网络,这样做在计算上是困难的。然而,由于误差中的每个项与(α-θ)的幂成比例,所以在没有关于高阶导数的任何信息的情况下,最小化(α-θ)的范数可能是适当的。这对应于上面讨论的选择过程。
由于在学习期间在前向传递和后向传递两者中使用at,所以仅引起稀疏模型的推断和后向传播计算成本。然而,αt最好被认为是密集参数化的“临时视图”,θt。也就是说,更新被应用于θ而不是α,并且通过拾取最大(按幅度)D比例的权重的相同确定过程,从θ周期性地重构αt。
损耗相对于稀疏αt参数化的梯度不需要导致稀疏梯度向量;通常,预期梯度是完全密集的。这是因为相对于αt的0条目,梯度本身不需要为零。因此,这将不能实现训练方法相对于训练固定(即静态)拓扑稀疏模型具有最小计算和存储器开销的期望特性。
为了避免在实施方式中评估密集梯度,仅针对由具有来自集合Bt的索引的参数组成的坐标块计算梯度,其中:
这里,根据定义,B是A的超集并且包含对应于α的非零条目的索引以及对应于密集参数化θ的其次最大M比例的条目(按幅度)的附加索引集。更新权重的最大D+M比例使得这将更有可能导致活动的前D比例权重的排列,并且因此允许学习过程更有效地探索不同的掩码。1-D-M个单元的这种有效稀疏性在本说明书中被称为后向稀疏性。
在初始化时的实现中,A包括来自新初始化的θ0的权重索引的随机子集组成。随着学习的进行,由于对B的更新来自主要损失和辅助正则化项(稍后描述)二者,所以该集合将改变和演变对于期望的函数近似最有用的权重和拓扑。
学习方法有两个阶段。在第一探索阶段中,在每次迭代,选择不同的活动集A及其对应的α,并且使用f(α,x)的损失以及在实施方式中的正则化项获得的梯度来执行对的θ一个更新步骤。在第二细化阶段中,活动集A有效地变得固定,因为已经自己建立了非零权重的稳定模式,该非零权重然后经历微调到它们的最佳值。
在第一阶段中,对集合B\A中的“附加”坐标的更新(A在B中的相对补集,即B-A)允许通过改变权重集合来进行探索,该探索将在下一次迭代中在活动集A中结束(并因此在α中使用)。在第二阶段中,这些“附加”更新变得越来越不重要,并且最终将被有效地忽略,因为它们将不会改变A,并且因此对于前向或后向传递将不会被反映在α中。从θ集合中挑选参数的不同子集的探索阶段使得该方法与简单地将固定随机稀疏模式施加在网络上非常不同。
上述方法可以导致富者愈富现象,其中如果其他人接收不到足以使其范数超过临界阈值的权重更新,则仅使用初始化时随机选择的权重。这在高稀疏性水平下可能是特别的风险。为了克服这一点,可以惩罚集合B中的权重的幅度,而不惩罚既未使用也未当前更新(集合C)的那些权重。这样做的净效果是减少有效权重的幅度,使得在下一次迭代中,算法更可能考虑集合A和B的成员资格的新项。
对于高稀疏性设置,可能发生B\A和A中的幅度非常接近的权重之间的摇晃效应,导致学习减慢。因此,在一个实施例中,B\A被惩罚超过A,以增加单元从B\A移动到A所需的更新的临界强度。该惩罚的规模被启发式地选择为与D成反比,因为该效应对于D<<1更重要。
在一个实施方式中,该惩罚被表示为L2正则化,具有与上述相似的单位分割。具体地:
图1A示出训练神经网络的计算机实现的方法100的示例,该神经网络具有多个网络参数并且被配置为处理输入数据项x以生成神经网络输出y。图1B示出在方法100中使用的网络参数A、B和C。这些参数仅出于说明性目的而示出,并且可操作的神经网络通常将具有非常大量的参数,诸如数千个、数百万个或甚至数十亿个参数。
在第一步骤110中,通过从多个网络参数C中选择参数的第一子集并将网络参数的前向传递集合A的所有其他参数设置为零来确定网络参数的前向传递集合A。在一个实施例中,通过选择预定百分比的多个网络参数C来执行该选择,使得网络参数集合A满足预定的稀疏性准则S。在一个实施例中,该选择包括选择具有最高幅度的网络参数。在图1B中,这些是顶行中最左边的两个参数以及下行中的第二和第三参数。顶行中的最右边的参数是具有其次最高幅度的参数,但是该参数被设置为零以满足稀疏性准则。
在第二步骤120中,根据网络参数的前向传递集合A使用神经网络来处理训练数据项x以生成神经网络输出y。
在第三步骤130中,从神经网络输出y和训练数据项x确定目标函数的值。在实施例中,这可以包括以已知方式确定损失函数。
在步骤140中,从多个网络参数C中选择参数的第二子集B。如上所述,在实施例中,选择参数的第二子集B包括从具有剩余参数的最大幅度的参数(B相对于C的相对补集)中选择多个参数。进行该选择,使得如果所有其他参数被设置为零,则第二子集的参数与前向传递子集的参数一起满足第二稀疏性要求。在图1B所示的示例中,顶行中的最右边的参数以这种方式被选择为第二子集。
在步骤150中,确定包括参数的第一子集和参数的第二子集的网络参数的后向传递集合。在步骤160中使用该后向传递集合来更新多个网络参数中与网络参数的后向传递集合相对应的那些参数。更新使用根据目标函数的值确定的梯度估计,即更新包括目标函数的估计梯度。这可以根据上面的等式(5)来完成。
重复方法100的步骤,直到满足中断准则(或结束准则)。这样的准则可以包括至少预定数量的训练步骤或训练完成的确定(例如,神经网络至少根据最小所需性能准则执行的确定)。
图2是根据本文描述的技术的用于训练神经网络的示例系统200的图。在一个应用中,系统200可以在并行处理硬件210上实现神经网络训练功能。训练可以基于训练数据项x。这些可以从位于系统200外部的训练数据源提供给系统200的输入220。如果需要,输入220进而可以缓冲训练数据项x并将它们提供给并行处理硬件210。可替代地,训练数据可以例如从形成系统200的一部分的数据库存储在并行处理硬件210上并提供给并行处理硬件210。
使用并行处理硬件允许前向和后向传递操作中的一些矩阵操作由所有可用处理单元并行执行,并且其他矩阵操作可以由可用处理单元的子集并行执行。在一个实施例中,并行处理硬件210包括用于存储网络参数C的最新集合的存储器230。在该实施例中,并行处理硬件210执行两个选择步骤110或140中的一个或两个,并以上述方式使用所选择的参数集。
在替代实施例中,系统200包括另外的处理器240。该处理器可以是通用处理器/CPU。在实施例中,处理器240被配置为例如与由并行处理硬件210执行的训练步骤并行地执行选择110或140中的一个或两个,并且分别将前向传递参数集合A或后向传递参数集合B中的至少一个传递到并行处理硬件210。以这种方式,并行处理硬件220不需要执行这些选择步骤中的一个或两个。因此,该实施例防止了并行处理硬件210将密集参数集C存储在存储器中的需要。处理器240可以包括其自己的存储器250,例如处理器的堆,以存储当前“密集”的参数集C。
并行处理硬件210还被配置为一旦确定了相关参数更新Δ,就将参数更新Δ报告给处理器240。处理器240进而使用Δ更新参数C,并且更新A和B。
系统200还包括一个或多个存储器260,其中存储用于并行处理硬件210和处理器240(当存在时)中的任一者或两者的可执行指令。一个或多个存储器260可以是一个或多个非易失性存储器。并行处理硬件210和处理器240(当存在时)可以被配置为通过执行可执行指令来实现本文描述的方法。该系统还可以包括输出270,一旦训练完成,就通过该输出270输出训练后的权重θ。也就是说,一旦训练已经完成,就可以输出经训练的稀疏神经网络,例如用于在外部设备上实现。可替代地,一旦已经训练了稀疏神经网络,就可以由系统200实现稀疏神经网络,以生成推断并输出推断(例如,通过输出270)。
在一些实施方式中,可以减轻每次迭代在前向传递中执行TOP-K运算的成本。该操作不需要每次迭代被执行,并且可以每N个训练步骤被执行一次,其中N>1、N>10或N>50,同时提供同等结果。这样的实现可以仅采用索引和权重的偶尔通信,并且可以在CPU上并行计算TOP-K运算,因为它不需要任何数据或前向传递。加速器(例如,并行处理硬件210)可以仅知道实际稀疏权重,并且可以被完全稀疏地实现。
下面的表1示出了根据利用如上参考图1A所述的更新执行的方法的神经网络训练的结果,该更新针对每个训练步骤(N=1)和仅针对每100个训练步骤在各种前向传递和后向传递稀疏度下执行:
表1
可以看出,对于N=1和N=100,实现了同等的性能。通过选择N>1,可以减轻更新前向传递和后向传递参数集的开销。此外,在如上所述由通用处理器220确定参数集的实施例中,当并行处理硬件210执行训练步骤时,使用N>1减轻了与这些集的更新相关联的延迟。
如本文所述的训练稀疏神经网络的方法可以对于例如图像分类任务提供与实例化密集参数然后修剪的方法同等的性能,但是具有神经网络在整个训练过程中保持稀疏的优点,从而便于在给定硬件上训练更大的模型。此外,在高稀疏水平下,所描述的方法可以比现有技术的稀疏方法更好地执行,Evci等人的“Rigging the lottery:Making AllTickets Winners”,arXiv:1911.11134,“RigL”,如图3所示。
图3涉及训练ResNet-50,He等人,arXiv:1512.03385,以使用来自ImageNet数据库,Russakovsky等人,arXiv:1409.0575,的图像执行图像分类。在图3中,y轴示出百分比前1准确度,即具有最高概率的预测准确度,并且x轴示出训练所需的FLOPS,作为密集模型所需的FLOPS的分数。曲线300和302示出RigL的性能;曲线310和312示出本文描述的方法的性能。曲线302和312用于98%(前向)稀疏性,并且曲线300和310用于99%(前向)稀疏性。所描述的方法以少量额外计算为代价执行得更好,所述额外计算为每次迭代在前向传递中执行TOP-K运算的代价(其可如先前所描述减轻)。此外,所描述的方法与现有的梯度计算兼容。
图4涉及训练基于Transformer-XL的语言模型(Dai等人,arXiv:1901.02860)以使用enwik8数据集(Mahoney,“Large text compression benchmark”2011))执行数据压缩任务。在图4中,y轴示出用于表示数据的每字符比特(BPC),并且x轴示出高达80%(0.8)的后向稀疏性。曲线400、402、404分别示出0.8、0.9和0.95的前向稀疏性,并且点410示出密集模型。在高达约80%稀疏性的情况下获得与密集模型相当的结果。
假设学习动态将学习分成探索阶段和细化阶段,在探索阶段中发现最佳掩模,并且在细化阶段中细化掩模的参数。移除所有探索单元(B\A)对性能非常有害,但是在一次试验中,用这些单元训练仅5000步显著提升了性能,并且在16000次训练步骤时,获得了所述方法的大部分益处。因此,似乎对于训练的后半部分,梯度微调学习掩模的性能,其或多或少保持恒定。集合C单元是储存器单元,在初始化时既不用于前向传递也不用于后向传递。从测试中还可以看出,这些单元中的仅约5%曾经被使用,并且这些单元中的大部分变化发生在训练开始时。
集合B被定义为在正向传递集合A中使用的那些单元加上按幅度的其次最高单位集合。理论上,这些额外的单元可以被随机采样,以探索更多的空间。然而,虽然这种随机探索对于小于90%的前向稀疏性可能是有益的,但是对于更高水平的稀疏性是有害的。
仅作为示例,下面的算法示出与使用密集内核的机器学习优化器兼容的方法的实现方式,但是在其他实现方式中,可以使用稀疏内核:
//First perform a Top-K(首先执行Top-K)
dense_params=initialise()
fwd_params=TopK(dense_params,X%)
bwd_params=TopK(dense_params,Y%)
just_bwd_set=set(bwd_params)-set(fwd_params)
...
//Output with just the TopK params(仅利用TopK参数输出)
output=model(fwd_params,input)
loss=loss_fn(output)
//Exploration L2 Loss(探索L2损失)
loss+=l2(fwd_params)+l2(just_bwd_set)/(X/100)
...
//Update only the bwd params(仅更新bwd参数)
bwd_params=bwd_params-grad(loss,bwd_params)
在这里讨论的系统利用潜在地包括个人信息的数据的情况下,可以在存储或使用该数据之前以一种或多种方式(诸如聚合和匿名化)处理该数据,使得不能从存储或使用的数据确定这样的个人信息。此外,这样的信息的使用可以使得不能从使用这样的信息的系统的输出确定个人可识别信息。
对于要被配置为执行特定操作或动作的一个或多个计算机的系统,意味着系统已经在其上安装了软件、固件、硬件或它们的组合,这些软件、固件、硬件或它们的组合在操作中使系统执行操作或动作。对于要被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括当由数据处理装置执行时使装置执行操作或动作的指令。
本说明书中描述的主题和功能操作的实施例可以在数字电子电路中、在有形体现的计算机软件或固件中、在计算机硬件中实现,包括本说明书中公开的结构及其结构等同物,或者它们中的一个或多个的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即,在有形非暂时性程序载体上编码的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。可替代地或另外地,程序指令可以被编码在人工生成的传播信号上,例如,机器生成的电、光或电磁信号,其被生成以对信息进行编码以传输到合适的接收器装置以供数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备或它们中的一个或多个的组合。然而,计算机存储介质不是传播信号。
术语“数据处理装置”包括用于处理数据的所有类型的装置、设备和机器,包括例如可编程处理器、计算机或多个处理器或计算机。该装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
计算机程序(其也可以被称为或描述为程序、软件、软件应用、模块、软件模块、脚本或代码)可以以任何形式的编程语言编写,包括编译或解释语言,或者声明或过程语言,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程或适用于计算环境的其他单元。计算机程序可以但不必对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中,存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。计算机程序可以被部署为在一个计算机上或在位于一个站点处或分布在多个站点上并通过通信网络互连的多个计算机上执行。
如本说明书中所使用的,“引擎”或“软件引擎”是指提供与输入不同的输出的软件实现的输入/输出系统。引擎可以是编码的功能块,诸如库、平台、软件开发工具包(“SDK”)或对象。每个引擎可以在包括一个或多个处理器和计算机可读介质的任何适当类型的计算设备上实现,例如服务器、移动电话、平板计算机、笔记本计算机、音乐播放器、电子书阅读器、膝上型或台式计算机、PDA、智能电话或其他固定或便携式设备。另外,引擎中的两个或更多个可以在相同的计算设备上或在不同的计算设备上实现。
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))执行,并且装置也可以被实现为专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))。例如,过程和逻辑流程可以由图形处理单元(GPU)执行,并且装置也可以被实现为图形处理单元(GPU)。
适合于执行计算机程序的计算机包括,例如,可以基于通用或专用微处理器或两者,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行或运行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘,或者可操作地耦合以从一个或多个大容量存储设备接收数据或将数据传输到一个或多个大容量存储设备或两者。然而,计算机不需要具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备,例如通用串行总线(USB)闪存驱动器,仅举几例。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CDROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实施例可以在具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)以及用户可以通过其向计算机提供输入的键盘和指点设备(例如,鼠标或轨迹球)的计算机上实现。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从网络浏览器接收的请求而向用户的客户端设备上的网络浏览器发送网页。此外,计算机可以通过向个人设备(例如,正在运行消息传送应用的智能电话)发送文本消息或其他形式的消息并且作为回报从用户接收响应消息来与用户交互。
用于实现机器学习模型的数据处理装置还可以包括例如专用硬件加速器单元,用于处理机器学习训练或生产的公共和计算密集型部分,即推断、工作负载。可以使用机器学习框架(例如,TensorFlow框架、Microsoft Cognitive Toolkit框架、Apache Singa框架或Apache MXNet框架)来实现和部署机器学习模型。
本说明书中描述的主题的实施例可以在计算系统中实现,该计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有图形用户界面或Web浏览器的客户端计算机,用户可以通过该图形用户界面或Web浏览器与本说明书中描述的主题的实现进行交互),或者包括一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”),例如互联网。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系借助于在相应计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。
虽然本说明书包含许多具体实施方式细节,但是这些不应被解释为对任何发明或可能要求保护的范围的限制,而是作为可能特定于特定发明的特定实施例的特征的描述。在本说明书中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,尽管上文可以将特征描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下可以从组合中删除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以涉及子组合或子组合的变体。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求以所示的特定顺序或按顺序执行这些操作,或者执行所有示出的操作,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或封装到多个软件产品中。
已经描述了主题的特定实施例。其它实施例在以下权利要求书的范围内。例如,权利要求中记载的动作可以以不同的顺序执行,并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定需要所示的特定顺序或相继顺序来实现期望的结果。在某些实施方式中,多任务和并行处理可能是有利的。
Claims (21)
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中任一项所述的方法,其中,目标函数包括正则化项,所述正则化项包括以下中的一个或多个:
对第二子集的参数的惩罚比对第一子集的参数的惩罚更多的项;
对第二子集的参数惩罚比对多个网络参数中不在第一子集或第二子集中的参数惩罚更多的项;以及
对第一子集的参数惩罚比对多个网络参数中不在第一子集或第二子集中的参数惩罚更多的项。
12.根据权利要求1至11中的任一项所述的方法,其中,目标函数包括正则化项,所述正则化项包括对第一子集和第二子集的参数的惩罚比不在第一子集或第二子集中的任一个中的参数的惩罚更多的一个或多个项。
13.根据权利要求1至12中任一项所述的方法,其中,不存在使用梯度估计来更新所有多个网络参数。
14.根据权利要求1至14中任一项所述的方法,其中,选择第一子集和第二子集中的至少一个以满足预定稀疏性准则。
15.根据权利要求1至14中任一项所述的方法,还包括:一旦已经满足预定质量准则,则停止所述重复,并且此后,仅使用多个网络参数中最后选择的参数的第一子集作为多个参数中的非零参数来训练所述神经网络。
16.一种系统,包括一个或多个计算机和存储指令的一个或多个存储设备,所述指令在由一个或多个计算机执行时使得所述一个或多个计算机:
确定神经网络的网络参数的前向传递集合,所述神经网络具有多个网络参数并且被配置为通过从多个网络参数中选择参数的第一子集并将网络参数的前向传递集合的所有其他参数设置为零来处理输入数据项以生成神经网络输出;
根据网络参数的前向传递集合、使用神经网络来处理训练数据项以生成神经网络输出;
从神经网络输出和训练数据项确定目标函数的值;
从多个网络参数中选择参数的第二子集;
确定包括参数的第一子集和参数的第二子集的、网络参数的后向传递集合;以及
使用从目标函数的值确定的梯度估计来更新多个网络参数中与网络参数的后向传递集合相对应的参数。
17.根据权利要求16所述的系统,包括处理器和与处理器通信连接的专用训练硬件,其中,以下中的至少一个:
所述指令在由专用训练硬件执行时使专用训练硬件执行以下中的至少一个:处理训练数据项、确定目标函数和更新多个网络参数中的参数;以及
所述指令在由处理器执行时使处理器选择用于包括在第一子集中的多个网络参数中的参数和用于包括在第二子集中的多个网络参数中的参数中的至少一个。
18.根据权利要求17所述的系统,其中,所述指令在由处理器执行时使处理器确定多个网络参数中的最大参数的集合。
19.一种系统,包括一个或多个计算机和存储指令的一个或多个存储设备,所述指令在由一个或多个计算机执行时使所述一个或多个计算机执行根据权利要求1-15中任一项所述的相应方法的操作。
20.计算机可读指令或存储计算机可读指令的一个或多个计算机存储介质,当由一个或多个计算机执行时,使得一个或多个计算机实现根据权利要求1-15中任一项所述的方法或根据权利要求16-20中任一项所述的系统。
21.计算机可读指令或存储计算机可读指令的一个或多个计算机存储介质,当由一个或多个计算机执行时使得所述一个或多个计算机实现根据权利要求1-15中任一项训练的稀疏神经网络,所述稀疏神经网络被配置为在输入层接收输入参数的集合,基于输入参数的集合生成推断,并且在输出层输出推断。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063035526P | 2020-06-05 | 2020-06-05 | |
US63/035,526 | 2020-06-05 | ||
PCT/EP2021/065069 WO2021245275A1 (en) | 2020-06-05 | 2021-06-04 | System and method for training a sparse neural network whilst maintaining sparsity |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115335831A true CN115335831A (zh) | 2022-11-11 |
Family
ID=76355498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180024183.9A Pending CN115335831A (zh) | 2020-06-05 | 2021-06-04 | 用于训练稀疏神经网络同时保持稀疏性的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230124177A1 (zh) |
EP (1) | EP4107671A1 (zh) |
CN (1) | CN115335831A (zh) |
WO (1) | WO2021245275A1 (zh) |
-
2021
- 2021-06-04 US US17/914,035 patent/US20230124177A1/en active Pending
- 2021-06-04 WO PCT/EP2021/065069 patent/WO2021245275A1/en unknown
- 2021-06-04 EP EP21731120.8A patent/EP4107671A1/en active Pending
- 2021-06-04 CN CN202180024183.9A patent/CN115335831A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230124177A1 (en) | 2023-04-20 |
WO2021245275A1 (en) | 2021-12-09 |
EP4107671A1 (en) | 2022-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6790286B2 (ja) | 強化学習を用いたデバイス配置最適化 | |
JP7157154B2 (ja) | 性能予測ニューラルネットワークを使用したニューラルアーキテクチャ探索 | |
US11875262B2 (en) | Learning neural network structure | |
US20210117801A1 (en) | Augmenting neural networks with external memory | |
CN110520871B (zh) | 使用学习进度测量训练机器学习模型 | |
US20210004677A1 (en) | Data compression using jointly trained encoder, decoder, and prior neural networks | |
KR20210029785A (ko) | 활성화 희소화를 포함하는 신경 네트워크 가속 및 임베딩 압축 시스템 및 방법 | |
US10860928B2 (en) | Generating output data items using template data items | |
US20230281445A1 (en) | Population based training of neural networks | |
US11010664B2 (en) | Augmenting neural networks with hierarchical external memory | |
US20240127058A1 (en) | Training neural networks using priority queues | |
CN110476173B (zh) | 利用强化学习的分层设备放置 | |
CN110462638B (zh) | 使用后验锐化训练神经网络 | |
CN113826125A (zh) | 使用无监督数据增强来训练机器学习模型 | |
JP7293729B2 (ja) | 学習装置、情報出力装置、及びプログラム | |
CN111160000A (zh) | 作文自动评分方法、装置终端设备及存储介质 | |
US20230401382A1 (en) | Dynamic Language Models for Continuously Evolving Content | |
US20230206030A1 (en) | Hyperparameter neural network ensembles | |
CN115335831A (zh) | 用于训练稀疏神经网络同时保持稀疏性的系统和方法 | |
US20240152809A1 (en) | Efficient machine learning model architecture selection | |
CN111406267B (zh) | 使用性能预测神经网络的神经架构搜索 | |
WO2023059737A1 (en) | Self-attention based neural networks for processing network inputs from multiple modalities | |
CN117892137A (zh) | 信息处理及其大模型的训练方法、装置、设备及存储介质 |
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 |