具有针对使用对抗训练的表示学习的推理的大规模生成神经网络模型

文档序号:1966956 发布日期:2021-12-14 浏览:19次 >En<

阅读说明:本技术 具有针对使用对抗训练的表示学习的推理的大规模生成神经网络模型 (Large-scale generation neural network model with reasoning for representation learning using antagonistic training ) 是由 杰弗里·多纳休 凯伦·西蒙尼扬 于 2020-05-22 设计创作,主要内容包括:本发明提供了用于对生成器神经网络和编码器神经网络进行训练的方法、系统和装置,其包括在计算机存储介质上编码的计算机程序。生成器神经网络基于潜在值集合生成数据项,这些数据项是分布的样本。编码器神经网络生成对应数据项的潜在值集合。方法包括对生成器神经网络、编码器神经网络和鉴别器神经网络进行联合训练,鉴别器神经网络被配置为区分由生成器网络生成的样本和不由生成器网络生成的分布的样本。鉴别器神经网络被配置为通过处理,通过鉴别器神经网络来区分包括样本部分和潜在部分的输入对。训练是基于损失函数,损失函数包括基于由鉴别器神经网络处理的输入对的样本部分和潜在部分的联合鉴别器损失项和基于输入对的样本部分或潜在部分中的仅一个部分的至少一个单一鉴别器损失项。(Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for training a generator neural network and an encoder neural network are provided. The generator neural network generates data items, which are distributed samples, based on the set of potential values. The encoder neural network generates a set of potential values for the corresponding data items. The method includes jointly training a generator neural network, an encoder neural network, and a discriminator neural network, the discriminator neural network configured to distinguish between samples generated by the generator network and distributed samples not generated by the generator network. The discriminator neural network is configured to distinguish, by processing, input pairs including the sample portion and the potential portion by the discriminator neural network. The training is based on a loss function that includes a joint discriminator loss term based on the sample portion and the potential portion of the input pair processed by the discriminator neural network and at least one single discriminator loss term based on the sample portion or only one of the potential portion of the input pair.)

具有针对使用对抗训练的表示学习的推理的大规模生成神经 网络模型

本申请是于2019年5月23日提交的美国临时专利申请号62/852,250的非临时申请并且要求其优选权。

背景技术

本说明书涉及用于对大规模生成神经网络进行训练以及对用于执行推理的神经网络进行编码的方法和系统。

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

发明内容

本说明书通常描述了被实施为在一个或多个位置的一个或多个计算机中的计算机程序的系统可以如何执行方法来对自适应系统进行训练(即,调整自适应系统的参数),该自适应系统是包括推理模型的生成对抗网络(GAN),其包括生成器神经网络、编码器神经网络和鉴别器神经网络。神经网络是基于从分布中选择的数据项的训练集合进行训练的。生成器神经网络,一旦被训练,便可以用于基于从潜在值分布(或“潜在分布”)中选择的潜在值(或仅仅为“潜在”)从分布中生成样本。编码器神经网络,一旦被训练,便可以用于基于从分布中选择的数据项从潜在值分布中生成潜在值。即,编码器神经网络可以被认为实施生成器神经网络的逆函数。

更具体地,本说明书涉及一种对生成器神经网络和编码器神经网络进行训练的计算机实现的方法。生成器神经网络可以被配置为基于潜在值集合生成数据项,这些数据项是表示训练数据项集合的分布的样本。编码器神经网络可以被配置为生成对应数据项的潜在值集合。训练方法可以包括对生成器神经网络、编码器神经网络和鉴别器神经网络进行联合训练,该鉴别器神经网络被配置为区分由生成器网络生成的样本和不由生成器网络生成的分布的样本。鉴别器神经网络可以被配置为通过处理,通过鉴别器神经网络来区分包括样本部分和潜在部分的输入对。输入对的样本部分和潜在部分可以包括由生成器神经网络生成的分布的样本和分别用于生成样本的相应潜在值集合或训练数据项集合的训练数据项和由编码器神经网络基于训练数据项生成的潜在值集合。训练可以是基于损失函数,该损失函数包括基于由鉴别器神经网络处理的输入对的样本部分和潜在部分的联合鉴别器损失项和仅仅基于输入对的样本部分或潜在部分中的一个部分的至少一个单一鉴别器损失项。

在实施方式中,通过使用损失函数对生成器神经网络和编码器神经网络进行训练,已经发现,可以有效地对大规模生成器神经网络和编码器神经网络进行训练,该损失函数包括基于由鉴别器神经网络处理的输入对的联合鉴别器损失项和仅仅基于输入对的样本部分或潜在部分中的一个部分的单一鉴别器损失项。与已知的方法相比,这可能允许更有效地处理大规模数据。具体地,实验发现,在从数据项中提取显著信息——例如供分类系统使用或用于其他目的,诸如控制代理——方面,编码器的示例比已知的方法更好。已经发现,在生成用户认为是真实的数据项方面,生成器比已知的技术更好。还已经发现,损失函数的使用提供比一些已知的技术更稳定的训练过程,这允许对大规模生成和推理神经网络进行有效训练,该损失函数包括基于由鉴别器神经网络处理的输入对的联合鉴别器损失项和仅仅基于输入对的样本部分或潜在部分中的一个部分的单一鉴别器损失项。

训练方法还可以包括以下可选特征。

单一鉴别器损失项可以是基于输入对的样本部分。单一鉴别器损失项可以包括样本鉴别得分,该样本鉴别得分是基于使用样本鉴别器子网络对输入对的样本部分进行处理而被生成的。样本鉴别得分可以指示以下可能性:输入对的样本部分是由生成器神经网络生成的样本或是训练数据项集合的真正训练数据项。在这方面,样本鉴别得分可以是概率。

样本鉴别器子网络可以是基于卷积神经网络。例如,样本鉴别器子网络可以是基于来自“BigGAN”框架的鉴别器网络(Andrew Brock、Jeff Donahue和Karen Simonyan在2019年的ICLR的arXiv 1809:11096中提交的“Large scale GAN training for highfidelity natural image synthesis(用于高保真自然图像合成的大规模GAN训练)”,其公开内容通过引用并入本文)。

