使用规范化的目标输出训练神经网络的制作方法

文档序号:15739758发布日期:2018-10-23 22:05阅读:298来源:国知局
使用规范化的目标输出训练神经网络的制作方法

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

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



技术实现要素:

总体而言,本说明书中描述的主题的一个创新方面可以在使用规范化的目标输出来训练神经网络的方法中具体实施。

此方面和其它方面的其它实施方式包括对应的系统、装置和计算机程序,其被配置为执行在计算机存储设备上编码的这里公开的任何方法的动作。一个或多个计算机的系统可以借助于安装在系统上的软件、固件、硬件或它们的组合来如此配置,所述软件、固件、硬件或它们的组合在操作中使得系统执行动作。一个或多个计算机程序可以借助于具有指令而被如此配置,所述指令在由数据处理装置执行时使得装置执行所述动作。

可以实现本说明书中描述的主题的特定实施例,以便实现以下优点中的一个或多个。通过在训练期间自适应地重新缩放目标输出,即使目标输出的幅度在训练期间改变,也可以有效地训练神经网络。特别地,当应用单个算法来解决多个问题—即训练神经网络执行多个不同任务时,以本说明书中描述的方式自适应地重新缩放目标输出可能是有益的。作为另一示例,在训练期间自适应地重新缩放输出允许每个输出的自然幅度与在损失函数中指派给它的重要性分离。当输出处于不同单元时—例如当神经网络同时预测具有多模态传感器的代理的许多信号时,这是特别有用的。作为又一个示例,自适应缩放可以帮助解决非平稳问题,诸如在强化学习中,其中行为策略通常与值函数一起学习,因此目标的分布和幅度可以随着训练的进行而意外地和重复地改变。

本说明书的主题的一个或多个实施例的细节在附图和下面的描述中阐述。本主题的其它特征、方面和优点根据说明书、附图和权利要求书将变得显而易见。

附图说明

图1示出了示例神经网络训练系统。

图2是使用规范化的目标输出来训练神经网络的示例过程的流程图。

图3是通过训练项目和训练项目的规范化的目标输出来训练神经网络的示例过程的流程图。

图4是在使用规范化的目标输出来训练神经网络的同时生成训练项目的规范化的输出的示例过程的流程图。

在各个附图中相似的附图标记和名称指示相似的元件。

具体实施方式

图1示出了示例神经网络训练系统100。神经网络训练系统100是被实现为一个或多个位置中的一个或多个计算机上的计算机程序的系统的示例,其中可以实现下面描述的系统、组件和技术。

神经网络训练系统100在来自训练数据储存库120的训练项目上训练神经网络110,以根据参数的初始值来确定神经网络110的参数的训练值。

神经网络110可以是前馈深层神经网络,例如卷积神经网络,或者是递归神经网络,例如长短期(LSTM)神经网络。

神经网络110可以被配置为接收任何类型的数字数据输入,并基于输入来生成任何类型的得分或分类输出。

例如,如果向神经网络110的输入是图像或已经从图像提取的特征,则神经网络110为给定图像生成的输出可以是对象类别集合中的每一个对象类别的得分,每个得分表示图像包含属于该类别的对象的图像的估计可能性。

作为另一示例,如果向神经网络110的输入是互联网资源(例如网页)、文档或文档部分或者从互联网资源、文档或文档部分提取的特征,则神经网络110为给定互联网资源、文档或文档部分生成的输出可以是主题集合中的每个主题的得分,其中每个得分表示互联网资源、文档或文档部分与该主题有关的估计可能性。

作为另一示例,如果向神经网络110的输入是特定广告的闪现场境(impression context)的特征,则神经网络110生成的输出可以是表示特定广告将被点击的估计可能性的得分。

作为另一示例,如果向神经网络110的输入是针对用户的个性化推荐的特征,例如表征推荐的场境的特征,例如表征用户先前所采取的动作的特征,则神经网络110生成的输出可以是针对内容项集合中的每个内容项的得分,其中每个得分表示用户将肯定地响应被推荐该内容项目的估计可能性。

作为另一示例,如果向神经网络110的输入是一种语言的文本序列,则神经网络110生成的输出可以是另一种语言的文本片段集合中的每个文本片段的得分,其中每个得分表示另一种语言的文本片段是输入文本用另一种语言的恰当翻译的估计可能性。

作为另一示例,如果向神经网络110的输入是表示说出的话语的序列,则神经网络110生成的输出可以是文本片段集合中的每个文本片段的得分,每个得分表示该文本片段是该话语的正确转录的估计可能性。

