具有外部存储器的增强神经网络的制作方法

文档序号:16506294发布日期:2019-01-05 09:03阅读:177来源:国知局
具有外部存储器的增强神经网络的制作方法

本申请要求于2016年2月5日提交的美国临时申请62/292,158的优先权。在先申请的公开内容被视为本申请公开内容的一部分,并且通过引用的方式并入本申请的公开内容中。

本说明书涉及神经网络系统架构。



背景技术:

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

有些神经网络是递归神经网络。递归神经网络是接收输入序列并且从输入序列生成输出序列的神经网络。具体来说,递归神经网络在计算当前输出时可以通过处理先前的输入使用网络的一些或全部内部状态。递归神经网络的一个示例是包括一个或多个长短期记忆(longshort-termmemory,lstm)存储块的长短期记忆神经网络。每个lstm存储块可以包括一个或多个单元,每个所述单元包括输入门、遗忘门(forgetgate)以及输出门,使单元能够存储所述单元的先前状态,例如,用于生成当前活动或者将提供给lstm神经网络的其它组件。



技术实现要素:

本说明书描述涉及增强神经网络系统的技术。一般地,增强神经网络系统包括:神经网络,被配置为接收神经网络输入以及生成神经网络输出;外部存储器,存储来源于所述神经网络输出的部分的值;以及存储器访问子系统,其被配置为接收所述神经网络输出以及基于所述神经网络输出以及与所述外部存储器中的位置相应的若干加权值,从所述外部存储器读和写到所述外部存储器

本文描述一种增强神经网络系统,用于处理一系列系统输入以生成一系列系统输出。所述增强神经网络系统包括控制器神经网络,其被配置为在多个时间步的每一个接收神经网络输入,以及处理神经网络输入以生成用于时间步的神经网络输出。每个神经网络输出包括:读密钥,以及写向量。所述增强神经网络还包括外部存储器和最近最少使用访问(lrua)子系统。所述最近最少使用访问(lrua)子系统被配置为:维持外部存储器中的多个位置中的每一个的相应的使用权重,所述使用权重表示所述位置最近被写到所述lrua子系统或从lrua子系统读的强度;对于所述多个时间步中的每一个:使用读密钥对于外部存储器中的多个位置中的每一个生成相应的读权重、根据读权重从所述外部存储器中的多个位置读数据、通过在先前时间步的外部存储器中的多个位置中的每一个的相应的读权重以及所述位置的相应的使用权重、对于所述位置生成相应的写权重根据写权重将写向量写到外部存储器中的多个位置,以及通过外部存储器中的多个位置中的每一个的相应的读权重以及对于每个位置的相应的写权重,更新每个位置的相应的使用权重。

读密钥可以不同于写向量。可替换地,读密钥可以与写向量相同。

lrua子系统还可以被配置为,对于多个时间步中的每一个:在将写向量写到多个位置并且更新多个位置中的每一个的相应的使用权重之前:标识存储器中具有最低使用权重的位置;以及擦除存储在所标识的位置中的数据。

所述系统还可以包括一个或多个输出层。所述一个或多个输出层被配置为,对于多个时间步中的每一个:处理用于时间步的从外部存储器读的数据以生成用于时间步的系统输出。所述一个或多个输出层可以被配置为,对于多个时间步中的每一个:处理从外部存储器读的数据以及用于时间步的系统输出部分以生成用于时间步的系统输出。

用于多个时间步中的每一个的神经网络输出还可以包括系统输出部分。

lrua子系统还可以被配置为,对于多个时间步中的每一个,为时间步提供来源于系统输出部分的输出作为系统输出。

对于每个时间步的神经网络输入可以是来自一系列系统输入的各个系统输入。

lrua系统还可以被配置为,对于多个时间步中的每一个:将从外部存储器读的数据与来自一系列系统输入的各个系统输入组合,生成用于后续时间步的后续的神经网络输入。