样本鉴别得分可以进一步基于将投影应用于样本鉴别器子网络而被生成。例如,投影可以被实施为进一步的线性神经网络层,该线性神经网络层可以具有要使用所描述的训练方法进行训练的可训练参数。

单一鉴别器损失项可以是基于输入对的潜在部分。单一鉴别器损失项包括潜在鉴别得分,该潜在鉴别得分是基于使用潜在鉴别器子网络对输入对的潜在部分进行处理而被生成的。潜在鉴别得分可以指示以下可能性:输入对的潜在部分是使用编码神经网络基于训练数据项而被生成的潜在值集合或是与使用生成器神经网络而被生成的样本对应的潜在值集合。在这方面,潜在鉴别得分可以是概率。

潜在鉴别得分可以进一步基于将投影应用于潜在鉴别器子网络而被生成。例如,投影可以被实施为进一步的线性神经网络层,该线性神经网络层可以具有要使用所描述的训练方法进行训练的可训练参数。

潜在鉴别器子网络可以是基于多层感知器。例如,潜在鉴别器子网络可以是“ResNet”类型的神经网络,包括残差块和跳过连接。

损失函数可以包括多个单一鉴别器损失项。例如,损失函数可以包括样本鉴别得分和潜在鉴别得分。

联合鉴别器损失项可以包括使用联合鉴别器子网络而被生成的联合鉴别得分。联合鉴别得分可以指示以下可能性:输入对包括由生成器神经网络生成的分布的样本和分别用于生成样本的相应潜在值集合或训练数据项集合的训练数据项和由编码器神经网络基于训练数据项生成的潜在值集合。

联合鉴别器子网络可以被配置为处理输入对。可替代地,联合鉴别器子网络可以被配置为处理样本鉴别器子网络的输出和潜在鉴别器子网络的输出,其中,样本鉴别器子网络被配置为处理输入对的样本部分,并且潜在鉴别器子网络被配置为处理输入对的潜在部分。样本鉴别器子网络和潜在鉴别器子网络可以与上面所描述的相同。

联合鉴别得分可以进一步基于将投影应用于联合鉴别器子网络而被生成。例如,投影可以被实施为进一步的线性神经网络层,该线性神经网络层可以具有要使用所描述的训练方法进行训练的可训练参数。

联合鉴别器子网络可以是基于多层感知器。例如,联合鉴别器子网络可以是“ResNet”类型的神经网络,包括残差块和跳过连接。

损失函数可以是基于联合鉴别器损失项和单一鉴别器损失项的总和。将认识到,在存在多个单一鉴别器损失项的情况下,总和可以包括所有单一鉴别器损失项或单一鉴别器损失项的子集。

损失函数可以包括应用于损失函数的分量(例如一个分数或一个分数的负数)的铰链函数。铰链函数可以被定义为h(t)=max(0,1-t)。铰链函数可以单独应用于损失函数的分量或可以应用于损失函数的分量的总和或单独和聚合的损失函数分量的任何组合。

编码器神经网络可以表示概率分布,并且生成潜在值集合可以包括从概率分布采样。以这种方式,编码器神经网络是非确定的。编码器神经网络的输出可以包括平均值和标准偏差用于定义正态概率分布,潜在值集合可以从该正态概率分布中采样。编码器神经网络可以包括最终神经网络层,该最终神经网络层实施非负“soft-plus”非线性,用于生成标准偏差。“soft-plus”非线性可以被定义为log(1+exp(x))。潜在值集合可以基于重新参数化的采样而被生成。例如,潜在值z可以生成为z=平均值+ε*标准偏差,其中,ε是从具有零平均值的单位高斯采样的。可替代地,潜在值可以是基于离散概率分布。

编码器神经网络可以是基于卷积神经网络。例如,编码器神经网络可以是“ResNet”或“RevNet”类型的神经网络,该神经网络具有标准残差块或可逆残差块,这些块具有进一步完全连接的层,这些层具有跳过连接。

生成器神经网络可以是大规模深度神经网络,并且例如,可以是基于“BigGAN”框架。生成器神经网络可以无条件地或有条件地生成样本。

训练可以进一步包括鉴别器神经网络参数的交替更新以及编码器神经网络参数和生成器神经网络参数的更新,其中,更新是基于损失函数生成的。

一般而言,训练遵循GAN框架。训练是迭代过程,其中,每次迭代都是基于小批量样本,这些样本用于确定损失函数的值,神经网络参数更新可以是使用梯度下降和反向传播从该值中确定的。

训练可以进一步包括联合更新编码器神经网络参数和生成器神经网络参数。

使鉴别器神经网络参数的更新以及编码器神经网络参数和生成器神经网络参数的更新交替可以包括执行鉴别器神经网络参数的多次更新,随后是编码器神经网络参数和生成器神经网络参数的更新。例如,训练可以包括鉴别器神经网络参数的两次更新,随后是编码器和生成器神经网络参数的联合更新。

在一些实施方式中,潜在值可以包括分类变量,例如,通过将潜在值与分类变量——例如,1024路分类——连接变量。以这种方式,生成器神经网络可以学习数据项的聚类,并且编码器神经网络可以学习对数据项进行分类(在嵌入空间而不是潜在变量空间本身进行预测)。

还描述了一种使用编码器神经网络执行推理的方法,该方法包括:使用编码器神经网络处理输入数据项,以生成表示输入数据项的潜在值集合。编码器神经网络与生成器神经网络和鉴别器神经网络联合训练,该生成器神经网络被配置为基于潜在值集合生成数据项,这些数据项是表示训练数据项集合的分布的样本,该鉴别器神经网络被配置为由生成器网络生成的样本和不由生成器网络生成的分布的样本。鉴别器神经网络被配置为通过处理,通过鉴别器神经网络来区分包括样本部分和潜在部分的输入对。输入对的样本部分和潜在部分包括由生成器神经网络生成的分布的样本和分别用于生成样本的相应潜在值集合或训练数据项集合的训练数据项和由编码器神经网络基于训练数据项生成的潜在值集合。训练是基于损失函数,该损失函数包括基于由鉴别器神经网络处理的输入对的样本部分和潜在部分的联合鉴别器损失项和仅仅基于输入对的样本部分或潜在部分中的一个部分的单一鉴别器损失项。训练可以根据上述程序执行。

