训练神经网络的方法、系统及存储介质与流程

文档序号:31671983发布日期:2022-09-28 01:09阅读:51来源:国知局
训练神经网络的方法、系统及存储介质与流程
训练神经网络的方法、系统及存储介质
1.分案说明
2.本技术属于申请日为2016年11月4日的中国发明专利申请201680060065.2的分案申请。
3.相关申请的交叉引用
4.本技术要求于2015年11月6日提交的标题为“regularizing machine learning models”的美国临时申请第62/252,374号的权益,其在此通过引用全文并入。
技术领域
5.本说明书涉及训练神经网络。


背景技术:

6.神经网络是机器学习模型,其采用一层或多层模型来为接收的输入生成输出,例如分类。一些神经网络除了输出层外还包含一个或多个隐藏层。每个隐藏层的输出被用作下一层的输入,所述下一层即下一个隐藏层或网络的输出层。网络的每层根据相应的参数的集合的当前值从接收的输入生成输出。
7.神经网络可能过度拟合(overfit)训练数据。过度拟合可被描述为神经网络由于特定的训练数据的集合变得过于自信。当神经网络被过度拟合时,关于不在训练数据中的项,它可能开始做出不好的概括。


技术实现要素:

8.本公开的方面具有通过减少过度拟合来改善训练的神经网络的性能的技术效果。
9.根据本公开的一个创新方面,描述了一种训练神经网络的方法,其中所述神经网络被配置为接收输入数据项并且处理所述输入数据项以对预定的多个标签的集合中的每个标签生成相应分数。所述方法可以包括以下动作:获得包括多个训练项的训练数据的集合,其中每个训练项与来自所述预定的多个标签的集合的相应标签相关联;以及修改所述训练数据以生成正则化(regularize)所述神经网络的训练的正则化训练数据。所述修改的动作可包括:对于每个训练项,确定是否修改与训练项相关联的标签;以及响应于确定修改与训练项相关联的标签,将与所述训练项相关联的标签改变为来自所述预定的标签的集合的不同的标签;以及在正则化数据上训练神经网络。
10.根据本公开的各种创新方面,可以通过使用正则化数据集合来训练神经网络以减少过度拟合,从而改善训练的神经网络的性能。正则化数据集合可以通过将预定量的噪声引入训练数据集合的标签中来生成,例如通过修改与训练数据集合中的训练数据项相关联的一个或多个标签来生成。训练数据项可以包括训练图像。
11.其他方面包括用于执行编码在计算机存储设备上的方法的动作的对应系统、装置和计算机程序。对于将被配置为执行特定操作或动作的一个或多个计算机的系统,意味着系统已经在其上安装了软件、固件、硬件或它们的组合,这些软件、固件、硬件或其组合在操
作中使系统执行所述操作或动作。对于将被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括在由数据处理装置执行时使装置执行所述操作或动作的指令。
12.这些和其他方面可以可选地包括以下特征中的一个或多个。例如,在一些实现方式中,将与所述训练项相关联的标签改变为来自所述预定的标签的集合的不同的标签包括:将标签从正确地描述训练项的标签改变为不正确地描述训练项的标签。在一些实现方式中,所述不同的标签是从所述预定的标签的集合中随机地选择的。
13.在一些实现方式中,标签可包括训练标签分布,所述训练标签分布包括对与训练图像的集合相关联的预定标签的集合中的每个标签的所述训练项的分数。在这样的实现方式中,将与所述训练项相关联的标签改变为来自所述预定的标签的集合的不同的标签可包括:将训练数据项的训练标签分布中的分数的分布从代表正确标签的分数的分布改变为代表不正确标签的分数的分布。
14.在一些实现方式中,确定是否修改与训练项相关联的标签可以是基于预定概率的。在一些这样的实现方式中,所述预定概率可以是10%。
15.根据本公开的另一个创新方面,描述了一种训练神经网络的方法,其中所述神经网络被配置为接收输入数据项并且处理所述输入数据项以对预定的多个标签的集合中的每个标签生成相应分数。所述方法可包括以下动作:获得包括多个训练项的训练数据的集合,其中每个训练项与初始目标标签分布相关联,所述初始目标标签分布将相应目标分数分配给所述预定的标签的集合中的每个标签;修改训练数据以生成正则化神经网络的训练的正则化训练数据,其包括,对于每个训练项,通过组合初始目标标签分布与平滑标签分布来修改初始目标标签分布以生成修改的目标标签分布;以及在正则化训练数据上训练神经网络。
16.其他方面包括用于执行编码在计算机存储设备上的方法的动作的对应系统、装置和计算机程序。
17.这些和其他方面可以可选地包括以下特征中的一个或多个。例如,在一些实现方式中,将所述初始目标标签分布与平滑标签分布组合可以包括:计算所述初始目标标签分布和所述平滑标签分布的加权和。
18.在一些实现方式中,对所述训练项的已知标签的目标分数在所述训练项的所述初始目标分布中可以被分配预定正值,并且除了所述已知标签的每个标签的目标分数在初始目标分布中可以设置为0。
19.在一些实现方式中,所述平滑标签分布可以包括对所述预定标签的集合中的每个标签的相应平滑分数,并且每个平滑分数可以是相同的预定值。
20.在一些实现方式中,所述平滑标签分布可以包括对所述预定标签的集合中的每个标签的相应平滑分数,并且所述平滑分数可以是不均匀的。
21.根据本公开的另一个创新方面,提供了一种训练神经网络的方法,其中所述神经网络被配置为接收输入数据项并且处理所述输入数据项以对预定的多个标签的集合中的每个标签生成相应分数。所述方法可包括以下动作:接收训练神经网络以优化包括第一误差项的损失函数的请求;以及训练神经网络以优化正则化损失函数,正则化损失函数包括第一误差项和正则化误差项,所述正则化误差项基于预测的分布和平滑分布之间的误差来
惩罚神经网络。
22.其他方面包括用于执行编码在计算机存储设备上的方法的动作的对应系统、装置和计算机程序。
23.这些和其他方面可以可选地包括以下特征中的一个或多个。例如,在一些实现方式中,平滑分布可以是均匀分布。替代地,平滑分布可以是在预测的分布之前使用的分布。在一些实现方式中,预测的分布可以包括由神经网络对特定输入生成的分数的集合。
24.在一些实施例中,计算机程序包括在由计算装置执行时使其执行本文公开的任何方法的指令。
25.本说明书中描述的主题可以在特定实施例中实现,以实现以下优点中的一个或多个。由训练的神经网络产生的推论的精确性可以得到改善。具体而言,通过修改与用于训练神经网络的训练数据相关联的标签,可以防止神经网络在基于由神经网络在训练期间学习的信息进行推论时过度拟合训练数据,即防止变得过度依赖和过度自信,从而改进在训练后新输入上的神经网络的性能。
附图说明
26.图1是用于训练神经网络的系统的示例的框图。
27.图2是生成正则化训练数据的集合的系统的示例的上下文图。
28.图3是用于生成正则化训练数据的集合的示例处理的流程图。
29.图4是用于生成正则化训练数据的集合的另一示例处理的流程图。
30.图5是使用正则化误差项来优化损失函数的示例处理的流程图。
31.在附图和下面的描述中阐述了这些以及其他实现方式的细节。从说明书和附图以及权利要求中,其他特征和优点将显而易见。
具体实施方式
32.本说明书描述了作为一个或多个位置上的一个或多个计算机上的计算机程序实现的系统如何能够通过生成正则化训练数据的集合来正则化神经网络的训练。神经网络被配置为接收输入数据项并且处理输入数据项以针对预定的多个标签的集合中的每个标签生成相应分数。
33.该系统可以接收用于训练神经网络的包括多个训练项的集合的训练数据集合。多个训练项的集合中的每个训练项可以与将相应分数与标签的集合中的每个标签相关联的相应训练标签分布相关联。然后,可以通过优化指定的目标函数来迭代地训练神经网络,该指定的目标函数将神经网络对于神经网络输入生成的神经网络输出和神经网络输入的目标输出取作输入。
34.图1是用于训练神经网络110的神经网络训练系统100的示例的框图。神经网络训练系统100是下面描述的系统、组件和技术可以在其中实现的、在一个或多个位置中的一个或多个计算机上实现为计算机程序的系统的示例。神经网络训练系统100包括神经网络110和训练数据项的数据库120。
35.神经网络110被配置为接收输入数据项并且处理输入数据项以针对预定的多个标签的集合中的每个标签生成相应分数。
36.神经网络110可以被配置为接收任何种类的数字数据输入并且基于输入生成任何种类的分数或分类输出。例如,如果对神经网络110的输入是图像或已经从图像中提取的特征,则由神经网络110为给定图像生成的输出可以是针对对象类别的集合中的每个的分数,其中每个分数代表图像包含属于该类别的对象的图像的估计的可能性。
37.作为另一示例,如果对神经网络110的输入是因特网资源(例如,网页)、文档或文档的部分、或从因特网资源、文档或文档的部分提取的特征,则由神经网络110对于给定因特网资源、文档或文档的部分生成的输出可以是针对主题的集合中的每个的分数,其中每个分数代表因特网资源、文档或文档部分是关于该主题的估计的可能性。
38.作为另一示例,如果对神经网络110的输入是用于用户的个性化推荐的特征,例如表征用于推荐的上下文的特征,例如表征用户所采取的先前动作的特征,则由神经网络110生成的输出可以是针对内容项的集合中的每个的分数,其中每个分数代表用户将有利地响应于被推荐内容项的估计的可能性。在这些示例中的一些中,神经网络110是向用户提供内容推荐的强化学习系统的一部分。
39.作为另一示例,如果对神经网络110的输入是一种语言的文本,则由神经网络110生成的输出可以是针对另一种语言的文本片段(piece)的集合中的每个的分数,其中每个分数代表另一种语言的文本片段是输入文本至该另一种语言的适当翻译的估计的可能性。
40.作为另一示例,如果对神经网络110的输入是口头发言的特征,则由神经网络110生成的输出可以是针对文本片段的集合中的每个的分数,每个分数代表文本片段是针对口头发言的正确转录的估计的可能性。
41.为了允许神经网络110为接收的数据项生成精确的输出,神经网络训练系统100训练神经网络110以调整神经网络110的参数的值,例如以从初始值确定训练的参数的值。
42.在训练神经网络110时,神经网络训练系统100使用来自标记的训练项的数据库120的训练项。数据库120存储多个训练项的集合,其中多个训练项的集合中的每个训练项与相应标签相关联。通常,用于训练项的标签识别用于训练项的一个或多个正确的标签,即应通过由神经网络110生成的分数被识别为训练项的一个或多个标签的一个或多个标签。在一些实现方式中,针对给定训练项的标签数据是包含针对标签的集合合中的每个标签的相应分数的分数分布,其中分数反映针对训练项的正确的一个或多个标签。例如,训练数据项122可以与训练标签122a相关联。
43.具体地,神经网络训练系统100训练神经网络110以使损失函数130最小化。通常,损失函数130是取决于以下的函数:(i)由神经网络110通过处理给定的训练项生成的网络输出;以及(ii)针对训练项的标签,即,神经网络110通过处理训练项而应生成的目标输出。
44.神经网络训练系统100能够通过对来自数据库120的训练项执行传统神经网络训练技术的多次迭代(例如,具有反向传播的随机梯度下降)以迭代地调整神经网络110的参数的值,训练神经网络110以最小化损失函数130。
45.为了减少过度拟合并改善训练的神经网络的性能,神经网络训练系统100通过(i)在使用训练项来训练神经网络110之前修改针对训练项的标签数据,或者(ii)修改用于训练神经网络110的损失函数130,来正则化神经网络110的训练。下面参考图2-图4描述修改标签数据,同时下面参考图5描述修改损失函数。
46.图2是生成正则化训练数据的集合的系统200的示例的上下文图。该系统包括神经
网络训练系统210和训练数据项的数据库220。
47.在阶段a处,存储在训练数据项的数据库220中的训练数据项的集合包括n个训练图像222a-1、222a-2、222a-3、222a-n的集合,其中n是任何正整数。该训练图像的集合中的每个图像与描述与每个相应训练图像222a-1、222a-2、222a-3、222a-n相关联的分类的标签223a-1、223a-2、223a-3、223a-n相关联。例如,训练图像222a-1被标记为“猫”223a-1,训练图像222a-2被标记为“狗”223a-2,训练图像222a-3被标记为“蛇”223a-3,并且训练图像222a-n被标记为“熊”223a-n。为了便于描述,与每个训练图像222a-1、222a-2、222a-3、222a-n相关联的标签223a-1、223a-2、223a-3、223a-n被示出和描述为英文单词。但是,当实现时,每个标签可以是识别英文单词的分数分布。
48.例如,与阶段a处的训练数据图像的集合相关联的预定标签的集合可以包括“猫”、“狗”、“蛇”和“熊”。因此,举例来说,诸如训练图像222a-1的训练图像对于标签的集合“猫”、“狗”、“蛇”和“熊”可以具有分别为“.6”、“.2”、“.1”、“.2”的训练标签分布。
49.在一些实现方式中,分别针对标签的集合“猫”、“狗”、“蛇”和“熊”的“.6”、“.2”、“.1”、“.2”的训练标签分布可以指示训练图像222a-1被标记为“猫”,因为训练标签分布的最高分数对应于类别“猫”。替代地,训练标签分布可以是单热分布(onehotdistribution)。在这样的分布中,分配给正确标签的值是正值,诸如“1”,并且所有其他标签被分配诸如“0”的值。因此,针对标签的集合“猫”、“狗”、“蛇”和“熊”分别为“1”、“0”、“0”、“0”的单热训练标签分布可以指示图像222a-1被分类为猫。
50.在一些实现方式中,使用在阶段a处提供的训练数据训练的神经网络可能倾向于过度拟合。在这种情况下,神经网络可开始精确地处理训练数据,并变得过于自信。然而,当神经网络被过度拟合时,关于不在训练数据中的图像,它可能开始做出不好的概括。例如,即使在神经网络将整个标记的训练数据项的集合精确地分类,神经网络已经被训练为图像并不是猫之后,其也可能开始将图像分类为猫。本公开的各方面试图通过使用正则化训练数据集合来训练神经网络以减少过度拟合。正则化训练数据集合可以通过修改与用于训练神经网络的训练数据集合中的训练数据项相关联的一个或多个标签来生成。
51.通常,正则化训练数据集合可以通过将预定量的噪声引入训练数据集合的标签中来生成。例如,神经网络训练系统210可以处理212在阶段a处的训练数据集合并且确定是否修改与诸如训练图像222a-1、222a-2、222a-3、222a-n的特定训练数据项相关联的标签223a-1、223a-2、223a-3、223a-n。在一些实现方式中,神经网络训练系统210可以随机地确定是否修改与诸如训练图像222a-1、222a-2、222a-3、222a-n的特定训练数据项相关联的标签223a-1、223a-2、223a-3、223a-n。替代地,神经网络训练系统210可确定修改与诸如训练图像222a-1、222a-2、222a-3、222a-n的特定训练数据项相关联的标签223a-1、223a-2、223a-3、223a-n预定概率的时间(predeterminedprobability of the time)。例如,神经网络训练系统210可以确定修改与诸如训练图像222a-1、222a-2、222a-3、222a-n的特定训练数据项相关联的标签223a-1、223a-2、223a-3、223a-n 10%的时间、20%的时间、30%的时间等。
52.在一些实现方式中,修改与诸如训练图像222a-1、222a-2、222a-3、222a-n的特定训练数据项相关联的标签223a-1、223a-2、223a-3、223a-n可以包括:将与诸如训练图像222a-1、222a-2、222a-3、222a-n的特定训练数据项相关联的标签223a-1、223a-2、223a-3、
223a-n从正确的标签改变为不正确的标签。修改标签可以包括例如将训练数据项的训练标签分布中的分数的分布从代表正确标签的分数的分布改变为代表不正确标签的分数的分布。替代地,修改标签可以包括例如改变训练数据项的训练标签分布中的分数的分布以减少具有特定类(particular class)的标签的识别。例如,改变训练数据项的训练标签分布中的分数的分布可以包括例如将训练标签分布中的最高分数降低预定量。类似地,改变训练数据项的训练标签分布中的分数的分布可以包括例如将训练标签分布中的最低分数中的一个或多个增加预定量。所得到的训练数据集合可以被称为正则化数据集合。
53.参考图2的示例,神经网络训练系统210可以获得阶段a处所示的训练图像的集合。神经网络训练系统210可以处理212阶段a处所示的训练图像的集合,并且确定是否修改与每个相应训练图像222a-1、222a-2、222a-3、222a-n相关联的标签223a-1、223a-2、223a-n。在图2的示例中,神经网络训练系统210可以随机地确定将与训练图像222a-2相关联的标签从标签“狗”修改为标签“蛇”223b-2。虽然训练图像222a-2被正确地标记为“狗”,但神经网络训练系统210修改标签223a-2,使得图像222a-2、222b-2现在在阶段b处被不正确地标记为“蛇”223b-2。这种修改导致在阶段b处所示的正则化训练图像的集合。
54.然后可以使用阶段b处所示的正则化训练图像来训练神经网络。使用阶段b处所示的正则化训练图像来训练神经网络有助于神经网络变得更不依赖于训练数据并且鉴于处理的训练数据而产生更好的概括。
55.替代地,可以采用被称为标签平滑的标签修改处理。例如,假设独立于训练示例x的标签u(k)上的分布和平滑参数ε。对于具有正确标签y的训练示例,神经网络训练系统210可以替换标签分布q(k|x)=δ
k,y
,其中δ
k,y
是dirac增量,其对于k=y等于1,并且当k不等于y时为0,其中:
56.q