从用于外部存储器中的多个位置中的每一个以及先前时间步的相应的读权重以及用于所述位置的相应的使用权重,生成对于所述位置的相应的写权重,可以包括:根据内插参数确定用于所述位置以及先前时间步的相应的读权重以及用于所述位置的相应的使用权重的凸组合。

从用于外部存储器中的多个位置中的每一个的相应的读权重以及用于每个位置的相应的写权重更新每个位置的相应的使用权重可以包括:将衰减参数应用于用于所述位置的相应的使用权重以确定用于所述位置的衰减的使用权重;以及通过将用于所述位置的衰减的使用权重、读权重以及写权重加总,确定用于所述位置的更新的使用权重。

控制器神经网络可以已使用元学习训练技术进行训练。

本文还描述了一种或多种编码有指令的计算机存储介质,当由一个或多个计算机运行时,所述指令使得一个或多个计算机实现增强神经网络系统。

本文还描述了包括lrua子系统被配置为执行的操作的方法。

对于一个或多个计算机的系统被配置为执行特定操作或者动作,意思是系统上安装有在操作的软件、固件、硬件或者它们的组合,使得系统执行操作或动作。对于一个或多个计算机程序被配置为执行特定的操作或者动作,意思是一个或多个程序包括当由数据处理装置运行时使得所述装置执行操作或者动作的指令。

本说明书中描述的主题可以以特定实施例实现以便实现一个或多个下面的优点。利用外部存储器增强神经网络,增强的神经网络能够对于各种各样的机器学习任务从接收到的输入更加准确地生成输出。这样的增强神经网络可以通过提供这样的机制灵活地存储和访问新信息:在所述机制中,可以基于较长期的经验,即归纳转移(inductivetransfer),来提取推论。假定柔性存储装置与用于表示学习的深度架构的富容量它们的组合,增强神经网络能够实现渐进的增量学习以对跨越任务的背景知识进行编码。而且,更加柔性的存储资源绑定新遇到的任务所特定的信息。可以采用增强神经网络以快速编码和检索新信息,并且由此可以潜在地排除传统模型的负面效应。具体来说,增强神经网络可以快速地消化新数据以及平衡所述数据以在仅仅单个或者少量样本之后进行准确预测。此外,增强神经网络通过聚焦于存储器内容来访问外部存储器,所述内容支持鲁棒性的元学习并且扩展深度学习可以被有效应用于其的问题的范围。

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

附图说明

图1示出示例性增强神经网络系统。

图2是用于从系统输入生成系统输出的示例性过程的流程图。

图3是用于对于时间步(timestep)确定权重的示例性过程的流程图。

图4是采用元学习任务(meta-learningtasks)的增强神经网络系统的示例的流程图。

在各个附图中同样的参考标记指示同样的元素。

具体实施方式

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

增强神经网络系统100是接收一系列系统输入并且从系统输入生成一系列系统输出的机器学习系统。例如,增强神经网络系统100可以接收系统输入x作为输入序列部分,并且从系统输入x生成系统输出y。增强神经网络系统100可以在输出数据库中存储生成的输出序列或者提供用于一些其它即时目的的输出。

增强神经网络系统100可以被配置为接收任何类型的数字数据输入以及基于输入生成任何类型的得分或者分类输出。

例如,如果到增强神经网络系统100的输入是图像或者已经从图像中提取出来的特征,那么由增强神经网络系统100针对给定图像生成的输出可以是针对一组对象类别中的每个的得分,每个得分表示所述图像包含属于所述类别的对象的图像的估计的可能性。

再举一例,如果到增强神经网络系统100的输入是因特网资源(例如,网页)、文件或者部分文件或者从因特网资源、文件或者文件部分提取的特征,那么由增强神经网络系统100针对给定因特网资源、文件或者文件部分生成的输出可以是针对一组主题中的每个的得分,每个得分表示所述因特网资源、文件或者文件部分关于所述主题的估计的可能性。

