使用合成梯度来训练神经网络制造技术

技术编号:20596377 阅读:18 留言:0更新日期:2019-03-16 12:00
用于通过优化目标函数来在训练输入上训练神经网络的方法、系统和装置,包括编码在计算机存储介质上的计算机程序,所述神经网络包括后面有第二子网络的第一子网络。在一个方面中,一种方法包括:使用所述神经网络来处理训练输入以生成训练模型输出,包括使用所述第一子网络来处理用于所述训练输入的子网络输入以根据所述第一子网络的参数的当前值为所述训练输入生成子网络激活,以及将所述子网络激活作为输入提供给所述第二子网络;通过使用合成梯度模型来根据所述合成梯度模型的参数的当前值处理所述子网络激活而确定用于所述第一子网络的所述目标函数的合成梯度;以及使用所述合成梯度来更新所述第一子网络的参数的当前值。

Training Neural Networks Using Composite Gradient

A method, system and apparatus for training a neural network on training input by optimizing an objective function, including a computer program coded on a computer storage medium, the neural network comprising a first subnetwork followed by a second subnetwork. In one aspect, a method includes: using the neural network to process training input to generate training model output, including using the first sub-network to process sub-network input for the training input to generate sub-network activation according to the current value of the parameters of the first sub-network, and providing the sub-network activation as input to generate sub-network activation. The second subnetwork is described; the composite gradient of the objective function for the first subnetwork is determined by processing the activation of the subnetwork according to the current value of the parameters of the composite gradient model by using the composite gradient model; and the current value of the parameters of the first subnetwork is updated by using the composite gradient model.