一般来说,推理是确定描述特定输入数据项的潜在值的过程。

方法可以进一步包括基于表示输入数据项的潜在值对输入数据项进行分类。例如,可以使用编码器神经网络的输出作为输入数据项的表示对分类器进行训练,以进行分类。分类器可以是线性分类器或其他类型的分类器。

方法还可以包括基于表示输入数据项的潜在值使用代理执行动作。

由经过训练的编码器神经网络从数据项中生成的潜在值可以用于对数据进行分类,例如作为图像或音频信号处理分类系统的部分。从数据项中生成的潜在值提供数据项的表示。多个数据项可以由经过训练的编码器神经网络处理以生成潜在值,并且例如,可以用于对分类器进行训练。例如,用于对分类器进行训练的数据项可以用多个标签中的对应标签进行标记,并且分类器可以被训练以对从具有多个标签中的一个标签的未分类数据项中生成的潜在值表示进行分类。

由经过训练的编码器神经网络生成的潜在值可以附加地或可替代地用于搜索与所提供的查询数据项类似的数据项。例如,对于多个所存储的数据项中的每个数据项,可以生成和存储潜在值。随后,通过生成查询数据项的潜在值并且基于为所存储的数据项存储的潜在值和查询数据项的潜在值搜索数据项,可以使用查询数据项查询所存储的数据项。例如,搜索可以是基于相似性度量,或者搜索可以使用基于所存储的数据项而被训练的神经网络。

分类系统可以提供任何合适的数据项的分类,并且例如,可以用于对音频片段、图像、视频或产品进行分类/查找/推荐,例如,基于可以表示一个或多个查询图像、视频或产品的输入序列。

数据项可以是表示静止或移动图像(即图像序列)的数据,在这种情况下,数据项中所包含的单独数值可以表示像素值,例如像素的一个或多个颜色通道的值。用于对神经网络进行训练的训练图像可以是由摄像头捕捉到的真实世界的图像。

可替代地,数据项可以是表示声音信号的数据,例如音频波形的振幅值(例如,自然语言;在这种情况下,训练示例可以是自然语言的样本,例如,由麦克风记录的来自人类说话人的语音)。在另一可能性中,数据项可以是文本数据,例如文本字符串或机器翻译任务中单词和/或子单词单元的其他表示。因此,数据项可以是一维、二维或更高维。

可替代地,潜在值可以定义文本字符串或口语句子或它们的编码,并且生成器神经网络可以生成与文本或语音相应的图像(文本到图像合成)。原则上,情况可能相反,其中,数据项是图像,并且潜在值表示文本字符串或口语句子。可替代地,潜在值可以定义文本字符串或口语句子或它们的编码,并且生成器网络然后可以用不同的语言生成相应的文本字符串或口语句子。

特别是在数据项是数据序列(例如视频序列)的情况下,生成器还可以自回归地生成数据项(例如视频),特别是给定一个或多个先前的视频帧。

生成器网络可以以类似的方式生成声音数据,例如语音。这可能取决于音频数据和/或其他数据,诸如文本数据为条件。一般而言,目标数据可以定义所生成的数据项的局部和/或全局特征。例如,对于音频数据,生成器神经网络可以基于一系列目标数据值生成输出序列。例如,目标数据可以包括全局特征(当生成器网络用于生成数据项序列时也是如此),这些特征可以包括定义特定人的语态的声音或语音风格或说话人身份或语言身份的信息。目标数据可以附加地或可替代地包括局部特征(即,对数据项序列不同),这些特征可以包括从输入文本中推导出的语言特征,可选地具有语调数据。

在另一示例中,目标数据可以定义物理对象的运动或状态,例如机器人手臂的动作和/或状态。生成器神经网络然后可以用于生成数据项,该数据项预测与物理对象相关联的真实或虚拟摄像头所看到的未来图像或视频序列。在这些示例中,目标数据可以包括摄像头所看到的一个或多个先前的图像或视频帧。这种数据对于强化学习可能很有用,例如在视觉环境中促进规划。更一般而言,系统学习对概率密度(即,分布)进行编码,该分布可以直接用于概率规划/探索。

通过采用定义噪声图像或不完整图像的目标数据,生成器神经网络可以被采用于图像处理任务,诸如去噪、去模糊、图像补全等。编码器神经网络可以被采用于图像压缩。系统可以类似地用于处理表示图像以外的信号。

一般而言,输入目标数据和输出数据项可以是任何种类的数字数据。因此,在另一示例中,输入目标数据和输出数据项可以各自包括用自然语言定义句子的令牌。例如,生成器神经网络然后在系统中用于机器翻译或生成句子,这些句子表示潜在值和/或附加数据中所表示的概念。潜在值可以附加地或可替代地用于控制所生成的文本的风格或情绪。在进一步的示例中,输入和输出数据项通常可以包括语音、视频或时间序列。

生成器神经网络可以用于生成数据项的进一步的示例,用于对另一机器学习系统进行训练。生成器网络可以用于生成与训练数据集合中的数据项类似的新的数据项。潜在值集合可以通过从潜在值的潜在分布中采样来确定。如果生成器网络已经以附加数据(例如,标签)为条件进行训练,则可以以附加数据(例如,提供给生成器网络的标签)为条件生成新的数据项。以这种方式,可以生成附加的标记数据项,例如以补充未标记的训练数据项的缺乏。

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

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

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

作为另一示例,如果到神经网络的输入是特定广告的印象上下文的特征,则由神经网络生成的输出可以是得分,该得分表示特定广告将被点击的估计可能性。

作为另一示例,如果到神经网络的输入是对用户的个性化推荐的特征,例如,表征推荐的上下文的特征,例如,表征用户所采取的先前的动作的特征,则由神经网络生成的输出可以是内容项集合中的每个内容项的得分,其中,每个得分都表示用户将积极响应被推荐的内容项的估计可能性。

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

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

本说明书中所描述的主题可以在特定实施例中实施,从而实现以下一个或多个优点。

一般而言,生成对抗网络不能够在没有修改的情况下执行推理。本公开对编码器神经网络进行训练,该编码器神经网络能够实施生成器神经网络的反向操作(即,推理),且因此,该编码器神经网络能够生成表示数据项的潜在值集合。潜在值集合可以用于其他任务,诸如分类或在代理的控制下,诸如在强化学习系统中。