再举一例,如果到增强神经网络系统100的输入是针对特定广告的印象场景(impressioncontext)的特征,那么由增强神经网络系统100生成的输出可以是这样的得分,其表示所述特定广告将被点击的估计的可能性。

再举一例,如果到增强神经网络系统100的输入是针对用户的个性化推荐的特征,例如,特征化对推荐的场景的特征或者特征化由用户采取的先前动作的特征,那么由增强神经网络系统100生成的输出可以是对于一组内容项中的每个的得分,每个得分表示用户将对被推荐所述内容项作出有利回复的估计的可能性。

再举一例,如果到增强神经网络系统100的输入是一种语言的文本,那么由增强神经网络系统100生成的输出可以是对于一组以另一种语言的多篇文本中的每个的得分,每个得分表示以另一种语言的多篇文本是对输入文本译为另一种语言的恰当的翻译的估计的可能性。

再举一例,如果到增强神经网络系统100的输入是口语说话、一系列口语说话或者从二者之一产生的特征,那么由增强神经网络系统100生成的输出可以是对于一组多篇文本中的每个的得分,每个得分表示所述篇文本是对说话或说话序列的正确转录(transcript)的估计的可能性。

再举一例,如果到增强神经网络系统100的输入是来自计算机程序的多段代码,那么由增强神经网络系统100生成的输出可以标识计算机程序的预测的输出。

再举一例,增强神经网络系统100可以是语音合成系统的一部分。

再举一例,增强神经网络系统100可以是图像处理系统的一部分。

再举一例,增强神经网络系统100可以是对话系统的一部分。

再举一例,增强神经网络系统100可以是自动完成系统的一部分。

再举一例,增强神经网络系统100可以是文本处理系统的一部分。

再举一例,增强神经网络系统100可以是强化学习系统的一部分。

具体来说,加强神经网络系统100包括控制器神经网络102和外部存储器104。控制器神经网络102可以是前馈神经网络或者递归神经网络,例如长短期记忆(lstm)神经网络,其被配置为,在多个时间步中的每一个接收神经网络输入以及处理神经网络输入以生成用于时间步的神经网络输出。

一般地,由控制器神经网络102接收到的神经网络输入是当前系统输入与通过存储器接口子系统从外部存储器104读的数据的组合,诸如最近最少使用访问(lrua)子系统106。例如,控制器神经网络102可以被配置为接收由当前系统输入x组成的当前神经网络输入以及从外部存储器104读的数据r,以及生成提供给lrua子系统106的神经网络输出o。神经网络输出o可以包括读密钥和写向量。在一些实现中,写向量与读密钥相同,即,相同的数值集合既用作读密钥也用作写向量。在其它实现中,写向量与读密钥不同。

为了使控制器神经网络102能够使用外部存储器104,系统还包括lrua子系统106。lrua子系统106被配置为保存外部存储器104中的多个位置中的每一个的相应的使用权重,所述权重表示所述位置最近被写到lrua子系统106或者从lrua子系统106读的强度。

为了从外部存储器104读,lrua子系统106被配置为,对于时间步中的每个,使用读密钥生成用于外部存储器104中的位置中的每个的相应的读权重,然后根据读权重从外部存储器104中的位置读数据。

为了向外部存储器写,lrua子系统106被配置为通过从先前的时间步外部存储器104中的位置的相应的读权重以及所述位置的相应的使用权重,对于所述位置中的每个生成相应的写权重,并且根据写权重将写向量写到外部存储器104的位置。

lrua子系统106还被配置为,对于每个时间步,通过外部存储器104中的位置中的每个的相应的读权重和每个位置的相应的写权重更新每个位置的相应的使用权重。

