异步深度强化学习的制作方法

文档序号:31127316发布日期:2022-08-13 04:00阅读:113来源:国知局
异步深度强化学习的制作方法
异步深度强化学习
1.分案说明
2.本技术属于申请日为2016年11月11日的中国发明专利申请201680065534.x的分案申请。
技术领域
3.本说明书涉及异步深度强化学习。


背景技术:

4.在强化学习系统中,智能体(agent)通过响应于接收到表征环境的当前状态的观察而执行该强化学习系统所选择的动作来与该环境进行交互。
5.一些强化学习系统响应于接收到依据神经网络的输出的给定观察而选择要由智能体执行的动作。
6.神经网络是采用非线性单元的一个或多个层来针对所接收输入预测输出的机器学习模型。一些神经网络是除了输出层之外还包括一个或多个隐藏层的深度神经网络。每个隐藏层的输出被用作网络中下一层的输入,所述下一层即下一个隐藏层或输出层。该网络的每一层依据相应参数集合的当前值从所接收输入生成输出。


技术实现要素:

7.本说明书描述了涉及强化学习的技术。具体地,本说明书描述了用于对强化学习系统所使用的深度神经网络进行异步训练以选择智能体在与环境交互时所要执行的动作的技术。本说明书的方面具有更快速地训练神经网络和/或降低训练的存储器要求的技术效果。
8.对于要被配置为执行特定操作或动作的一个或多个计算机的系统而言,意味着该系统已经在其上安装了在操作中使得该系统执行该操作或动作的软件、固件、硬件或者它们的组合。对于要被配置为执行特定操作或动作的一个或多个计算机程序而言,意味着该一个或多个程序包括在被数据处理装置执行时使得该装置实行该操作或动作的指令。
9.本说明书所描述的主题能够在特定实施例中实现,从而实现以下优势中的一种或多种。通过使训练并行化,强化学习系统所使用的神经网络能够被更快地训练。更具体地,通过使用在单个机器上独立操作的多个工作体(worker)来使得训练并行化,能够降低由于并行所导致的通信成本。此外,通过去除了在工作体像在包括多个机器上的多个工作体的并行化技术通常所要求的那样在中继存储器或其它存储中存储经验元组的需求,训练的存储器要求能够有所减少并且能够采用on-policy的强化学习方法。
10.本说明书的主题的一个或多个实施例的细节在以下的附图和描述中给出。本主题的其它方法、特征和优势将根据描述、附图和权利要求书而变得清楚明白。例如,说明书提供了用于实施本文所公开的技术的方法、系统和装置,包括在计算机存储介质上编码的计算机程序。在一些实施例中,一种计算机程序包括指令,所述指令在被计算装置执行时使得
其实行本文所公开的任何技术。
附图说明
11.图1示出了示例神经网络训练系统。
12.图2是用于训练深度神经网络的示例过程的流程图。
13.图3是用于执行q学习技术的迭代的示例过程的流程图。
14.图4是用于执行sarsa技术的迭代的示例过程的流程图。
15.图5是用于训练策略神经网络的示例过程的流程图。
16.各图中相似的附图标记和名称指示相似的元素。
具体实施方式
17.本说明书总体上描述了用于异步深度强化学习的技术。具体地,本说明书描述了多个工作体能够如何异步训练强化学习系统所使用的深度神经网络,以选择要由与环境交互的智能体所执行的动作。
18.在一些实施方式中,该环境是仿真环境并且该智能体被实现为与该仿真环境进行交互的一个或多个计算机程序。例如,该仿真环境可以是视频游戏,并且该智能体可以是玩视频游戏的仿真用户。作为另一个示例,该仿真环境可以是运动仿真环境,例如驾驶仿真或飞行仿真,并且该智能体是通过运动仿真进行导航的仿真交通工具。在这些实施方式中,动作可以是用于控制仿真用户或仿真交通工具的控制输入。
19.在一些其它实施方式中,该环境是真实世界环境并且该智能体是与真实世界环境进行交互的机械智能体。例如,智能体可以是与环境进行交互从而完成特定任务的机器人。作为另一个示例,智能体可以是通过环境导航的自主或半自主交通工具。在这些实施方式中,动作可以是用于控制机器人或自主交通工具的控制输入。
20.通常,强化学习系统接收表征环境的当前状态的观察,并且使用该观察来选择要由智能体所执行的动作。响应于智能体执行所选择的动作,环境变换为新的状态并且该强化学习系统接收到回馈。该回馈是作为环境状态的函数的数值。在与环境交互的同时,强化学习系统尝试响应于智能体所执行的动作而使得智能体所接收到的长期回馈最大化。
21.具体地,响应于给定观察,强化学习系统依据深度神经网络所生成的输出来选择要由智能体所执行的动作。
22.为了允许强化学习系统有效地选择要由智能体所执行的动作,神经网络训练系统对深度神经网络进行训练以将该深度神经网络的参数值从初始参数值进行调节。
23.具体地,该神经网络训练系统包括通过选择要由与环境副本进行交互的行动体(actor)所执行的动作对深度神经网络进行异步训练的多个工作体。
24.每个行动体是独立于每个其它实例进行操作的智能体的实例。例如,当智能体是机械智能体时,每个行动体也是单独的机械智能体,它与智能体相同或近似相同并且独立于每个其它行动体进行操作,例如具有与智能体相同或近似相同的性质并且能够执行相同的动作。
25.图1示出了示例神经网络训练系统100。神经网络训练系统100是被实现为以下所描述的系统、组件和技术在其中实现的一个或多个位置中的一个或多个计算机上的计算机
程序的系统的示例。
26.神经网络训练系统100包括多个工作体102a-n和共享存储器110。工作体102a-n中的每一个与相应的行动体104a-n相关联,所述相应行动体a-1与对应的环境副本106a-n进行交互。例如,工作体102a与行动体104a相关联,所述行动体104a与环境副本106a进行交互。
27.在一些实施方式中,工作体102a-n中的每一个在相同计算机上实现,但是在该计算机内能够为工作体独立执行计算的单独线程、进程或其他硬件或软件中执行。在这些实施方式中,共享存储器110是该计算机的能够由工作体102a-n中的每一个所访问的存储器。在环境是虚拟环境的实施方式中,与给定工作体相关联的行动体和环境副本在与给定工作体相同的线程或其它硬件或软件中执行。
28.工作体102a-n中的每一个维持被训练的深度神经网络的实例,并且访问共享存储器110以获得已经存储在共享存储器110中的深度神经网络的当前参数值。然后,每个工作体使用该工作体的深度神经网络的实例依据从共享存储器110所获得的该神经网络的当前参数值来选择要由与该工作体相关联的行动体所执行的动作。
29.具体地,在训练期间,每个工作体接收表征与该工作体相关联的环境副本的状态的观察,并且响应于每个观察,使用深度神经网络来选择要由与该环境副本相关联的行动体所执行的动作。然后,该工作体接收表征该环境副本的下一个状态的下一个观察以及由于行动体执行了所选择的动作所产生的回馈,所述下一个状态即环境副本由于行动体执行了所选择的动作而转换为的状态。该工作体使用该回馈和下一个观察来确定梯度,并且定期使用该工作体所确定的梯度来更新存储在共享存储器110中的参数值。确定梯度和更新存储在共享存储器中的参数值在下文参考图2更详细地进行描述。
30.通过工作体102a-102n中的每一个反复且异步地更新存储在共享存储器110中的参数值,工作体102a-102n共同训练深度神经网络以确定该深度神经网络的训练参数值。
31.图2是用于训练深度神经网络的示例过程200的流程图。为了方便,过程200将被描述为由例如图1的工作体120a-n之一的工作体所执行。
32.该工作体确定深度神经网络的当前参数值(步骤202)。
33.在一些实施方式中,该工作体从在所有工作体之间共享的存储器——例如,图1的共享存储器110——获得该当前值。
34.在一些其它实施方式中,工作体仅在如以下所描述的更新共享存储器之后才从存储器获得当前值并且将它们写入到本地存储器。在这些实施方式中,工作体将当前值确定为本地存储器中所存储的值。
35.工作体接收表征与该工作体相关联的行动体所交互的环境副本的当前状态的当前观察(步骤204)。
36.工作体使用深度神经网络选择要由行动体在环境处于当前状态时所执行的当前动作(步骤206)。
37.具体地,在一些实施方式中,深度神经网络是q网络,其被配置为接收作为输入的观察和动作,并且依据该q网络的当前参数值处理该输入以生成神经网络输出。将在本说明书中被称为q值的神经网络输出是将由于智能体或行动体在环境处于输入观察所表征的状态时执行输入动作所产生的长期回馈的估计。
38.在这些实施方式中,针对预定动作集合中的每个动作,工作体使用q网络处理动作和当前观察以针对每个动作生成相应的当前q值。
39.然后,工作体使用当前q至并且依据工作体的动作选择策略来从预定动作集合中选择一个动作以作为要由行动体所执行的当前动作。
40.通常,给定工作体的动作选择策略不同于每个其它工作体的动作选择策略。例如,在一些实施方式中,每个工作体的动作选择策略是ε-贪婪策略,其中工作体以概率ε随机地从预定动作集合中选择动作,并且以概率1-ε选择具有最高q值的动作,但是其中ε的值针对每个工作体是不同的。例如,每个工作体能够定期从该工作体的ε的可能值的分布对该工作体的ε的值进行采样,从而确定要在动作选择策略中使用的ε。作为另一个示例,工作体能够通过向q值应用softmax非线性并且从得到的分布对动作进行采样来选择动作。然后,每个工作体能够在softmax中使用不同的温度参数来确保每个工作体具有不同的动作选择策略。
41.工作体接收下一个观察和实际回馈(步骤208)。下一个观察表征环境副本的下一个状态,即环境副本由于与该工作体相关联的行动体执行了当前动作而变换为的状态。该实际回馈是由于从当前状态变换为下一个状态而从环境副本所接收到的数值。
42.工作体使用当前回馈和下一个观察来执行强化学习过程的迭代以确定当前梯度(步骤210)。该梯度是被优化以便训练深度神经网络的损失函数的梯度。
43.该损失函数以及工作体确定梯度的方式取决于被用来训练深度神经网络的强化学习过程,所述强化学习过程进而取决于该深度神经网络如何配置。
44.例如,当深度神经网络是q网络时,工作体可以使用q学习技术或sarsa技术。下文参考图3描述执行q学习技术的迭代。下文参考图4描述执行sarsa技术的迭代。
45.工作体利用当前梯度来更新累加梯度以确定更新的累加梯度(步骤212)。即,工作体将梯度维持在本地存储器中,并且每次计算新的梯度时,利用该新的梯度更新所维持的梯度,例如通过将新的梯度与累加梯度相加。
46.工作体确定是否满足更新神经网络的当前参数值的标准(步骤214)。例如,更新当前值的标准可以指定:自从工作体最近一次更新参数值起该工作体已经执行了指定数目的强化学习迭代之后更新当前值。作为另一个示例,该标准可以指定:自从所有多个工作体最近一次更新参数值起该工作体所执行的强化学习迭代总数超过指定阈值时,工作体更新当前值。
47.如果该标准被满足,则工作体使用累加梯度来确定更新的参数值(步骤216),并且将更新的参数值写入到共享存储器(步骤218)。具体地,该工作体从累加梯度确定参数值更新,访问共享存储器中的当前值,并且使用参数值更新来对那些值进行更新。在一些示例中,工作体将累加梯度乘以学习率参数,并且然后对当前参数值和参数值更新求和以确定更新的参数值。在一些其它示例中,工作体使用rmsprop优化程序的异步变形来更新参数值。
48.在工作体将更新的参数值写入到共享存储器之后,该工作体清空累加梯度,即使得在过程200的下一次迭代发起时并没有梯度被该工作体所维持。
49.如果该标准并未被满足,则该工作体避免向共享存储器写入任何内容(步骤220),即,该工作体继续执行过程200的另一次迭代而并不更新当前参数值。
50.多个工作体中的每一个能够以异步方式反复执行过程200以共同确定深度神经网络的参数的训练值。一旦训练值已经被确定,强化学习系统就能够使用该深度神经网络来选择要由与环境交互的智能体所执行的值,即通过依据神经网络参数的训练值使用深度神经网络来处理神经网络输入。在一些其它情况下,该强化学习系统在工作体继续执行过程200的同时使用深度神经网络选择要由智能体所执行的值,即通过定期获得存储在共享存储器中的值并且使用那些值来选择智能体所执行的动作。
51.在一些情况下,一旦训练值已经被确定,它们就被存储并且然后通过网络传送至另一个系统以供在对深度神经网络的经训练版本进行实例化时使用,即允许智能体在与环境的交互中有效地选择动作。
52.图3是用于执行q学习技术的迭代的示例过程300的流程图。为了方便,过程300将被描述为由例如图1的工作体120a-n之一的工作体所执行。
53.工作体获得当前观察、当前动作、实际回馈、以及下一个观察(步骤302),即如上文参考图2所描述的。
54.该工作体在环境副本处于下一个观察所表征的状态时确定目标网络的最大输出(步骤304)。该目标网络是与q网络相同的神经网络,即具有相同的神经网络架构/神经网络形式,但是具有可能不同的参数值。具体地,每个工作体定期将目标网络的参数值与存储在共享存储器中的q网络的当前参数值进行同步。然而,与工作体更新存储在共享存储器中的参数值相比,工作体较不频繁地同步目标网络的参数值,使得目标网络和q网络经常将具有不同的参数值。
55.工作体通过以下来确定目标网络的最大输出:针对预定动作集合中的每个动作,使用目标网络结合下一个观察处理该动作以针对该动作确定目标网络输出。然后,该系统针对预定动作集合中的动作选择目标网络输出的最大值作为目标网络的最大输出。
56.工作体从目标网络的最大输出、实际回馈、以及先前在环境处于当前状态时针对当前动作所确定的当前q值来确定误差,所述当前q值即被用来选择当前动作作为环境处于当前状态时所要执行的动作的当前q值(步骤306)。在一些实施方式中,误差e满足:
57.e=r+γmax(q
target
)-q
current