(k|x)=(1-∈)δ
k,y
+∈u(k)
57.因此,新的标签分布q

是原始标注正确数据(ground-truth)分布q(k|x)和固定分布u(k)的混合,分别具有权重1-∈和∈。这可以被看作是通过首先将k设置为标注正确数据标签k=y,然后使用神经网络训练系统210以概率∈用从固定分布u(k)中抽取的(drawn)样本替换k而获得的标签k的分布。
58.在一些实现方式中,可以通过分配u(k)=1/k(其中k是标签的数量)来使用均匀分布以实现标签平滑正则化,从而
[0059][0060]
图2的示例提供了随机地修改的单个训练数据项的单个标签的示例。然而,本公开不需要如此限制。在一些实现方式中,可以修改多个标签。此外,在一些实现方式中,可以经由使用上述标签平滑处理的平滑来修改标签中的一些或全部,以创建正则化训练数据的集合。
[0061]
图3是用于生成正则化训练数据的集合的处理300的流程图。为了方便,处理300将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当地编程的例如图1的神经网络训练系统100的神经网络训练系统可以执行处理300。
[0062]
在阶段302处,系统从训练数据项的数据库获得训练数据的集合。该训练数据的集合可以包括多个训练数据项。训练数据项可以包括内容项或从内容项中提取的一个或多个
特征的集合。该训练数据项的集合中的每个训练数据项与来自预定的多个标签的集合的相应标签相关联。标签可以包括训练标签分布,其包括针对与训练图像的集合相关联的预定标签的集合中的每个标签的训练图像的分数。
[0063]
在阶段304处,系统确定是否修改训练数据以生成正则化神经网络的训练的正则化训练数据。对于训练数据项的集合中的每个训练数据项,系统确定是否修改与该训练项相关联的标签。确定是否修改与训练项相关联的标签可以包括例如随机地确定以修改与特定训练数据项相关联的标签。替代地,系统可以用预定概率确定修改与特定训练数据项相关联的标签。例如,系统可以确定修改与诸如训练图像的特定训练数据项相关联的标签10%的时间、20%的时间、30%的时间等。
[0064]
在阶段306处,当系统确定修改与训练项相关联的标签时,系统通过将与训练项相关联的标签改变为从预定标签的集合选择的不同标签来修改与训练数据项相关联的标签。在一些实现方式中,修改与特定训练数据项相关联的标签可以包括将与特定训练数据项相关联的标签从正确标签改变为不正确标签。例如,改变标签可以包括将训练数据项的训练标签分布中的分数的分布从代表正确标签的分数的分布改变为代表不正确标签的分数的分布。替代地,修改标签可以包括例如改变训练数据项的训练标签分布中的分数的分布以减少具有特定类的标签的识别。例如,改变训练数据项的训练标签分布中的分数的分布可以包括例如将训练标签分布中的最高分数降低预定量。类似地,例如,改变训练数据项的训练标签分布中的分数的分布可以包括例如将训练标签分布中的最低分数中的一个或多个增加预定量。所得到的训练数据集合可以被称为正则化训练数据集合。
[0065]
在阶段308处,系统使用正则化训练数据集合训练神经网络。这种训练可以如参考图1所描述的那样执行。然而,代替使用参考图1描述的训练数据项的数据库120,阶段308的训练将使用分别使用阶段302、304和306的处理生成的正则化训练数据集合来训练神经网络。
[0066]
图4是用于生成正则化训练数据的集合的另一处理400的流程图。为了方便,处理400将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当地编程的例如图1的神经网络训练系统100的神经网络训练系统可以执行处理400。
[0067]
在阶段402处,系统从训练数据项的数据库获得训练数据的集合。该训练数据项的集合中的每个训练数据项与初始目标标签分布相关联。
[0068]
在阶段404处,系统获得识别平滑标签分布的数据。平滑标签分布可以包括针对平滑标签分布中每个标签的平滑分数。在一些实现方式中,平滑标签分布可以是均匀分布,其将相同的平滑分数分配给平滑标签分布的每个标签,如上所述。替代地,在其他实现方式中,平滑标签分布可以是非均匀分布,其包括能够与相同平滑标签分布中的一个或多个其他平滑分数不同的一个或多个平滑分数。
[0069]
在阶段406处,系统修改训练数据以生成可正则化神经网络的训练的正则化训练数据。在一些实现方式中,修改训练数据包括对于在阶段402获得的训练数据项的集合中的每个训练数据项,将初始训练分布与平滑标签分布组合以生成修改的目标标签分布。将初始训练分布与平滑标签分布组合可以包括例如计算初始目标标签分布和平滑标签分布的加权和。所得到的训练数据集合可以被称为正则化训练数据集合。
[0070]
在阶段408处,系统使用正则化训练数据集合训练神经网络,所述正则化训练数据
集合包括具有已使用如阶段406处所述的平滑标签分布修改的标签的训练数据。可以如参考图1所述执行该训练。然而,代替使用参考图1描述的训练数据项的数据库120,阶段408的训练将使用分别使用阶段402、404和406的处理生成的正则化训练数据集合来训练神经网络。
[0071]
图5是用于最小化具有正则化误差项的损失函数的处理500的流程图。为了方便,处理500将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,根据本说明书适当地编程的例如图1的神经网络训练系统100的系统可以执行处理500。
[0072]
在阶段502处,系统接收训练神经网络以优化包括第一误差项的损失函数的请求。在一个示例中,第一误差项可以是交叉熵损失。交叉熵损失可以定义为:
[0073][0074]
其中p(k)是来自k个标签的集合的标签k被神经网络对特定训练项生成的标签分数所反映的概率,并且q(k)是来自k个标签的集合的每个标签k的标注正确数据值。
[0075]
与修改与一个或多个训练数据标签相关联的标签数据相反,系统可以替代地寻求通过如下修改交叉熵损失函数来实现标签平滑正则化:
[0076][0077]
因此,上述的标签平滑正则化等同于用包括交叉熵损失形式的第一误差项h(q,p)和第二误差项h(u,p)的一对损失替换单个交叉熵损失h(q,p)。第二误差项h(u,p)被称为正则化误差项,该正则化误差项基于由神经网络生成的分数的集合与包括集合中每个标签各自的平滑分数的平滑分布之间计算的误差来惩罚(penalize)神经网络。例如,平滑分布可以是均匀分布u,其与平滑分布相关联地为标签的集合中的每个标签分配相同的分数。
[0078]
在阶段504处,系统训练神经网络以最小化包括第一误差项和正则化误差项的正则化损失函数。这种训练可以如参考图1所描述的那样执行。然而,系统100的损失函数130将被正则化损失函数替换。
[0079]
本说明书中描述的主题、功能操作和处理的实施例(包括本说明书中公开的结构及其结构等同物)可以实现在数字电子电路中、有形地实施的计算机软件或固件中、计算机硬件中或它们中的一个或多个的组合中。本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,即编码在有形非易失性程序载体上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电信号、光信号或电磁信号,该信号被生成以对信息进行编码用于传输给合适的接收机装置,用于数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储设备、或它们中的一个或多个的组合。
[0080]
术语“数据处理装置”涵盖用于处理数据的所有种类的装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。该装置可以包括专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统或者它们中的一个或多个的组合的代码。
[0081]
计算机程序(其也可以被称为或描述为程序、软件、软件应用、模块、软件模块、脚
本或代码)可以以任何形式的编程语言编写,包括编译或解释性语言或声明性或过程性语言,并且可以以任何形式进行部署,包括作为独立程序或作为模块、组件、子例程或适用于计算环境的其他单元。计算机程序可以(但不一定)对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中,存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。计算机程序可以部署为在一台计算机上或位于一个站点或跨多个站点分布并通过通信网络互连的多台计算机上执行。
[0082]
本说明书中描述的处理和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过对输入数据进行操作并生成输出来执行功能。处理和逻辑流程也可以由专用逻辑电路(例如,fpga(现场可编程门阵列)或asic(专用集成电路))执行,并且装置也可以实现为上述专用逻辑电路。
[0083]
作为示例,适合于执行计算机程序的计算机包括可以基于通用或专用微处理器或两者,或者任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行或运行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如磁盘、磁光盘或光盘,或者可操作地耦合到大容量存储设备以从其接收数据或向其传输数据或者两者。然而,计算机不需要具有这种设备。此外,计算机可以嵌入在另一个设备中,例如,仅举几例,移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器或便携式存储设备(例如,通用串行总线(usb)闪存驱动器)。
[0084]
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,例如包括半导体存储器设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及cd-rom和dvd-rom盘。处理器和存储器可以由专用逻辑电路补充或并入其中。
[0085]
为了提供与用户的交互,本说明书中描述的主题的实施例可以在计算机上实现,所述计算机具有:显示设备(例如crt(阴极射线管)或lcd(液晶显示器)监视器),用于向用户显示信息;以及用户可以通过其向计算机提供输入的键盘和指点设备,例如鼠标或轨迹球。其他类型的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档,例如通过响应于从web浏览器接收的请求将网页发送到用户的用户设备上的web浏览器,与用户交互。
[0086]
在本说明书中描述的主题的实施例可以在计算系统中实现,所述计算系统包括后端组件(例如,作为数据服务器),或包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有用户可以通过其与本说明书中描述的主题的实现方式交互的图形用户界面或web浏览器的客户端计算机),或者一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“lan”)和广域网(“wan”),例如,因特网。
[0087]
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且典型地通
过通信网络进行交互。客户端和服务器之间的关系是通过运行在各个计算机上并且彼此具有客户端-服务器关系的计算机程序产生的。
[0088]
虽然本说明书包含许多具体的实现方式细节,但这些不应被解释为对可要求保护的范围的限制,而应被解释为可能特定于特定实施例的特征的描述。本说明书中在分开的实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反地,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独地或以任何合适的子组合来实现。此外,尽管上文可以将特征描述为以某些组合起作用并且甚至最初如此要求,但是来自所要求保护的组合的一个或多个特征可以在一些情况下从组合中删除,并且所要求保护的组合可以针对子组合或子组合的变体。
[0089]
类似地,尽管在附图中以特定顺序描绘了操作,但是这不应被理解为要求以所示出的特定次序或按顺序次序执行这样的操作,或者要执行所有示出的操作以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统组件的分离不应当被理解为在所有实施例中都需要这种分离,并且应该理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或者封装到多个软件产品中。
[0090]
已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。例如,权利要求中列举的动作可以以不同的次序执行并仍然实现期望的结果。作为一个示例,附图中描绘的处理不一定需要所示的特定次序或顺序的次序来实现期望的结果。在某些实现方式中,多任务和并行处理可能是有利的。可以从所描述的处理提供其他步骤或阶段,或者可以消除步骤或阶段。因此,其他实现方式在所附权利要求的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1