在一些示例中,lrua子系统106接收由控制器神经网络102生成的输出,例如,神经网络输出o,并且将接收到的输出转化为将在外部存储器104上执行的读和写操作。也就是说,lrua子系统106接收来自控制器神经网络102的输出o,并且基于读密钥、读权重、使用权重以及写权重,将可能包括接收的写向量的数据w写入外部存储器104,并且从外部存储器104读数据r。在一些示例中,lrua子系统106可以经由相应的读和写头部从外部存储器104读数据和写数据到外部存储器104。lrua子系统106基于读数据生成系统输出y。然后,由lrua子系统106读的数据可以,例如,与后续的系统输入一起,作为后续的神经网络输入的一部分被提供给控制器神经网络102

lrua模块106可以是纯基于内容的存储器写入器,其将存储器写到外部存储器104最少使用的存储器位置或者最近使用的存储器位置。所述模块强调对相关(即,最近)信息的精确编码以及纯基于内容的检索。在一些示例中,新信息可以写到很少使用的位置,保存最近被编码的信息。在一些示例中,新信息可以写到最近使用的位置,其可以用作用更新的、可能更加相关的信息对存储器的更新。这两个选项之间的差别可以用先前的读权重以及根据使用权重按比例变化的权重之间的内插来实现。在一些示例中,通过衰减先前的使用权重以及增加当前的读权重和写权重,在每个时间步更新使用权重。

外部存储器104通过lrua子系统106存储写到外部存储器104的数据向量。在一些实现中,外部存储器104是实值的矩阵存储器,其具有元素m(i,j,t),其中i指示位置,j指示向量元素,t指示时间。因此,m(i,j,t)是在时间t存储在位于外部存储器104中的位置i处的向量的元素j的值。通过以这样的方式配置外部存储器104、lrua子系统106以及控制器神经网络102,增强神经网络系统100的组件是完全可微的(differentiable),使得增强神经网络系统100能够被有效地训练。

图2是用于在给定时间步从系统输入生成系统输出的示例性过程200的流程图。为方便起见,过程200将描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,根据本说明书被适当地编程的增强神经网络系统,例如图1的增强神经网络系统100,可以执行过程200。

系统接收用于时间步的系统输入(步骤202)。系统输入是由系统接收到的一系列系统输入中的一个。

系统获取从外部存储器读的数据(步骤204),例如,图1的外部存储器104。一般地,读数据是由系统在处理一系列系统输入中的先前输入期间,即在先前的时间步中,通过从外部存储器读而生成的。

系统通过将系统输入与从外部存储器读的数据组合来生成神经网络(步骤206)。例如,系统可以将系统输入与读的数据连结以生成神经网络输入。对于第一系统输入,系统可以将系统输入与预定向量连结,例如,神经网络的已学习状态。

系统使用神经网络,例如,图1的控制器神经网络,处理神经网络输入,以从神经网络输入生成神经网络输出(步骤208)。根据所述实现,神经网络可以是前馈神经网络,例如,卷积神经网络或其它种类的深度前馈神经网络,也可以是递归神经网络,例如lstm神经网络。如果神经网络是递归神经网络,那么递归神经网络在处理当前神经网络中也使用来自序列中的先前神经网络输入的递归神经网络的内部状态,以生成神经网络输出。在一些实现中,神经网络既包括递归层也包括前馈层。

系统从神经网络输出中的读密钥和来自先前的时间步的权重,确定用于当前时间步的读权重、写权重以及使用权重(步骤210)。下面参考图3更详细地描述确定这些权重。

系统从接收到的神经网络输出确定将要写到外部存储器的写向量,然后根据写权重将写向量写到外部存储器(步骤212)。在一些示例中,系统可以将写向量写到外部存储器内的多个存储位置。

在一些示例中,在向外部存储器写之前,通过从先前的时间步的使用权重计算最少使用的存储位置并且被设置为零。例如,系统可以标识存储器中具有最低使用权重的位置并且擦除在所标识的位置中存储的数据,即,将存储在所述位置处的数据设置为零向量。

然后,发生根据计算的写权重向外部存储器写:

其中,mt-1(i)是在写之前,也即,在先前时间步之后,存储在外部存储器中的特定位置i处的数据,是在外部存储中对于位置i的当前写权重,kt是读密钥。在写向量不同于读密钥的实现中,读密钥用写向量替换。