通常,神经网络训练系统100训练神经网络110以生成规范化的输出,该规范化的输出是可映射的,即,可以根据规范化参数集合来映射到未规范化的输出。即,如果在训练之后期望未规范化的输出,则可以通过将规范化参数应用于由神经网络110生成的输出来对由神经网络110生成的输出进行去规范化。

特别地,神经网络110包括根据主要参数来生成初始输出的一个或多个初始神经网络层和根据辅助参数集合来对初始输出进行规范化以生成规范化的输出的规范化层。初始神经网络层的架构取决于神经网络110被配置来处理的输入的种类和神经网络110被配置来生成的输出的种类。

在一些实施方式中,规范化层是具有辅助参数矩阵和辅助偏置矩阵的线性层。在这些实施方式中,规范化的输出可以满足:

hnorm=Wh+b,

其中W是辅助参数矩阵,h是初始输出,并且b是辅助偏置矩阵。

然后,可以根据规范化参数集合将规范化的输出映射到未规范化的输出。

在一些实施方式中,规范化参数包括尺度参数矩阵和移位参数向量。在这些实施方式中,规范化的输出可以满足:

其中∑是尺度参数矩阵,μ是移位参数向量。

训练数据储存库120中的训练数据包括训练项目序列。通常,每个训练项目是神经网络110被配置为接收的种类的输入。训练数据储存库120还包括针对每个训练项目的相应目标输出,即,应当由神经网络110通过处理训练项目而生成的输出。

为了通过来自训练数据储存库120的给定训练项目—例如训练项目122—来训练神经网络110,神经网络训练系统100中的规范化引擎130基于训练项目的目标输出—例如基于训练项目122的目标输出124—来修改规范化参数的当前值。然后,神经网络训练系统100使用规范化参数的修改值对训练项目的目标输出进行规范化,以针对目标输出124生成规范化的目标输出,例如规范化的目标输出132。因此,在训练期间,规范化引擎130重复更新规范化参数的值。规范化引擎130修改规范化参数值的方式将在下面参考图3更详细地描述。

规范化引擎130还基于修改后的规范化参数值来更新辅助参数的值,并且然后通过使用神经网络110根据主要参数的当前值和辅助参数的更新后的值处理训练输入来生成训练输入的规范化的输出,例如训练输入122的规范化的输出126。

神经网络训练系统100中的训练引擎150通过执行神经网络训练技术的迭代来使用训练项目的规范化的目标输出—即代替训练项目的训练输入—和训练项目的规范化的输出来训练神经网络110,以优化目标函数并更新主要参数的当前值,并且进一步更新辅助参数的更新后的值。下面参照图2至图4更详细地描述使用该数据训练神经网络。

通过使用规范化的目标输出来训练神经网络110,神经网络训练系统100可以确定神经网络110的参数的训练值,所述训练值确保神经网络110针对所接收的输入生成准确的规范化的输出,即趋向于与规范化的实际输出匹配的规范化的输出,或者一旦神经网络110生成的输出已经被去规范化,则生成准确的未规范化的输出。

在一些实施方式中,一旦神经网络110已经被训练以确定参数的训练值,则神经网络训练系统100存储神经网络110的参数的训练值以用于将经过训练的神经网络实例化,或者将参数的训练值提供给另一系统以用于将经过训练的神经网络实例化。

图2是使用规范化的目标输出来训练神经网络的示例过程200的流程图。为了方便,过程200将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,经过适当编程的神经网络训练系统—例如图1的神经网络训练系统100—可以执行过程200。

系统例如从图1的训练数据储存库120获得神经网络的训练数据(步骤202)。训练数据包括训练项目的序列,并且对于多个训练项目中的每一个,包括相应的目标神经网络输出。

系统在多个训练项目中的每个训练项目上并且针对训练项目中的每个训练项目在该训练项目的规范化的目标输出上训练神经网络,以优化目标函数(步骤204)。

特别地,系统按顺序处理训练项目中的每一个,并且在每个训练项目上训练神经网络之前,调节规范化参数的当前值,并且使用规范化参数的调节值来确定训练项目的目标输出。然后,系统基于对规范化参数的调节来调节辅助参数,并且根据辅助参数的调节值和主要参数的当前值来生成训练项目的规范化的输出。

系统通过使用神经网络训练流程优化指定的目标函数—即如系统设计者或系统的其他用户所指定的—来训练神经网络。目标函数可以是任何适当的机器学习目标函数,例如交叉熵损失函数或均方损失函数,但是对于给定的训练项目,通常将由神经网络针对训练项目生成的规范化的输出和训练项目的规范化的目标输出作为输入。

