神经架构搜索的制作方法

文档序号:14404093阅读:220来源:国知局
神经架构搜索的制作方法

本说明书涉及对神经网络架构进行修改。



背景技术:

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

一些神经网络是递归神经网络。递归神经网络是接收输入序列并且从该输入序列生成输出序列的神经网络。特别地,递归神经网络能够在计算当前时间步长处的输出时使用来自先前时间步长的该网络的一些或全部内部状态。递归神经网络的示例是包括一个或多个长短期(lstm)记忆块的lstm神经网络。每个lstm记忆块能够包括一个或多个cell,每个cell均包括允许该cell存储针对该cell的先前状态的输入门、遗忘门和输出门,例如,以用于在生成当前激活时使用或者被提供给lstm神经网络的其它组件。



技术实现要素:

本说明书描述了作为计算机程序实现在一个或多个位置中的一个或多个计算机上的系统如何能够使用控制器神经网络来确定被配置为针对执行特定神经网络任务的子神经网络的架构。

能够实现本说明书中所描述的主题的特定实施例以便实现以下优点中的一个或多个。该系统能够有效且自动地(即,在没有用户干预的情况下)选择将针对特定任务产生高性能神经网络的神经网络架构。该系统能够有效地确定针对特定任务适配的新颖神经网络架构,从而允许所得到的子神经网络在该任务上具有改进的性能。因为该系统通过加强学习对控制器神经网络进行训练来确定架构,所以该系统能够有效地利用可能的架构的大空间来标识针对特定任务适配的子神经网络的架构。

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

附图说明

图1示出示例神经架构搜索系统。

图2a是生成输出序列的控制器神经网络的示例的图。

图2b是生成定义包括跳转连接的架构的输出序列的控制器神经网络的示例的图。

图2c是生成定义递归cell的架构的输出序列的控制器神经网络的示例的图。

图3是用于更新控制器参数的当前值的示例过程的流程图。

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

具体实施方式

本说明书描述了作为计算机程序实现在一个或多个位置中的一个或多个计算机上的系统,该系统使用控制器神经网络来确定被配置为执行特定神经网络任务的子神经网络的架构。

子神经网络能够被配置为接收任何种类的数字数据输入并且基于该输入生成任何种类的评分、分类或回归输出。

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

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

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

作为另一示例,如果到子神经网络的输入是针对用户的个性化推荐的特征,例如,表征推荐的上下文的特征,例如表征由用户采取的先前动作的特征,则由子神经网络生成的输出可以是针对一组内容项中的每个的评分,其中每个评分表示用户将有利地对被推荐了该内容项作出响应的估计可能性。

作为另一示例,如果到子神经网络的输入是以一种语言的文本的序列,则由子神经网络生成的输出可以是针对以另一种语言的一组文本段中的每个的评分,其中每个评分表示以另一种语言的文本段是输入文本适当翻译成另一种语言的估计可能性。

作为另一示例,如果到子神经网络的输入是表示口语发言的序列,则由子神经网络生成的输出可以是针对一组文本段中的每个的评分,每个评分表示文本段是针对发言的正确转录的估计可能性。

图1示出示例神经架构搜索系统100。神经架构搜索系统100是作为计算机程序在一个或多个位置中的一个或多个计算机上实现的系统的示例,其中能够实现在下面所描述的系统、组件和技术。

神经架构搜索系统100是获得用于对神经网络进行训练以执行特定任务的训练数据102和用于对神经网络在该特定任务上的性能进行评估的验证集104,并且神经架构搜索系统100使用训练数据102和验证集104来确定针对被配置为执行该特定任务的子神经网络的架构的系统。该架构定义子神经网络中的层数、由这些层中的每个执行的操作、以及子神经网络中的这些层之间的连接性,即,那些层从子神经网络中的那些其它层接收输入。

通常,训练数据102和验证集104都包括一组神经网络输入,并且对于每个网络输入,都包括应当由子神经网络生成以执行特定任务的相应的目标输出。例如,较大的一组训练数据可能已被随机地分割以生成训练数据102和验证集104。