系统使用所确定的读权重和读密钥从外部存储器读(步骤214)。下面参照图3更加详细地描述确定读权重。在一些示例中,使用根据下式确定的读权重来检索存储器位置rt内的信息:

其中,是位置i的读权重,mt(i)是存储在外部存储器中的位置i中的数据。

在一些实现中,系统对于给定系统输入执行多个读和写操作。例如,系统可以并行且独立于另外操作中的每一个执行多个读操作、多个写操作或两者。另外,系统可以在执行每组操作时使用不同的存储器访问权重。

系统根据读权重从检索的信息生成针对系统输入的系统输出(步骤216)。系统可以包括被配置为针对每个时间步处理检索的信息的一个或多个输出层,以生成每个时间步的系统输出。例如,可以直接提供检索的信息作为系统输出或者通过softmax层或者其它输出层处理以生成系统输出。系统还提供检索的信息作为后续神经网络输入的部分。

在替代实现中,神经网络输出还可以包括系统用来作为系统输出的系统输出部分,即,除了读密钥和写向量之外,即,并非从检索的信息生成系统输出。

在系统对于给定系统输入执行多个读操作的实现中,例如,如上所述并行执行,每个读操作可以独立地执行,其中具有读权重的可选的不同值。在这些实现中,系统可以例如通过串接向量,将通过每个读操作生成的读数据向量组合,以形成作为后续神经网络输入的部分提供给神经网络的最终读数据向量。

在系统对于给定系统输入执行多个写操作的实现中,例如,如上所述并行执行,每个写操作可以独立地执行,其中具有写权重的可选的不同值。因此,并行执行的多个写操作的累积效果是附加的。

另外,系统可以以任何次序执行读和写操作。例如,在一些实现中,系统写然后从外部存储器读。然而,在其它实现中,系统可以以不同的次序执行这些操作。

可以对系统输入序列中的每个系统输入执行过程200,以生成针对一系列系统输入的一系列系统输出。一系列系统输入可以是这样的序列,期望输出对于其是未知的,期望输出即应当由系统针对输入序列生成的输出序列。系统还可以对一组训练数据中的输入执行过程200,即,应当由系统预测的输出对于其是已知的输入集,以便训练所述系统,即,以确定对于神经网络的参数以及在擦除、写以及从外部存储器读中使用的附加处理参数的训练值。因为系统的组件是完全可微的,所以可以对从的一组训练数据中选择的输入重复地执行过程200,作为传统机器学习训练技术的部分,以训练神经网络,例如,如果神经网络是递归神经网络则通过时间训练技术进行随机梯度下降反向传播。

图3是用于从神经网络输出确定权重的示例性过程的流程图。为方便起见,过程300将描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,根据本说明书被适当编程的增强神经网络系统,例如,图1的增强神经网络系统100,可以执行过程300。

系统从神经网络接收神经网络输出,例如图1的控制器神经网络102(步骤302)。所述神经网络输出可以包括读密钥和写向量。

系统从接收到的读密钥确定读权重(步骤304)。当从外部存储器读时,使用余弦相似度测量寻址外部存储器mt,

其用于生成读权重向量各元素根据softmax计算:

系统使用lrua子系统通过先前时间步的读权重和使用权重确定当前时间步的写权重(步骤306)。为了获得写权重可以使用可学习s形(sigmoid)门限参数来计算先前读权重和先前使用权重的凸组合:

其中,σ(·)是s形函数,是先前时间步(t-1)的读权重,是先前时间步的最少使用权重,α是在权重之间进行内插的可学习门限参数。

系统使用lrua子系统通过当前时间步的读权重和写权重以及先前时间步的使用权重,确定当前时间步的使用权重(步骤308)。通过衰减先前使用权重以及增加当前读权重和写权重在每个时间步t更新这些使用权重

其中,γ是衰减参数。