神经网络训练技术可以是例如具有反向传播训练流程的常规随机梯度下降。通过重复执行训练技术的多次迭代,系统确定神经网络的辅助参数和主要参数的训练值。

图3是用于根据训练项目和训练项目的规范化的目标输出来训练神经网络的示例过程300的流程图。为了方便,过程300将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,经过适当编程的神经网络训练系统—例如图1的神经网络训练系统100,可以执行过程300。

系统更新规范化参数的当前值—即处理先前训练输入之后的值,以考虑当前训练输入的目标输出(步骤302)。特别地,系统更新当前规范化参数值,使得直到并且包括序列中的所述训练项目的训练项目的规范化的目标输出具有指定的分布。

例如,指定的分布可以指定规范化的目标输出具有近似零的均值和单位方差。因此,系统将规范化参数值—即尺度参数矩阵和移位参数向量的值设置为这样的值,使得对于目标输出的每个元素,在使用更新后的规范化参数值对所有目标输出的元素的值进行规范化之后,这些值具有近似零的均值和单位方差。

系统通过根据更新后的规范化参数值对训练项目的目标输出进行规范化来确定训练项目的规范化的目标输出(步骤304)。特别地,系统将规范化的参数的更新后的值—例如尺度参数矩阵和移位参数向量的更新后的值—应用于目标输出以生成规范化的目标输出。例如,规范化的目标输出可以满足:

其中是新的尺度参数矩阵,并且μnew是新的移位参数向量。

系统根据神经网络的主要参数的当前值来生成训练项目的规范化的输出(步骤306)。更具体地,系统基于对规范化参数的更新来更新辅助参数的值,并且根据辅助参数的更新后的值和主要参数的当前值来生成规范化的输出。下面参照图4来更详细地描述生成规范化的输出。

系统使用规范化的目标输出和规范化的输出来确定训练项目的误差(步骤308)。系统计算误差的方式取决于正被优化的目标函数。例如,对于均方损失函数,系统确定规范化的输出和目标输出之间的差。

系统通过执行神经网络训练流程的迭代使用该误差来调节主要参数的当前值和辅助参数的更新后的值(步骤310)。神经网络训练流程是常规的神经网络训练流程,例如随机梯度下降。因此,在神经网络训练流程的一次迭代期间,辅助参数值被更新两次:一次基于规范化参数的更新,然后使用误差再次更新。

图4是用于在使用规范化的目标输出训练神经网络的同时生成训练项目的规范化的输出的示例过程400的流程图。为了方便,过程400将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,经过适当编程的神经网络训练系统—例如图1的神经网络训练系统100—可以执行过程400。

系统更新辅助参数的当前值以即使更新了规范化参数的当前值也保持未规范化的输出和规范化的输出之间的映射(步骤402)。即,系统更新辅助参数以消除更新规范化参数的当前值对映射的影响。

例如,新的辅助权重矩阵可以满足:

其中是新尺度矩阵的逆矩阵,∑是旧尺度矩阵,Wold是旧辅助权重矩阵,并且新辅助偏置向量可以满足:

其中bold是旧的辅助偏置向量,μ是旧的移位向量,而μnew是新的移位向量。

系统使用神经网络根据神经网络的主要参数的当前值来处理训练项目,以生成训练项目的初始输出(步骤404)。

系统根据辅助参数的更新后的值对初始输出进行规范化以生成规范化的输出(步骤406)。即,系统将辅助参数的更新后的值应用于初始输出以生成规范化的输出。例如,规范化的输出可以满足:

hnorm=Wh+b,

其中h是初始输出。

通过对多个训练项目重复执行过程300和400,系统可以训练神经网络300和400以确定辅助参数和主要参数的训练值,同时继续更新规范化参数值以考虑目标输出的幅度在训练期间改变的可能性,从而提高训练过程的效率和有效性。

本说明书中描述的主题和功能操作的实施例可以在数字电子电路中、在有形具体实施的计算机软件或固件中、在包括本说明书中公开的结构及其结构等效物的计算机硬件中、或者在它们中的一个或多个的组合中实现。本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,即在有形非暂时程序载体上编码以供由数据处理装置执行或控制其操作的计算机程序指令的一个或多个模块。替选地或附加地,程序指令可以在人工生成的传播信号(例如,机器生成的电、光或电磁信号)上编码,所述人工生成的传播信号被生成以编码用于传输到合适的接收器装置以由数据处理装置执行的信息。计算机存储介质可以是机器可读存储设备、机器可读存储基底、随机或串行存取存储设备、或它们中的一个或多个的组合。然而,计算机存储介质不是传播的信号。