系统100能够以各种方式中的任何接收训练数据102和验证集104。例如,系统100能够通过数据通信网络(例如,使用通过系统100得到的应用编程接口(api))从系统的远程用户接收作为上传的训练数据,并且将已上传的数据随机地划分成训练数据102和验证集104。作为另一示例,系统100能够接收来自用户的指定已经由系统100维护的那些数据应当被用于对神经网络进行训练的输入,并且然后将所指定的数据划分成训练数据102和验证集104。

神经架构搜索系统100包括控制器神经网络110、训练引擎120、和控制器参数更新引擎130。

控制器神经网络110是具有参数(在本说明书中被称为“控制器参数”)并且被配置为根据控制器参数来生成输出序列的神经网络。由控制器神经网络110生成的每个输出序列定义针对子神经网络的相应的可能的架构。

特别地,每个输出序列在多个时间步长中的每个处包括相应的输出,并且输出序列中的每个时间步长与子神经网络的架构的不同的超参数(hyperparameter)相对应。因此,每个输出序列在每个时间步长处包括相对应的超参数的相应的值。共同地,给定输出序列中的超参数的值定义针对子神经网络的架构。通常,超参数是在开始子神经网络的训练之前设定的并且影响由子神经网络执行的操作的值。在下面参考图2a至图2c更详细地讨论输出序列和可能的超参数。

通常,系统100通过对控制器神经网络110进行训练以调整控制器参数的值来确定针对子神经网络的架构。

特别地,在训练过程的迭代期间,系统100使用控制器神经网络110来根据控制器参数的当前值而生成一个批次的序列112。针对批次112中的每个输出序列,训练引擎120在训练数据102上对具有通过输出序列所定义的架构的子神经网络的实例进行训练并且在验证集104上对经训练的实例的性能进行评估。控制器参数更新引擎130然后使用针对批次112中的输出序列的评估的结果来更新控制器参数的当前值,以改进通过由控制器神经网络110生成的输出序列所定义的架构的在任务上的预期性能。在下面参考图3更详细地描述对经训练的实例的性能评估并且对控制器参数的当前值更新。

通过以这种方式重复地更新控制器参数的值,系统100能够对控制器神经网络110进行训练以生成导致在特定任务上具有增加的性能的子神经网络的输出序列,即,以使在由控制器神经网络110提出的架构的验证集104上的预期准确度最大化。

一旦控制器神经网络110已经被训练,系统100就能够选择在验证集104上表现最佳的架构作为子神经网络的最终架构,或者能够根据控制器参数的训练值来生成新输出序列并且使用通过该新输出序列所定义的架构作为子神经网络的最终架构。

神经网络搜索系统100然后能够输出指定子神经网络的架构的架构数据150,即,指定作为子神经网络的一部分的层、这些层之间的连接性、以及由这些层执行的操作的数据。例如,神经网络搜索系统100能够将架构数据150输出给提交了训练数据的用户。在一些情况下,数据150也包括来自对具有该架构的子神经网络的经训练的实例的训练的子神经网络的参数的训练值。

在一些实施方式中,代替或者除了输出架构数据150之外,系统100对具有所确定的架构的神经网络的实例进行训练,例如,从头开始或者为了微调作为对具有该架构的子神经网络的实例进行训练的结果而生成的参数值,然后使用经训练的神经网络来处理由用户例如通过由系统提供的api而接收到的请求。也就是说,系统100能够接收待处理的输入,使用经训练的子神经网络来对输入进行处理,并且响应于所接收到的输入而提供由经训练的神经网络生成的输出或从所生成的输出得到的数据。

在一些实施方式中,系统100以分布式方式对控制器神经网络进行训练。也就是说,系统100包括控制器神经网络的多个副本。在其中训练为分布式的这些实施方式中的一些中,每个副本具有针对由该副本输出的各个批次的输出序列而生成性能度量的专用训练引擎以及使用这些性能度量来确定对控制器参数的更新的专用控制器参数更新引擎。一旦控制器参数更新引擎已确定更新,该控制器参数更新引擎就能够将更新发送到对所有的控制器参数更新引擎可访问的中央参数更新服务器。该中央参数更新服务器能够更新由服务器所维护的控制器参数的值并且将这些经更新的值发送到控制器参数更新引擎。在一些情况下,多个副本中的每个及其相对应的训练引擎和参数更新引擎能够与训练引擎和参数更新引擎中的每个其它集合进行异步地操作。