【技术实现步骤摘要】
【国外来华专利技术】使用合成梯度来训练神经网络
技术介绍
本说明书涉及训练神经网络。神经网络是采用非线性单元的一个或多个层来针对接收到的输入预测输出的机器学习模型。一些神经网络除了包括输出层之外还包括一个或多个隐藏层。每个隐藏层的输出被用作网络中的下一层(即,下一个隐藏层或输出层)的输入。网络的每个层根据相应的参数集的当前值来从接收到的输入生成输出。一些神经网络是递归神经网络。递归神经网络是接收输入序列并且从该输入序列生成输出序列的神经网络。特别地,递归神经网络可在在当前时间步计算输出时使用来自先前时间步的网络的内部状态中的一些或全部。
技术实现思路
本说明书描述作为计算机程序实现在一个或多个位置中的一个或多个计算机上的系统,所述系统在多个训练输入上训练神经网络,即,以通过优化目标函数来确定神经网络的参数的训练值。一般而言,本说明书中描述的主题的一个创新方面可用由一个或多个计算机执行的用于通过优化目标函数来在多个训练输入上训练神经网络的方法加以具体实现,其中,神经网络被配置成接收网络输入并且处理该网络输入以生成网络输出;神经网络包括后面有第二子网络的第一子网络;并且第一子网络被配置成在通过神经网络对所述网络输入的所述处理期间,接收子网络输入,处理子网络输入以生成子网络激活,并且将子网络激活作为输入提供给第二子网络。方法包括使用神经网络来处理训练输入以为训练输入生成训练模型输出的动作,包括使用第一子网络来处理用于训练输入的子网络输入以根据第一子网络的参数的当前值来为训练输入生成子网络激活并且将子网络激活作为输入提供给第二子网络;通过使用合成梯度模型来根据合成梯度模型的参数的当前值处理子网络激活而确定用于第一子网络的目标函数的合成梯度;以及更新参数的当前值。此方面的其它实施例可包括以下可选特征中的一个或多个。在一些实施方式中,合成梯度模型是与神经网络、第一子网络和第二子网络中的每一个不同的神经网络。在一些实施方式中,方法包括针对每个训练输入确定用于第一子网络的目标梯度并且基于目标梯度与合成梯度之间的误差更新合成梯度模型的参数的当前值的动作。在一些实施方式中,确定用于第一子网络的目标梯度包括通过神经网络反向传播目标函数的实际梯度以确定目标梯度;或者通过第二子网络反向传播用于第二子网络的合成梯度以确定用于第一子网络的目标梯度。在一些实施方式中,第一子网络包括多个神经网络层,并且使用合成梯度来更新第一子网络的参数的当前值包括通过第一子网络反向传播合成梯度以更新第一子网络的参数的当前值。在一些实施方式中,神经网络是前馈神经网络,第一子网络是第一神经网络层,并且第二子网络是第二神经网络层。在一些实施方式中,方法还包括以下步骤的动作:通过使用合成梯度模型来根据合成梯度模型的参数的当前值处理子网络激活而确定用于第一子网络的目标函数的至少一个将来的合成梯度的动作;以及基于每个将来的合成梯度与对应的目标将来的梯度之间的误差更新合成梯度模型的参数的当前值。在一些实施方式中,使用合成梯度来更新第一子网络的参数的当前值包括使用合成梯度代替实际的反向传播梯度来更新参数的当前值。在一些实施方式中,使用合成梯度来更新第一子网络的参数的当前值包括与更新第二子网络的参数的当前值异步地使用合成梯度来更新参数的当前值。在一些实施方式中,第一子网络被实现在一个计算设备上并且第二子网络被实现在不同的计算设备上;以及训练可选地是跨越多个计算设备分布训练的分布式机器学习训练过程的一部分。在一些实施方式中,用于训练输入的子网络输入是合成子网络输入,并且方法包括使用被配置成处理训练输入以生成合成子网络输入的合成输入模型来处理训练输入的动作。在一些实施方式中,用于训练输入的子网络输入是实际的子网络输入。此方面的其它实施例包括对应的计算机系统、装置以及记录在一个或多个计算机存储设备上的计算机程序,各自被配置成执行方法的动作。一个或多个计算机的系统可被配置成借助于安装在系统上的软件、固件、硬件或其任何组合来执行特定操作或动作,所述软件、固件、硬件或其任何组合在操作中可以使系统执行动作。一个或多个计算机程序可被配置成借助于包括指令来执行特定操作或动作,所述指令当由数据处理装置执行时,使装置执行动作。可在特定实施例中实现本说明书中描述的主题以便实现以下优点中的一个或多个。可使用近似目标函数的梯度的度量(即,在不使用损失函数的实际梯度的情况下针对子网络在本地计算出的度量)来更高效地训练神经网络。可缩放神经网络以包括多个子网络,同时由于其缩放后的大小而同时减少与训练那些神经网络相关联的计算时间成本和处理能力的增加。可更容易地使神经网络的子网络的训练并行化,因为一些子网络的训练将不取决于来自后续子网络的梯度的反向传播。训练技术可通过时间技术来根据比截断反向传播中使用的时间边界长度大得多的范围近似递归神经网络的梯度。可使用训练技术来训练包括时间分层或模块化模型的神经网络,所述训练技术允许近似误差信号在那些模型的时间边界或模块之间流动,同时仍然允许在不同的时间尺度下优化那些时间边界或模块。在下面的附图和描述中阐述本说明书的主题的一个或多个实施例的细节。主题的其它特征、方面和优点将根据说明书、附图和权利要求书变得显而易见。附图说明图1示出示例神经网络系统。图2A-2B是用于使用合成梯度来训练神经网络的子网络的过程的数据流程图。图3是用于使用用于子网络的合成梯度来训练神经网络的子网络的示例过程的流程图。图4是用于针对神经网络的子网络来训练合成梯度模型的示例过程的流程图。在各个附图中相似的附图标记和名称指示相似的元件。具体实施方式图1示出示例神经网络系统100。神经网络系统100是作为计算机程序实现在一个或多个位置中的一个或多个计算机上的系统的示例,其中下面描述的系统、组件和技术可实现在所述一个或多个计算机中。神经网络系统100包括神经网络110。神经网络110可被配置成执行任何种类的机器学习任务,即,接收任何种类的数字数据输入并且基于该输入生成任何种类的分数、分类或回归输出。例如,如果神经网络的输入是图像或已经从图像中提取的特征,则由神经网络针对给定图像而生成的输出可以是针对对象类别集合中的每一种对象类别的分数,其中每个分数表示图像包含属于该类别的对象的图像的估计似然率。作为另一示例,如果神经网络的输入是互联网资源(例如,web页面)、文档或文档的部分或者从互联网资源、文档或文档的部分中提取的特征,则由神经网络针对给定互联网资源、文档或文档的部分而生成的输出可以是针对主题集合中的每一个主题的分数,其中每个分数表示互联网资源、文档或文档部分与主题有关的估计似然率。作为另一示例,如果神经网络的输入是针对特定交互内容(诸如包含到其它内容的超链接的内容)的印象场境的特征,则由神经网络生成的输出可以是表示特定内容将被点击或者与之交互的估计似然率的分数。作为另一示例,如果神经网络的输入是针对用户的个性化推荐的特征,例如,表征针对推荐的场境的特征,例如,表征由用户采取的先前动作的特征,则由神经网络生成的输出可以是针对内容项集合中的每一个内容项的分数,其中每个分数表示用户将有利地对被推荐该内容项做出响应的估计似然率。作为另一示例,如果神经网络的输入是一种语言的文本,则由神经网络生成的输出可以是针对另一语言的文本文档来自技高网...

