使用以比特值为条件的回归神经网络生成输出示例的制作方法

文档序号:21996284发布日期:2020-08-25 19:37阅读:218来源:国知局
使用以比特值为条件的回归神经网络生成输出示例的制作方法



背景技术:

本说明书涉及使用神经网络生成输出示例。

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

一些神经网络是回归神经网络。回归神经网络是接收输入序列并从输入序列生成输出序列的神经网络。特别地,回归神经网络可以使用来自先前时间步长的网络的一些或全部内部状态来计算当前时间步长的输出。

回归神经网络的示例是包括一个或多个lstm存储器块的长短期记忆(longshort-termmemory,lstm)神经网络。每个lstm存储器块可以包括一个或多个单元,每个单元包括输入门、遗忘门和输出门,其允许该单元存储该单元的先前状态,例如,用于生成当前激活或要提供给lstm神经网络的其他组件的状态。



技术实现要素:

本说明书描述了在一个或多个位置的一个或多个计算机上实现为计算机程序的系统,该系统通过在多个生成时间步长的每一个处生成相应的输出值,使用回归神经网络生成输出示例。输出示例中的每个输出值都是n比特值。在每个生成时间步长,系统生成n个比特的前一半的值,然后生成以n个比特的前一半的值为条件的n个比特的后一半的值。例如,系统可以生成输出值的n/2个最高有效位的值,然后以已经生成的最高有效位的值为条件生成输出值的n/2个最低有效位的值。

因此,在一个方面,提供了一种生成输出示例的方法,该输出示例包括在生成时间步长序列的每个生成时间步长处的相应的n比特输出值。该方法可以包括,对于每个生成时间步长,使用回归神经网络并根据回归神经网络的隐藏状态,处理包括序列中前一生成时间步长处的n比特输出值的第一回归输入,以生成在生成时间步长处的输出值中的n个比特的前一半的可能值上的第一分数分布,并且使用该第一分数分布选择输出值的n个比特的前一半的值。该方法可以包括,对于每个生成时间步长,使用回归神经网络并根据相同的隐藏状态,处理第二回归输入,该第二回归输入包括(i)序列中前一生成时间步长处的n比特输出值,以及(ii)n个比特的前一半的值,以生成在生成时间步长处的输出值中n个比特的后一半的可能值上的第二分数分布,并且使用该第二分数分布选择输出值的n个比特的后一半的值。

如稍后进一步描述的,该方法的实现方式适于在具有有限计算能力和存储器带宽的处理单元上实现,诸如在移动设备中找到的。例如,该方法的实现方式使用计算架构,其中处理单元被配置为将生成n比特输出值分为两半,生成n个比特的前一半,然后生成n个比特的后一半。通过以这种方式将输出空间划分为两个较小的输出空间而不是一个大的输出空间,序列矩阵-向量乘积计算的数量可以减小一个数量级,促进该方法的实时实现方式。

可选地,输出值可以在生成时间步长中的每一个处以相应的条件输入为条件。第一回归输入和第二回归输入中的每一个还可以包括生成时间步长的条件输入。在生成时间步长处生成条件输入可以包括使用条件神经网络来处理条件特征。

在实现方式中,处理第一回归输入可以包括处理第一回归输入以生成更新隐藏状态的前一半,然后使用一个或多个第一输出层处理更新隐藏状态的前一半以生成第一分数分布。处理第二回归输入可以包括处理第二回归输入以生成更新隐藏状态的后一半,以及使用一个或多个第二输出层处理更新隐藏状态的后一半以生成第二分数分布。

在特定实现方式中,一个或多个第一输出层可以被配置为将第一权重矩阵应用于更新隐藏状态的前一半,以生成第一投影更新隐藏状态。然后,该方法可以将元素方式(element-wise)非线性激活函数应用于第一投影更新隐藏状态以生成第一激活向量,将第二权重矩阵应用于第一激活向量以生成第一罗吉斯(logits),然后将softmax函数应用于第一logits以生成第一分数分布。类似地,一个或多个第二输出层可以被配置为将第三权重矩阵应用于更新隐藏状态的后一半,以生成第二投影更新隐藏状态。然后,该方法可以将元素方式非线性激活函数应用于第二投影更新隐藏状态以生成第二激活向量,将第四权重矩阵应用于第二激活向量以生成第二logits,并将softmax函数应用于第二logits以生成第二分数分布。