图2a是生成输出序列的控制器神经网络110的示例的图200。

特别地,图200描绘了在输出序列的生成期间由控制器神经网络110针对七个示例时间步长202-214所执行的处理。如将在下面更详细描述的是,七个时间步长202-214中的每个与神经网络架构的不同的超参数相对应。

控制器神经网络110是包括一个或多个递归神经网络层(例如,层220和230)的递归神经网络,所述递归神经网络层被配置为针对每个时间步长,接收与给定输出序列中的先前时间步长相对应的超参数的值作为输入,并且被配置为对该输入进行处理以更新递归神经网络的当前隐藏状态。例如,控制器神经网络110中的递归层能够是长短期记忆(lstm)层或门控递归单元(gru)层。在图2a的示例中,在时间步长208处,层220和230接收来自先前时间步长206的超参数的值作为输入并且从时间步长206更新层220和230的隐藏状态以生成更新的隐藏状态232作为输出。

控制器神经网络110还包括针对输出序列中的每个时间步长的相应的输出层,例如,分别针对时间步长202-214的输出层242-254。输出层中的每个被配置为在时间步长处接收包括经更新的隐藏状态的输出层输入,并且被配置为在该时间步长处生成针对该时间步长的、定义超参数的可能值上的评分分布的输出。例如,每个输出层能够首先将输出层输入投影到针对相对应的超参数的可能值的数目的适当维度中,然后对经投影的输出层输入应用softmax以针对在时间步长处的超参数的多个可能值中的每个生成相应的评分。例如,针对时间步长208的输出层248被配置为接收包括隐藏状态232的输入并且针对步幅高度超参数的多个可能值中的每个生成相应的评分。

因此,为了针对输出序列中的给定时间步长生成超参数值,系统100提供在输出序列中的先前时间步长处的超参数的值作为到控制器神经网络的输入,并且控制器神经网络生成针对该时间步长的、定义在该时间步长处的超参数的可能值上的评分分布的输出。对于输出序列中的特定的第一个时间步长,因为不存在前面的时间步长,所以系统100能够替代地提供预先确定的占位符输入。系统100然后根据评分分布从可能值中采样以确定在输出序列中的时间步长处的超参数的值。给定超参数能够取得的可能值在训练之前是固定的,并且该可能值的数目对于不同的超参数来说能够是不同的。

通常,在生成序列之前待在通过给定输出序列所定义的架构中包括的层的数目是固定的。在一些实施方式中,通过在控制器神经网络的训练期间生成的输出序列所定义的每个架构具有层的相同数目。在其它实施方式中,系统使用随着训练进行而增加子神经网络中的层的数目的调度。作为一个示例,系统能够在训练期间从6层开始每1,600个样本将深度增加一层或多层。

在图2a的示例中,子神经网络是卷积神经网络,并且超参数包括针对子神经网络中的每个卷积神经网络层的超参数。特别地,在图2a中,时间步长202与子神经网络的卷积层n-1的超参数相对应,时间步长204-212与卷积层n的超参数相对应,并且时间步长214与卷积层n+1的超参数相对应。例如,可以按照堆叠布置卷积层,其中层n接收由层n-1生成的输出作为输入并且生成被提供给层n+1作为输入的输出。

在图2a的示例中,对于卷积层,定义由该层执行的操作的超参数是该层的过滤器的数目、针对每个过滤器的过滤器高度、针对每个过滤器的过滤器宽度、用于应用每个过滤器的步幅高度、以及针对每个过滤器的步幅宽度。在其它示例中,能够移除这些中的一些,例如,这些超参数中的某些超参数能够被假设为是固定的,能够添加其它超参数(例如,激活函数的类型、卷积被扩张还是掩饰等),或两者兼顾。

在一个示例实施方式中,针对过滤器高度的可能值是[1,3,5,7],针对过滤器宽度的可能值是[1,3,5,7],针对过滤器的数目的可能值是[24,36,48,64],以及针对步幅高度和宽度的可能值是[1,2,3]。