另外,通过以这种方式对生成器神经网络和编码器神经网络进行联合训练,在捕捉数据分布中的重要变化而不是微不足道的变化——诸如像素间的对比差异——时,所生成的潜在值更有效。这使得诸如上述分类任务的下游任务的准确性能够提高。

训练方法还使得能够使用更大规模的生成器和编码器神经网络,这些网络可以对更复杂的数据分布进行建模。具体地,包括联合鉴别器损失项和单一鉴别器损失项的损失函数使得大规模生成器和编码器神经网络能够被有效和高效地训练。考虑到提高的整体训练速度,训练方法需要更少的计算资源——诸如处理器时间和功率使用——来完成训练。

训练方法还可以只使用未标记的数据来执行,并且不需要以如在自监督的方法中的任何方式破坏数据。

训练方法还可以使用分布式系统来执行,例如,生成器神经网络、编码器神经网络和鉴别器神经网络可以驻留在分布式系统的不同处理系统上并且被并行训练。

在实施方式中,潜在值可以提供在其上系统被训练的数据项的表示,这些数据项倾向于捕捉数据项的高级语义,而不是它们的低级细节,训练鼓励编码器神经网络对前者而不是后者进行建模。因此,潜在值可以自然地捕捉数据项的“类别”,尽管可以使用未标记的数据进行训练。这极大地扩展了潜在可用的训练数据项的数量,从而扩展了可以被捕捉到的详细语义。

一旦被训练,潜在值便可以被后续系统用于后续任务,该后续任务可以被大大简化,因为有用的语义表示已经可用。如上所述,后续系统可以配置为执行几乎任何任务,包括但不限于图像处理或视觉任务、分类任务和强化学习任务。如前所述,一些这样的后续系统通常需要有标记的训练数据项,并且可以使用有标记的训练数据进行进一步训练,以微调已经使用未标记的训练数据导出的潜在值表示。这种系统可以学习得更快,使用更少的内存和/或计算资源,并且通过使用本文中所描述的系统和方法来确定它们可以工作的潜在值表示,最终可以执行得更好。

在一些实施方式中,上述系统/方法可以将潜在值表示提供给后续强化学习系统。例如,这种强化学习系统可以用于通过强化学习对代理策略神经网络进行训练,用于控制代理在与环境交互时执行强化学习任务。例如,响应于观察,强化学习系统可以选择要由代理执行的动作,并且使代理执行所选的动作。一旦代理已经执行了所选的动作,环境转变为新的状态,并且强化学习系统可以接收奖励,通常是数值。奖励可以指示代理是否已经完成任务,或代理完成任务的进展。例如,如果任务指定代理应通过环境导航到目标位置,则一旦代理到达目标位置,每个时间步骤的奖励便可以具有负值,否则具有零值。作为另一示例,如果任务指定代理应探索环境,则在代理在时间步骤导航到先前未被探索的位置时,时间步骤的奖励可以具有正值,否则具有零值。

在一些这样的实施方式中,环境是现实环境,并且代理是与现实环境交互的机械代理,例如通过环境导航的机器人或自主或半自主的陆地、空中或海上车辆。

在这些实施方式中,例如,观察可以包括以下一项或多项:图像、对象位置数据和在代理与环境交互时捕捉到的传感器数据,例如来自图像、距离或位置传感器的传感器数据或来自致动器的数据。

例如,在机器人的情况下,观察可以包括表征机器人的当前状态的数据,例如以下一项或多项:关节位置、关节速度、关节力、扭矩或加速度——例如,重力补偿扭矩反馈——以及机器人所持的物体的全局或相对姿势。在机器人或其他机械代理或车辆的情况下,观察同样可以包括以下一项或多项:位置、线性或角速度、力、扭矩或加速度和代理的一个或多个部分的全局或相对姿势。观察可以被定义为1维、2维或3维,并且可以是绝对和/或相对观察。例如,观察还可以包括感测到的电子信号,诸如电机电流或温度信号;和/或例如来自摄像头或LIDAR传感器的图像或视频数据,例如来自代理的传感器的数据或来自与环境中的代理分开定位的传感器的数据。

在这些实施方式中,动作可以是用于控制机器人的控制输入,例如用于机器人或高级控制命令的关节或自主或半自主的陆地、空中、海上车辆的扭矩,例如用于车辆或高级控制命令的控制表面或其他控制元件的扭矩。换言之,例如,动作可以包括针对机器人的一个或多个关节或另一机械代理的部分的位置、速度或力/扭矩/加速度数据。动作数据可以附加地或可替代地包括电子控制数据,诸如电机控制数据,或更一般地是用于控制环境中的一个或多个电子设备的数据,对这些电子设备的控制会对环境的观察状态产生影响。例如,在自主或半自主的陆地或空中或海上车辆的情况下,动作可以包括用于控制导航——例如转向——和运动——例如,车辆的制动和/或加速——的动作。

在一些其他实施方式中,环境是模拟环境,并且代理被实施为与模拟环境交互的一个或多个计算机。模拟环境可以是运动模拟环境,例如,驾驶模拟或飞行模拟,并且代理可以是通过运动模拟导航的模拟车辆。在这些实施方式中,动作可以是用于控制模拟用户或模拟车辆的控制输入。以这种方式,机器人强化学习系统在真实世界机器人上使用之前,可能要经过部分或全部的模拟训练。在另一示例中,模拟环境可以是视频游戏,并且代理可以是正在玩视频游戏的模拟用户。通常,在模拟环境的情况下,观察可以包括一个或多个前述观察或观察类型的模拟版本,并且动作可以包括一个或多个前述动作或动作类型的模拟版本。

在电子代理的情况下,观察可以包括来自监控工厂或服务设施的部分的一个或多个传感器的数据,诸如电流、电压、功率、温度和表示设备的电子和/或机械项目的功能的其他传感器和/或电子信号。在一些其他应用中,代理可以控制在包括设备的项目的现实环境中的动作,例如在数据中心中、在功率/水分配系统中或在制造工厂或服务设施中。然后,观察可以与工厂或设施的操作相关。例如,观察可以包括对设备所使用的功率或水的观察或对发电或配电控制的观察或对资源的使用或废物产生的观察。动作可以包括控制或强加工厂/设施的设备项目上的操作条件的动作和/或导致工厂/设施的操作中的设置改变,例如,以调整或开启/关闭工厂/设施的组件的动作。

