一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

训练神经网络以生成结构化嵌入的制作方法

2022-05-08 10:06:10 来源:中国专利 TAG:


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


背景技术:

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


技术实现要素:

3.本说明书描述与训练编码器-解码器引擎以生成能够稍后被以直观方式修改的结构化嵌入相关的技术。
4.通常,本说明书中描述的主题的一个创新方面能够被体现在由一个或多个计算机执行以便训练机器学习模型以生成到该机器学习模型的输入嵌入的方法中,所述机器学习模型具有编码器和解码器,其中所述编码器从所述输入生成所述嵌入,所述解码器从所生成的嵌入生成输出,其中,所述嵌入被分区成(be partitioned into)嵌入分区的序列(a sequence of embedding partitions),所述嵌入分区各自包括所述嵌入的一个或多个维度,所述方法包括:对于嵌入分区的序列中的第一嵌入分区:执行初始训练以训练所述编码器和与所述第一嵌入分区相对应的解码器副本,其中,在所述初始训练期间所述解码器副本接收第一掩蔽嵌入作为输入,所述第一掩蔽嵌入包括(i)由所述编码器针对所述第一嵌入分区生成的值、以及(ii)针对所述序列中的所有后续嵌入分区的遮蔽值;以及对于在嵌入分区的序列中的所述第一嵌入分区之后的每个特定嵌入分区:执行增量训练以训练所述编码器和与所述特定分区相对应的解码器副本,其中,在所述增量训练期间与所述特定分区相对应的所述解码器副本接收针对所述特定分区的增量掩蔽嵌入作为输入,所述增量掩蔽嵌入包括(i)由所述编码器针对所述特定嵌入分区和在所述序列中的所述特定嵌入分区之前的每个嵌入分区生成的值、以及(ii)针对在所述序列中的所述特定嵌入分区之后的任何后续嵌入分区的遮蔽值。此方面的其它实施例包括对应的系统、装置、以及在计算机存储设备上编码的被配置成执行所述方法的动作的计算机程序。
5.在一些实现方式中,执行增量训练还包括,针对在序列中的特定嵌入分区之前的每个在前嵌入分区,训练编码器和与在前嵌入分区相对应的解码器副本,其中,在增量训练期间解码器副本接收针对在前分区的增量掩蔽嵌入作为输入。
6.在一些实现方式中,在增量训练期间,与特定分区和在前分区相对应的解码器副本的参数被约束成具有相同的值。
7.在一些实现方式中,执行初始训练以训练编码器和与第一嵌入分区相对应的解码器副本包括:相对于由解码器副本生成的输出确定目标函数的梯度;将梯度从解码器副本仅反向传播到编码器的生成第一嵌入分区的对应部分;以及使用反向传播的梯度来更新解
码器副本和编码器的对应部分的相应参数值。
8.在一些实现方式中,执行增量训练以训练编码器和与特定分区相对应的解码器副本包括:相对于由解码器副本生成的输出确定目标函数的梯度;将梯度从解码器副本仅反向传播到编码器的生成特定嵌入分区的对应部分;以及使用反向传播的梯度来更新解码器副本和编码器的对应部分的相应参数值。
9.在一些实现方式中,该方法还包括:确定目标函数的梯度已收敛到预定值;以及响应于确定,终止初始训练并且针对序列中的第二分区开始增量训练。
10.在一些实现方式中,针对序列中的所有后续嵌入分区的遮蔽值是零。
11.在一些实现方式中,编码器对中间编码器输出应用具有固定输出范围的激活函数以生成嵌入。
12.在一些实现方式中,输入是文本单元,并且输出是表示文本单元的话语。
13.在一些实现方式中,该方法还包括:在执行所有增量训练之后:接收新输入;使用经训练的编码器来处理新输入以针对新输入生成初始嵌入;接收修改初始嵌入中的给定嵌入分区的值的用户输入以生成新嵌入;以及使用经训练的解码器来处理新嵌入以针对新嵌入生成输出。
14.能够实现本说明书中描述的主题的特定实施例以便达成以下优点中的一个或多个。通常,编码器-解码器引擎包括编码器和解码器,它们都被实现为机器学习模型,例如,神经网络。引擎能够被配置成通过将接收到的输入编码成包括数值的有序集合的嵌入并且然后对嵌入进行解码以生成输出来执行机器学习任务。遵循常规训练技术,嵌入表示通常是纠缠的,例如,包括在嵌入中的单个数值可以表示多个输出特征。在实践中,具有纠缠嵌入表示具有若干问题。一个问题是它增加了优化难度,这进一步导致延长的训练过程。另一问题是纠缠表示降低了嵌入对人类用户的整体可解释性并且防止嵌入在生成之后被以期望方式修改。然而,本说明书公开一种用于在结构化过程中训练编码器-解码器引擎的技术。作为结构化训练过程的结果,生成的嵌入是输出的解纠缠表示。特别地,嵌入包括多个分区,每个分区表示输出的不同特征。此外,输出的主要特征通常由第一嵌入分区表示。具有生成以这样的可解释方式表示输出特征的嵌入的能力使得人类用户能够通过调整生成输出所基于的嵌入内的对应数值来容易地修改输出的特定特征。这种能力进而加宽了编码器-解码器引擎的应用的范围以包括经常需要对生成的输出进行微调的用例。例如,在文本至语音应用中,不同的人类用户可能想要以与初始合成的发音不同的特定方式来发音某些输入文本。
15.在以下附图和描述中阐述本说明书中描述的主题的一个或多个实施例的细节。根据说明书、附图和权利要求书,主题的其它特征、方面和优点将变得显而易见。
附图说明
16.图1是示例编码器-解码器系统的框图。
17.图2是用于训练编码器-解码器引擎的示例过程的流程图。
18.图3a是用于执行初始训练以训练编码器-解码器引擎的示例过程的流程图。
19.图3b是用于执行增量训练以训练编码器-解码器引擎的示例过程的流程图。
20.图4a是针对第一嵌入分区执行初始训练以训练编码器-解码器引擎的示例的图
示。
21.图4b是针对第二嵌入分区执行增量训练以训练编码器-解码器引擎的示例的图示。
22.在各个附图中相似的附图标记和名称指示相似的元件。
具体实施方式
23.本说明书描述一种作为计算机程序实现在一个或多个位置中的一个或多个计算机上的系统,该系统训练编码器-解码器引擎以生成能够稍后被人类用户以直观方式修改的结构化嵌入。
24.图1是示例编码器-解码器系统100的框图。编码器-解码器系统100是作为计算机程序实现在一个或多个位置中的一个或多个计算机上的系统的示例,其中实现了下述系统、组件和技术。
25.编码器-解码器系统100被配置成接收输入102并且将输入102编码成相对于输入102在较低维空间中的嵌入106。换句话说,嵌入106是在空间中具有比输入102的维度低的固定维度的数值表示,即,嵌入106是具有固定数目的值的数值的有序集合。例如,嵌入106可以是固定大小的向量或矩阵。
26.系统100然后将嵌入106解码到输出112。
27.系统100使用编码器-解码器引擎108来执行编码和解码过程,该编码器-解码器引擎108进而包括编码器110和解码器120。能够将编码器-解码器引擎108互换地称为机器学习模型108。
28.通常,系统100能够被配置成执行涉及编码过程、解码过程、或编码过程和解码过程两者的一系列机器学习任务中的任一个。取决于特定任务,输入102和输出112都可以是各种类型的数据中的任一种,并且输入102和输出112可以或可以不是相同类型的。在输入102和输出112两者中包括相同类型的数据的情况下,可以将由编码器-解码器引擎108执行的任务称为自动编码任务。
29.例如,如果任务是图像自动编码任务,则输入102是表示一个图像的结构化数据(例如,数组),并且由引擎108生成的输出112是表示重构图像的数据。
30.作为另一示例,如果任务是音频自动编码任务,则输入102是表示音频的数据(例如,波形音频文件),并且由引擎108生成的输出112是表示重构音频的数据。示例音频可以包括声音、语音、音乐等。
31.特别地,编码器110和解码器120都是能够各自包括一个或多个神经网络层例如全连接层、卷积层、循环层、激活层等的神经网络。神经网络的每个层根据相应参数集的当前值从接收到的输入生成输出。在前层(preceding layers)的输出用于构造后续层(subsequent layers)的输入。
32.编码器110被配置成接收输入102并且根据当前编码器参数值来处理输入102从而基于该输入102来生成嵌入106。
33.在一些实现方式中,编码器110对中间编码器输出(即,在激活层之前的层的输出)应用具有固定输出范围的有界激活函数以生成最终嵌入106。换句话说,编码器110的最后层是以下激活层,该激活层将具有固定输出范围的激活函数应用于在编码器110中由在激
活层之前的层生成的中间编码器输出。通常,激活函数将到函数的输入的分布变换成不同分布。有界激活函数,例如tanh或sigmoid函数,将所生成的嵌入106的分布强制为可预测的,即在固定间隔内。
34.解码器120被配置成接收所生成的嵌入106并且根据当前解码器参数值来处理嵌入106以生成输出112。
35.编码器-解码器系统100还包括被配置成在训练输入132上训练编码器-解码器引擎108的训练引擎130。特别地,训练引擎130使用迭代训练过程来训练编码器110和解码器120以确定编码器-解码器引擎108的参数的训练值,包括编码器和解码器参数集。
36.通常,能够通过以下目标函数来测量训练质量,该目标函数描述经训练的编码器-解码器引擎108能够多好地执行给定机器学习任务。特别地,目标函数评价针对给定输入生成的输出与期望的目标输出有多近。此外,如上所述,输出112由解码器120基于处理嵌入106而生成,所述嵌入106进而由编码器110基于处理所接收的输入102而生成。因此,训练质量进一步确定所生成的嵌入106能够多好地表示所生成的输出112的独特特征。
37.在一些实现方式中,系统100将嵌入106划分成嵌入分区的序列。每个嵌入分区包括一个或多个维度的数值。例如,如果嵌入106是5维向量,即具有5个数值的向量[x1,x2,x3,x4,x5],则第一维度即数值x1可以是序列中的第一嵌入分区。对应地,每个后续维度可以是产生总共五个嵌入分区的后续嵌入分区。
[0038]
通过适当地使用将在下面参考图2至图4更详细地描述的结构化训练过程来训练编码器-解码器引擎108,系统训练编码器,使得对于所有生成的输出来说,每个给定嵌入分区表示输出112的相同对应特征,并且每个分区对应于与所有其它分区都不同的特征。换句话说,作为训练的结果,输出112的特定特征将对一个对应嵌入分区内的数值变化敏感,而对其它嵌入分区内的数值变化相对不变。此外,在一些情况下,序列中的嵌入分区以有序方式表示输出的不同特征。在此类情况下,由第一嵌入分区表示的特定特征对应于输出的主要特征。主要特征对应于以下特征,该特征在训练期间允许引擎108使得使用测量训练质量的目标函数计算的误差最小化。可选地,主要特征是指输出的最具代表性的特性,例如,图像输出中描绘的对象的身份、语音输出中记录的话音的音高等。在一些实现方式中,以类似方式,由序列中的后续嵌入分区表示的对应特征对应于输出的次要特征,即,允许引擎108在训练期间生成具有第二最小误差的输出的特征。
[0039]
例如,当用在输入是表示一个或多个文本单元的词元化数据并且输出是表示文本单元的话语(或话语的波形)集的文本至语音任务中时,经训练的编码器-解码器引擎108能够被配置成生成能够各自表示与输入文本相对应的输出话语的不同韵律特征的嵌入分区的集合。示例韵律特征可以包括音高、长度、响度、音色等。因此,一个分区能够表示音高,而另一分区能够表示长度,依此类推。可选地,在每个嵌入分区进而包括不止一个维度的数值的情况下,一个嵌入分区内的每个维度能够进一步表示所对应的韵律特征的特定性质,例如音高的高度、斜率或曲率。
[0040]
在一些实现方式中,在被训练之后,系统100能够被配置成接收作为与训练输入相同类型的数据的新输入。系统100使用经训练的编码器来处理新输入以针对该新输入生成初始嵌入。系统然后使用经训练的解码器来处理该初始嵌入以生成初始输出。作为结构化训练过程的结果,初始嵌入包括各自表示输出的不同特征的多个分区。
[0041]
例如,如果新输入和训练输入都是用于图像重构任务的图像数据,则每个嵌入分区能够表示重构图像的特定图形特征,例如,尺度、照明或颜色。
[0042]
作为另一示例,如果新输入和训练输入都是用于文本至语音任务的文本数据,则每个嵌入分区能够表示话语的特定韵律特征,例如,音高、持续时间、响度或音色。
[0043]
为了允许在初始输出的特征已被生成之后修改它们,系统100能够被进一步配置成接收用户输入,例如通过由系统提供的应用编程接口(api)或通过由系统生成并显示在用户设备上的用户界面呈现,所述用户输入修改初始嵌入中的一个或多个给定嵌入分区的值以生成新嵌入。用户输入可以指定对所述一个或多个给定嵌入分区内的数值的集合的修改。在接收到用户输入时,系统100使用经训练的解码器来处理新嵌入以基于新嵌入来生成修改后的输出。经修改后的输出然后将一个或多个修改后的特征并入在其表示(例如重构图像中修改后的颜色、所生成的话语中重新定标的音高等)中。
[0044]
作为特定示例,在音频处理任务中,系统处理表示音频的输入数据(例如,用户语音的记录或计算机生成的语音样本)以生成初始嵌入。系统能够被配置成接收指定对一个或多个嵌入分区内的数值的修改的用户输入。系统然后处理经修改后的嵌入以生成修改后的音频。经修改后的音频并入对输入音频的对应特征的一个或多个用户指定的修改。
[0045]
另一方面,如果训练引擎130已以常规方式(即,不遵循结构化训练过程)训练了编码器-解码器引擎108,则经训练的编码器110很可能生成纠缠嵌入106,即,由各自表示输出112的一个以上特征的数值构成的嵌入,所述输出112进而由经训练的解码器120基于处理嵌入106而生成。换句话说,在被生成之后,对包括在这种嵌入106中的数值中的任何一个做出的修改将导致输出112中的不止一个特征改变。另外,虽然存在目的旨在训练编码器110以生成解纠缠嵌入106的其它训练技术,但是不同嵌入维度与输出112的特征之间的对应关系难以标识。具体地,如果使用另一解纠缠嵌入训练技术,则一旦编码器-解码器引擎已被训练,就将难以确定哪个嵌入维度对应于哪个特征,因为这些技术没有以本说明书中描述的结构化和迭代方式训练编码器-解码器引擎。在这些情况下,以期望方式微调所生成的输出的特定特征将是困难的,并且时常是不切实际的。
[0046]
图2是用于训练编码器-解码器引擎的示例方法200的流程图。为方便起见,方法200将被描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,根据本说明书适当地编程的编码器-解码器系统,例如图1的编码器-解码器系统100,能够执行方法200。
[0047]
能够将方法200称为结构化训练过程。简要地,结构化训练过程包括初始训练过程和一个或多个增量训练过程。
[0048]
在一些实现方式中,在执行方法200之前或同时,系统基于解码器(即,被包括在如图1所描绘的编码器-解码器引擎108中的解码器120)生成一个或多个解码器副本。所述一个或多个解码器副本被生成以具有与解码器相同的架构和参数值。因此,为方便起见,即使在要参考解码器的情况下,以下描述也将仅参考解码器副本。
[0049]
在此类实现方式中,解码器副本的数目通常与包括在嵌入中的分区的数目相同。也就是说,系统针对每个嵌入分区生成对应的解码器副本。
[0050]
此外,当执行方法200时,系统将对特定解码器副本的参数值做出的任何改变同步地应用于所有其它解码器副本。以这种方式,系统将所有解码器副本的参数值约束成相同
的。
[0051]
系统接收训练输入(202)。每个训练输入与目标输出相关联。目标输出是以下输出,该输出应该由引擎通过执行引擎被配置成对训练输入执行的机器学习任务来生成。
[0052]
系统针对嵌入分区的序列中的第一嵌入分区执行初始训练(204)。第一嵌入分区包括来自嵌入的第一、一个或多个维度的数值,其中该嵌入由引擎基于处理接收到的训练输入而生成。特别地,系统在初始训练期间不处理完整嵌入,而是仅处理第一嵌入分区。也就是说,系统仅基于被包括在第一嵌入分区中的数值生成训练输出。因此,仅此类数值在每次初始训练迭代结束时被更新。
[0053]
通常,执行初始训练鼓励引擎学习生成表示训练输出的主要特征的第一嵌入分区。主要特征是指训练输出的最具代表性的特性,例如,图像训练输出中描绘的对象的身份、语音训练输出中记录的话音的音高等。即使不处理完整嵌入,处理表示训练输出的主要特征的第一嵌入分区也允许引擎生成尽可能接近于目标输出的训练输出,从而减小使用测量训练质量的目标函数计算的误差。
[0054]
将在下面参考图3a和图4a更详细地描述执行初始训练。
[0055]
在初始训练已终止之后(例如,在预定数目的初始训练迭代已完成之后或者在目标函数的计算梯度已收敛到预定值之后),系统前进到执行增量训练。
[0056]
系统针对在嵌入分区的序列中的第一嵌入分区之后的每个特定嵌入分区执行增量训练(206)。在一些实现方式中,增量训练从序列中的第二嵌入分区开始。第二嵌入分区包括在序列中的第一嵌入分区之后的一个或多个维度的数值。类似地,每个增量训练过程在满足某个终止标准时(例如在预定数目的增量训练迭代已完成之后或者在目标函数的计算梯度已收敛到预定值之后)终止。
[0057]
执行增量训练鼓励引擎学习生成各自表示训练输出的对应特征的嵌入分区。将在下面参考图3b和图4b更详细地描述执行增量训练。
[0058]
图3a是用于执行初始训练以训练编码器-解码器引擎的示例过程300的流程图。为方便起见,过程300将被描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,根据本说明书适当地编程的编码器-解码器系统,例如图1的编码器-解码器系统100,能够执行过程300a。
[0059]
系统能够针对不同的训练输入重复地执行过程300以便执行初始训练,即,针对序列中的第一嵌入分区的训练。
[0060]
系统接收与目标输出相关联的训练输入(302)。目标输出是应该由系统通过执行机器学习任务而生成的输出,其中系统被配置成基于训练输入来执行该机器学习任务。
[0061]
系统基于根据编码器的当前参数值处理训练输入来生成第一掩蔽嵌入(304)。具体地,第一掩蔽嵌入包括(i)由编码器针对第一嵌入分区生成的值、以及(ii)针对嵌入分区的序列中的所有后续嵌入分区的遮蔽值。在一些实现方式中,系统通过用预定值(例如,零)替换序列中的所有后续嵌入分区的值来遮蔽这些值。
[0062]
现在参考图4a,图示了针对第一嵌入分区执行初始训练以训练编码器-解码器引擎的示例。特别地,如图4a所图示的,系统基于根据编码器110的当前参数值处理训练输入来生成第一掩蔽嵌入。第一掩蔽嵌入包括针对第一嵌入分区106a的编码器生成的值以及针对嵌入分区的其余部分的遮蔽值。
[0063]
系统基于根据当前参数值使用与第一嵌入分区相对应的解码器副本处理所生成的第一掩蔽嵌入来生成训练输出(306)。
[0064]
系统相对于所生成的训练输出计算目标函数(308)。目标函数评价所生成的训练输出的质量,即,通过测量所生成的训练输出与目标输出之间的误差。通常,系统使用非常适合于神经网络正在被训练来执行的机器学习任务的目标函数。例如,计算两个输出之间的最小二乘误差的l2损失函数是对涉及例如图像和语音数据的回归机器学习任务中的目标函数的常见选择。
[0065]
系统确定目标函数的梯度(310)。例如,如图4a所图示的,系统确定相对于由解码器副本120生成的训练输出计算的目标函数的梯度142。
[0066]
系统将梯度从解码器副本仅反向传播到编码器的生成第一嵌入分区的对应部分(312)。例如,如图4a所图示的,系统将梯度从解码器副本120仅反向传播到编码器110的生成第一嵌入分区106a的对应部分。
[0067]
通常,目标函数的梯度从解码器层向后传播到嵌入,并且到编码器层。因此,因为嵌入仅包括在第一嵌入分区中的编码器生成值,所以从嵌入反向传播到编码器层的梯度仅传递到编码器的在第一嵌入分区中生成值的对应部分(即,编码器参数的子集或编码器参数值的一部分)。
[0068]
系统例如基于经反向传播的梯度来更新解码器副本和编码器的对应部分的相应参数值(314)。特别地,系统能够使用任何适当的机器学习训练技术来更新参数值。训练技术的示例包括随机梯度下降、adam和rms-prop。
[0069]
通过重复地执行过程300,系统训练编码器以生成序列中的第一嵌入分区,该第一嵌入分区表示基于相同类型的训练输入生成的所有训练输出的相同对应特征。通常,特征对应于训练输出的主要特征。
[0070]
图3b是用于执行增量训练以训练编码器-解码器引擎的示例过程350的流程图。为方便起见,过程350将被描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,根据本说明书适当地编程的编码器-解码器系统,例如图1的编码器-解码器系统100,能够执行过程350。
[0071]
系统能够针对不同的训练输入重复地执行过程350以便执行增量训练,即,针对在嵌入分区的序列中的第一嵌入分区之后的每个特定嵌入分区的训练。
[0072]
系统接收与目标输出相关联的训练输入(352)。目标输出是应该由系统通过执行机器学习任务而生成的输出,其中系统被配置成基于训练输入来执行该机器学习任务。
[0073]
系统基于根据编码器的当前参数值处理训练示例来为特定嵌入分区生成增量掩蔽嵌入(354)。具体地,针对特定分区的增量掩蔽嵌入包括(i)由编码器针对特定嵌入分区和在序列中的特定嵌入分区之前的每个嵌入分区生成的值、以及(ii)针对在序列中的特定嵌入分区之后的任何后续嵌入分区的遮蔽值。
[0074]
现在参考图4b,图示了针对第二嵌入分区执行增量训练以训练编码器-解码器引擎的示例。具体地,如图4b所图示的,系统基于根据编码器110的当前参数值处理训练输入来为第二嵌入分区106b生成增量掩蔽嵌入。增量掩蔽嵌入包括第一嵌入分区106a和第二嵌入分区106b中编码器生成的值以及针对所有其它分区的遮蔽值。
[0075]
系统基于根据当前参数值使用与特定嵌入分区相对应的解码器副本处理针对特
定嵌入分区的增量掩蔽嵌入来生成训练输出(356)。
[0076]
系统相对于所生成的训练输出计算目标函数(358)。
[0077]
系统确定相对于所生成的训练输出计算的目标函数的梯度(360)。例如,如图4b所图示的,系统确定相对于由解码器副本122生成的训练输出计算的目标函数的梯度146。
[0078]
系统将梯度从解码器副本仅反向传播到编码器的生成特定嵌入分区的对应部分(362)。也就是说,系统将梯度从解码器副本仅向后传播到对应的特定嵌入分区。系统然后将梯度从特定嵌入分区向后传播到编码器的生成特定嵌入分区的对应部分。
[0079]
例如,如图4b所图示的,系统将梯度146从解码器副本122通过第二嵌入分区106b仅反向传播到编码器110的生成第二嵌入分区106b的对应部分。
[0080]
系统例如基于经反向传播的梯度来更新解码器副本和编码器的对应部分的相应参数值(364)。
[0081]
在一些实现方式中,在每个过程350期间,除了训练特定嵌入分区之外,系统还训练序列中的所有在前嵌入分区。也就是说,当执行过程350时,系统与在上面描述的对应步骤一起联合地执行以下步骤。
[0082]
具体地,系统还针对在序列中的特定嵌入分区之前的一个或多个在前嵌入分区中的每个嵌入分区生成对应的增量掩蔽嵌入(354)。针对每个在前嵌入分区的增量掩蔽嵌入包括(i)由编码器针对在前嵌入分区和在序列中的在前嵌入分区之前的每个嵌入分区生成的值、以及(ii)针对在序列中的在前嵌入分区之后的任何后续嵌入分区的遮蔽值。
[0083]
例如,如图4b所图示的,系统还针对在分区的序列中的第二嵌入分区106b之前的第一嵌入分区106a生成增量掩蔽嵌入。第一嵌入分区106a包括仅在第一嵌入分区106a中的编码器生成的值。
[0084]
系统基于针对在特定嵌入分区之前的一个或多个在前嵌入分区中的每个嵌入分区处理一个或多个增量掩蔽嵌入使用对应的解码器副本来生成一个或多个附加训练输出(356)。
[0085]
系统相对于所述一个或多个附加训练输出中的每个附加训练输出计算相应的目标函数(358)。每个目标函数测量生成的训练输出与目标输出之间的对应误差。
[0086]
系统确定相对于附加训练输出计算的一个或多个目标函数的相应梯度(360)。例如,如图4b所图示的,系统相对于由解码器副本120生成的训练输出计算目标函数。
[0087]
系统将梯度从相应的解码器副本仅反向传播到编码器的生成每个在前嵌入分区的对应部分(362)。例如,如图4b所图示的,系统将梯度144从解码器副本120通过第一嵌入分区106a仅反向传播到编码器110的生成第一嵌入分区106a的对应部分。
[0088]
系统例如基于经反向传播的梯度来更新解码器副本和编码器的对应部分的相应参数值(364)。
[0089]
通过重复地执行过程350,系统训练编码器以生成序列中的后续嵌入分区,这些后续嵌入分区各自表示基于相同类型的训练输入生成的所有训练输出的相同对应特征。通常,每个嵌入分区对应于与所有其它分区都不同的特征。
[0090]
本说明书中描述的主题和功能操作的实施例可以在数字电子电路、在有形地实施的计算机软件或固件、在计算机硬件,包括本说明书中所公开的结构以及其结构等效物,或在它们中的一个或多个的组合中实施。本说明书中描述的主题的实施例可以实施为一个或
多个计算机程序,即,在有形的非暂时性程序载体上编码以供数据处理设备执行或控制数据处理设备的操作的计算机程序指令的一个或多个模块。可替代地或另外,程序指令可以在例如机器产生的电信号、光信号或电磁信号等人为产生的传播信号上编码,产生所述人为产生的传播信号以对传输到合适接收器设备以供数据处理设备执行的信息进行编码。计算机存储介质可以是机器可读存储装置、机器可读存储基底、随机或串行存取存储器装置,或它们中的一个或多个的组合。然而,计算机存储介质不是传播信号。
[0091]
术语“数据处理设备”涵盖用于处理数据的所有种类的设备、装置和机器,包括例如可编程处理器、计算机,或多个处理器或计算机。设备可以包括专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,设备还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统,或它们中的一个或多个的组合的代码。
[0092]
计算机程序(也可以称为或描述为程序、软件、软件应用程序、模块、软件模块、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释性语言,或声明性或程序性语言,并且它可以以任何形式进行部署,包括作为独立程序或作为模块、组件、子例程或适用于计算环境的其它单元进行部署。计算机程序可以,但未必对应于文件系统中的文件。程序可以存储在文件的一部分中,所述文件将其它程序或数据(例如,存储在标记语言文档中的一个或多个脚本)保存在专用于所讨论的程序的单个文件中,或多个协调文件(例如,存储一个或多个模块、子程序或代码的部分的文件)中。计算机程序可以被部署为在一个计算机上或在多个计算机上执行,所述多个计算机位于一个位置处或跨越多个位置分布并且通过通信网络互连。
[0093]
如本说明书中所使用,“引擎”或“软件引擎”是指提供与输入不同的输出的软件实施的输入/输出系统。引擎可以是编码的功能块,例如库、平台、软件开发工具包(“sdk”)或对象。每个引擎都可以在任何适当类型的计算装置上实施,例如服务器、移动电话、平板计算机、笔记本计算机、音乐播放器、电子书阅读器、膝上型或台式计算机、pda、智能手机或包括一个或多个处理器和计算机可读介质的其它固定或便携式装置。另外,两个或更多个引擎可以在相同计算装置上,或在不同计算装置上实施。
[0094]
本说明书中描述的过程和逻辑流可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过在输入数据上操作并且产生输出来执行功能。过程和逻辑流还可以通过专用逻辑电路(例如,fpga(现场可编程门阵列)或asic(专用集成电路))执行并且设备还可以实施为所述专用逻辑电路。
[0095]
例如,适合于执行计算机程序的计算机可以基于通用或专用微处理器或两者,或者基于任何其它种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行或实施指令的中央处理单元,以及用于存储指令和数据的一个或多个存储器装置。通常,计算机还将包括用于存储数据的一个或多个大容量存储装置(例如,磁盘、磁光盘或光盘),或可操作地耦合以从所述一个或多个大容量存储装置接收数据或将数据传递到所述一个或多个大容量存储装置,或这两者。然而,计算机不需要具有此类装置。此外,计算机可以嵌入另一装置中,例如,仅举几例,移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器、或便携式存储装置(例如,通用串行总线(usb)闪存驱动器)。
[0096]
适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器装置,包括例如,半导体存储器装置,例如,eprom、eeprom和闪存装置;磁盘,例如,内部硬盘或可移动磁盘;磁光盘;以及cd rom和dvd-rom盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
[0097]
为了提供与用户的交互,本说明书中描述的主题的实施例可以在具有显示装置,例如,crt(阴极射线管)或lcd(液晶显示器)监视器的计算机上实施,以将信息显示给用户以及键盘和指向装置,例如,鼠标或轨迹球,用户可以通过所述指向装置将输入提供到计算机。其它种类的装置也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;以及从用户产生的输入可以用任何形式接收,包括声音、语音或触觉输入。另外,通过将文档发送到用户使用的装置以及从所述装置接收文档;例如,通过响应于从网络浏览器接收的请求而将网页发送到用户的客户端装置上的网络浏览器,计算机可以与用户交互。
[0098]
本说明书中描述的主题的实施例可以在计算系统中实施,所述计算系统包括后端组件,例如作为数据服务器,或包括中间件组件,例如应用程序服务器,或包括前端组件,例如具有图形用户界面或网络浏览器的客户端计算机,用户可以通过所述图形用户界面或网络浏览器与本说明书中描述的主题的实施方案交互,或一个或多个此后端、中间件或前端组件的任何组合。系统的组件可以通过数字数据通信,例如通信网络的任何形式或介质互连。通信网络的示例包括局域网(“lan”)和广域网(“wan”),例如因特网。
[0099]
计算系统可以包括客户端和服务器。客户端和服务器通常远离彼此并且通常通过通信网络交互。客户端和服务器的关系借助于在相应计算机上运行以及彼此具有客户端-服务器关系的计算机程序产生。
[0100]
尽管本说明书含有许多特定实施方案细节,但是这些细节不应解释为限制任何发明的范围或可以主张的内容的范围,而是对可能特定于特定发明的特定实施例的特征的描述。本说明书中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各个特征也可以单独地在多个实施例中或在任何合适的子组合中实施。此外,尽管特征可以在上文描述为在某些组合中起作用且甚至初始地如此主张,但是来自所主张组合的一个或多个特征在一些情况下可以从所述组合中删除,并且所主张组合可以针对子组合或子组合的变体。
[0101]
类似地,尽管在图中以特定次序描绘操作,但是这不应理解为需要按所示的特定次序或按顺序执行此类操作,或执行所有所图示的操作以实现所需要的结果。在某些情况下,多任务和并行处理可以是有利的。此外,上述实施例中的各个系统模块和组件的分离不应理解为在所有实施例中需要此种分离,并且应理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或封装成多个软件产品。
[0102]
已描述主题的特定实施例。其它实施例在所附权利要求书的范围内。例如,权利要求书中叙述的动作可以按不同次序执行并且仍实现所需要的结果。作为另一示例,附图中描绘的过程不一定需要所示的特定次序或连续次序来实现期望的结果。在某些实施方案中,多任务和并行处理可以是有利的。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献