在图2a的示例中,子神经网络中的层的配置(即,那些层接收来自那些其它层的层)是固定的。然而,在其它示例中,超参数包括定义子神经网络中的层之间的连接性的超参数。

图2b是生成定义包括跳转连接的架构的输出序列的控制器神经网络110的示例的图250。

特别地,在图2b的示例中,对于子神经网络中的一个或多个层,超参数包括定义较早层具有到该层的跳转连接的跳转连接超参数。更具体地,输出序列中的时间步长包括其处超参数为跳转连接超参数的一个或多个层中的每个的相应的锚点时间步长,例如,针对层n-1的时间步长252和针对层n的时间步长254。

针对给定层的给定锚点时间步长的输出层包括与比子神经网络中的当前层较早的每个层相对应的相应的节点。这些节点中的每个被配置为根据一组参数来处理(i)针对锚点步长的经更新的隐藏状态以及(ii)针对相对应的较早层(即,与该节点相对应的较早层)的锚点时间步长的经更新的隐藏状态,以生成表示将相对应的较早层连接到子神经网络中的当前层的可能性的评分。例如,与较早层j的层i相对应的输出层中的节点能够生成针对相对应的较早层的评分,该评分满足:

p(层j是到层i的输入)=sigmoid(vttanh(wprev*hj+wcurr*hi))其中vt、wprev、和wcurr是针对节点的参数,hj是针对相对应的较早层j的锚点时间步长的经更新的隐藏状态,并且hi是针对层i的锚点时间步长的经更新的隐藏状态。

系统100然后针对每个较早层通过根据由与该较早层相对应的节点生成的评分对是或否进行采样来确定该层是否利用跳转连接连接到给定层。如果系统确定应当将多个层连接到给定层,则由所有多个层生成的输出在深度维度上级联以生成到给定层的输入。为了确其中保跳转连接不会导致一个层与另一层不兼容的“编译失败”以及不包括不具有任何输入或输出的任何层的网络,(i)如果层未连接到任何输入层则网络输入被用作到该层的输入,(ii)在最终层处,系统取尚未连接的所有层输出并且在将最终级联的输出发送到网络的输出层之前使它们级联,以及(iii)如果待级联的输入具有不同的大小,则系统用零填补小层,使得待级联的输入具有相同的大小。

在一些示例中,子神经网络包括多个不同的层类型。例如,子神经网络能够是还包括其它种类的神经网络层的卷积神经网络,所述其它种类的神经网络层例如全连接层、池化层、深度级联层、局部对比度归一化、批归一化、输出层(例如,softmax层或其它分类器层)等。

在这些示例中的一些中,这些其它层的位置和超参数是固定的,并且输出序列仅包括针对子神经网络中的卷积神经网络层的超参数值。例如,输出层的位置可以被固定为子神经网络中的最后层并且卷积层中的一些或全部可以在后面或者在前面给予批归一化层。

在这些示例的其它示例中,通过输出序列所定义的超参数对于每个层包括与该层的类型相对应的值。因为不同类型的层具有不同的超参数,所以在这些示例中,系统基于为给定层选择了那种类型的神经网络层在输出序列的生成期间动态地确定那些超参数与那些时间步长相对应。也就是说,由系统使用的输出层作为针对给定时间步长的输出层取决于最近采样的层类型超参数的值。

在一些示例中,子神经网络是递归神经网络。在这些情况下,输出序列能够定义递归cell的架构,并且能够在子神经网络内使递归cell重复多次以生成针对神经网络的架构。如上所述,在一些情况下,重复的次数在训练中自始至终是固定的,然而在其它情况下系统随着训练进行而增加重复的次数。

图2c是生成定义针对递归cell的架构的输出序列的控制器神经网络110的示例的图270。

特别地,在图2c的示例中,输出序列包括针对表示由递归cell执行的计算的计算步骤的树中的每个节点的相应的计算步骤。递归cell接收两个输入:来自先前时间步长的该cell的输出和针对当前时间步长的输入,即,在时间步长处的到子网络的输入或由子网络的另一组件生成的输出。递归cell对那两个输入进行处理以生成cell输出。如将在下面所描述的是,在一些情况下递归cell还接收第三输入:记忆状态。