附图说明

图1示出了可以被训练的编码器和生成器;

图2示出了鉴别器,该鉴别器在本公开的一些原则的示例中用于对图1的编码器和生成器进行训练;

图3示出了对图1的编码器和生成器以及图2的鉴别器进行联合训练的方法的步骤;

图4示出了采用经过训练的编码器的第一方法的步骤;

图5示出了采用经过训练的编码器的第二方法的步骤;以及

图6示出了采用经过训练的编码器的方法的步骤。

相同的参考数字和指定在各个图中都指示相同的元件。

具体实施方式

图1示意性地图示了编码器神经网络11(“编码器”)和生成器神经网络12(“生成器”),这些网络可以通过这里所公开的训练方法进行训练。方法采用训练数据库,该训练数据库包括数据项的许多实例(例如,声音或文本的图像或部分)。每个数据项都由对应的向量x(即,由多个数据值组合的集合)表示。数据项具有分布Px

编码器11是由多个数值网络参数定义的神经网络,这些参数在编码器11的训练期间进行调整。编码器11执行通过网络参数集合的当前值在任何时间定义的函数以生成输出该输出是潜在值——即,多个潜在值——的集合。x中的元素的数量对于所有数据项通常都是相同的,并且可以由N表示,N是大于1的整数。类似地,中的潜在值的数量对于所有的潜在值集合通常都是相同的,并且可以由n表示。N可以大于(例如,至少大于10倍,通常至少大于1000倍)中的潜在值n的数量。例如,在每个数据项都是由至少10,000像素中的每个像素的一个或多个值组成的图像,并且中的潜在值n的数量可以小于1000或小于200。用γ表示编码器11的网络参数,编码器11还可以被表示为

生成器12由多个数值网络参数定义,这些参数是在生成器12的训练期间进行调整的。生成器12接收潜在值(“潜在”)集合作为输入。潜在值集合包括多个潜在值,并且由向量z表示。通常,z中的潜在值的数量等于n,n是大于1的整数。潜在集合是从分布Pz中得到的。例如,分布对于z的每个分量可能都是相同的,并且可以是简单的连续分布,诸如各向同性高斯N(0,I)。生成器12执行通过网络参数集合的当前值在任何时间定义的函数(由表示),以生成数据项用Ξ表示生成器11的网络参数,编码器11还可以由表示。

给定从潜在先验Pz中采样的潜在输入z,生成器12对数据项x的条件分布P(x|z)进行建模。给定从数据分布Px中采样的数据项x,编码器11对逆条件分布P(z|x)进行建模,以预测潜在z。在本公开的实施方式中,编码器11和生成器12是使用来自“BigGAN”框架的生成器和鉴别器架构来实现的。

如在BiGAN(双向GAN)框架(Jeff Donahue、Philipp和TrevorDarrell在2017年的ICLR的arXiv:1605.09782中提交的“Adversarial feature learning(对抗特征学习)”以及Vincent Dumoulin、Ishmael Belghazi、Ben Poole、OlivierMastropietro、Alex Lamb、Martin Arjovsky和Aaron Courville在2017年的ICLR的arXiv:1606.00704中提交的“Adversarially Learned Inference(对抗学习的推理)”,其公开内容通过引用并入本文)中,根据本公开的该示例,编码器11和生成器12是使用鉴别器神经网络(“鉴别器”)进行训练的,该鉴别器神经网络采用数据项-潜在对(在这里也被称为鉴别器的“输入对”)作为输入。鉴别器在不同的时间接收到的输入对可以是(例如,交替)表示到编码器的输入x和相应输出的数据项-潜在对或表示到生成器12的输入z和相应输出的数据项-潜在对因此,每对的“样本部分”都是x或并且每对的“潜在部分”都分别是或z。鉴别器学习区分来自数据分布Px和编码器11的对与来自生成器12和潜在分布Pz的对具体地,到鉴别器的输入是对编码器11和生成器12被训练以通过使两次联合分布Px,ε(x)不能区分来“愚弄”鉴别器,两种类型的数据项-潜在对分别从这两次联合分布中采样。

训练是使用训练数据项x的训练数据数据库来执行的,使得Px表示训练数据数据库中的训练数据项上的分布x(例如,在数据项是图像、示例图像的数据库的情况下;示例图像可以是用一个或多个摄像头捕捉到的真实世界的图像,或可替代地是由计算机生成的合成图像)。即,生成器12被配置为基于潜在值集合z生成数据项这些数据项是表示训练数据项的数据库的分布Px的样本。

本公开所提出的可能的鉴别器21如图2所示,并且与BiGAN中所采用的鉴别器不同。它接收连续的数据项-潜在对,其中的每对都是来自数据分布Px的对或来自生成器12和潜在分布Pz的对例如,鉴别器可以交替地接收每种类型的数据项-潜在对;或连续地接收一批多个一种类型的数据项-潜在对,然后连续地接收一批多个另一类型的数据项-潜在对。

鉴别器21包括样本鉴别器子网络211,根据哪一种类型的数据项-潜在对是到鉴别器21的输入,该样本鉴别器子网络211(只)接收由生成器网络12生成的样本或训练数据项x。即,样本鉴别器网络211不接收潜在值集合z和或基于它们的数据。样本鉴别器子网络211执行通过可训练数值网络参数集合Ψ的当前值在任何时间定义的函数(由FΨ表示)。投影θx(可以被认为是具有由θx给出的网络参数的线性神经网络层)被应用于样本鉴别器子网络211的输出,以产生由Sx表示的一元(一个分量)样本鉴别得分(对于两种类型的数据项-潜在对)。特别是在数据项是图像的情况下,样本鉴别器子网络211可以被实施为具有作为卷积神经网络的一个或多个输入层的神经网络。