回归神经网络可以包括一个或多个门。然后,处理第一回归输入可以包括通过将回归权重矩阵应用于隐藏状态来确定每个门的相应回归贡献。然后,该方法还可以包括,对于一个或多个门中的每一个,从第一回归输入确定门的第一输入贡献,从至少门的回归贡献和门的第一输入贡献确定门的第一门向量,以及从第一门向量和隐藏状态生成更新隐藏状态的前一半。类似地,处理第二回归输入可以包括,对于一个或多个门中的每一个,从第二回归输入确定门的第二输入贡献,从至少门的回归贡献和门的第二输入贡献确定门的第二门向量,以及从第二门向量和隐藏状态生成更新隐藏状态的后一半。

在实现方式中,处理第二回归输入可以包括生成更新隐藏状态的后一半,而无需从第一回归输入的处理中重新计算门的回归贡献。

在实现方式中,回归神经网络仅包括单个回归层。应用于回归神经网络的先前状态的单个回归层可以提供上下文的高度非线性变换,这由回归神经网络的隐藏状态以已经压缩的形式表示。因此,这进一步促进了该方法在具有有限计算能力的处理单元上的部署。

在该方法的一些实现方式中,n个比特的前一半是最高有效位,而n个比特的后一半是输出示例(数据项)的最低有效位。在一些实现方式中,可以通过分别从第一分数分布和第二分数分布中采样来选择n个比特的前一半和后一半的值。

该方法的实现方式仅允许在生成输出示例的开始时,将回归神经网络的参数加载到处理单元的寄存器中一次。然后,回归神经网络的参数可以在输出示例的生成的整个过程中保持(persist)在寄存器中。这有助于减少实现该方法时使用的存储器带宽。

在一些实现方式中,该方法在诸如手机的移动设备的处理单元上操作。

在另一方面,提供了一种处理单元,其被配置为在生成时间步长序列的每个生成时间步长处生成包括相应的n比特输出值的输出示例。处理单元被配置为将n比特输出值的生成分为两半,以生成n个比特的前一半,然后生成n个比特的后一半。处理单元可以被配置为,对于每个生成时间步长,使用回归神经网络并根据回归神经网络的隐藏状态,处理包括序列中前一生成时间步长处的n比特输出值的第一回归输入,以生成在生成时间步长处的输出值中的n个比特的前一半的可能值上的第一分数分布,然后使用该第一分数分布选择输出值的n个比特的前一半的值。处理单元还可以被配置为,对于每个生成时间步长,使用回归神经网络并根据相同的隐藏状态,处理第二回归输入,该第二回归输入包括(i)序列中前一时间步处的n比特输出值,以及(ii)n个比特的前一半的值,以生成在生成时间步长处的输出值中的n个比特的后一半的可能值上的第二分数分布,然后使用该第二分数分布选择输出值的n个比特的后一半的值。

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

通过首先生成n个比特的前一半的值,例如最高有效位,然后生成n个比特的后一半的值,例如最低有效位,以前一半的值为条件,系统提高了生成的输出的准确度。此外,网络可以在计算紧凑的同时实现这种提高的准确度。特别地,因为神经网络仅包括单个回归层(和具有相对低的计算成本的输出层)来对条件输入进行操作,所以该网络可以比传统方法更快地生成高质量的输出。这可以允许在需要实时生成输出的环境中使用网络,例如,当部署在移动设备或另一用户设备上时。

此外,系统可以每时间步长生成两个输出,而不需要重新计算计算上昂贵的矩阵乘法,即,通过仅计算一次对更新隐藏状态的回归贡献,最小化生成第二输出所需的额外计算和处理能力。

此外,通过在比特的前一半和后一半上生成单独的分数分布,系统减少了输出空间,允许多比特值的有效预测。作为特定的示例,当n是16,即所有的值都是16比特值时,神经网络只需要两个相对小的输出空间(每个都具有两个为2^8的分数的分数分布)而不是一个大的输出空间(每个时间步长都需要具有分数分布,该分数分布具有2^16分数),减少了有效预测16比特值所需的计算量。