更具体地,在图2c的示例中,输出序列针对树的三个节点的设定定义:树索引0处的一个叶节点、树索引1处的另一叶节点以及树索引2处的内部节点。

树中的每个节点合并两个输入以生成输出,并且对于每个节点,输出序列包括:(i)标识用于组合两个输入的组合方法的数据以及(ii)待应用于两个输入的组合以生成输出的激活函数。通常,该cell中的叶节点首先向到该cell的两个输入中的每个应用相应的参数矩阵,然而内部节点不具有任何参数。如上所述,组合方法从一组可能的组合方法中选择,例如,[加;逐元素乘],并且激活函数从一组可能的激活函数中选择,例如,[identity;tanh;sigmoid;relu]。

例如,对于树索引0处的叶节点,因为系统选择了“加”作为组合函数并选择了“tanh”作为激活函数,所以该cell的树索引0处的叶节点可以执行以下操作来生成输出a0:

a0=tanh(w1*xt+w2*ht-1),

其中w1和w2是节点的参数矩阵,xt是在时间步长处的到该cell的输入,并且ht-1是来自先前时间步长的该cell的输出。

对于树索引2处的节点,当该cell没有记忆状态时,图2c的示例指定到节点的两个输入(即,两个叶节点的输出)将被逐元素乘并且逐元素sigmoid函数将被应用于逐元素乘法的输出以生成内部节点的输出,即该cell的输出。

可选地,该cell的架构还可以包括接收先前记忆状态作为输入。在这些情况下,输出序列还包括定义该cell的记忆状态如何被注入到该cell中(即,先前记忆状态如何被更新并且那些节点具有在被传递给树中的下一个节点之前使用先前记忆状态来修改的输出)的值。

特别地,输出序列还包括两个cell注入值和两个cell索引值,所述两个cell注入值指定先前记忆状态如何与树中的节点中的一个输出组合以生成针对该节点的更新的输出,即,用于组合的组合方法和激活函数,所述两个cell索引指定以下项目的值(在用于节点的激活函数的应用之前):(i)其输出使用记忆状态来更新的节点以及(ii)其输出被设定为经更新的记忆状态的节点。

在图2c的示例中,因为针对第二cell索引生成的值是0,所以用于注入的组合方法是加,并且激活函数是relu,该cell能够加上先前cell状态和树索引0处的节点的输出(在上面被称为a0)并且然后向和应用relu以生成树索引0处的节点的更新的输出。该cell然后能够提供经更新的输出作为树索引2处的节点的输入。

因为针对第一cell索引生成的值是1,所以在激活函数被应用之前该cell将经更新的记忆状态设定给索引1处的树的输出。

虽然为了易于阐述图2c描绘了其中树包括两个叶节点的示例,但是在实践中叶节点的数目可以是更大的,例如四个、八个或十六个。

图3是用于更新控制器参数的当前值的示例过程300的流程图。为了方便,过程300将被描述为由位于一个或多个位置中的一个或多个计算机的系统来执行。例如,被适当地编程的神经架构搜索系统(例如,图1的神经架构搜索系统100)能够执行过程300。

系统能够重复地执行过程300以对控制器神经网络进行训练,即,以根据控制器参数的初始值来确定控制器参数的训练值。

系统使用控制器神经网络并根据控制器参数的当前值作为迭代的当前值来生成一个批次的输出序列(步骤302)。该批次中的每个输出序列定义子神经网络的相应的架构。特别地,因为如上所述,系统当在输出序列中生成每个超参数值时从评分分布中采样,所以即使该批次中的序列是各自根据相同的控制器参数值而生成的,它们也将通常是不同的。该批次通常包括预先确定数目的输出序列,例如八个、十六个、三十二个、或六十四个序列。

对于该批次中的每个输出序列,系统对具有通过该输出序列所定义的架构的子神经网络的实例进行训练以执行特定神经网络任务(步骤304)。也就是说,对于该批次中的每个输出序列,系统使具有通过输出序列所定义的架构的神经网络实例化并且使用适合于该任务的常规机器学习训练技术(例如,具有反向传播或定时反向传播的随机梯度下降)来在所接收到的训练数据上对实例进行训练以执行特定神经网络任务。在一些实施方式中,系统使子神经网络的训练并行化以减少针对控制器神经网络的总体训练时间。系统能够在指定量的时间或指定数目的训练迭代内对每个子神经网络进行训练。