鉴别器21包括潜在鉴别器子网络212,根据哪一种类型的数据项-潜在对是到鉴别器21的输入,该潜在鉴别器子网络212(只)接收由生成器12用于生成样本的潜在值集合z或由编码器11基于训练数据项x生成的潜在值集合即,潜在鉴别器子网络212不接收样本和训练数据项x以及基于它们的数据。潜在鉴别器子网络212执行通过可训练数值网络参数集合Φ的当前值在任何时间定义的函数(由HΦ表示)。投影θz(线性神经网络层)被应用于潜在鉴别器子网络212的输出,以产生由Sz表示的一元潜在鉴别得分(对于两种类型的数据项-潜在对)。潜在鉴别器子网络212可以可选地被实施为感知器,诸如多层感知器。

鉴别器21进一步包括联合鉴别器子网络213,该联合鉴别器子网络213接收样本鉴别器子网络211和潜在鉴别器子网络212的输出。联合鉴别器子网络213执行通过可训练数值网络参数集合Θ的当前值在任何时间定义的函数(由JΘ表示)。投影θxz(线性神经网络层)应用于联合鉴别器子网络212的输出,以产生由Sxz表示的一元联合鉴别得分(对于两种类型的数据项-潜在对)。联合鉴别器子网络213可以可选地实施为感知器,诸如多层感知器。

三个得分Sxz、Sx和Sz由求和单元22求和,以产生由l表示的损失值(或“损失”)。因此,损失l的计算采用以下项:(i):一元样本得分Sx,该一元样本得分Sx仅基于输入对的样本部分,并且鉴别器21的自适应网络211、212、213的该一元样本得分Sx仅取决于样本鉴别器网络211的输出;(ii)一元潜在得分Sz,该一元潜在得分Sz仅基于输入对的潜在部分,并且鉴别器21的自适应网络211、212、213的该一元潜在得分Sz仅取决于潜在鉴别器网络212的输出;以及(iii)联合得分Sxz,该联合得分Sxz链接数据分布和潜在分布,并且是基于输入对的样本部分和潜在部分,并且基于所有三个自适应网络211、212、213的输出。

用于执行训练的损失函数可以从求和单元22所生成的损失值生成。在计算损失值时,求和单元22可以根据输入对的类型将求和结果应用于不同的符号(即,它是否为生成器神经网络所生成的分布的样本以及分别用于生成样本的相应潜在值集合,或可替代地,是否为训练数据项集合的训练数据项以及由编码器神经网络基于训练数据项生成的潜在值集合)。可选地,在某些情况下,损失值可以在求和之前或之后使用铰链函数(“铰链”)进行修改。

具体地,基于标量鉴别器得分函数以及相应的每样本损失鉴别器损失函数(“鉴别器损失”)和编码器-生成器损失函数如下定义:

其中,y是-1或+1(即,y∈{-1,+1})并且h(t)=max(0,1-t)为可选地用于使鉴别器正则化的“铰链”。在计算损失lD的情况下,铰链可以被视为对求和单元22的操作进行修改。因此,损失函数具有两个单一鉴别器损失项,这两个单一鉴别器损失项分别基于一元样本得分Sx和Sz的期望值(各自都仅基于输入对的样本部分或潜在部分中的一个部分);以及联合鉴别器损失项,该联合鉴别器损失项基于联合得分Sxz的期望值(基于由鉴别器神经网络处理的输入对的样本部分和潜在部分)。在鉴别器损失函数的情况下,期望值的计算考虑到铰链。

ε和的对应网络参数集合γ和Ξ被优化以最小化损失函数并且投影θx、θz和θxz以及F、H和J的对应网络参数集合Ψ、Φ和Θ被优化以最小化损失函数期望是通过小批量的蒙特卡罗样本估计的。