网络的架构非常适合在gpu或其他专用硬件上进行优化,从而节省额外的计算和时间。例如,在实现方式中,网络仅具有单个回归层,并且回归层的隐藏状态的大小,即隐藏状态中的单元的数量,可以容易地被配置为优化专用硬件上可用的存储器。

本说明书中描述的主题的一个或多个实施例的细节在附图和以下描述中阐述。本主题的其他特征、方面和优点将从说明书、附图和权利要求中变得清楚。

附图说明

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

图2是示出由回归神经网络执行以在生成时间步长处生成输出值的处理的图。

图3是用于生成输出示例的示例过程的流程图。

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

具体实施方式

本说明书描述了在一个或多个位置的一个或多个计算机上实现为计算机程序的系统,该系统使用回归神经网络生成输出示例。每个输出示例包括在多个生成时间步长的每一个处的相应输出值。在一些情况下,系统可以通过在条件输入上调节(condition)回归神经网络来生成输出示例。

在一些情况下,系统生成音频数据,并且在每个生成时间步长处,输出值可以是例如用于定义音频波形的时域或频率音频数据值。例如,该系统可以是将文本转换为语音的系统的部分。在该示例中,输出示例是表示一段文本的话语的音频数据序列,例如波形,并且回归神经网络以该段文本的语言特征序列为条件。也就是说,在每个生成时间步长处,条件输入是一组语言特征,并且输出值是定义波形的幅度的值。在一些实现方式中,序列中每个生成时间步长处的音频值是相应时间处的音频波形的幅度,即,输出示例是原始音频波形。在其他实现方式中,序列中每个生成时间步长处的音频值是相应时间处的波形的压缩或压扩(companded)表示。例如,音频值可以是波形的μ-law变换表示。在其他实现方式中,时间步长处的音频值可以是音频波形的stft(short-timefouriertransform,短时傅立叶变换)表示。

作为另一示例,系统可以生成静止或移动图像的图像数据,例如,以字幕为条件或者不以任何显式输入为条件。在每个生成时间步长处,输出值是图像的一些像素的一些颜色通道的像素值,例如颜色值,即强度值。

作为另一示例,该系统可以是语音识别系统的部分。在该示例中,输出示例是表示话语的转录的文本序列,并且回归神经网络以话语的原始音频序列或话语的音频特征为条件。也就是说,在每个生成时间步处,输出值是标识一些文本单元的数据,例如,词语、字符或字素。

特别地,输出示例中的每个输出值是n比特值,例如,4比特值、8比特值、16比特值或24比特值。也就是说,输出示例162中的每个输出值被表示为n个比特的序列。例如,当输出示例是语音波形时,输出示例可以是n比特幅度值或n比特压缩或压扩幅度值的有序的(即,按时间排列的)集合。

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

神经网络系统100通过在多个生成时间步长的每一个处生成至少一个输出值152来生成包括多个输出值152的输出示例。如上所述,每个输出值是n比特值,并且被表示为n个比特的序列。在图1的示例中,输出值152是8比特值,即,由比特序列[0,1,0,1,0,1,1,1]表示。

在给定的生成时间步长处,系统100使用回归神经网络110并根据回归神经网络110的隐藏状态114来处理包括先前输出值112(即序列中前一生成时间步长处的n比特输出值)的第一回归输入,以在生成时间步长的输出值中的n比特的前一半的可能值上生成第一分数分布。如果输出以一些外部条件输入为条件,则第一回归输入还包括用于生成时间步长的条件输入102。

然后,系统100使用第一分数分布,例如通过根据分数分布从可能的n个比特的序列中对n个比特的序列采样,来选择输出值的n个比特的前一半的值116。在图1的示例中,系统100已经选择值[0,1,0,1]作为n个比特的前一半的值116。