可选地,系统可以使用lrua子系统,通过时间步的使用权重,确定当前时间步的最少使用权重根据下式设置的元素:

其中,m(v)表示向量的最小元素。所确定的时间步t的最少使用权重可以用于确定下一时间步t+1的写权重(参见上面确定)。可替换地,系统可以直接使用所确定的时间步t的使用权重取代最少使用权重来确定写权重。

根据实现,系统可以基于从神经网络接收到的输出保持在外部存储器中存储的数据的各种持久性程度。例如,在一些实现中,在系统输入的每个序列已经完全地由系统处理之后,系统重置外部存储器。另举一例,在一些实现中,存储在外部存储器中的数据在输入序列之间持续存在。也就是说,系统在一系列系统输入之间不从外部存储器删除任何数据。在这些实现中,可以在分配给系统的给定任务被完成之后并且系统开始不同的机器学习任务之前重置系统。可替换地,系统即使在多个任务之间也可以保持外部存储器而不删除值。因此,在处理当前输入序列时,系统在处理先前的输入序列的同时或者甚至在执行先前的机器学习任务的同时,可以能够平衡存储在存储器中的数据。

图4是执行元学习任务的增强神经网络系统的示例性过程400的流程图。为方便起见,过程400将描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,根据本说明书适当编程的增强神经网络系统,例如,图1的增强神经网络系统100,可以执行过程400。

如图4所述,所公开的增强神经网络能够在携带重要的短期记忆和长期记忆需求的任务中进行元学习。元学习一般指的是这样的场景,其中代理在两个等级上学习,每个等级与不同的时间标尺关联。快速学习发生在任务内,例如,当学习在特定的数据集内进行精确地分类。所述学习可以以任务之间更加梯度地自然增长的知识为引导,其获取任务结构在目标域之间变化的路径。

这样的元学习可以显现为这样的能力,在仅仅少量表示之后成功地执行具有高精确度的工业元学习任务并且基于少量样本执行原则函数估计。工业元学习任务的示例包括垃圾邮件分类(例如,基于分类的推荐和基于分类的搜索结果的排序)、快速学习以识别新发言者的语音、通过任何期望的有用可动作属性从非常少量的训练示例进行快速分类(例如,鉴别传送带上的坏掉的果实或者不合格品)、以及从非常少量的特定类型的示例中对给定类型的物品进行计数(例如,真实的杂乱的图像中笼子里小鸡的数目、空间图像中树的数目或者区域中人的数目)。

所公开的增强神经网络系统可以将慢速学习用以经由梯度下降获得原始数据的有用表示的抽象方法的能力与经由外部存储器模块在最小量表示之后快速地绑定以前从未看过的信息的能力组合。这样的组合支持鲁棒性的元学习,扩展可以有效应用深度学习的问题的范围。因此,所公开的增强神经网络系统可以学习对于将放入存储器的表示的类型以及稍后如何使用这些表示进行预测的一般策略。

为了配置图1的控制器神经网络102以实现元学习场景,系统通过与不同的任务相应的每个数据集,在数据集分布p(d)上,训练神经网络以确定神经网络的参数θ的训练值以降低预期的学习成本,l。下面参考过程400描述对于示例性元学习场景训练神经网络。

为了训练神经网络,系统可以对于每个数据集馈送一系列输入序列(步骤402)。为了完成所述目标,任务或情节可以包括部分数据集的表示:对于图像分类任务,yt是图像xt的分类标签,对于回归,yt是对于具有实值元素xt或实值数xt的向量的隐藏函数的值。在所述设置中,除了是控制器神经网络102的输出这一目标,yt还另有目的。yt还可以以临时偏移的方式,与xt一起表示为输入。