对于该批次中的每个输出序列,系统对子神经网络的相对应的经训练的实例在特定神经网络任务上的性能进行评估以确定针对经训练的实例在特定神经网络任务上的性能度量(步骤306)。例如,性能度量能够是如通过适当的准确度测量所测量的经训练的实例在验证集上的准确度。例如,该准确度在输出为序列时能够是困惑量度或者在任务为分类任务时是分类错误率。作为另一示例,性能度量能够是针对在实例的训练的最后两个、五个或十个时期中的每个内的实例的准确度的平均值或最大值。

系统使用针对经训练的实例的性能度量来调整控制器参数的当前值(步骤308)。

特别地,系统通过使用加强学习技术来对控制器神经网络进行训练以生成导致子神经网络具有增加的性能度量的输出序列来调整当前值。更具体地,系统对控制器神经网络进行训练以生成使基于经训练的实例的性能度量而确定的接收回报最大化的输出序列。特别地,针对给定输出序列的回报是针对经训练的实例的性能度量的函数。例如,回报能够是以下各项中的一个:性能度量、性能度量的平方、性能度量的立方、性能度量的平方根等。

在一些情况下,系统使用策略梯度技术来对控制器神经网络进行训练以使预期回报最大化。例如,策略梯度技术能够是reinforce(补强)技术或近端策略优化(ppo)技术。例如,系统能够使用满足下式的梯度的估计器来估计预期回报相对于控制器参数的梯度:

其中m是该批次中的序列的数目,t是该批次中的每个序列中的时间步长的数目,at是在给定输出序列中的时间步长t处的输出,rk是针对输出序列k的回报,θc是控制器参数,并且b是基线函数,例如,先前的架构准确度的指数移动平均值。

在一些实施方式中,系统以分布式方式对控制器神经网络进行训练。也就是说,系统维护控制器神经网络的多个副本并且在训练期间异步地更新副本的参数值。也就是说,系统能够对于每个副本异步地执行步骤302-306并且能够使用针对这些副本中每个所确定的梯度来更新控制器参数。

本说明书连同系统和计算机程序组件一起使用术语“被配置”。对于一个或多个计算机的系统来说待被配置为执行特定操作或动作意味着该系统已经在其上安装了软件、固件、硬件或它们的组合,所述软件、固件、硬件或它们的组合在操作中使该系统执行这些操作或动作。对于一个或多个计算机程序来说待被配置为执行特定操作或动作意味着该一个或多个程序包括指令,所述指令当由数据处理设备执行时,使该设备执行这些操作或动作。

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

术语“数据处理设备”指代数据处理硬件并且包含用于对数据进行处理的所有种类的设备、装置、和机器,作为示例包括可编程处理器、计算机、或多个处理器或计算机。该设备也能够是或者还包括专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。该设备除了包括硬件之外还能够可选地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。

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

在本说明书中,术语“数据库”广泛地用于指代数据的任何合集:数据不需要被以任何特定方式构造,或者根本未构造,并且它能够被存储在一个或多个位置中的存储装置上。因此,例如,索引数据库能够包括数据的多个合集,该多个合集中的每个可以被不同地组织和访问。

类似地,在本说明书中术语“引擎”广泛地被用于指代被编程以执行一个或多个特定功能的基于软件的系统、子系统或过程。通常,引擎将作为在一个或多个位置中安装的一个或多个计算机上的一个或多个软件模块或组件被实现。在一些情况下,一个或多个计算机将专用于特定引擎;在其它情况下,能够在相同的一个或多个计算机上安装并运行多个引擎。

本说明书中所描述的过程和逻辑流能够通过执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能的一个或多个可编程计算机而被执行。过程和逻辑流还能够由专用逻辑电路(例如,fpga或asic)或者通过专用逻辑电路和一个或多个编程计算机的组合来执行。