然后,系统100使用回归神经网络110并根据相同的隐藏状态114来处理第二回归输入,该第二回归输入包括(i)先前输出值112和(ii)n个比特的前一半的值116(以及,如果输出是以一些输入为条件的,则为生成时间步长的条件输入102),以生成在生成时间步长处的输出值中n个比特的后一半的可能值上的第二分数分布。

然后,系统使用第二分数分布,例如通过从第二分数分布采样,为输出值的n个比特的后一半选择值118。例如,系统100已经选择值[0,1,1,1]作为比特的后一半的值118,使得输出值152被表示为[0,1,0,1,0,1,1,1]。

因此,在给定的生成时间步长处,系统首先生成n个比特的前一半的值116,例如最高有效位,然后生成n个比特的后一半的值118,例如最低有效位,该后一半的值一n个比特的前一半的值为条件。

下面参考图2描述回归神经网络110的架构和由该回归神经网络执行以生成输出值的操作。

通过以这种方式生成输出示例并使用如本说明书中所述的回归神经网络,系统100以最小的延迟生成准确的输出,同时消耗更少的计算资源。因此,例如,系统100可以在移动设备上、智能扬声器上、或者在另一资源受限、但仍然需要以低延迟生成高质量的输出示例的计算机上实现。

图2是示出由回归神经网络110执行以在生成时间步长t处生成输出值152的处理的图。

可以为多个生成时间步长重复图中所示的处理,以生成输出示例中的每个输出值。

如图2所示,回归神经网络110仅包括单个回归神经网络层210,即,与一个接一个堆叠的多个回归神经网络层相反。回归神经网络110还包括一组一个或多个粗(coarse)输出层220和一组一个或多个细(fine)输出层230。

一般,单个回归神经网络层210保持在每个生成时间步长处被更新的隐藏状态h。隐藏状态是数值的向量。

在生成时间步长t处,回归神经网络110接收包括在前一生成时间步长处生成的输出值的第一输入202,即来自前一输出值的比特的前一半的值ct-1和来自前一输出值的比特的后一半的值ft-1的组合。例如,系统可以将ct-1和ft-1编码为[0,2^(n/2)-1]范围内的标量,然后将该标量缩放到适当的间隔(例如,[-1,1]),以便由回归神经网络处理。

回归神经网络110根据来自先前时间步长ht-1的隐藏状态来处理第一输入202,以生成比特的前一半的可能值上的第一分数分布。换句话说,分数分布包括n个比特的前一半的值的每个可能组合的相应分数。例如,当n为16时,分数分布将包括输出值的前8比特的值的2^8种可能组合中的每一个的相应分数。

然后,系统使用分数分布,例如,通过从分数分布中采样或者选择具有最高分数的值的组合,来选择比特(“粗比特”)的前一半的值ct。

然后,回归神经网络110处理第二输入204,该第二输入204包括在前一时间步长(ct-1,ft-1)处生成的输出值和值ct(根据ht-1),以生成在比特(“精比特”)的后一半的可能值上的第二分数分布。例如,系统可以以与对ct-1和ft-1编码相同的方式编码ct,以生成第二输入204。与第一分数分布类似,第二分数分布包括n个比特的后一半的值的每个可能组合的相应分数。然后,系统使用第二分数分布选择比特的后一半ft。

特别地,回归层210根据ht-1处理第一输入202,以为生成时间步长t生成更新隐藏状态ht的前一半yc。

为了生成yc,回归层210通过将回归权重矩阵r应用于隐藏状态ht-1来确定回归层210中的一组一个或多个门中的每个门的相应回归贡献。换句话说,回归层210计算r和ht-1之间的矩阵向量乘积,以生成包括门中的每个的回归贡献的向量,即向量的不同部分对应于不同的门。

然后,回归层210为每个门确定来自第一输入202的门的相应输入贡献,并且从至少门的回归贡献和门的输入贡献来确定门的门向量。在图2的示例中,回归层210具有三个门u、r和e,因此计算三个门向量ut、rt和et。特别地,在图2的示例中,门向量ut、rt和et满足:

以及