58.其中r是实际回馈,γ是预定折扣因数,max(q
target
)是目标网络的最大输出,并且q
current
是先前在环境处于当前状态时针对当前动作所确定的当前q值。
59.工作体使用所确定的误差来确定当前梯度(步骤308)。即,工作体使用反向传播来更新值,其中反向传播误差针对所选动作是所确定的误差而针对所有其它动作为零。
60.图4是用于执行sarsa技术的迭代的示例过程400的流程图。为了方便,过程400将被描述为由神经网络训练系统中的工作体来执行,例如图1的神经网络训练系统100中的工作体120a-n之一。
61.工作体接收当前观察、当前动作、实际回馈、和下一个观察(步骤402)。
62.该工作体选择在环境副本处于下一个状态时要由行动体所执行的下一个动作(步骤404)。工作体如以上参考步骤206所描述的那样选择下一个动作。即,针对预定动作集合中的每个动作,工作体使用q网络处理该动作和下一个观察从而针对每个动作生成相应的下一个q值。然后,工作体使用下一个q至并且依据该工作体的动作选择策略来从预定动作集合中选择一个动作作为要由行动体所执行的下一个动作。
63.该工作体针对下一个动作确定目标网络输出(步骤406)。即,工作体使用目标网络处理下一个动作和下一个观察来针对下一个动作确定目标网络输出。
64.工作体从针对下一个动作的目标网络输出、实际回馈以及先前针对当前动作所确定的当前q值确定误差(步骤406)。在一些实施方式中,误差e满足:
65.e=r+γq
target
)-q
current
66.其中r是实际回馈,γ是预定折扣因数,q
target
是目标网络的最大输出,并且q
current
是先前在环境处于当前状态时针对当前动作所确定的当前q值。
67.工作体使用所确定的误差确定当前梯度(步骤408)。
68.当执行过程300或过程400时,工作体还确定是否满足用于将目标网络参数与共享存储器中的参数同步的标准。例如,该标准可以与以上参考步骤216所描述的标准相同,但是其中指定阈值或指定数字大于用于确定是否更新存储在共享存储器中的参数的值或数字。因此,与工作体更新存储在共享存储器中的参数值相比,工作体较不频繁地同步目标网络的参数值,使得目标网络和q网络经常将具有不同的参数值。
69.以上描述已经描述了深度神经网络是q网络的实施方式。然而,在一些其它实施方式中,深度神经网络是策略神经网络,其接收输入观察并且针对预定动作集合中的每个动作输出相应分值,其中该分值均表示对应动作是应当被执行而使长期回馈最大化的动作的可能性,所述长期回馈将来自于处于输入观察所表征的状态的环境。
70.在这些实施方式中,为了响应于规定观察而选择动作,强化学习系统使用策略神经网络处理给定观察,并且通过依据动作的分值从动作中进行采样来选择要由智能体所执行的动作。
71.为了确保每个工作体具有不同的动作选择策略,每个工作体在从动作进行采样时能够使用不同的随机种子,或者替选地,每个工作体能够针对动作生成分值的策略神经网络的输出层具有不同温度。
72.图5是用于训练策略神经网络的示例过程的流程图。为了方便,过程500将被描述为由神经网络训练系统中的工作体来执行,例如图1的神经网络训练系统100中的工作体120a-n之一。
73.工作体确定策略神经网络的当前参数值(步骤502)。具体地,工作体从在所有工作体之间共享的存储器——例如,图1的共享存储器110——获得当前值。
74.工作体还从共享存储器获得基线神经网络的当前参数值。该基线神经网络是被配置为接收输入观察并且生成基线分值的神经网络,所述基线分值表示智能体所接收到的、从输入观察所表征的状态开始的估计长期回馈。在一些实施方式中,基线和策略网络共享它们的一些参数。
75.工作体接收表征环境副本的状态的观察,并且依据策略神经网络的当前参数值来选择要由行动体所执行的动作,直至该环境副本变换为满足特定标准的状态(步骤504)。即,针对每个观察,依据当前值使用策略神经网络处理该观察,并且通过依据动作的分值从动作中进行采样来选择要由智能体所执行的动作。例如,特定标准可以在已经接收到预定数目t
max
的观察之后或者直至已经达到预定终止状态时被满足。
76.具体地,针对每个所接收到的表征环境副本的状态的观察,工作体使用策略神经网络处理观察以依据策略神经网络的当前参数值针对预定动作集合中的每个动作来生成
相应分值,并且通过从分布进行采样来选择要由行动体执行的动作。
77.针对每个所接收到的观察,工作体还依据基线神经网络的当前参数值使用基线神经网络来处理动作和观察以针对观察生成基线分值。
78.在一些实施方式中,基线神经网络和策略神经网络之一或其二者可以是循环神经网络。
79.工作体针对每个所接收的观察确定实际长期回馈(步骤506)。
80.即,针对所接收到的最新观察,该系统将实际长期反馈设置为例如基线神经网络所预测的基线分值。
81.针对最新观察以外的给定观察,该系统将该给定观察的实际长期回馈设置为在环境副本变换为最新观察所表征的状态时接收到的回馈加上在行动体执行了响应于接收到该给定观察而选择的动作之后接收到的观察的实际长期回馈的折扣总和。
82.工作体针对每个观察确定策略神经网络的相应梯度更新以及基线神经网络的相应梯度更新(步骤510)。
83.具体地,针对观察s
t
的策略升级网络的梯度更新满足:
[0084][0085]
其中π(a
t
|s
t
;θ

)是针对响应于观察s
t
所执行的动作生成的分值,r
t
是针对观察s
t
所确定的实际长期回馈,并且b
t
是观察s
t
的基线分值。
[0086]
针对观察s
t
的基线神经网络的梯度更新满足:
[0087][0088]
其中b(s
t
;θ
′b)是观察s
t
的基线分值。
[0089]
例如,通过将每个神经网络的新梯度与该神经网络的累加梯度相加,工作体利用策略神经网络的梯度更新来更新策略神经网络的累加梯度以确定策略神经网络的更新的累加梯度,并且利用基线神经网络的梯度更新来更新基线神经网络的累加梯度以确定基线神经网络的更新的累加梯度(步骤512)。
[0090]
工作体确定更新基线神经网络和策略神经网络的参数的当前值的标准是否被满足(步骤514)。
[0091]
例如,更新当前值的标准可以指定:自工作体最近一次更新参数值起该工作体已经执行了步骤504的指定数目的迭代之后该工作体更新当前值。
[0092]
作为另一个示例,该标准可以指定在自从所有工作体最近一次更新参数值起已经执行的步骤504的迭代总数超过指定阈值时工作体更新当前值。
[0093]
如果该标准被满足,则工作体使用对应的累加梯度针对基线神经网络和策略神经网络确定更新的参数值(步骤516),并且将该更新的参数值写入到共享存储器(步骤518),例如,如上文参考步骤216和218所描述的。
[0094]
在工作体将更新的参数值写入到共享存储器之后,该工作体清空累加梯度,即使得在过程500的下一次迭代被发起时并没有梯度被该工作体所维持。
[0095]
如果该标准并未被满足,则该工作体避免向共享存储器写入任何内容(步骤520),即,该工作体继续执行过程500的另一次迭代而并不更新当前参数值。
[0096]
本说明书中所描述的主题和功能操作的实施例能够以数字电子电路来实现,或者
以有形体现的计算机软件或固件来实现,以包括本说明书中所公开的结构及其结构等同物的计算机硬件来实现,或者以它们中一个或多个的组合来实现。本说明书中所描述主题的实施例能够被实现为一个或多个计算机程序,即在有形非瞬时程序载体上编码以便由数据处理装置执行或者控制其操作的一个或多个计算机程序指令的模块。替选地或除此之外,程序指令可以在人工生成的传播信号上编码,例如机器生成的电、光学或电磁信号,它们被生成以编码信息以供传输至合适的接收器装置而用于由数据处理装置来执行。计算机存储介质可以是机器可读存储设备、机器可读存储基底、随机或串行存取存储器设备,或者它们中一个或多个的组合。
[0097]
术语“数据处理装置”指代数据处理硬件并且包含用于处理数据的所有类型的装置、设备和机器,例如包括可编程处理器、计算机、或者多个处理器或计算机。该装置还可以是或进一步包括专用逻辑电路,例如fpga(现场可编程阵列)或asic(专用集成电路)。除了硬件之外,该装置可选地可以包括为计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统或者它们中的一个或多个的组合的代码。
[0098]
计算机程序(也被称作程序、软件、软件应用、模块、软件模块、脚本或代码)能够以任何形式的编程语言进行编写,包括编译或解释语言,或者声明或过程语言,并且其可以以任何形式被采用,包括作为独立程序或者作为适于在计算环境中使用的模块、组件、子程序或其它单元。计算机程序可以对应于文件系统中的文件,但是并非必需如此。程序可以存储在保存其它程序或数据(例如,标记语言文档中所存储的一个或多个脚本)的文件的一部分之中,存储在专用于所讨论程序的单个文件中,或者存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。计算机程序能够被部署为在一台计算机上执行或者在位于一个地点或跨多个地点分布并且通过通信网络进行互连的多台计算机上执行。
[0099]
本说明书中所描述的过程和逻辑流程能够由一个或多个可编程计算机来实现,所述可编程计算机执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来实行功能。所述处理和逻辑流程还能够由例如fpga(现场可编程门阵列)或asic(专用集成电路)的专用逻辑电路所实行,并且装置也能够被实施为所述专用逻辑电路。
[0100]
适于执行计算机程序的计算机例如可以基于通用或专用微处理器或者其二者,或者任何其它类型的中央处理单元。通常,中央处理器将从只读存储器或随机存取存储器或者其二者接收指令和数据。计算机的必要元件为用于实施或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括一个或多个用于存储数据的一个或多个大型存储设备,或者与之操作耦合以从其接收和向其传送数据,上述大型存储设备例如磁盘、磁性光盘或光盘。然而,计算机并非需要具有这样的设备。此外,计算机可以被嵌入另一设备中,例如移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器,或者例如通用串行总线(usb)闪存驱动器的便携式存储设备,仅举数例。
[0101]
适于存储计算机程序指令和数据的计算机可读媒体包括所有形式的非易失性存储器、介质、和存储器设备,例如包括半导体存储器设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或便携式磁盘;磁性光盘;以及cd-rom和dvd-rom盘。处理器和存储器能够被补充以专用逻辑电路或者整合在其中。
[0102]
为了提供与用户的交互,本说明书中所描述的主题的实施方式能够在计算机上实
现,该计算机具有例如crt(阴极射线管)或lcd(液晶显示器)监视器的用于向用户显示信息的显示设备以及用户能够通过其向计算机提供输入的键盘和例如鼠标或轨迹球的指示设备。也能够使用其它类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且来自用户的输入能够以任何形式被接收,包括声音、语音或触觉输入。此外,计算机能够通过向用户所使用的设备发送文档和从其接收文档而与用户进行交互;例如,通过响应于从用户的客户端设备上的web浏览器所接收到的请求而向该web浏览器发送网页。
[0103]
本说明书中所描述的主题的实施例能够在计算系统中实现,该计算系统包括例如作为数据服务器的后端组件,或者包括例如应用服务器的中间件组件,或者包括例如客户端计算机的前端组件,或者一个或多个这样的后端、中间件或前端组件的任何组合,上述客户端计算机具有用户能够通过其而与本说明书所描述主题的实施方式进行交互的图形用户界面或web浏览器。该系统的组件能够通过例如通信网络的任何形式或介质的数字数据通信进行互连。通信网络的示例包括局域网(lan)和例如互联网的广域网(wan)。
[0104]
计算系统能够包括客户端和服务器。客户端和服务器通常互相远离并且典型地通过通信网络进行交互。客户端和服务器的关系源自于在相应计算机上运行并且互相具有客户端-服务器关系的计算机程序。
[0105]
虽然本说明书包含了许多具体的实施方式细节,但是这些并不应当被理解为是对任何发明或者可以请求保护的范围的限制,而是作为可能对特定发明的特定实施例而言特定的特征的描述。本说明书中以单独实施例为场境(context)所描述的某些特征也能够在单个实施例中组合实现。相反,以单个实施例为场境所描述的各个特征也能够在多个实施例中单独实现或者以任何适当的子组合实现。此外,虽然特征在上文中可以被描述为以某种组合发生作用并且甚至最初如此要求保护,但是来所请求保护的组合的一个或多个特征在一些情况下能够脱离该组合并且所请求保护的组合可以针对子组合或子组合的变化形式。
[0106]
类似地,虽然操作在图中以特定顺序进行描绘,但是这并不应当被理解为为了实现所期望的结果而要求这样的操作以所示出的特定顺序或以连续顺序来执行,或者执行所有所图示的操作。在某些情况下,多任务和并行处理可能是有利的。此外,以上所说明的各个系统模块和组件的分离并不应当被理解为要求这样的分离,并且应当理解的是,所描述的程序组件和系统一般能够共同集成在单个软件产品中或者被封装为多个软件产品。
[0107]
已经对该主题的特定实施例进行了描述。其它实施例处于所附权利要求书的范围之内。例如,权利要求书中所记载的动作可以以不同顺序执行并且仍然实现所期望的结果。作为一个示例,附图中所描绘的过程并非必然要求所期望的顺序或连续顺序来实现所期望的结果。在某些实施方式中,多任务和并行处理可能是有利的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1