适合于执行计算机程序的计算机能够基于通用微处理器或专用微处理器或两者,或任何其它种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的必要元件是用于执行或者实行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器器件。中央处理单元和存储器能够由专用逻辑电路来补充,或并入在专用逻辑电路中。通常,计算机也将包括用于存储数据的一个或多个大量存储装置,或者在操作上耦合以从用于存储数据的一个或多个大量存储装置接收数据或者向用于存储数据的一个或多个大量存储装置转移数据或两者兼顾,所述大量存储装置例如磁盘、磁光盘、或光盘。然而,计算机未必具有此类装置。此外,计算机能够被嵌入在另一装置中,所述另一装置例如移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器或便携式存储装置(例如,通用串行总线(usb)闪存驱动器),仅举几例。

适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器器件,作为示例包括半导体存储器器件,例如eprom、eeprom和闪速存储器器件;磁盘,例如内部硬盘或可移动盘;磁光盘;以及cdrom和dvd-rom盘。

为了提供与用户的交互,能够在计算机上实现本说明书中所描述的主题的实施例,所述计算机具有用于向用户显示信息的显示装置(例如,crt(阴极射线管)或lcd(液晶显示器)监视器)以及用户能够提供到该计算机的输入的键盘和指点装置,例如鼠标或轨迹球。还能够使用其它种类的装置来提供与用户的交互;例如,提供给用户的反馈能够是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且能够以任何形式接收来自用户的输入,所述任何形式包括声音、语言或触觉输入。此外,计算机能够通过向由用户使用的装置发送文档并且从由用户使用的装置接收文档来与用户交互;例如,通过响应于从web浏览器接收到的请求而向用户的装置上的web浏览器发送web页面。另外,计算机能够通过向个人装置(例如,正在运行消息传送应用的智能电话)发送文本消息或其它形式的消息并且反过来接收来自用户的响应消息来与用户交互。

用于实现机器学习模型的数据处理设备还能够包括例如用于对机器学习训练或生产的公共且计算密集部分(即,推理、工作负载)进行处理的专用硬件加速器单元。

机器学习模型能够使用机器学习框架(例如,tensorflow框架、microsoftcognitivetoolkit框架、apachesinga框架、或apachemxnet框架)来实现和部署。

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

该计算系统能够包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络来交互。客户端和服务器之间的关系借助于在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施例中,例如,出于向与作为客户端的装置交互的用户显示数据并且从与作为客户端的装置交互的用户接收用户输入的目的,服务器向用户装置发送数据(例如,html页面)。能够在服务器处从装置接收在用户装置处生成的数据,例如用户交互的结果。

虽然本说明书包含许多特定实施方式细节,但是这些不应当被解释为对任何发明的范围或者对可以要求保护的范围构成限制,而是相反被解释为特定于特定发明的特定实施例的特征的描述。也能够在单个实施例中相结合地实现在本说明书中在单独的实施例的上下文中描述的某些特征。相反地,也能够单独地或按照任何适合的子组合在多个实施例中实现在单个实施例的上下文中描述的各种特征。此外,尽管特征可以在上面被描述为按照某些组合行动并因此甚至最初要求保护,然而来自要求保护的组合的一个或多个特征能够在一些情况下被从该组合中删去,并且所要求保护的组合可以针对子组合或子组合的变化。

类似地,虽然按照特定次序在附图中描绘并在权利要求书中记载了操作,但是这不应当被理解为要求按照所示特定次序或按照顺序次序执行此类操作,或者要求执行所有图示的操作以实现所希望的结果。在某些情况下,多任务处理和并行处理可以是有利的。此外,上述的实施例中的各种系统模块和组件的分离不应当被理解为在所有实施例中要求这种分离,并且应当理解的是,所描述的程序组件和系统通常能够被一起集成在单个软件产品中或者封装到多个软件产品中。

已经对主题的特定实施例进行了描述。其它实施例在以下权利要求书的范围内。例如,权利要求书中所记载的动作能够被按照不同的次序执行并仍然实现所希望的结果。作为一个示例,附图中所描绘的过程不一定要求所示特定次序或顺序次序来实现所希望的结果。在一些情况下,多任务处理和并行处理可以是有利的。

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