其中例如,σ是sigmoid非线性函数,rcu是门u的回归贡献,是门u的输入权重矩阵,其被掩码化(mask)使得ct不影响状态的前一半yc,xt是对回归层的输入,即第一输入202或第二输入204,xt是门r的回归贡献,是门r的输入权重矩阵,其被掩码化使得ct不影响状态的前一半yc,例如,τ是tanh非线性函数,表示元素方式乘法,rce是门e的回归贡献,并且是门e的输入权重矩阵,其被掩码化使得ct不影响状态的前一半yc。换句话说,矩阵i被掩码化,使得当xt是第二输入204时,缺失的ct值不影响结果隐藏状态ht的前一半,如下所示。尽管在上述等式中未示出,但是门中的一些或所有可以包括门的一个或多个偏置向量的相加,作为门的门向量的计算的部分,即,在对门的非线性的应用之前。

然后,回归层210从ht-1和门向量计算yc。在图2的示例中,yc是临时隐藏状态ht的前一半,ht被计算为:

换句话说,回归层210将如上计算的ht分为两个向量,并将第一个向量用作yc。

然后,该组粗输出层220处理yc以生成比特的前一半的值的分数分布。

特别地,在图2的示例中,粗输出层220被配置为将第一权重矩阵o1应用于yc以生成第一投影更新隐藏状态,将元素方式非线性激活函数(例如,整流线性单元(“relu”)函数)应用于第一投影更新隐藏状态以生成第一激活向量,将第二权重矩阵o2应用于第一激活向量以生成第一logits,并将softmax函数(“softmax”)应用于第一logits以生成第一分数分布。

一旦系统已经选择了比特的前一半yc,回归层210根据ht-1处理第二输入202,以生成更新隐藏状态ht的后一半yf。特别地,最终更新隐藏状态ht是yc和yf的级联(“concat”)。换句话说,最终更新隐藏状态ht可以分为yc和yf。

为了生成yf,回归层210通过使用第二输入204而不是第一输入202来重新计算该组门的门向量,然后从ht-1和重新计算的门向量来计算yf。有利地,当重新计算该组门的门向量时,回归层210重新使用并且不重新计算来自第一输入202的处理的对门的回归贡献。

换句话说,当确定第二输入204的门向量时,回归层210不重新计算r和ht-1之间的矩阵向量乘积,而仅通过使用第二输入204作为上述等式中的xt来重新计算相应门的输入贡献。

然后,回归层210从如上所述的ht-1和重新计算的门向量计算yf,但是yf是更新隐藏状态ht的后一半(而不是如上所述用于计算yc的前一半)。

然后,该组细输出层230处理yf,以生成比特的后一半的值的分数分布。

特别地,在图2的示例中,细输出层230被配置为将权重矩阵o3应用于yf以生成第二投影更新隐藏状态,将元素方式非线性激活函数(例如,经整流的线性单元(“relu”)函数)应用于第二投影更新隐藏状态以生成第二激活向量,将权重矩阵o4应用于第二激活向量以生成第二logits,并将softmax函数(“softmax”)应用于第二logits以生成第二分数分布。

因此,从图2的描述中可以看出,回归神经网络120能够通过在小的输出空间上生成两个分数分布而不是在大的输出空间上生成一个分数分布来在生成时间步长处生成输出值。这允许以更高计算效率的方式生成输出值。

作为特定的示例,当n是16,即所有的值都是16比特值时,神经网络只需要两个相对小的输出空间(每个都具有两个2^8分数的分数分布)而不是一个大的输出空间(每个时间步长都需要有2^16分数),减少了有效预测16比特值所需的计算量。特别地,矩阵o的大小可以比将隐藏状态ht投影到具有2^16值的向量中所需的矩阵小得多。

此外,回归层210计算yf,而不需要重新计算涉及r的矩阵-向量乘积,这是回归层210执行的计算上最密集的操作,即,因为该操作涉及将大矩阵乘以大向量。因此,为了允许在给定时间步长处的两个过程(pass)中生成输出值,只需要添加有限数量的相对较少计算上密集的操作。

此外,回归神经网络120仅包括单个回归层。因为回归层具有保持给定输出值的已经压缩的上下文表示的一个隐藏状态,所以rnn能够在单个变换中将上下文和输入组合起来。因此,回归神经网络120能够避免使用要求为每个值执行层的长链(long-chain)的深且窄的架构,并且极大地减少了在每个时间步长处需要执行的操作的数量。