注意,可以代替lD使用的替代鉴别器损失根据三个损失项(即,的总和仅调用“铰链”h一次。然而,实验上发现,与上面定义的分别钳住三个损失项中的每个的lD相比,这种方法执行得不太好。

实验上发现,鉴别器21在不影响生成的情况下导致更好的表示学习结果(例如与BiGAN相比)。通过显式地强制x和z的边际分布在全局最优处匹配的性质(即,由编码器11生成的分布与Pz匹配,并且由生成器12产生的数据项的分布与Px匹配),一元单一鉴别器得分Sx和Sz引导“正确方向”上的优化。例如,在图像生成的场境下,x上的一元损失项与GAN算法所使用的损失匹配,并且提供学习信号,该学习信号仅使生成器12转向与图像分布Px匹配,而不依赖于其潜在输入。

根据本公开,鉴别器21的几种变型是可能的。例如,根据哪一种类型的数据项-潜在对是到鉴别器21的输入,联合鉴别器子网络213可以直接(即,基本上没有事先修改,例如,通过自适应组件)接收由生成器网络12生成的样本和由生成器12用于生成样本的潜在值集合z或训练数据项x和由编码器11基于训练数据项x生成的潜在值集合因此,联合鉴别器子网络213直接接收数据项-潜在对,而不是经由单一鉴别器子网络211、212。

在进一步的变型中,基于单一鉴别器得分Sx和Sz中的任何一个的损失项可以从损失函数中省略。可选地,在这种情况下,样本鉴别器子网络211或潜在鉴别器子网络212中的相应一个可以从鉴别器21中省略。在这种情况下,联合鉴别器子网络213可以直接(即,基本上没有事先修改,例如,通过自适应组件)接收(i)样本和训练数据项x或(ii)潜在值集合z和中的相应一个。

转向图3,示出了对编码器11、生成器12和鉴别器21进行联合训练的方法300。方法可以由一个或多个位置的一个或多个计算机执行。方法300包括重复执行方法的步骤301至305的集合,直到达到终止准则(例如,迭代次数达到预定值)。步骤301至305的集合的每次执行都被称为迭代。步骤304和305可以由更新单元(例如,通用计算机)执行,该更新单元配置为修改编码器11、生成器12和鉴别器21。最初,将编码器11、生成器12和鉴别器21的网络参数设置为对应的初始值,例如,这些初始值可能全部相同。

在步骤301中,生成器12获得一批潜在值,并且基于其当前网络参数生成相应的样本数据项。

在步骤302中,编码器11获得一小批训练数据项,并且基于其当前网络参数为每一个都生成对应的潜在值集合。

在步骤303中,将在步骤301中生成的数据项-潜在对和在步骤302中生成的数据项-潜在对连续输入给鉴别器21,并且求和单元22为每个数据项-潜在对都生成对应的损失。

在步骤304中,更新单元基于在步骤303中由求和单元22输出的损失来估计的当前值。

在步骤305中,更新单元根据诸如反向传播的传统的机器学习技术更新编码器11、生成器12和鉴别器21中的一个或多个的至少一个网络参数。对ε和的网络参数γ和Ξ的更新是为了减少损失函数并且对投影θx、θz和θxz(即相应线性网络层的网络参数)或F、H和J的网络参数Ψ、Φ和Θ的更新是为了减少损失函数可选地,在步骤301至305的集合的交替迭代中,步骤305可以作为(i)对ε和的网络参数γ和Ξ的联合更新或(ii)对投影θx、θz和θxz和F、H和J的网络参数Ψ、Φ和Θ的联合更新而被更新。注意,在变型中,投影θx、θz和θxz可以在执行方法300前被选择(例如随机地),并且在此过程中不改变。

例如,对于除了第一次外的每个迭代,通过将的当前值与在最后一次迭代中获得的值进行比较以估计相对于相应网络参数的梯度(即,损失函数相对于ε和的网络参数γ和Ξ的梯度以及损失函数相对于投影θx、θz和θxz和F、H和J的网络参数Ψ、Φ和Θ的梯度),并且基于相对于该参数的相应的对应梯度计算每个网络参数的更新值,可以完成更新。在第一次迭代中,可以随机获得更新值。可替代地,步骤301至304可以在每次迭代中执行,不仅针对编码器11、生成器12和鉴别器21的网络参数的当前值,而且针对这些网络参数的一个或多个补充集合,这些网络参数分别从网络参数的对应当前值位移一定位移量,并且在步骤305中,相对于相应网络参数的梯度可以通过将当前网络参数的值与这些网络参数的补充集合进行比较来估计。

转向图4,示出了采用经过训练的编码器11的第一方法400。方法可以由一个或多个位置的一个或多个计算机执行。在步骤401中,编码器接收数据项(例如,包括图像(诸如,由摄像头捕捉到的真实世界的图像)和/或图像序列(诸如由视频摄像头捕捉到的视频序列和/或用麦克风捕捉到的语句))。在步骤402中,编码器11对输入数据项进行处理,以生成表示数据项的相应潜在值集合。

在步骤403中,编码器11基于潜在值对数据项进行分类。分类步骤403可以以多种方式——例如,通过确定在步骤402中获得的潜在值集合落入潜在值的空间中的多个预定区域中的哪个区域中,并且将数据项分类为与所确定的区域相关联的类——来执行。

预定区域集合可以以多种方式获得。例如,通过对多个图像执行相当于步骤401至402的步骤,并且使由此产生的多个潜在值集合经历自动聚类算法,从而识别潜在值集合的空间中的多个集群,其中,多个潜在值集合中的每个潜在值集合都与一个集群相关联,并且基于与对应的集群相关联的潜在值集合定义每个预定区域,可能已经获得这些预定区域。

可替代地,与对应的预定类相关联的潜在值空间中的预定区域集合可以使用多个有标记的数据项(即,每个数据项都与标签数据集合相关联,该标签数据集合指示数据项落入的多个预定类中的一个或多个预定类)来获得。编码器11对有标记的数据项中的每个执行相当于步骤401至402的步骤,并且将类中的每个的预定区域定义为潜在值的空间中的区域,该区域包含用指示该类的标签数据标记的数据项。这可以通过对分类单元(例如,神经网络分类单元)进行训练——诸如基于有标记的数据项中的每个的经过训练的编码器11的输出的线性分类器以及相应的标签数据——来完成。因此,尽管在方法300中编码器11是用未标记的数据项进行训练的(或无论如何,标签通常不用于对编码器11进行训练),但是有标记的数据项随后可以用于对分类器单元进行训练。这使得即使可用的有标记的数据项的数量很小,也有可能获得高质量分类,例如,因为它们是通过手动标记大型数据项数据库的一部分而获得的。这是因为对分类器单元进行训练所需的有标记的数据项的数量很小,假设分类器单元包括远远少于编码器11的网络参数。

注意,与对应的类相关联的潜在值的空间中的区域可能是重叠的,例如,如果类不是互斥的。例如,如果类是“冬季”、“夏季”、“山”、“山谷”,并且如果数据项是在冬季或夏季捕捉到的山或山谷的图像,则每个数据项的标签数据都可能指示类“冬季”或“夏季”中的相应类和类“山”或“山谷”中的相应类,并且与类“冬季”和“夏季”对应的预定区域在可能互不重叠的同时可能分别与类“山”和“山谷”相应的预定区域重叠。

与方法300相关的实验是使用作为128×128图像的数据项和包括120个元素的每个数据项的潜在值集合来执行的。生成器12和样本鉴别器子网络211的结构在“BigGAN”中使用。潜在鉴别器子网络212和联合鉴别器子网络213是有ResNet-style跳过连接(四个残差块,每个残差块都有两层)的8层MLP以及大小为2048的隐藏层。编码器11的架构是ResNet-v2-50 ConvNet,然后是在ResNet的全局平均池化输出之后有跳过连接(两个残差块)的4层MLP(其中,每层的大小为4096)。

编码器11被配置为生成具有分布N(μ,σ)的输出。编码器11包括线性输出层,该线性输出层确定平均值μ,并且还通过非负的“soft-plus”非线性确定与σ相关的值潜在值集合z可以基于重新参数化的采样而被生成。具体地,z的每个分量都被生成作为z=μ+epsilon*σ,其中,epsilon是从具有零平均值的单位高斯中采样的。可替代地,潜在值可以是基于离散概率分布。

实验上发现,省略样本鉴别器子网络211比省略潜在鉴别器子网络212更降低性能,但是如果它同时包括这两个鉴别器子网络211、212,则鉴别器21执行得最好。样本鉴别器子网络211对经过训练的生成器12的性能有大的积极影响,并且略微导致线性分类器的性能稍微改善。潜在鉴别器子网络212的存在导致线性分类器的性能改善,其取决于分布Pz

发现了计算资源的有效使用是在由编码器11接收到的训练数据库中的训练数据项x具有比生成器12所生成的数据项多的分量时实现的。在这种情况下,当将类型的数据项-潜在对提供给鉴别器21时,首先对训练数据项x进行下采样,以与生成器12所生成的数据项的分辨率匹配。以这种方式,在高计算效率的情况下,可能生成编码器11,该编码器11允许在不需要生成器12和鉴别器21能够生成/接收高分辨率图像的情况下对这些高分辨率图像进行准确分类,从而减少对编码器11、生成器12和鉴别器21进行训练所需的计算时间。注意,在实验中,由编码器11生成的潜在值的数量与由生成器12和鉴别器21输入的潜在值的数量相同。

尽管如上所述,训练数据项通常不被标记,但是在训练方法的进一步的变型(该变型可以在训练数据项与相应的标签数据相关联的情况下使用)中,由编码器在接收到给定数据项时生成的潜在值集合可以包括一个或多个分量,这些分量将数据项标记为属于预定类别集合中的一个或多个类别。例如,在数据项是有标记的训练数据项的数据项-潜在对的情况下,编码器从有标记的训练数据项中生成的潜在值可以是多个(例如正态分布的)潜在变量,这些潜在变量与数据项的类别变量连接。编码器被训练,例如,通过将额外项添加到损失函数,使类别变量等于从训练数据项的标签数据中导出的值。例如,类别变量可以是将数据项标记为属于多个预定类别中的一个类别(例如,1024类别)的变量。在数据项由生成器12生成的数据项-潜在对的情况下,由生成器12接收到的潜在值包括与分类变量的值连接的上述种类的潜在值(例如来自正态分布)。以这种方式,生成器神经网络可以学习对数据项进行聚类,并且编码器神经网络可以学习对数据项进行分类(即,分类由编码器11执行,而不是使用基于编码器11的输出的分类器)。

转向图5,示出了采用经过训练的编码器11的第二方法500。方法可以由一个或多个位置的一个或多个计算机执行。在步骤501中,编码器接收数据项(例如,包括图像(诸如,由摄像头捕捉到的真实世界的图像)和/或图像序列(诸如由视频摄像头捕捉到的视频序列和/或用麦克风捕捉到的语句))。在步骤502中,编码器11对输入数据项进行处理,以生成表示数据项的相应潜在值集合。

在步骤503中,控制单元使用潜在值集合来生成用于控制代理的控制数据,并且将控制数据传输给代理,使代理执行动作。代理可以是上述任何类型的代理,例如,机器人。诸如通过在环境中移动(术语“移动”用于包括代理从环境中的一个位置到另一个位置的平移和/或代理的组件的重新配置,而不必包括代理的平移)和/或通过使对象在环境中移动,代理与环境进行交互。环境可以是真实世界环境,并且数据项可以是由一个或多个传感器(例如,麦克风或摄像头,诸如视频摄像头)收集并且描述环境的数据。

基于潜在值集合生成控制数据的过程可以是基于策略。该策略可以通过来自强化学习领域的任何已知技术进行训练,诸如基于奖励值,该奖励值指示代理的动作对执行特定任务的贡献程度。

转向图6,示出了采用经过训练的编码器12的方法600。方法可以由一个或多个位置的一个或多个计算机执行。在步骤601中,生成器12接收潜在值集合。在步骤602中,生成器12对潜在值集合进行处理,以生成相应的数据项。

假设用户希望压缩数据项。这可以通过使用编码器生成潜在值集合来完成,这些潜在值具有比数据项少很多的元素(例如,至少小100倍或至少小1000倍)。然后,在图6的方法中可以采用潜在值集合重新生成数据项。虽然重新生成的数据项将与由编码器11接收到的初始数据项不同,但是它可以包含相同的显著信息(例如,如果初始数据项是狗的图像,则重新生成的图像也是狗的图像),并且可能很难与从训练数据库中得到的数据项区分开来。实验证实了这一效果。

假设,在另一示例中,用户希望获得结合了两个(或两个以上)现有数据项的特征的数据项。在初步步骤中,用户可以用编码器11对两个数据项进行处理,以生成相应的潜在值集合,然后基于两个潜在值集合形成新的潜在值集合(例如,新集合中的每个潜在值都可以是两个潜在值集中的相应潜在值的平均值),并且在方法的步骤601中使用新的潜在值集合。生成器12输出数据项,该数据项具有两个初始数据项的特征,并且很难与从训练数据库中得到的数据项区分开来。

在另一示例中,假设潜在值的空间已经按照上面关于图4所讨论的方式被划分为区域,其中,不同的区域与对应的类对应。希望生成属于一个或多个类的数据项的用户可以选择相应区域内的潜在值集合,并且将其用作方法的步骤601中的潜在值集合。

对于要被配置为执行特定操作或动作的一个或多个计算机的系统,意味着系统上已经安装了在运行时使系统执行操作或动作的软件、固件、硬件或它们的组合。对于要被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括指令,这些指令在由数据处理装置执行时使该装置执行操作或动作。

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

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

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

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

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

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

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

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

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

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

虽然本说明书包含了许多具体实施细节,但是不应该将这些细节视为对任何发明或可能被要求的内容的范围的限制,而是作为可以针对特定发明的特定实施例的特征的描述。本说明书中在单独的实施例的背景下所描述的某些特征还可以在单个实施例中组合实施。相反,在单个实施例的背景下所描述的各种特征也可以在多个实施例中单独地或按照任何合适的子组合实施。此外,虽然特征在上面可能被描述为以某些组合起作用并且最初甚至进行了同样的要求,但是在一些情况下可以从组合中删除来自所要求的组合的一个或多个特征,并且所要求的组合可能涉及子组合或子组合的变化。

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

主题的具体实施例已经进行了描述。其他实施例在以下权利要求书的范围内。例如,权利要求书中所引用的动作可以按照不同的顺序执行并且仍然实现期望结果。作为一个示例,附图中所描绘的过程不一定需要以所示的特定顺序或连续顺序来完成期望结果。在某些实施方式中,多任务处理和并行处理可以是有利的。

25页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于元学习的自动特征子集选择

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!