术语“数据处理装置”包括用于处理数据的所有类型的装置、设备和机器,包括例如可编程处理器、计算机或多个处理器或计算机。该装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。

计算机程序(也可以称为或描述为程序、软件、软件应用程序、模块、软件模块、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言,或声明性或过程性语言,并且它可以用任何形式部署,包括作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其它单元。计算机程序可以但不必对应于文件系统中的文件。程序可以存储在保存其它程序或数据的文件的一部分中——例如存储在标记语言文档中的一个或多个脚本,存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件中——例如存储一个或多个模块、子程序或代码部分的文件中。计算机程序可以被部署成在一台计算机上执行,或者在位于一个站点或跨多个站点分布并且通过通信网络互连的多台计算机上执行。

如本说明书中所使用的,“引擎”或“软件引擎”指代提供与输入不同的输出的由软件实现的输入/输出系统。引擎可以是功能的编码块,诸如库、平台、软件开发工具包(“SDK”)或对象。每个引擎可以在任何适当类型的计算设备上实现,例如服务器、移动电话、平板计算机、笔记本计算机、音乐播放器、电子书阅读器、膝上型或台式计算机、PDA、智能电话或包括一个或多个处理器和计算机可读介质的其它固定或便携式设备。另外,两个或更多个引擎可以在相同的计算设备上实现,或者在不同的计算设备上实现。

本说明书中描述的过程和逻辑流程可以由一个或多个可编程计算机执行,所述一个或多个可编程计算机执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))执行,并且装置也可以被实现为专用逻辑电路。

作为示例,适于执行计算机程序的计算机可以基于通用或专用微处理器或这两者,或任何其它类型的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或这两者接收指令和数据。计算机的基本元件是用于实施或执行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。一般来说,计算机还将包括用于存储数据的一个或多个大容量存储设备——例如磁盘、磁光盘或光盘,或者可操作地耦合以从其接收数据或向其传送数据,或者两者兼有。然而,计算机不需要具有这样的设备。此外,计算机可以嵌入到另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器、或便携式存储设备——例如通用串行总线(USB)闪存驱动器,仅举几个例子。

适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可装卸磁盘;磁光盘;以及CD ROM光盘和DVD-ROM光盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。

为了提供与用户的交互,本说明书中描述的主题的实施例可以在具有以下的计算机上实现:用于向用户显示信息的显示设备(例如CRT(阴极射线管)或LCD(液晶显示器)监视器)以及用户可以通过其向计算机提供输入的键盘和指示设备,例如鼠标或轨迹球。也可以使用其它类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如通过响应于从web浏览器接收的请求将网页发送到用户的客户端设备上的web浏览器。

本说明书中描述的主题的实施例可以在计算系统中实现,该计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有图形用户界面或web浏览器的客户端计算机,用户可以通过该图形用户界面或web浏览器与本说明书中描述的主题的实施方式交互),或者一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件可以通过任何数字数据通信形式或介质(例如通信网络)互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”),例如互联网。

计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络交互。客户端和服务器的关系借助于在相应计算机上运行并且彼此具有客户机-服务器关系的计算机程序而产生。

虽然本说明书包含许多具体实施细节,但这些不应被解释为对任何发明或所要求保护的内容的范围的限制,而应被解释为对特定发明的特定实施例所特有的特征的描述。在本说明书中在分开的实施例的场境中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的场境中描述的各个特征也可以分开地或以任何适当的子组合在多个实施例中实现。此外,尽管特征可以在上文中被描述为以某些组合起作用,并且甚至最初如此被要求保护,但是在一些情况下,来自所要求保护的组合的一个或多个特征可以从该组合中去除,并且所要求保护的组合可以针对子组合或子组合的变型。

类似地,尽管在附图中以特定顺序描绘了操作,但这不应理解为要求以所示的特定次序或连续顺序执行这些操作,或者执行所有示出的操作以获得期望的结果。在某些情况下,多任务和并行处理可以是有利的。此外,上述实施例中的各个系统模块和组件的分离不应被理解为在所有实施例中都需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或者封装在多个软件产品中。

已经描述了主题的特定实施例。其它实施例在所附权利要求书的范围内。例如,权利要求书中所记载的动作可以以不同的次序执行并且仍然获得期望的结果。作为一个示例,附图中描述的过程不一定需要所示的特定次序或连续顺序来实现期望的结果。在某些实施方式中,多任务和并行处理可能是有利的。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1