CN111727442A - 使用质量分数来训练序列生成神经网络 - Google Patents
使用质量分数来训练序列生成神经网络 Download PDFInfo
- Publication number
- CN111727442A CN111727442A CN201980013555.0A CN201980013555A CN111727442A CN 111727442 A CN111727442 A CN 111727442A CN 201980013555 A CN201980013555 A CN 201980013555A CN 111727442 A CN111727442 A CN 111727442A
- Authority
- CN
- China
- Prior art keywords
- output
- ground truth
- sequence
- quality score
- neural network
- 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/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
-
- 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/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Machine Translation (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
Abstract
用于训练序列生成神经网络的方法、***和装置,包括在计算机存储介质上编码的计算机程序。方法中的一个包括:获得一个批次的训练示例;对于训练示例中的每一个:使用神经网络来处理该训练示例中的训练网络输入以生成输出序列;对于输出序列中的每个特定输出位置:识别包括在输出序列中的该特定输出位置之前的位置处的***输出的词头;对于词汇中的每个可能***输出,确定能够被指派给包括被该可能***输出跟随的词头的任一个候选输出序列的最高质量分数;以及确定对网络参数当前值的更新,该更新提高神经网络生成在该位置处具有高质量分数的***输出的似然性。
Description
背景技术
本说明书涉及训练神经网络。
神经网络是采用非线性单元的一个或多个层来针对接收到的输入预测输出的机器学习模型。一些神经网络除了包括输出层外还包括一个或多个隐藏层。每个隐藏层的输出被用作网络中的下一个层——即下一个隐藏层或输出层——的输入。网络的每个层依照相应的参数集的当前值从接收到的输入生成输出。
一些神经网络是循环神经网络。循环神经网络是接收输入序列并从该输入序列生成输出序列的神经网络。特别地,循环神经网络能够在计算在当前时间步的输出时使用来自前一个时间步的网络的内部状态中的一些或全部。
发明内容
本说明书描述了一种作为计算机程序在一个或多个位置中的一个或多个计算机上实现的***,该***训练序列生成神经网络以生成以网络输入为条件的输出序列。
特别地,***使用“最优完成蒸馏(distillation)”来训练神经网络。在最优完成蒸馏中,***使用序列生成神经网络来生成输出序列,然后使用质量分数来训练神经网络,该质量分数测量使用在所生成的输出序列内的词头确定的候选输出序列相对于应该已经由神经网络生成的地面真值(ground truth)输出序列的质量。这与常规技术例如最大似然估计(MLE)相反,在常规技术中,直接给神经网络提供来自地面真值输出序列的词头作为输入。
能够在特定实施例中实现本说明书中描述的主题,以便实现以下优点中的一个或多个。
通过像本说明书中所描述的那样在神经网络的训练中使用质量分数,***能够将神经网络训练成在序列生成任务——例如语音辨识或另一序列生成任务上——具有先进的性能。实际上,所描述的最优完成蒸馏技术没有超参数,并且神经网络不需要任何预训练以实现这种水平的性能,从而减少由整体训练过程消耗的计算资源量。附加地,通过像本说明书中所描述的那样高效地识别输出序列中的每个位置的最高分数,减少了执行训练所需要的计算资源量。因此,所描述的技术允许神经网络被训练成具先进的性能,而没有计算资源的过度消耗。作为使用所描述的技术来训练的神经网络能够实现的性能的特定示例,表1(图示在图6中)示出对同一任务:《华尔街日报》语音辨识任务使用三种不同的技术——OCD(本说明书中描述的技术)、计划采样(SS)和MLE——来训练同一神经网络的性能。特别地,表1示出使用这三种方法以各种束大小训练的神经网络的单词错误率(较低的单词错误率表示更好的性能)方面的性能。束大小是指在束搜索解码中用于在推理期间,即在训练之后,生成输出序列的束的大小。如能够从表1中看到的,神经网络的当使用OCD来训练时的性能大大超过了使用其它两种技术的性能,其它两种技术先前被认为是先进的网络训练技术。
在下面的附图和描述中阐述本说明书中描述的主题的一个或多个实施例的细节。根据说明书、附图和权利要求书,主题的其它特征、方面和优点将变得显而易见。
附图说明
图1示出示例神经网络训练***。
图2是用于训练序列生成神经网络的示例过程的流程图。
图3是用于对于输出序列中的给定位置生成Q值的示例过程的流程图。
图4示出当质量度量基于编辑距离时应用OCD训练技术的示例。
图5是当质量度量基于编辑距离时用于确定前面有特定词头的特定***输出的最高质量分数的示例过程的流程图。
图6示出用于使用三种不同的技术来训练神经网络的性能差异。
在各个附图中,相似的附图标记和名称指示相似的元素。
具体实施方式
本说明书描述了一种作为计算机程序在一个或多个位置中的一个或多个计算机上实现的***,该***训练神经网络以生成以网络输入为条件的输出序列。
神经网络能够被配置成生成以各种网络输入中的任一个为条件的各种输出序列中的任一个。
例如,神经网络可以是机器翻译神经网络。也就是说,如果网络输入是原始语言的单词的序列,例如句子或短语,则输出序列可以是输入序列变成目标语言的翻译,即表示原始语言的单词的序列的目标语言的单词的序列。
作为另一示例,神经网络可以是语音辨识神经网络。也就是说,如果网络输入是表示口语发言的音频数据的序列,则输出序列可以是表示发言的字母、字符或单词的序列,即为输入序列的转录。
作为另一示例,神经网络可以是自然语言处理神经网络。例如,如果网络输入是原始语言的单词的序列,例如句子或短语,则输出序列可以是原始语言的输入序列的摘要,即,具有比输入序列少的单词但是保留输入序列的本质含义的序列。作为另一示例,如果网络输入是形成问题的单词的序列,则输出序列可以是形成对问题的答案的单词的序列。
作为另一示例,神经网络可以是计算机辅助医学诊断***的一部分。例如,网络输入可以是来自电子病历的数据(其在一些示例中可以包括生理测量)并且输出序列可以是预测疗法和/或医学诊断的序列。
作为另一示例,神经网络可以是图像处理***的一部分。例如,网络输入可以是图像并且输出可以是描述该图像的文本的序列。作为另一示例,网络输入可以是文本或不同上下文的序列并且输出序列可以是描述上下文的图像。作为另一示例,网络输入可以是图像、音频和/或视频数据并且输出可以是定义数据的增强版本(例如,具有降低的噪声)的序列。
神经网络能够具有各种架构中的任一种。例如,神经网络能够具有用于对网络输入进行编码的编码器神经网络和用于从经编码的网络输入生成输出序列的解码器神经网络。在一些示例中,解码器是自回归神经网络,例如,循环神经网络或自回归卷积神经网络或自回归基于注意力的神经网络。
图1示出示例性神经网络训练***100。神经网络训练***100是作为计算机程序在一个或多个位置中的一个或多个计算机上实现的***的示例,在这些计算机中实现了下述***、组件和技术。
神经网络训练***100训练生成输出序列的具有参数112(在本说明书中称为“网络参数”)的序列生成神经网络110。如上所述,序列生成神经网络110能够被配置成生成以各种网络输入中的任一个为条件的各种输出序列中的任一个。
特别地,序列生成神经网络110包括解码器神经网络,该解码器神经网络逐时间步来生成以***输入为条件——即,直接地或通过由编码器神经网络生成的***输入的表示——的输出序列。在每个时间步,循环神经网络以输出序列中的以前输出和***输入为条件并且关于***输出的词汇中的可能***输出生成似然分布,即包括词汇中的每个可能***输出的相应分数的分数分布。***100然后通过从似然分布中采样或者选择得分最高的可能***输出来选择在时间步的输出。
序列生成神经网络通常可以是任何种类的神经网络,该神经网络对于输出序列中的每个时间步生成关于可能***输出定义相应的似然分布的输出。此类类型的神经网络的示例包括序列到序列循环神经网络、基于自注意力的神经网络和卷积神经网络。
***100在训练数据上训练序列生成神经网络110,以使用迭代训练过程来根据网络参数112的初始值确定网络参数112的训练值。
训练数据通常包括训练示例集。每个训练示例包括训练网络输入并且对于每个训练网络输入包括地面真值输出序列,即应该由序列生成神经网络110通过处理该训练网络输入来生成的输出序列。例如,对于语音辨识,每个训练网络输入表示发言并且给定训练网络输入的地面真值输出序列是由给定训练网络输入表示的发言的转录。作为另一示例,对于机器翻译,每个训练网络输入是源语言的文本并且给定训练网络输入的地面真值输出序列是源语言的文本变成目标语言的翻译。
在训练过程的每次迭代时,***100中的训练引擎120自迭代起对当前网络参数值114应用参数值更新116。
特别地,在每次迭代时,训练引擎120或更一般地***100使序列生成神经网络110依照当前网络参数值114生成新的输出序列的批次142,即,通过使用序列生成神经网络110并依照当前参数值114来处理一个批次的训练网络输入132中的每个训练网络输入以将该网络输入映射到新的输出序列。
该批次中每个新的输出序列包括来自多个输出位置中的每一个处的***输出的词汇的相应的***输出。如上所述,神经网络110通过关于在多个输出位置中的每一个处的***输出的词汇来生成似然分布、然后依照该似然分布从词汇中选择,例如采样,***输出来生成输出序列。
Q值引擎140然后使用该批次中的训练网络输入的地面真值输出序列162来为该批次中每个新的输出序列确定Q值144。特别地,Q值引擎140对于给定输出序列中的每个位置,生成词汇中的每个可能***输出的相应的Q值。
在给定输出序列中的给定位置处的特定可能***输出的Q值是能够被指派给任一个候选输出序列的最高可能的质量分数,该任一个候选输出序列:(i)以包括在给定输出序列中的给定输出位置之前的位置处的***输出的词头(prefix)开头并且(ii)紧跟随在该词头之后具有特定可能***输出。也就是说,候选输出序列能够具有任一个可能的词尾(suffix),只要该词尾紧前面有(i)词头和(ii)特定可能***输出即可。换句话说,候选输出序列可以是形式[p,a,s]的任一个序列,其中p是词头,a是特定可能***输出,而s是零个或更多个可能***输出的任一个词尾。候选输出序列的质量分数测量候选输出序列相对于所对应的地面真值输出序列——即由其生成给定输出序列的网络输入的地面真值输出序列——的质量。
在下面参考图2-5更详细地描述生成Q值。
训练引擎120使用Q值144以及由神经网络作为生成新的输出序列的批次142的部分而生成的当前似然分布152来确定参数更新116,然后将该更新应用,例如添加,到网络参数的当前值114以生成更新的网络参数值。在下面参考图2描述使用Q值来确定参数更新。
通过以这种方式迭代地更新网络参数,***100能够有效地训练序列生成神经网络110以生成高质量的输出序列。
虽然图1仅示出与序列生成神经网络110的单个实例进行通信的单个训练引擎120,但是在一些实现方式中,训练过程能够跨多个硬件设备分布。特别地,为了加速训练,能够采用异步或同步分布式设置,其中参数服务器存储用于许多序列生成神经网络副本的共享模型参数。每个网络副本的训练引擎从其本地网络副本异步地或同步地采样一个批次的序列并且计算下述梯度。然后,将梯度发送到参数服务器,该参数服务器更新共享参数。副本按来自参数服务器的最新参数周期性地更新其本地参数值。
图2是用于训练序列生成神经网络***的示例过程200的流程图。为了方便,将过程200描述为由位于一个或多个位置的一个或多个计算机的***来执行。例如,适当地编程的神经网络训练***,例如图1的神经网络训练***100,能够执行过程200。
***能够对于一个批次的训练示例中的每个训练示例执行过程200以确定该批次中的每个训练示例的相应的参数更新。该批次通常包括固定数目的训练示例,例如十个、五十个或一百个。***然后能够例如通过对训练示例的参数更新求平均或求和来生成该批次的最终参数更新,然后将该最终参数更新应用,例如添加,到参数的当前值以生成更新的参数值。
***使用序列生成神经网络依照网络参数的当前值来处理训练示例中的训练网络输入以生成新的输出序列,即,以将训练网络输入映射到新的输出序列(步骤202)。为了生成新的输出序列,***根据由序列生成神经网络生成的似然分布采样,例如,直到对预先确定的序列结束输出令牌进行了采样为止或直到序列达到预先确定的最大长度为止。
***对于新的输出序列中的每个位置生成词汇中的可能***输出中的每一个的Q值(步骤204)。在下面参考图3-5描述生成输出序列中的给定位置的Q值。
***对于位置中的每一个确定对网络参数的当前值的更新,该更新提高神经网络生成该位置处具有高质量分数的***输出的似然性(步骤206)。也就是说,***生成更新,该更新使神经网络更可能对该位置处具有高质量分数的***输出进行采样。
为了确定给定位置的更新,***将给定位置的可能***输出的Q值变换成关于词汇中的可能***输出的目标似然分布。
例如,***能够通过对可能***输出的Q值应用softmax来生成目标似然分布,以为可能***输出中的每一个生成相应的似然性。在一些实现方式中,以降低的温度(temperature)应用softmax。
换句话说,***能够通过应用以下变换来为词汇中的可能***输出a生成似然性:
其中是令牌a的Q值,求和遍及词汇中的所有令牌a’,并且τ是温度参数。为了以降低的温度应用softmax,***将温度参数设定为介于零与一之间的值。特别地,在一些实现方式中,***将温度参数设定为接近τ→0的极限的值,即非常小的正值,以导致分布为具有一个或多个非常强的峰的“硬”分布,即除了词汇中的一小部分输出的概率之外的所有概率近似为零的分布。
***然后通过计算相对于目标函数的网络参数的梯度、然后根据该梯度确定对参数的更新来确定给定位置的更新,该目标函数取决于输出位置的目标似然分布与由神经网络对于输出位置生成的似然分布之间的散度。
例如,目标函数可以是输出位置的目标似然分布与由神经网络对于输出位置生成的似然分布之间的Kullback-Leibler(KL)散度。
***能够通过对梯度应用定义如何将梯度映射到参数值更新的更新规则,例如rmsProp更新规则、Adam更新规则或随机梯度下降更新规则,来根据梯度确定对参数的更新。
***从对于多个位置中的每一个所确定的更新中确定对训练示例的当前值的更新(步骤208)。例如,***能够对每个位置处的更新求和或求平均以确定对训练示例的当前值的更新。
图3是用于确定输出序列中的给定输出位置的Q值的示例过程300的流程图。为了方便,将过程300描述为由位于一个或多个位置中的一个或多个计算机的***来执行。例如,适当地编程的神经网络训练***,例如图1的神经网络训练***100,能够执行过程100。
***能够对于在序列生成神经网络的训练期间生成的输出序列中的输出位置中的每一个执行过程300。
***识别包括在输出序列中的特定输出位置之前的位置处的***输出的词头(步骤302)。换句话说,***将部分输出序列识别为该位置的词头,该部分输出序列由在输出序列中的给定位置之前的位置处的输出序列中的***输出构成。对于输出序列中的第一位置,词头是空集,即,在词头中没有输出。
***对于词汇中的每个可能***输出生成相应的Q值(步骤304)。
特别地,***确定能够被指派给来自可能的候选输出序列的组当中的任一个候选输出序列的最高质量分数,这些可能的候选输出序列包括:(i)识别的词头,所述识别的词头被(ii)可能***输出跟随,并且被(iii)零个或更多个***输出的任一个词尾跟随。也就是说,该可能的候选输出序列的组全部都以被相同的***输出跟随的相同识别的词头开始,但是全部都具有不同的词尾。***将Q值设定为所确定的最高质量分数。
给定候选输出序列的质量分数测量给定候选输出序列相对于地面真值输出序列的质量。也就是说,质量分数根据质量度量来测量候选输出序列与地面真值输出序列之间的差异。通常,用于评价此质量的度量取决于神经网络生成的序列的种类。
作为特定示例,当输出序列是自然语言序列并且词汇中的可能的输出是自然语言字符的序列(可选地增补有一个或多个特殊字符,例如表示字符之间的空间的空白符号和表示输出序列应该终止的序列结束符号)时,度量能够基于候选输出序列与地面真值输出序列之间的编辑距离。
两个序列u和v之间的编辑距离是将u转换为v以及反之亦然所需要的最小***、删除和代替编辑数目。因此,当质量度量基于编辑距离时,能够被指派的最高质量分数是具有距地面真值输出序列最小编辑距离的候选输出序列的质量分数。
作为特定示例,质量度量可以是编辑距离的负值或者可以与一(或另一正常数)加上编辑距离的倒数成比例。
在下面参考图4示出识别编辑距离的示例。
在下面参考图5描述当距离度量基于编辑距离时用于高效地识别最高质量分数的技术。
图4示出当质量度量基于编辑距离时应用OCD训练技术的示例。
特别地,图4示出地面真值输出序列(称为目标序列)和由神经网络生成的新的输出序列(称为生成的序列)。在图4的示例中,地面真值输出序列是“as_he_talks_his_wife”,然而新的输出序列是“as_ee_talks_whose_wife”。
对于新的输出序列中的每个位置,图4也示出了针对编辑距离的最优扩展,即,对于该位置将具有所有可能的输出的最高Q值并且因此在对于该位置所生成的目标似然分布中具有最高概率的可能***输出。
在图4的示例中,针对给定输出位置的最优扩展被显示在新的输出序列中的给定输出位置处的输出下面且紧靠左边。
作为一个特定示例,对于输出序列中的第一位置(具有输出“a”),最优扩展是“a”,因为第一位置的词头为空,并且能够通过在地面真值输出序列中匹配第一输出(“a”)来实现零的编辑距离。
作为另一特定示例,对于输出序列中的第五位置(输出序列为“as_ee”并且词头将为“as_e”的位置),存在三个最优扩展“e”、“h”和“_”。这是因为以这三个***输出中的任一个跟着词头“as_e”(当与适当的词尾组合时)能产生编辑距离为一的候选输出序列。因此,这三个可能***输出中的每一个均将接收相同的Q值,并且第五位置的目标似然性分布将为这三个可能***输出中的每一个指派相同的似然性。
图5是当质量度量基于编辑距离时用于确定前面有特定词头的特定***输出的最高质量分数的示例过程500的流程图。为了方便,将过程500描述为由位于一个或多个位置中的一个或多个计算机的***来执行。例如,适当地编程的神经网络训练***,例如图1的神经网络训练***100,能够执行过程500。
特别地,***能够执行过程500以高效地确定能够被指派给任一个候选输出序列的最高质量分数,该任一个候选输出序列包括被特定可能***输出跟随并且被一个或多个***输出的任一个词尾跟随的特定词头。
***确定能够被指派给包括特定词头(来自步骤302)的任一个候选输出序列的最高质量分数,该特定词头被是地面真值输出序列的部分的任一个地面真值词尾跟随(步骤502)。换句话说,给定词头p***确定能够被指派给任一个候选输出序列[p,s]的最高质量分数,该任一个候选输出序列[p,s]是特定词头p和是地面真值输出序列的部分的任一个词尾s的级联。
***识别地面真值输出序列的一个或多个地面真值词头,特定词头相对于该地面真值输出序列的一个或多个地面真值词头具有最高质量分数(步骤504)。换句话说,***识别地面真值输出序列的一个或多个地面真值词头,特定词头相对于该地面真值输出序列的一个或多个地面真值词头具有最小编辑距离。
对于所识别的地面真值词头中的每一个,***识别跟随在地面真值序列中该所识别的地面真值词头的相应的地面真值词尾(步骤506)。
***确定特定可能***输出是否是所识别的地面真值词尾中的任一个中的第一***输出(步骤508)。
如果***输出是所识别的地面真值词尾中的一个或多个中的第一***输出,则***将能够被指派给包括词头的任一个候选输出序列的最高质量分数,即在步骤502中确定的最高质量分数,指派为特定可能***输出的最高质量分数,该词头被是地面真值输出序列的部分的任一个地面真值词尾跟随(步骤510)。
如果***输出不是所识别的地面真值词尾中的任一个中的第一***输出,则***确定能够被指派给包括特定词头的任一个候选输出序列的最高质量分数,该特定词头被不是所识别的词尾中的任一个中的第一***输出的可能***输出跟随并且被是地面真值输出序列的部分的任一个地面真值词尾跟随(步骤512)。
***将能够被指派给包括词头的任一个候选输出序列的最高质量分数指派为特定可能***输出的最高质量分数,该词头被不是所识别的地面真值词尾中的任一个中的第一***输出的可能***输出跟随并且被是地面真值输出序列的部分的任一个地面真值词尾跟随(步骤514)。
通过使用过程500来识别可能***输出的最高质量分数,***能够按O(|y’|*|y|+|V|*|y|)的复杂度对于每一词头且对于每一可能***输出使用动态编程来计算最高质量分数,其中|y’|是地面真值序列中的输出的数目,|y|是所生成的输出序列中的输出的数目,并且|V|是词汇中的输出的数目。因此,***能够对质量分数执行此搜索,而不会妨碍训练过程,即,而不会显著地影响给定训练迭代的运行时间。
过程500被描绘为下表2中的动态编程算法的伪代码。特别地,表2中的伪代码将地面真值序列称为参考序列r并且将新的输出序列称为假设序列h。
表2
本说明书连同***和计算机程序组件一起使用术语“被配置”。对于要被配置成执行特定操作或动作的一个或多个计算机的***意指***已在其上安装了在操作中使该***执行这些操作或动作的软件、固件、硬件或软件、固件、硬件的组合。对于要被配置成执行特定操作或动作的一个或多个计算机程序意指该一个或多个程序包括指令,所述指令当由数据处理装置执行时,使该装置执行操作或动作。
本说明书中描述的主题和功能操作的实施例可用数字电子电路、用有形地具体实现的计算机软件或固件、用包括本说明书中公开的结构及其结构等同物的计算机硬件或者用它们中的一个或多个的组合来实现。本说明书中描述的主题的实施例可作为一个或多个计算机程序被实现,所述一个或多个计算机程序即在有形非暂时性存储介质上编码以供由数据处理装置执行或者控制数据处理装置的操作的计算机程序指令的一个或多个模块。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行访问存储设备或它们中的一个或多个的组合。替换地或此外,可将程序指令编码在人工生成的传播信号上,所述传播信号例如是机器生成的电、光或电磁信号,该传播信号被生成来对信息进行编码以用于传输到适合的接收器装置以供由数据处理装置执行。
术语“数据处理装置”指代数据处理硬件并且包含用于处理数据的所有种类的装置、设备和机器,作为示例包括可编程处理器、计算机或多个处理器或计算机。装置还可以是或者进一步包括专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。装置除了包括硬件之外还可以可选地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理***、操作***或它们中的一个或多个的组合的代码。
也可以被称为或者描述为程序、软件、软件应用、app、模块、软件模块、脚本或代码的计算机程序可用包括编译或解释语言或声明或过程语言的任何形式的编程语言编写;并且它可被以任何形式部署,包括作为独立程序或者作为模块、组件、子例程或适合于在计算环境中使用的其它单元。程序可以但是不必对应于文件***中的文件。程序可以被存储在保持其它程序或数据的文件的一部分中,例如存储在标记语言文档中的一个或多个脚本;在专用于所述程序的单个文件中或者在多个协调文件中,例如存储代码的一个或多个模块、子程序或部分的文件。可将计算机程序部署成在一个计算机上或者在位于一个站点处或者分布在多个站点上并通过数据通信网络互连的多个计算机上执行。
在本说明书中,术语“数据库”广泛地用于指代任何数据合集:数据不需要被以任何特定方式构造,或者根本不构造,并且它可被存储在一个或多个位置中的存储设备上。因此,例如,索引数据库可包括多个数据合集,其中的每一个可以被不同地组织和访问。
类似地,在本说明书中术语“引擎”广泛地用于指代被编程来执行一个或多个具体功能的基于软件的***、子***或过程。通常,引擎将作为安装在一个或多个位置中的一个或多个计算机上的一个或多个软件模块或组件被实现。在一些情况下,一个或多个计算机将专用于特定引擎;在其它情况下,可在同一计算机或多个计算机上安装并运行多个引擎。
本说明书中描述的过程和逻辑流程可由执行一个或多个计算机程序的一个或多个可编程计算机执行以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程还可由例如是FPGA或ASIC的专用逻辑电路执行,或者通过专用逻辑电路和一个或多个编程计算机的组合来执行。
适合于执行计算机程序的计算机可基于通用微处理器或专用微处理器或两者,或任何其它种类的中央处理器。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的必要元件是用于执行或者实行指令的中央处理单元以及用于存储指令和数据的一个或多个存储设备。中央处理单元和存储器可由专用逻辑电路补充或者并入在专用逻辑电路中。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘,或者操作上被耦合以从所述一个或多个大容量存储设备接收数据或者将数据传送到所述一个或多个大容量存储设备,或者两者以用于存储数据。然而,计算机不必具有这样的设备。此外,计算机可被嵌入在另一设备中,所述另一设备例如是移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制器、全球定位***(GPS)接收器或便携式存储设备,例如通用串行总线(USB)闪存驱动器等。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,作为示例包括半导体存储设备,例如EPROM、EEPROM和闪速存储器设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及CD ROM和DVD-ROM盘。
为了提供与用户的交互,可在计算机上实现本说明书中描述的主题的实施例,所述计算机具有用于向用户显示信息的显示设备以及用户可用来向该计算机提供输入的键盘和定点设备,所述显示设备例如是CRT(阴极射线管)或LCD(液晶显示器)监视器,所述定点设备例如是鼠标或轨迹球。其它种类的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以任何形式接收来自用户的输入,包括声、语音或触觉输入。此外,计算机可通过向由用户使用的设备发送文档并从由用户使用的设备接收文档来与用户交互;例如,通过响应于从web浏览器接收到请求而向用户的设备上的web浏览器发送网页。另外,计算机可通过向个人设备发送文本消息或其它形式的消息并且继而从用户接收响应消息来与用户交互,所述个人设备例如是正在运行消息传送应用的智能电话。
用于实现机器学习模型的数据处理装置还可包括例如用于处理机器学习训练或生产——即推理,工作负载——的公共和计算密集部分的专用硬件加速器单元。
可使用机器学习框架来实现和部署机器学习模型,所述机器学习框架例如是TensorFlow框架、Microsoft Cognitive Toolkit框架、Apache Singa框架或Apache MXNet框架。
本说明书中描述的主题的实施例可被实现在计算***中,所述计算***包括后端组件,例如作为数据服务器;或者包括中间件组件,例如应用服务器;或者包括前端组件,例如具有用户可用来与本说明书中描述的主题的实现方式交互的图形用户界面、web浏览器或app的客户端计算机;或者包括一个或多个这样的后端、中间件或前端组件的任何组合。***的组件可通过例如通信网络的任何形式或介质的数字数据通信来互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如互联网。
计算***可包括客户端和服务器。客户端和服务器一般地彼此远离并通常通过通信网络来交互。客户端和服务器的关系借助于在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器向用户设备传输例如HTML页面的数据例如以用于向与作为客户端的设备交互的用户显示数据并从该用户接收用户输入的目的。可在服务器处从设备接收在用户设备处生成的数据,例如,用户交互的结果。
虽然本说明书包含许多具体实施方式细节,但是这些不应该被解释为对任何发明的或可能要求保护的范围的限制,而是相反地被解释为对可能特定于特定发明的特定实施例的特征的描述。也可在单个实施例中组合地实现在本说明书中在单独的实施例的上下文中描述的某些特征。相反地,也可单独地或者按照任何适合的子组合在多个实施例中实现在单个实施例的上下文中描述的各种特征。此外,尽管特征可能在上面被描述按照某些组合起作用并且甚至最初被如此要求保护,但是来自要求保护的组合的一个或多个特征可在一些情况下被从该组合中除去,并且所要求保护的组合可以针对子组合或子组合的变化。
类似地,虽然按照特定次序在附图中描绘并在权利要求书中记载操作,但是这不应该被理解为要求按照所示的特定次序或者按照顺序次序执行这样的操作,或者要求执行所有图示的操作以实现所预期的结果。在某些情况下,多任务处理和并行处理可以是有利的。此外,上述实施例中的各种***模块和组件的分离不应该被理解为在所有实施例中要求这样的分离,并且应该理解的是,所描述的程序组件和***一般地可被一起集成在单个软件产品中或者包装到多个软件产品中。
已描述了主题的特定实施例。其它实施例在所附权利要求的范围内。例如,权利要求中记载的动作可被以不同的次序执行并仍然实现所预期的结果。作为一个示例,附图中描绘的过程不一定要求所示的特定次序或顺序次序以实现所预期的结果。在一些情况下,多任务处理和并行处理可以是有利的。
Claims (13)
1.一种训练神经网络的方法,所述神经网络具有多个网络参数并且被配置成将***输入映射到包括多个***输出的输出序列,其中,所述方法包括:
获得一个批次的训练示例,每个训练示例包括训练网络输入并且对于每个训练网络输入包括地面真值输出序列;
对于所述训练示例中的每一个训练示例:
使用所述神经网络依照所述网络参数的当前值来处理该训练示例中的所述训练网络输入以将所述训练网络输入映射到输出序列,所述输出序列包括多个输出位置中的每一个处的来自可能***输出的词汇的相应的***输出;
对于所述输出序列中的所述多个输出位置中的每个特定输出位置:
识别包括在所述输出序列中的该特定输出位置之前的位置处的***输出的词头,
对于所述词汇中的每个可能***输出,确定能够被指派给包括所述词头的任一个候选输出序列的最高质量分数,所述词头被该可能***输出跟随并且被一个或多个***输出的任一个词尾跟随,其中,所述质量分数测量候选输出序列相对于所述地面真值输出序列的质量,并且
使用该可能***输出的所述最高质量分数来确定对所述网络参数的当前值的更新,所述更新提高所述神经网络生成在该位置处具有高质量分数的***输出的似然性;以及
根据针对由所述神经网络对于所述一个批次的训练示例生成的所述输出序列中的所述特定输出位置的所述更新来确定所述网络参数的更新值。
2.根据权利要求1所述的方法,还包括:
输出所训练的神经网络以在将新的网络输入映射到新的输出序列中使用。
3.根据权利要求1或权利要求2中的任一项所述的方法,其中,所述神经网络被配置成对于所述输出位置中的每一个输出位置,生成关于所述词汇中的所述可能***输出的似然分布并且使用所述似然分布来选择该输出位置处的所述***输出。
4.根据权利要求3所述的方法,其中,使用所述可能***输出的所述最高质量分数来确定对所述网络参数的当前值的更新,所述更新提高所述神经网络生成在该位置处具有高质量分数的***输出的似然性,包括:
根据所述可能***输出的所述最高质量分数来生成该输出位置的目标似然分布,
确定相对于目标函数的网络参数的梯度,所述目标函数取决于该输出位置的所述目标似然分布与由所述神经网络对于该输出位置生成的所述似然分布之间的散度,以及
使用所述梯度来确定对所述当前值的所述更新。
5.根据权利要求4所述的方法,其中,生成所述目标似然分布包括对所述可能***输出的所述最高质量分数应用softmax以对于所述可能***输出中的每一个生成相应的似然性。
6.根据权利要求5所述的方法,其中,所述softmax以降低的温度来应用。
7.根据权利要求1-6中的任一项所述的方法,其中,所述词汇中的所述可能***输出包括自然语言的令牌。
8.根据权利要求1-7中的任一项所述的方法,其中,所述质量分数是基于所述候选输出序列与所述地面真值输出序列之间的编辑距离,并且其中,能够被指派的所述最高质量分数是具有距所述地面真值输出序列最小编辑距离的所述候选输出序列的质量分数。
9.根据权利要求1-8中的任一项所述的方法,其中,确定能够被指派给包括所述词头的任一个候选输出序列的最高质量分数,所述词头被所述可能***输出跟随并且被一个或多个***输出的任一个词尾跟随,包括:
确定能够被指派给包括所述词头的任一个候选输出序列的最高质量分数,所述词头被是所述地面真值输出序列的部分的任一个地面真值词尾跟随;
识别所述地面真值输出序列的一个或多个地面真值词头,所述词头相对于所述地面真值输出序列的一个或多个地面真值词头具有最高质量分数,
对于所识别的地面真值词头中的每一个,识别在所述地面真值序列中跟随该所识别的地面真值词头的相应的地面真值词尾,以及
当所述可能***输出是所识别的地面真值词尾中的任一个中的第一***输出时,将能够被指派给包括所述词头的任一个候选输出序列的所述最高质量分数指派为所述可能***输出的所述最高质量分数,所述词头被是所述地面真值输出序列的部分的任一个地面真值词尾跟随。
10.根据权利要求9所述的方法,其中,确定能够被指派给包括所述词头的任一个候选输出序列的最高质量分数,所述词头被所述可能***输出跟随并且被一个或多个***输出的任一个词尾跟随,包括:
确定能够被指派给包括所述词头的任一个候选输出序列的最高质量分数,所述词头被不是所识别的词尾中的任一个中的第一***输出的可能***输出跟随并且被是所述地面真值输出序列的部分的任一个地面真值词尾跟随;
当所述可能***输出不是所识别的地面真值词尾中的任一个中的所述第一***输出时,将能够被指派给包括所述词头的任一个候选输出序列的所述最高质量分数指派为所述可能***输出的所述最高质量分数,所述词头被不是所识别的地面真值词尾中的任一个中的第一***输出的可能***输出跟随并且被是所述地面真值输出序列的部分的任一个地面真值词尾跟随。
11.根据前述权利要求中的任一项所述的方法,其中,所述神经网络是机器翻译神经网络、语音辨识神经网络或自然语言处理神经网络中的一个或多个。
12.一种***,所述***包括一个或多个计算机和存储指令的一个或多个存储设备,所述指令当由所述一个或多个计算机执行时,使所述一个或多个计算机执行根据权利要求1-11中的任一项所述的相应方法的操作。
13.一个或多个存储指令的计算机存储介质,所述指令当由一个或多个计算机执行时,使所述一个或多个计算机执行根据权利要求1-11中的任一项所述的相应方法的操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862675733P | 2018-05-23 | 2018-05-23 | |
US62/675,733 | 2018-05-23 | ||
PCT/US2019/033849 WO2019226954A1 (en) | 2018-05-23 | 2019-05-23 | Training sequence generation neural networks using quality scores |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111727442A true CN111727442A (zh) | 2020-09-29 |
Family
ID=66858020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980013555.0A Pending CN111727442A (zh) | 2018-05-23 | 2019-05-23 | 使用质量分数来训练序列生成神经网络 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10540585B2 (zh) |
EP (1) | EP3732629A1 (zh) |
CN (1) | CN111727442A (zh) |
WO (1) | WO2019226954A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11037547B2 (en) * | 2019-02-14 | 2021-06-15 | Tencent America LLC | Token-wise training for attention based end-to-end speech recognition |
CN111382580B (zh) * | 2020-01-21 | 2023-04-18 | 沈阳雅译网络技术有限公司 | 一种面向神经机器翻译的编码器-解码器框架预训练方法 |
US11222075B2 (en) * | 2020-06-12 | 2022-01-11 | Earley Information Science, Inc. | Digital data processing systems and methods for digital content retrieval and generation |
US11978435B2 (en) * | 2020-10-13 | 2024-05-07 | Mitsubishi Electric Research Laboratories, Inc. | Long-context end-to-end speech recognition system |
US11527238B2 (en) * | 2020-10-30 | 2022-12-13 | Microsoft Technology Licensing, Llc | Internal language model for E2E models |
US20220230424A1 (en) * | 2021-01-15 | 2022-07-21 | SESH Corp. | Q-value approximation for desired decision states |
US11556593B1 (en) * | 2021-07-14 | 2023-01-17 | International Business Machines Corporation | String similarity determination |
WO2023009766A1 (en) * | 2021-07-28 | 2023-02-02 | Google Llc | Evaluating output sequences using an auto-regressive language model neural network |
US20230169281A1 (en) * | 2021-11-23 | 2023-06-01 | Baidu Usa Llc | Fused acoustic and text encoding for multimodal bilingual pretraining and speech translation |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7526431B2 (en) * | 2001-09-05 | 2009-04-28 | Voice Signal Technologies, Inc. | Speech recognition using ambiguous or phone key spelling and/or filtering |
US7809574B2 (en) * | 2001-09-05 | 2010-10-05 | Voice Signal Technologies Inc. | Word recognition using choice lists |
JP2007047412A (ja) * | 2005-08-09 | 2007-02-22 | Toshiba Corp | 認識文法モデル作成装置、認識文法モデル作成方法、および、音声認識装置 |
US8655643B2 (en) * | 2007-10-09 | 2014-02-18 | Language Analytics Llc | Method and system for adaptive transliteration |
US8775341B1 (en) * | 2010-10-26 | 2014-07-08 | Michael Lamport Commons | Intelligent control with hierarchical stacked neural networks |
US9031970B1 (en) * | 2011-01-26 | 2015-05-12 | Google Inc. | Query autocompletions |
US10019985B2 (en) * | 2013-11-04 | 2018-07-10 | Google Llc | Asynchronous optimization for sequence training of neural networks |
US9653093B1 (en) * | 2014-08-19 | 2017-05-16 | Amazon Technologies, Inc. | Generative modeling of speech using neural networks |
US10540957B2 (en) * | 2014-12-15 | 2020-01-21 | Baidu Usa Llc | Systems and methods for speech transcription |
US9524716B2 (en) * | 2015-04-17 | 2016-12-20 | Nuance Communications, Inc. | Systems and methods for providing unnormalized language models |
US9818409B2 (en) * | 2015-06-19 | 2017-11-14 | Google Inc. | Context-dependent modeling of phonemes |
US20170032241A1 (en) * | 2015-07-27 | 2017-02-02 | Google Inc. | Analyzing health events using recurrent neural networks |
EP3398082A1 (en) * | 2015-12-29 | 2018-11-07 | Mz Ip Holdings, Llc | Systems and methods for suggesting emoji |
KR102195223B1 (ko) * | 2016-03-18 | 2020-12-24 | 구글 엘엘씨 | 전역적으로 노멀화된 신경 네트워크들 |
US9858263B2 (en) * | 2016-05-05 | 2018-01-02 | Conduent Business Services, Llc | Semantic parsing using deep neural networks for predicting canonical forms |
US11080591B2 (en) * | 2016-09-06 | 2021-08-03 | Deepmind Technologies Limited | Processing sequences using convolutional neural networks |
JP6827539B2 (ja) * | 2016-11-03 | 2021-02-10 | ディープマインド テクノロジーズ リミテッド | アクション選択ニューラルネットワークをトレーニングすること |
US10373610B2 (en) * | 2017-02-24 | 2019-08-06 | Baidu Usa Llc | Systems and methods for automatic unit selection and target decomposition for sequence labelling |
GB201713746D0 (en) * | 2017-08-25 | 2017-10-11 | Digital Genius Ltd | Determining if an action can be performed based on a dialogue |
US20190130251A1 (en) * | 2017-10-31 | 2019-05-02 | Google Llc | Neural question answering system |
US10503834B2 (en) * | 2017-11-17 | 2019-12-10 | Digital Genius Limited | Template generation for a conversational agent |
US11410029B2 (en) * | 2018-01-02 | 2022-08-09 | International Business Machines Corporation | Soft label generation for knowledge distillation |
US20190213284A1 (en) * | 2018-01-11 | 2019-07-11 | International Business Machines Corporation | Semantic representation and realization for conversational systems |
-
2019
- 2019-05-23 EP EP19730630.1A patent/EP3732629A1/en active Pending
- 2019-05-23 WO PCT/US2019/033849 patent/WO2019226954A1/en unknown
- 2019-05-23 US US16/421,406 patent/US10540585B2/en active Active
- 2019-05-23 CN CN201980013555.0A patent/CN111727442A/zh active Pending
-
2020
- 2020-01-17 US US16/746,654 patent/US11699074B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2019226954A1 (en) | 2019-11-28 |
EP3732629A1 (en) | 2020-11-04 |
US20200151567A1 (en) | 2020-05-14 |
US11699074B2 (en) | 2023-07-11 |
US20190362229A1 (en) | 2019-11-28 |
US10540585B2 (en) | 2020-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11699074B2 (en) | Training sequence generation neural networks using quality scores | |
US10140977B1 (en) | Generating additional training data for a natural language understanding engine | |
CN111699497B (zh) | 使用离散潜变量的序列模型的快速解码 | |
CN112528637B (zh) | 文本处理模型训练方法、装置、计算机设备和存储介质 | |
US11922281B2 (en) | Training machine learning models using teacher annealing | |
WO2018039510A1 (en) | Reward augmented model training | |
US11423237B2 (en) | Sequence transduction neural networks | |
US11250838B2 (en) | Cross-modal sequence distillation | |
EP3520036B1 (en) | Processing text sequences using neural networks | |
US20240028893A1 (en) | Generating neural network outputs using insertion commands | |
US11481609B2 (en) | Computationally efficient expressive output layers for neural networks | |
US20230205994A1 (en) | Performing machine learning tasks using instruction-tuned neural networks | |
US20220188636A1 (en) | Meta pseudo-labels | |
EP4323909A1 (en) | Character-level attention neural networks | |
US20240220506A1 (en) | Beam search decoding with forward-looking scores | |
US11886976B1 (en) | Efficient decoding of output sequences using adaptive early exiting | |
WO2023057565A2 (en) | Step-unrolled denoising neural networks | |
EP4360005A1 (en) | Sequence error correction using neural networks | |
WO2024068781A1 (en) | Discrete token processing using diffusion models | |
WO2024138177A1 (en) | Recurrent interface networks | |
WO2022051548A1 (en) | Conditional output generation through data density gradient estimation | |
CN118043823A (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 |