当条件输入用于进一步调节输出值的生成时,第一输入202和第二输入204也包括用于生成时间步长的条件输入。特别地,回归神经网络可以通过包括一个或多个神经网络层(例如卷积层)的条件神经网络来处理接收到的条件特征(例如语言特征),以生成是具有与隐藏状态相同维度的向量的条件输入208。然后,门向量中的每一个可以基于条件输入208。在计算门向量之前,条件输入208可以应用于任何适当的点。在图2所示的示例中,条件输入208被添加到回归贡献中的每一个,即在已经计算了r和ht-1之间的矩阵向量乘积之后。然后,当重新计算门向量时,回归贡献可以被重新使用,而不需要重新计算。

图3是用于生成输出值的示例过程300的流程图。为方便起见,过程300将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,适当编程的神经网络系统,例如图1的神经网络系统100,可以执行过程300。

系统可以在多个生成时间步长处重复过程300,以生成包括多个n比特输出值的输出示例。

系统处理第一输入以生成第一分数分布(步骤302)。具体地,第一输入包括在前一时间步长处生成的前一输出值,并且当输出示例以条件输入为条件时,包括用于生成时间步长的条件输入。

系统从第一分数分布中选择n个比特的前一半的值(步骤304),例如,通过从第一分数分布中采样。

系统处理第二输入以生成第二分数分布(步骤306)。第二输入包括前一输出值和来自当前输出值的比特的前一半的值。

系统从第二分数分布中选择n个比特的后一半的值(步骤308),例如,通过从第二分数分布中采样。

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

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

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

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

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

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

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

适于计算机程序的执行的计算机可以基于通用或专用微处理器或两者,或者任何其他类型的中央处理单元。一般,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行(perform)或执行(execute)指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以由专用逻辑电路补充或并入专用逻辑电路。一般,计算机还将包括一个或多个用于存储数据的大容量存储设备(例如磁盘、磁光盘或光盘),或者可操作地耦合到一个或多个大容量存储设备,以从一个或多个大容量存储设备接收数据或向一个或多个大容量存储设备传送数据,或者两者都包括。然而,计算机不需要这样的设备。此外,计算机可以嵌入到另一设备中,例如手机、个人数字助理(personaldigitalassistant,pda)、移动音频或视频播放器、游戏控制台、全球定位系统(globalpositioningsystem,gps)接收器或便携式存储设备,例如通用串行总线(universalserialbus,usb)闪存驱动器,仅举几个示例。

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

为了提供与用户的交互,本说明书中所描述的主题的实施例可以在具有用于向用户显示信息的显示器设备(例如crt(cathoderaytube,阴极射线管)或lcd(liquidcrystaldisplay,液晶显示器))以及键盘和定点设备(例如鼠标或轨迹球,用户可以通过鼠标或轨迹球向计算机提供输入的其他表面)的计算机上实现。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如通过响应于从网络浏览器接收到的请求,将网页发送到用户设备上的网络浏览器。此外,计算机可以通过向个人设备(例如运行消息传递应用的智能手机)发送文本消息或其他形式的消息,以及接收来自用户的响应消息来与用户交互。

用于实现机器学习模型的数据处理装置还可以包括,例如,专用硬件加速器单元,用于处理机器学习训练或产生的普通和计算密集型部分,即推理、工作负载。

机器学习模型可以使用机器学习框架来实现和部署,例如tensorflow框架、微软认知工具包(microsoftcognitivetoolkit)框架、apachesinga框架或apachemxnet框架。

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

计算系统可以包括客户端和服务器。客户端和服务器一般彼此远离,并且通常通过通信网络交互。客户端和服务器的关系是由运行在各自计算机上的计算机程序生成的,并且相互之间具有客户端-服务器关系。在一些实施例中,服务器将数据(例如,html页面)发送到用户设备,例如,出于向作为客户端的与设备交互的用户显示数据和从用户接收用户输入的目的。可以在服务器处从设备接收到在用户设备处生成的数据,例如用户交互的结果。

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

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

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

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