【技术保护点】
1.一种由一个或多个计算机执行的用于通过优化目标函数来在多个训练输入上训练神经网络的方法,其中,所述神经网络被配置成接收网络输入并且处理所述网络输入以生成网络输出,其中,所述神经网络包括后面有第二子网络的第一子网络,其中,所述第一子网络被配置成在通过所述神经网络对所述网络输入的处理期间,接收子网络输入,处理所述子网络输入以生成子网络激活,并且将所述子网络激活作为输入提供给所述第二子网络,并且其中,所述方法包括针对每个训练输入:使用所述神经网络来处理所述训练输入以为所述训练输入生成训练模型输出,包括:使用所述第一子网络来处理用于所述训练输入的子网络输入以根据所述第一子网络的参数的当前值为所述训练输入生成子网络激活,以及将所述子网络激活作为输入提供给所述第二子网络;通过使用合成梯度模型来根据所述合成梯度模型的参数的当前值处理所述子网络激活而确定用于所述第一子网络的所述目标函数的合成梯度;以及使用所述合成梯度来更新所述第一子网络的所述参数的所述当前值。

【技术特征摘要】
【国外来华专利技术】2016.05.20 US 62/339,7641.一种由一个或多个计算机执行的用于通过优化目标函数来在多个训练输入上训练神经网络的方法,其中,所述神经网络被配置成接收网络输入并且处理所述网络输入以生成网络输出,其中,所述神经网络包括后面有第二子网络的第一子网络,其中,所述第一子网络被配置成在通过所述神经网络对所述网络输入的处理期间,接收子网络输入,处理所述子网络输入以生成子网络激活,并且将所述子网络激活作为输入提供给所述第二子网络,并且其中,所述方法包括针对每个训练输入:使用所述神经网络来处理所述训练输入以为所述训练输入生成训练模型输出,包括:使用所述第一子网络来处理用于所述训练输入的子网络输入以根据所述第一子网络的参数的当前值为所述训练输入生成子网络激活,以及将所述子网络激活作为输入提供给所述第二子网络;通过使用合成梯度模型来根据所述合成梯度模型的参数的当前值处理所述子网络激活而确定用于所述第一子网络的所述目标函数的合成梯度;以及使用所述合成梯度来更新所述第一子网络的所述参数的所述当前值。2.根据权利要求1所述的方法,其中,所述合成梯度模型是与所述神经网络、所述第一子网络和所述第二子网络中的每一个不同的神经网络。3.根据权利要求1或2中的任一项所述的方法,还包括针对每个训练输入:确定用于所述第一子网络的目标梯度;以及基于所述目标梯度与所述合成梯度之间的误差来更新所述合成梯度模型的所述参数的所述当前值。4.根据权利要求3所述的方法,其中,确定用于所述第一子网络的所述目标梯度包括:通过所述神经网络反向传播所述目标函数的实际梯度以确定所述目标梯度;或者通过所述第二子网络反向传播用于所述第二子网络的合成梯度以确定用于所述第一子网络的所述目标梯度。5.根据权利要求1至4中的任一项所述的方法,其中,所述第一子网络包括多个神经网络层,并且其中,使用所述合成梯度来更新所述第一子网络的所述参数的所述当前值包括:通过所述第一子网络反向传播所述合成梯度以更新所述第一子网络的所述参数的所述当前值。6.根据权利要求1至4中的任一项所述的方法,其中,所述神经网络...

【专利技术属性】
技术研发人员:奥里奥尔·温亚尔斯亚历山大·本杰明·格拉韦斯沃伊切赫·恰尔内茨基科拉伊·卡武克曲奥卢西蒙·奥辛德罗麦克斯维尔·埃利奥特·耶德贝里
申请(专利权)人:渊慧科技有限公司
类型:发明
国别省市:英国,GB

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

1