神经网络针对每个系统输入生成系统输出(步骤404)。例如,神经网络可以被馈送输入序列(x1;null);(x2;y1);:::;(xt;yt-1)。在时间t,对于先前数据样本(yt-1)的正确标签可以与新查询xt一起作为输入提供。在这样的示例中,可以向控制器神经网络102派任务在给定时间步输出对于xt的正确标签(即,yt)。另外,标签可以按数据集打乱以防止控制器神经网络102慢速学习按其权重的样本分类绑定,而是让控制器神经网络102学习将数据样本保持在存储器中直到在后续的时间步中存在适当的标签,在此之后,样本分类信息可以被绑定并存储供稍后使用。因此,对于给定情节,执行可以包括对于分类的第一表示的随机猜测,因为由于标签打乱而不能从先前的情节推定正确的标签,并且包括使用存储器以实现此后提高的精确性。在一些示例中,所采用的增强神经网络系统目标是对预测分布p(yt|xt,d1:t;θ)进行建模,从而降低在每个时间步的相应损失。

系统基于所产生的标签与数据集中的输入的实际标签之间的误差,调整神经网络的参数的值(步骤406),例如,使用诸如通过时间的反向传播的传统神经网络训练技术。

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

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

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

本说明书中描述的处理过程和逻辑流程可以由运行一个或多个计算机程序的一个或多个可编程计算机执行,以便通过对输入数据操作和产生输出来执行功能。处理过程和逻辑流程可以被专用逻辑电路执行,并且装置可以被实现为专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。

通过示例的方式,适用于运行计算机程序的计算机包括,基于通用或专用微处理器或基于二者,或者任何其它类型的中央处理单元。通常,中央处理单元将从只读存储器或随机接入存储器或二者接收指令或数据。计算机的重要元件是用于执行或运行指令的中央处理单元以及用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括,或者可操作地耦接以从一个或多个用于存储数据的大容量存储设备接收数据或发送数据或二者,例如,磁盘、磁光盘或光盘。然而,计算机不必须具有这些设备。而且,计算机可以内嵌在其它设备中,例如、移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏机、全球定位系统(gps)接收器或者可携带存储设备,例如通用串行总线(usb)闪存,等等诸如此类。

适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,通过示例的方式包括:半导体存储器器件,例如:eprom、eeprom以及闪存设备;磁盘,例如内置硬盘或可移动磁盘;磁光盘;以及cd-rom和dvd-rom盘。处理器和存储器可以以专用逻辑电路补充,或者被包含在专用逻辑电路中。

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

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

计算机系统可以包括客户端和服务器。客户端和服务器通常相互远离,并且典型地,通过通信网络交互。依靠运行在各个计算机上并且相互具有客户端-服务器关系的计算机程序,建立客户端和服务器的关系。

尽管本说明书包含许多特定实现细节,但是这些不应被视为对任何发明的范围或者要求的范围的限制,而应视为对特定于特定发明的特定实施例的特征的描述。本说明书中描述的在单独的实施例的情况中特定特征也可以与单个实施例组合实现。反过来,在单个实施例的情况中描述的多种特征也可以在多个实施例中独立地实现或以任何适合的子组合实现。而且,虽然上面描述特征为以特定组合动作或者甚至一开始声明如此,但是在一些情况下所要求的组合中的一个或多个特征可以从组合中去除,并且所要求的组合可以指向子组合或子组合的变形。

类似地,尽管在附图中以特定次序描述操作,但是应当理解为要求以所示的特定次序或按顺序执行这些操作,或者所有图示的操作被执行,是为了实现期望的结果。在特定环境下,多任务和并行处理是有利的。而且,各种系统模块以及上面描述的实施例中的元件的分离不应当理解为需要在所有实施例中这样分离,而应当理解,所述的程序元件和系统通常可以一起集成在一个软件产品中或打包成多个软件产品。

已经描述了本主题的特定实施例。其它实施例在权利要求的范围内。例如,权利要求中所述的动作可以以不同的次序执行并仍然实现期望的结果。作为示例,附图中所描绘的过程不一定要求所示的特定次序或顺序,以实现期望的结果。在特定实现方式中,多任务和并行处理可能是有利的。

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