使用目标特定动作值函数的多目标强化学习的制作方法

文档序号:31550737发布日期:2022-09-17 07:09阅读:225来源:国知局
使用目标特定动作值函数的多目标强化学习的制作方法
使用目标特定动作值函数的多目标强化学习


背景技术:

1.本说明书涉及强化学习。
2.在强化学习系统中,智能体通过执行动作与环境进行交互的,所述动作是强化学习系统响应于接收到表征环境的当前状态的观测而选择的。
3.一些强化学习系统响应于接收到给定的观测根据神经网络的输出来选择智能体将要执行的动作。
4.神经网络是机器学习模型,所述机器学习模型对于接收的输入使用非线性单元的一个或多个层来预测输出。一些神经网络是除输出层以外还包括一个或多个隐藏层的深度神经网络。在网络中,每个隐藏层的输出被用作下一个层(即,下一个隐藏层或输出层)的输入。网络的每个层根据相应参数集的当前值从接收的输入产生输出。


技术实现要素:

5.本说明书一般描述用于训练强化学习系统的方法,该系统选择要由与环境交互的强化学习智能体执行的动作。这些方法可以用于训练具有多个潜在冲突目标的强化学习系统。
6.在一个方面,提供了一种用于通过强化学习来训练神经网络系统的方法,该神经网络系统被配置为接收表征由智能体交互的环境的状态的输入观测并且根据旨在满足多个目标的策略来选择和输出动作。该方法包括获得一个或多个轨迹的集合。每个轨迹包括环境的状态、响应于该状态根据先前策略由智能体应用于环境的动作、以及用于该动作的奖励集合,每个奖励与所述多个目标中的对应目标相关。该方法还包括基于一个或多个轨迹的所述集合来确定所述多个目标中的每个目标的动作值函数。每个动作值函数确定表示根据对应目标的估计回报的动作值,该估计回报将由智能体根据先前策略响应于给定状态执行给定动作而产生。该方法还包括基于所述多个目标的动作值函数的组合来确定更新的策略。
7.通过确定每个目标的单独动作值函数,本文描述的方法能够在强化学习期间有效地平衡竞争目标。当组合单独目标的动作值时,动作值函数克服了与确定最佳权重相关联的问题。此外,单独动作值函数提供关于每个目标的奖励的大小的尺度不变性,从而避免一个或多个目标通过其奖励的相对大小对学习占优。
8.一个或多个轨迹的所述集合可以从存储获得(即,可以预先计算),或者可以通过将智能体应用于一个或多个状态来获得。一个或多个轨迹的所述集合可以包括多个轨迹,从而允许批量学习。或者,作为在线学习的一部分,可以每个更新提供一个轨迹。
9.应当注意,虽然本文讨论术语“奖励”,但是这些奖励可能是负的。在奖励为负的情况下,这些奖励可以被等同地视为成本。在这种情况下,强化学习任务的总体目标将是最小化预期成本(而不是最大化预期奖励或回报)。
10.在一些实施方式中,每个动作值函数针对先前策略跨潜在状态-动作对的范围提供多个目标中的对应目标的动作值的分布。每个动作值函数可以在响应于给定状态选取给
定动作时输出表示对应目标的预期累积折扣奖励的动作值。此累计折扣奖励可以在根据先前策略实现的多个后续行动上计算。每个目标的动作值函数可以被认为是目标特定动作值函数。
11.在一些实施方式中,确定更新的策略包括确定多个目标中的每个目标的目标特定策略。可以基于对应目标的对应动作值函数来确定每个目标特定策略。该方法还可以包括通过将更新的策略的策略参数集合拟合到目标特定策略的组合来确定更新的策略。目标特定策略的组合可以是目标特定策略的总和。目标特定策略在本文也称为动作分布(不要与动作值函数混淆),因为它们可以提供动作在状态上的概率分布。根据上述情况,可以通过经由已经从动作值函数得出的目标特定策略的组合来组合动作值函数而确定更新的策略。该策略然后拟合到目标特定策略的组合。
12.通过经由目标特定策略的组合来组合目标,本文描述的方法组合了分布空间中的目标。这与在奖励空间中组合目标(例如,通过将多目标奖励向量转换为单个标量奖励)形成对比。通过组合分布空间中的目标,因此组合对于奖励的尺度是不变的。每个目标对更新的策略的相对贡献可以通过利用对确定目标特定策略的约束来缩放。
13.在一些实施方式中,将更新的策略的策略参数集合拟合到目标特定策略的组合包括确定最小化更新的策略和目标特定策略的组合之间的差异的策略参数集合。
14.可以约束更新的策略和目标特定策略的组合之间的差异的最小化,使得更新的策略和先前策略之间的差异不超过信任区阈值。换句话说,可以约束用于更新的策略的策略参数集合,使得更新的策略和先前策略之间的差异不能超过信任区阈值。信任区阈值可以被认为是限制该策略的整体改变以提高学习稳定性的超参数。
15.本文讨论的策略之间的差异可以通过使用kullback-leibler(kl)散度或分布之间差异的任何其他适当度量来计算。
16.在一些实施方式中,确定用于每个目标的目标特定策略包括确定用于目标特定策略的目标特定策略参数,该目标特定策略参数相对于先前策略根据用于对应目标的动作值函数将增加预期回报。
17.在一些实施方式中,确定用于每个目标的目标特定策略包括受目标特定策略可能与先前策略不相差大于对应差异阈值的约束,相对于先前策略根据用于对应目标的动作值函数确定使预期回报最大化的用于目标特定策略的目标特定策略参数。可以基于kullback-leibler散度或分布之间差异的任何其他适当度量来确定目标特定策略与先前策略之间的差异。
18.因此,每个目标特定策略都可以受它与先前策略不相差超过对应差异阈值的约束来确定。可以认为对应差异阈值表示对应目标对更新的策略的相对贡献。因此,可以通过调整对应差异阈值来调整每个目标对更新的策略的相对贡献。也就是说,每个目标之间的相对权重以每个目标对策略更新的影响的约束的形式被编码。
19.在一些实施方式中,目标特定策略是非参数策略。这降低了关于确定目标特定策略的计算复杂度,同时符合关于相应差异阈值的约束。这是因为可以针对每个状态以封闭形式求解约束优化。
20.每个目标特定策略qk(a|s)可以根据目标特定策略的目标的经缩放的动作值函数来确定,其中,经缩放的动作值函数通过取决于对目标的偏好的值来缩放。取决于对目标的
偏好的值可以取决于用于目标的差异阈值。取决于对目标的偏好的值可以是取决于差异阈值的温度参数ηk。
21.例如,每个目标特定策略qk(a|s)可以通过计算下式来确定:
[0022][0023]
其中:
[0024]
n是归一化常数;
[0025]
k是目标;
[0026]
a是动作;
[0027]
s是状态;
[0028]
π
old
(a|s)是先前策略;
[0029]
qk(s,a)是用于目标的动作值函数;以及
[0030]
ηk是温度参数。
[0031]
针对每个目标k,温度参数ηk可以通过求解以下等式来确定:
[0032][0033]
其中:
[0034]
∈k是用于对应目标的差异阈值;以及
[0035]
μ(s)是访问分布。
[0036]
每个温度参数可以经由梯度下降来确定。
[0037]
在另一实施方式中,提供了一种用于通过强化学习来训练神经网络系统的方法,该神经网络系统被配置为接收表征由智能体交互的环境的状态的输入观测并且根据旨在满足多个目标的策略来选择和输出动作。该方法可以包括获得一个或多个轨迹的集合,每个轨迹包括环境的状态、响应于状态根据先前策略由智能体应用于环境的动作、以及用于该动作的奖励集合,每个奖励与所述多个目标中的对应目标相关。该方法还可以包括基于一个或多个轨迹的所述集合来确定所述多个目标中的每个目标的概率分布(诸如动作分布或状态-动作分布),每个概率分布提供相对于策略根据对应目标将增加预期回报的动作概率分布。该方法还可以包括基于用于所述多个目标的概率分布的组合来确定更新的策略。
[0038]
确定用于所述多个目标中的每个目标的概率分布可以包括,针对每个目标:确定定义表示根据对应目标的预期回报的值的值函数,该预期回报将由所述智能体从给定状态遵循所述先前策略而产生;以及基于值函数来确定用于该目标的概率分布。
[0039]
每个概率分布可以是定义状态-动作对的概率分布的状态-动作分布,并且每个目标的值函数可以是定义表示根据对应目标的预期回报的值的状态值函数,该预期回报将由智能体从给定状态遵循所述先前策略而产生。这可能适用于在线策略学习。
[0040]
可选地,每个概率分布可以是定义动作在状态上的的概率分布的目标特定策略(动作分布),并且值函数可以是表示根据对应目标的预期回报的动作值函数,所述预期回报将由智能体响应于给定状态根据所述先前策略执行给定动作而产生。这可能适用于离线策略学习。
[0041]
本文描述的方法可以通过一个或多个计算设备和/或一个或多个计算机存储介质来实现。
[0042]
在一个方面中,提供了一种系统,所述系统包括一个或多个计算机和存储指令的一个或多个存储设备,当所述一个或多个计算机执行所述指令时,所述指令使得所述一个或多个计算机执行以下操作:获得一个或多个轨迹的集合,每个轨迹包括环境的状态、响应于该状态根据先前策略由智能体应用于环境的动作、以及用于该动作的奖励集合,每个奖励与多个目标中的对应目标相关;基于一个或多个轨迹的所述集合来确定所述多个目标中的每个目标的动作值函数,每个动作值函数确定表示根据对应目标的估计回报的动作值,该估计回报将由智能体根据先前策略响应于给定状态执行给定动作而产生;以及基于用于所述多个目标的动作值函数的组合来确定更新的策略。
[0043]
在一个方面中,提供了一个或多个计算机存储介质,其存储当由一个或多个计算机执行时使所述一个或多个计算机执行以下操作的指令:获得一个或多个轨迹的集合,每个轨迹包括环境的状态、响应于该状态根据先前策略由智能体应用于环境的动作、以及用于该动作的奖励集合,每个奖励与多个目标中的对应目标相关;基于一个或多个轨迹的所述集合来确定所述多个目标中的每个目标的动作值函数,每个动作值函数确定表示根据对应目标的估计回报的动作值,该估计回报将由智能体根据先前策略响应于给定状态执行给定动作而产生;以及基于用于所述多个目标的动作值函数的组合来确定更新的策略。
[0044]
为了使智能体与环境交互,系统接收表征环境的当前状态的数据,并且响应于所接收的数据选择要由智能体执行的动作。表征环境状态的数据在本说明书中称为观测。
[0045]
在一些应用中,环境是真实世界环境,并且智能体是与真实世界环境交互的机械智能体。例如,智能体可以是与环境交互以完成特定任务的机器人。作为另一示例,智能体可以是在环境中导航的自主或半自主陆地或空中或水上载具。在这些实施方式中,动作可以是用于控制机器人或载具的物理行为的控制输入。
[0046]
一般而言,观测可以包括例如图像、对象位置数据和传感器数据中的一个或多个,以在智能体与环境交互时捕获观测,例如来自图像、距离或位置传感器或来自致动器的传感器数据。在机器人或其他机械智能体或载具的情况下,观测可以类似地包括位置、线性速度或角速度、力、扭矩或加速度以及智能体的一个或多个部分的全局或相对姿态中的一个或多个。观测可以在1、2或3个维度上定义,并且可以是绝对和/或相对观测。例如,在机器人的情况下,观测可以包括表征机器人的当前状态的数据,例如关节位置、关节速度、关节力、扭矩或加速度以及机器人的一部分(诸如手臂)和/或由机器人保持的项的全局或相对姿态中的一个或多个。观测还可以包括例如感测到的电子信号,诸如电机电流或温度信号;和/或例如来自相机或lidar传感器的图像或视频数据,例如来自智能体的传感器的数据或来自位于与环境中的智能体分开的传感器的数据。
[0047]
在这些应用中,动作可以是控制机器人的控制输入,例如,机器人的关节的扭矩或更高级控制命令;或者控制自主或半自主陆上或空中或海上载具,例如,对载具的控制表面或其他控制元件的扭矩或更高级控制命令;或例如电机控制数据。换句话说,动作可以包括例如机器人的一个或多个关节或另一机械智能体的部件的位置、速度或力/扭矩/加速度数据。动作数据可以包括用于这些动作的数据和/或诸如电机控制数据之类的电子控制数据,或者更一般地包括用于控制环境中的一个或多个电子设备的数据,该数据的控制对观测到
的环境状态具有影响。例如,在自主或半自主陆地或空中或海上载具的情况下,动作可以包括用于控制导航(例如转向)和移动(例如制动和/或载具的加速度)的动作。
[0048]
在这些应用中,目标和相关的奖励/成本可能包括以下或基于以下定义:
[0049]
i)用于接近或实现一个或多个目标位置、一个或多个目标姿态或一个或多个其他目标配置的一个或多个奖励。一个或多个奖励取决于任何前面提到的观测,例如机器人或载具的位置或姿态。例如,在机器人的情况下,奖励可以取决于关节定向(角度)或速度、末端执行器位置、质量中心位置、或身体部位群组的位置和/或定向。
[0050]
ii)一个或多个成本(例如负奖励)可以类似地定义。负奖励或成本也可以或替代地可以与由致动器或末端执行器施加的力相关联,例如取决于与对象交互时的阈值或最大施加力。负奖励还可取决于能量或功率使用、过度运动速度、例如用于约束移动的一个或多个机器人身体部分的一个或多个位置。
[0051]
基于这些奖励的目标可以与不同偏好——例如工作包络或施加到对象的力的安全相关目标的高偏好——相关联。
[0052]
机器人可以是自主或半自主移动载具的一部分。然后类似目标可能应用。而且或者替代地,这种载具可以具有与载具的物理移动相关的一个或多个目标,诸如取决于以下的目标(奖励):在移动时的能量/功率使用,例如最大或平均能量使用;移动速度;移动时采用的路线,例如惩罚通过距离或时间来测量的在两点之间的短路线上的长路线。这种载具或机器人可以用于执行诸如仓库、物流或工厂自动化之类的任务,例如在其制造期间收集、放置或移动储存的货物或货物或货物的部分;或者执行的任务可以包括包递送控制任务。因此,一个或多个目标可以涉及这样的任务,动作可以包括与转向或其他方向控制动作相关的动作,并且观测可以包括对其他载具或机器人的位置或运动的观测。
[0053]
在一些其他应用中,相同的观测、动作和目标可以应用于如上所述的物理系统/环境的模拟。例如,机器人或载具可以在被用于真实环境之前在模拟中被训练。
[0054]
在一些应用中,智能体可以是静态或移动软件智能体,即被配置为自主地和/或与其他软件智能体或人员一起操作以执行任务的计算机程序。例如,环境可以是集成电路路线化环境,并且智能体可以被配置为执行用于路线化诸如asic的集成电路的互连线路的路线化任务。然后,目标(奖励/成本)可以取决于一个或多个路由度量,诸如互连电阻、电容、阻抗、损耗、速度或传播延迟、物理线路参数(诸如宽度、厚度或几何形状)以及设计规则。这些目标可以包括与路线化的电路的全局特性相关的一个或多个目标,例如组件密度、操作速度、功耗、材料使用或冷却要求。观测可以是对组件位置和互连的观测;动作可以包括组件放置动作,例如用于定义组件位置或定向和/或互连路线化动作,例如互连选择和/或放置动作。
[0055]
在一些应用中,智能体可以是电子智能体,并且观测可以包括来自监测车间或服务设施的一部分的一个或多个传感器的数据(诸如电流、电压、功率、温度)和表示设备的电子和/或机械项的功能的其他传感器和/或电子信号。智能体可以在包括设备的项的真实世界环境中——例如在设施中——控制动作,所述设施例如在诸如数据中心、服务器场或电网主电源或配水系统的设施中或在制造工厂或服务设施中。然后,观测可以涉及车间或设施的操作,例如,它们可以包括对设备的电力或水使用的观测,或对发电或配电控制的观测,或对资源或废物生产的使用的观测。动作可以包括对车间/设施的设备的项的控制或施
加操作条件的动作,和/或导致对车间/设施的操作中的设置的改变的动作,例如调整或打开/关闭车间/设施的组件。(要最大化或最小化的)目标可以包括以下中的一个或多个:效率的测量,例如资源使用;环境中的操作的环境影响的测量,例如废物产出;电气或其他功耗;加热/冷却要求;设施中的资源使用,例如用水;设施的温度;设施内的项的特性的计数。
[0056]
在一些应用中,环境可以是数据分组通信网络环境,并且智能体可以包括通过通信网络路由数据分组的路由器。动作可以包括数据分组路由动作,并且观测可以包括例如路由表的观测,路由表包括路由度量,诸如路由路径长度、带宽、负载、跳数、路径成本、延迟、最大传输单元(mtu)和可靠性的度量。目标可以包括最大化或最小化一个或多个路由度量的目标。
[0057]
在一些其它应用中,智能体是管理任务跨计算资源(例如在移动设备上和/或在数据中心中)的分配的软件智能体。在这些实施方式中,观测可以包括对诸如计算和/或存储器容量,或互联网可访问的资源的计算资源的观测;并且动作可以包括将任务指派给特定计算资源。目标可以包括取决于(例如以最大化或最小化)以下中的一个或多个的目标:计算资源的利用率、电力、带宽和计算速度。
[0058]
在一些其它应用中,环境是互联网或移动通信环境,并且智能体是管理针对用户的个性化推荐的软件智能体。观测可以包括用户所采取的先前动作(表征其的特征);动作可以包括向用户推荐诸如内容项的项的动作。目标可以包括最大化或最小化以下中的一个或多个的目标:用户将对被推荐(内容)项做出有利响应的估计可能性、对一个或多个推荐项的合适性的约束、推荐项的成本、以及由用户(可选地在时间跨度内)接收的多个推荐。
[0059]
还可以在上述系统和计算机存储介质的上下文中采用与先前描述的那些对应的特征。
[0060]
本说明书中描述的主题可以在特定实施例中实现以实现以下优点中的一个或多个。本说明书中描述的主题引入了一种用于学习其中存在多个潜在冲突的目标的策略的强化学习方法。这通过确定目标特定动作值函数来实现。通过利用这些目标特定函数,本文描述的方法提供了尺度不变的目标特定函数;也就是说,给定目标的奖励尺度不影响目标之间的相对权重。
[0061]
该方法的尺度不变性具有两个主要优点。首先,目标之间的权重不需要随着时间的推移因为奖励的大小不同进行调整。这在强化学习中特别有利,在强化学习中,智能体当被训练时很可能在执行任务时变得更好,从而随着时间的推移产生更大的奖励。其次,回报相对较大的目标不一定占优训练。此外,通过使目标加权关于奖励尺度不变,该方法更易于实施,避免了在针对不同的奖励大小选择加权时不断尝试和错误的需要。本文给出了(例如通过使用非参数目标特定策略)提供计算效率改进的特定实施方式。
[0062]
所描述的技术的一些实施方式能够学习执行考虑到多个不同的、可能冲突的目标的任务。与一些现有技术不同,本文描述的技术可适应可随时间变化的不同尺度的奖励或惩罚。原则上,所描述的技术可应用于使用动作值函数(例如q值函数)的任何强化学习系统,尽管对于mpo(最大后验策略优化)特别有用。所描述的技术允许具有多个不同目标的强化学习系统以更快且更稳定的方式学习,因此与现有系统相比减少了存储器和计算需求。所描述的技术既适用于离散动作,也适用于真实世界的高维连续控制任务。
[0063]
在实施方式中,将偏好变量(∈k)指派给每个目标,以控制目标对强化学习系统的
组合动作选择策略的更新做出贡献的程度。这用于调整与目标相关的“温度”,用于缩放与目标相关的动作(q)值。在实施方式中,“温度”与有助于评估总体动作选择策略的各种动作相关。因此,即使奖励的尺度改变或q函数是非平稳的,目标之间的权重也可以是尺度不变的。这允许用户在各种目标之间先验设置偏好。
[0064]
本说明书的主题的一个或多个实施例的细节在以下附图和描述中给出。本主题的其他特征、方面和优点将从说明书、附图和权利要求书中变得明显。
附图说明
[0065]
图1示出用于强化学习的示例神经网络系统。
[0066]
图2示出根据布置的用于经由多目标强化学习进行训练的方法。
[0067]
图3示出根据布置的用于经由包括两步策略更新过程的多目标强化学习进行训练的方法。
[0068]
在各个附图中,相同的附图标记和名称表示相同的元素。
具体实施方式
[0069]
本说明书描述了在一个或多个智能体旨在执行具有多个竞争目标的任务情况下用于学习技术。这在现实世界中是常见的,其中智能体通常必须平衡竞争目标。例如,可能需要诸如机器人的自主载具来完成任务(目标1),同时使能量消耗或对环境的损害最小化(目标2)。这种智能体的其它示例包括工厂或车间自动化系统和计算机系统。在这种情况下,智能体可以是机器人、工厂或车间中的设备项、或计算机系统中的软件智能体,其例如控制任务到硬件项的分配或数据在通信网络上的路由。
[0070]
本说明书一般描述了一种在一个或多个位置的一个或多个计算机上实现为计算机程序的强化学习系统,其通过使用神经网络来选择要由与环境交互的强化学习智能体执行的动作。本说明书还描述了这样的系统如何能够调节神经网络的参数。
[0071]
为了与环境交互,系统接收表征环境的当前状态的数据,并且响应于接收的数据从动作空间——即离散动作空间或连续动作空间——确定智能体要执行的动作。在本说明书中,将把表征环境的状态的数据称为观测。智能体执行导致环境的状态改变的选定动作。
[0072]
在一些实施方式中,环境是模拟环境,并且智能体被实现为与模拟环境交互的一个或多个计算机。例如,机器人或载具可以在用于真实世界环境中之前在模拟中被训练。
[0073]
在其他实施方式中,环境是真实世界环境,并且智能体是与真实世界环境交互的机械智能体。例如,智能体可以是与环境交互以完成特定任务的机器人或者在环境中导航的自主或半自主载具。在这些情况下,观测可以是在智能体与环境交互时由智能体的一个或多个传感器——例如,相机、lidar传感器、温度传感器等——捕获的数据。
[0074]
本文描述的特定布置提供了用于训练具有多个潜在冲突目标的强化学习系统的方法(多目标强化学习)。
[0075]
传统强化学习(rl)方法在训练策略方面做了极好工作以优化单个标量奖励函数。然而,许多真实世界任务涉及多个可能竞争目标。例如,控制能量系统可能需要权衡性能和成本;控制自主汽车可以权衡燃料成本、效率和安全性;并且控制机器人臂可能需要权衡速度、能量效率和安全性。多目标强化学习(morl)方法旨在解决这样的问题。一种方法是标量
化:基于跨越目标的偏好,将多目标奖励向量转换成单一标量奖励(例如,通过采用凸组合),然后使用标准rl来优化该标量奖励。
[0076]
然而,对于专业人员来说,难以针对跨目标的期望偏好挑选适当标量化,因为目标通常是以不同单位和/或尺度来定义。例如,假设我们希望智能体在使能量使用和机械磨损最小化的同时完成任务。任务完成可以对应于稀疏奖励或真空吸尘机器人已经清洁的平方英尺的数量,并且减少能量使用和机械磨损可以分别通过对功耗(以kwh为单位)和致动器施力(以n或nm为单位)的处罚来施行。专业人员将需要求助于使用反复试验来选择确保智能体相对于节能而优先实际进行任务(并且因此是有用的)的标量化。
[0077]
为了克服这个问题,本技术提出了一种用于编码从rl作为推断的角度得出的偏好的尺度不变的方法。本文描述的布置学习对当前策略改进的每个目标的动作值函数和动作分布。然后,为了获得进行这些权衡的单个更新的策略,可以使用监督学习来使策略适合于这些动作分布的组合。
[0078]
为了对相对目标进行加权,专业人员不是选择标量化,而是对每个目标设置约束。这些约束可以控制每个目标对策略的影响,例如通过约束每个目标特定分布和当前策略之间的kl散度。约束值越高,目标具有的影响越大。因此,可以将对目标的期望偏好编码为这些约束值的相对大小。
[0079]
基本上,标量化在奖励空间中组合目标。相反,本文所提出的方法组合分布空间中的目标,从而使其对于奖励的尺度不变。原则上,该方法可以与任何rl方法组合,而不管其是离线策略还是在线策略。本文描述的特定布置将其与最大后验策略优化(mpo)——离线策略动作者-评价者rl方法——和v-mpo——mpo的在线策略变型——组合。这两种方法在本文分别称为多目标mpo(mo-mpo)和多目标vmpo(mo-v-mpo)。
[0080]
最后,本方法提供关于多目标强化学习(morl)的分布视图,其能够实现对偏好的尺度不变的编码。这是理论上根本性的方法,其从采用morl的rl作为推断角度而产生。根据经验,已经分析了mo-mpo的机制,并且表明其找到了流行的morl基准任务中的所有帕雷托-优化策略。mo-mpo和mo-v-mpo在跨越若干具有挑战性的高维连续控制域的多目标任务方面优于标量化的方法。
[0081]
图1示出用于强化学习的示例神经网络系统100。神经网络系统100是作为在一个或多个位置的一个或多个计算机上的计算机程序实现的系统的示例,其中实现了下面描述的系统、组件和技术。
[0082]
神经网络系统100包括动作选择策略神经网络110,其确定输出到智能体104以应用于环境的动作102。神经网络系统100在多个时间步t上操作。每个动作a
t
102基于表征环境的当前状态s
t
106的观测来确定。在输入表征环境的初始状态s0106的初始观测之后,神经网络系统100确定动作a0102并且将该动作102输出到智能体104。在智能体104已经将动作102应用于环境104之后,更新的状态s1106的观测被输入到神经网络100中。神经网络100因此在多个时间步t上操作以响应于输入观测s
t
106来选择动作a
t
102。每个动作a
t
102基于取决于策略参数θ的集合的策略π
θ
来确定。在一种布置中,动作选择策略神经网络110是前馈神经网络,尽管可以利用其他类型的神经网络。对于每个时间步,还接收针对先前动作a
t-1
的奖励集合r
t
108。该奖励集合r
t
108包括用于每个目标的奖励。
[0083]
观测可以包括环境的图像和/或来自环境的其他传感器或输入数据。这种观测例
如通常由一个或多个卷积神经网络层和/或一个或多个循环神经网络层进行预处理。
[0084]
系统100还包括训练引擎120,其被配置为基于针对每个目标接收到的奖励108来更新策略的参数。当训练神经网络系统100时,系统可以在一个或多个时间步t上操作,从而在基于用于每个动作a
t
102的奖励r
t
108更新策略参数θ之前,基于当前状态s
t
108和当前策略π
θ
选择一个或多个对应动作a
t
102。可以利用批量训练,其中在更新给定策略之前将给定策略应用于多个时间步。
[0085]
形式上,本布置应用由多目标马尔可夫决策过程(mo-mdp)定义的多目标rl问题。mo-mdp由状态和动作初始状态分布p(s0)和转移概率p(s
t+1
|s
t
;a
t
)组成,该转移概率p(s
t+1
|s
t
;a
t
)定义在采取动作a
t
时从状态s
t
改变到s
t+1
的概率。在本布置中,神经网络系统100应用多个目标。因此,针对每个目标k指派奖励函数提供折扣因子γ∈[0,1)以应用于奖励。策略π
θ
(a|s)被定义为在通过θ参数化的动作上的状态条件分布。与转移概率一起,这产生状态访问分布μ(s)。
[0086]
除了目标特定奖励之外,还针对每个目标提供动作值函数(q-函数)。动作值函数将状态和动作映射到值。用于目标k的动作值函数根据选择用于目标k的处于状态s的动作a并且然后遵循策略π而被定义为预期回报(即,累积折扣奖励):该函数可以使用递归表达式表示,其中,是用于目标k的π的值函数。
[0087]
在训练期间,系统100尝试识别最优策略。针对任何mo-mdp,存在非占优策略的集合,即帕雷托前沿。如果没有提高其针对目标的预期回报而不减少至少一个其它目标的预期回报的其它策略,则策略是非占优的。给定偏好设置,本方法的目标是找到满足那些偏好的非占优策略π
θ
。在本方法中,约束的设置不直接对应于特定标量化,而是通过改变这些约束设置,可以探寻出策略的帕雷托前沿。
[0088]
通常,训练涉及更新策略的两步方法。首先,基于对应的动作值函数针对每个目标确定动作分布(目标特定策略)。然后,将总体策略拟合到动作分布的组合。
[0089]
图2示出用于根据一种布置经由多目标强化学习进行训练的方法。该方法将强化学习问题分成两个子问题,并且迭代直到收敛:
[0090]
1.策略评估:给定策略π
θ
估计q-函数
[0091]
2.策略改进:给定q-函数更新策略
[0092]
算法1总结了这两步多目标策略改进过程。
[0093]
在训练方法的每次迭代中,在确定每个目标的动作值函数220之前,获得轨迹集合210。然后,基于动作值函数的组合来确定更新的策略230。该方法确定是否达到结束标准240(例如,已经执行了固定次数的迭代,或者策略满足给定性能级别)。如果不是,则基于更新的策略π
θ
执行另一迭代。如果是,则输出策略250(例如,本地存储或发送到外部设备,例如,用于实现策略的智能体)。
[0094]
每个轨迹包括状态s
t
、基于策略π
θ
确定并且应用于环境的动作a
t
、以及在一个或多个时间步t(多达n个时间步的总和)上对该动作a
t
的奖励集合r
t
。用于每个动作的奖励集合rt
中的每个奖励与对应的目标相关。每个奖励可以从外部源(例如,环境)接收,或者可以基于环境的状态s
t
(例如,基于对应的奖励函数)来确定。另外,可以根据定义回合的总数的批量大小(l)从多个不同的开始状态s0在多个回合上获得多个轨迹。
[0095]
当确定用于每个目标的动作值函数220时,这可以是对该目标的先前动作值函数的更新。该确定/更新基于已经获得的轨迹(即,基于来自一个或多个轨迹的动作、状态和奖励)。下面将更详细地讨论这种确定的细节。
[0096][0097][0098]
多目标策略评估
[0099]
神经网络系统通过学习状态-动作值(q)函数来评估先前策略π
old
。遵循q分解方法,针对每个目标训练单独的q-函数。原则上,可以使用任何q-学习算法,只要相对于π
old
(在更新的当前迭代之前的策略)计算目标q-值即可。
[0100]
通常,q学习旨在学习动作值函数的近似。为了实现这一点,可以在训练的每次迭代时应用以下更新以学习每个目标k的通过φk参数化的q函数
[0101][0102]
其中,是基于状态s、动作a和奖励r向量的目标动作值函数(目标q-函数)。目标q值是折扣奖励的总和的估计(例如,如从通过运行策略而获得的一个或多个轨迹所确定的)。
[0103]
存在不同类型的目标q-函数,并且其同样适用于本方法。在特定实施方式中,retrace目标用于学习每个目标k的通过φk参数化的q-函数如下:
[0104][0105]
其中,是用于目标k和先前策略π
old
的retrace目标,并且是包含所收集的转换(状态-动作对)的重放缓冲器。这最小化了retrace目标和被学习的q-函数之间的均方误差。
[0106]
在该实施方式中,retrace目标如下:
[0107][0108]
其中
[0109][0110][0111]
重要性权重cz被定义为
[0112][0113]
其中b(az|sz)表示用于收集环境中的轨迹的行为策略。当j=t时,方法设置
[0114]
在特定实施方式中,针对每个目标维护用于q-函数的两个网络,一个在线网络和一个目标网络,其中参数分别由φk和φ
′k表示。类似地,可以针对策略维护一个在线网络和一个目标网络,其中参数分别由θ和θ

表示。目标网络可以每固定数量的步骤通过从在线网络复制参数而更新。在每次学习迭代中,可以使用诸如梯度下降的任何适当更新方法来更新在线网络。目标策略网络在上面被称为旧策略π
old

[0115]
在特定实施方式中,可以使用异步动作者-学习者设置,其中动作者定期从学习者取得策略参数并且在环境中行动,将这些转换写入重放缓冲器。这个策略被称为行为策略。学习者使用重放缓冲器中的转变来更新(在线)q-函数和策略。该方法在算法2中更详细地
示出了。
[0116]
算法2是基于给定策略π
θ
获得轨迹的方法。系统取得定义当前策略π
θ
的当前策略参数θ。然后,系统在多个时间步t上收集轨迹集合。每个轨迹τ包括用于每个时间步的状态s
t
、动作a
t
和奖励集合r。该奖励集合r包括用于每个目标的奖励rk。该系统通过针对每个时间步基于当前状态s
t
并且基于当前策略π
θ
确定动作a
t
并且基于奖励函数集合来确定执行动作产生的来自下一状态s
t+1
的奖励,来获得轨迹τ。针对l个回合中的每个获得轨迹τ。每个轨迹τ被存储在重放缓冲器中。然后,所存储的轨迹用于更新每个目标的q-函数。
[0117][0118]
多目标策略改进
[0119]
给定先前策略π
old
(a|s)和相关联的q-函数下一步是改进给定访问分布μ(s)的先前策略。这可以通过从重放缓冲器中取得以估计在访问分布上的期望来实现。为此,系统学习每个q-函数的动作分布(目标特定策略),并且将这些组合以获得下一个策略π
new
(a|s)。
[0120]
图3示出用于根据一种布置经由包括两步策略更新过程的多目标强化学习进行训练的方法。该方法与图2的方法大致匹配,然而,策略更新步骤用以下两个步骤来替换:
[0121]
基于对应动作值函数来确定用于每个目标的动作分布330。
[0122]
基于多个目标的动作函数的组合来确定更新的策略335。
[0123]
在第一步骤330中,针对每个目标k,学习改进的动作分布qk(a|s),使得其中状态s从访问分布μ(s)中取得(例如从重放缓冲器获得)。换言之,学习改进的动作分布qk(a|s),使得q-函数关于动作分布的期望大于或
等于q-函数关于策略的期望。
[0124]
在第二步骤335中,改进的分布qk通过最小化分布和新参数策略之间的差异,被组合并且蒸馏成新参数策略π
new
(具有参数θ
new
)。这可以通过最小化分布和新参数策略之间的kl-散度来实现,即,
[0125][0126]
其中,kl(qk(a|s)||π
θ
(a|s))是用于目标k的动作分布qk(a|s)和策略π
θ
(a|s)之间的kullback-leibler散度。这是确定每个分布qk的最大似然估计的监督学习损失。接下来,将更详细地解释这两个步骤。
[0127]
获得每个目标的动作分布(步骤1)
[0128]
为了获得每个目标的改进的动作分布qk(a|s),针对每个目标优化强化学习目标qk:
[0129][0130]
s.t.∫sμ(s)kl(qk(a|s)||π
old
(a|s))ds《∈k[0131]
其中,∈k表示用于目标k的允许的预期kl散度。这些∈k用于对目标上的偏好进行编码。更具体地,∈k定义目标k对策略改变的允许影响。
[0132]
针对非参数动作分布qk(a|s),这个约束优化问题可以以封闭形式针对从μ(s)采样的每个状态s求解,
[0133][0134]
其中,温度ηk通过求解以下凸双函数基于对应的∈k来计算:
[0135][0136]
为了评估qk(a|s)和以上积分,系统可以从重放缓冲器中取得l个状态,并且针对每个状态,从当前策略π
old
中采样m个动作。实际上,每个目标维持一个温度参数ηk。我们已经发现,通过对ηk执行若干步的梯度下降来优化双函数是有效的。该方法用在先前策略迭代步骤中找到的解来初始化。由于ηk应当是正的,因此可以在每个梯度步骤之后使用投影算子来维持ηk>0。
[0137]
如算法1所示,用于每个目标的动作分布qk(a|s)可以通过计算下式来计算:
[0138][0139]
使用优化器基于来更新ηk,然后确定动作分布qk(a|s)
[0140]
[0141]
由于约束∈k对目标上的偏好进行编码,所以以良好的约束满意度来求解该优化问题对于学习满足期望偏好的策略是重要的。针对非参数动作分布qk(a|s),可以精确地满足这些约束。可以替代地使用任何策略梯度方法以参数形式获得qk(a|s)。然而,求解参数qk(a|s)的约束优化并不准确,并且约束可能不能很好地满足,这阻碍使用∈k对偏好进行编码。此外,假设参数qk(a|s)需要维持每个目标的函数近似器(例如,神经网络),这可以显著增加算法的复杂性并且限制可缩放性。
[0142]
拟合新参数策略(步骤2)
[0143]
在先前部分中,针对每个目标k,已经获得了改进的动作分布qk(a|s)(改进的目标特定策略)。接下来,需要组合这些分布以获得根据已设置的约束∈k来折衷目标的单个参数策略。为此,该方法解决了将参数策略拟合于来自步骤1的每个目标动作分布的监督学习问题,
[0144][0145]
s.t.∫sμ(s)kl(π
old
(a|s)||n
θ
(a|s))ds《β,
[0146]
其中,θ是策略神经网络的参数,而kl约束施行限制参数策略中的总体变化的大小β的信任区。在该步骤中的kl约束具有正则化效果,其防止策略过度拟合到基于样本的动作分布,并且因此避免过早收敛并且提高学习的稳定性。
[0147]
类似于第一策略改进步骤,积分可以通过使用从重放缓冲器采样的l个状态和从旧策略采样的每状态的m个动作来评估。为了使用梯度下降来优化上述内容,可以实现拉格朗日松弛。
[0148]
如算法1所示,策略π
θ
(a|s)可以通过计算下式来更新:
[0149][0150]
受到上述正则化约束。然后,策略参数可以使用优化器(例如,经由梯度下降)基于δ
π
来更新。
[0151]
在线策略学习
[0152]
上述实施方式讨论了批量学习。本文描述的方法可以同样地应用于在线策略学习。在这种情况下,为了评估先前策略π
old
,优势a(s,a)从学习的状态值函数v(s)而不是如离线策略实施方式中的状态-动作值函数q(s,a)来估计。用于每个目标的单独v-函数通过回归到与每个目标相关联的n-步返回来训练。
[0153]
更具体地,给定轨迹片段τ={(s0,a0,r0),...,(s
t
,a
t
,r
t
)},其中,r
t
表示由用于所有n个目标的奖励组成的奖励向量值函数参数φk通过优化以下目标来找到:
[0154][0155]
这里,g
(t)
(s
t
,a
t
)是用于值函数的t-步骤目标k,其使用轨迹中的实际奖励和来自
当前值函数的自举来用于其余:然后,优势被估计为
[0156]
给定先前策略π
old
(a|s)和用于每个目标的与该策略相关联的估计优势目的是改进先前策略。为此,该方法首先学习用于每个目标的改进的变化分布qk(s,a),然后将变化分布组合并且将其蒸馏成新参数策略π
new
(a|s)。与离线策略实施方式不同,该实施方式使用联合分布qk(s,a)而不是本地策略qk(s|a),因为在没有学习的q-函数的情况下,每个状态仅一个动作可用于学习。每个联合分布提供给定对应目标的状态-动作对的概率。
[0157]
为了获得改进的变化分布qk(s,a),该方法针对每个目标优化rl目标
[0158][0159]
s.t.kl(qk(s,a)||p
old
(s,a))<∈k,
[0160]
其中,kl-散度在所有(s,a)上计算,∈k表示允许的预期kl散度,并且p
old
(s,a)=μ(s)π
old
(a|s)是与π
old
相关联的状态-动作分布。
[0161]
如在离线策略实施方式中,该在线策略实施方式使用∈k定义目标上的偏好。更具体地,∈k定义了目标k对策略的改变的所允许的贡献。因此,特定∈k相对于其他越大,则该目标k越优选。另一方面,如果∈k=0,则目标k将对策略的改变没有贡献,并且将被有效地忽略。
[0162]
上述等式可以以封闭形式求解:
[0163][0164]
其中,温度ηk通过求解以下凸双问题基于约束∈k来计算
[0165][0166]
可以通过对ηk采取梯度下降步骤,与损失一起执行优化,并且这可以用在先前策略迭代步骤中找到的解来初始化。由于ηk必须是正的,因此可以在每个梯度步骤之后使用投影算子来维持ηk>0。
[0167]
实际上,训练可以使用与每批量数据中最大优势的比例(例如,前50%)相对应的样本来执行。
[0168]
下一步骤是将在先前步骤中获得的状态-动作分布组合并且将其蒸馏成根据由∈k指定的偏好而有利于所有目标的单个参数策略π
new
(a|s)。为此,可以解决符合如下参数策略的监督学习问题:
[0169]
[0170]
s.t.∫
s,a
kl(π
old
(a|s)||π
θ
(a|s))ds<β,
[0171]
其中,θ是函数近似器(神经网络)的参数,其根据先前策略π
old
的权重来初始化,并且kl约束施行限制参数策略中的总体变化的大小β的信任区,以提高学习的稳定性。如在离线策略实施方式中,该步骤中的kl约束具有正则化效果,其防止策略过度拟合到局部策略,并且因此避免过早收敛。
[0172]
为了优化上述等式,可以采用拉格朗日松弛。
[0173]
选择∈k[0174]
通过∈k而不是通过标量化权重来编码偏好是更直观的,因为前者对于奖励的尺度是不变的。换句话说,跨目标具有期望偏好缩小用于∈k的合理选取的范围,但不缩小用于标量化权重的合理选取的范围。为了识别合理标量化权重,rl专业人员需要另外熟悉每个目标的奖励的尺度。在实践中,我们已经发现,学习性能对于用于∈k的很大范围的尺度是鲁棒的。关于对目标上的偏好进行编码重要的是∈k的相对尺度——特定∈k相对于其他越大,则该目标k越优选。另一方面,如果∈k=0,则目标k将没有影响并且将被有效地忽略。通常,具体实施方式应用在0.001至0.1的范围内的∈k。
[0175]
当所有目标同等重要时,一般规则是将所有∈k设置为相同值。相反,在线性标量化中选取适当权重以编码相等偏好可能是困难的——将所有权重设置为相等1/k(其中,k是目标的数量)仅在目标的奖励具有类似尺度时才是适当的。
[0176]
即使当将所有∈k设置为相同值时,∈k的绝对值也将对学习有影响。∈k越大,则目标将对策略更新步骤的影响越大。由于与策略并行地学习每个目标的评价者,设置∈k太高往往使学习不稳定,因为在训练的早期,当评价者产生不可靠的q-值时,他们对策略的影响将导致错误方向。另一方面,如果设置∈k太低,则减慢了学习,因为仅允许每个目标的动作分布与当前策略偏离很小量,并且经由对这些动作分布的组合的监督学习来获得更新的策略。然而,只要∈k不被设置太高,学习最终将收敛到或多或少相同策略。
[0177]
跨目标的偏好存在差异时,∈k的相对尺度是重要的。∈k与∈
l
相比的相对尺度越大,目标k与目标l相比对策略更新的影响越大。在极端情况下,当∈
l
针对目标l接近零时,则目标l将不会影响策略更新并且将被有效地忽略。
[0178]
不等偏好的一个常见示例是当需要智能体来完成任务而最小化其他目标——例如,能量消耗、施加的力(例如,“疼痛”惩罚)等——时。在这种情况下,任务目标的∈应该高于其他目标的∈,以激励智能体将实际进行任务优先。如果用于惩罚的∈太高,则智能体将更多地关注最小化惩罚(这通常可以通过简单地不采取动作来实现)而不是进行任务,这不是特别有用。
[0179]
∈k的尺度具有与同等偏好情况中类似的效果。如果∈k的尺度太高或太低,则出现与针对相同偏好所讨论的相同问题。如果所有∈k都按尺度增加或减少相同的(适度的)因子,并且因此它们的相对尺度保持相同,则通常它们将收敛到或多或少相同的策略。如上所述,在0.001至0.1的范围内的∈k可以获得良好结果。
[0180]
本说明书中描述的主题引入了一种用于学习其中存在多个潜在冲突的目标的策略的强化学习方法。这是通过确定目标特定动作值函数来实现。通过利用这些目标特定的函数,本文描述的方法提供了特定目标函数,其独立于给定目标的奖励的尺度。这意味着,当奖励的大小变化时,不需要随着时间调整目标之间的加权。此外,更大的奖励不一定占优
训练。此外,通过使加权目标尺度相对于奖励不变,该方法更易于实施,从而避免了在选择用于变化的奖励大小的加权时对连续反复试验的需要。本文呈现了提供计算效率的改进(例如,通过使用非参数的目标特定策略)的特定实施方式。
[0181]
在某些实施方式中,偏好变量(∈k)被指派给每个目标以控制目标对强化学习系统的组合动作选择策略的更新的贡献程度。这用于调节与目标相关联的“温度”,用于缩放与目标相关联的动作(q)值。在实施方式中,“温度”涉及对总体动作选择策略的评估有贡献的动作的多样性。因此,即使奖励的尺度改变或者q函数是非固定的,目标之间的加权也可以是尺度不变的。这允许用户在各种目标之间先验地设置偏好。
[0182]
对于被配置执行特定操作或动作的一个或多个计算机的系统,意味着该系统已经在其上安装了软件、固件、硬件或它们的组合,这些软件、固件、硬件或它们的组合在操作过程中使得系统执行操作或动作。对于被配置执行特定操作或动作的一个或多个计算机程序,意味着该一个或多个程序包括指令,当由数据处理装置执行时,这些指令使得装置执行这些操作或动作。
[0183]
本说明书中描述的主题和功能操作的实施例可以在数字电子电路中、在有形体现的计算机软件或固件、在包括本说明书中公开的结构以及它们的等同结构的计算机硬件或在它们中一个或多个的组合中实施。本说明书中描述的主题的实施例可以实施为一个或多个计算机程序——即在有形的非暂时性程序载体上编码的计算机程序指令的一个或多个模块——用于由数据处理装置来执行,或者控制数据处理装置的运行。可替代地,或除此之外,可以将程序指令编码在人工生成的传播信号上,例如,机器生成的电、光或电磁的信号,该信号被生成用于编码信息,以便传输给适合的接收器装置由数据处理装置来执行。计算机存储介质可以是机器可读的存储设备、机器可读的存储基底、随机的或串行的存取存储器设备、或它们中一个或多个的组合。然而,计算机存储介质并不是传播的信号。
[0184]
术语“数据处理装置”包括用于处理数据的所有种类的装置、设备以及机器,包括例如可编程处理器、计算机、或多个处理器或计算机。装置可以包括专用的逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。除硬件以外,装置还可以包括正在讨论的为计算机程序创建执行环境的代码,例如由处理器固件、协议栈、数据库管理系统、操作系统、或它们中一个或多个的组合所组成的代码。
[0185]
计算机程序(也被称为或描述为程序、软件、软件应用、模块、软件模块、脚本、或代码)可以采用任意形式的编程语言来编写,包括编译的或解释的语言,或声明式的或过程式的语言,并且它可以采用任意形式部署,包括作为独立的程序或作为模块、组件、子程序、或适合于在计算环境中使用的其他单元。计算机程序可以但不必对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如存储在标记语言文档中的一个或多个脚本)的文件的一部分中,存储在专用于正在讨论的程序的单一文件中,或存储在多个协作文件(例如存储一个或多个模块、子程序、或代码的多个部分的文件)中。计算机程序可以被部署在一个计算机或多个计算机上执行,这些计算机位于一个站点或分布在多个站点之间并通过通信网络相互连接。
[0186]
如本说明书中所使用的,“引擎”或“软件引擎”是指软件实现的输入/输入系统,该系统提供不同于输入的输出。引擎可以是功能编码的功能块,例如库、平台、软件开发包(sdk)或对象。每个引擎都可以在包括一个或多个处理器和计算机可读介质的任意适合类
型的计算设备上实现,例如服务器、移动电话、平板电器脑、笔记本电脑、音乐播放器、电子书阅读器、膝上或桌上电脑、pda、智能电话、或其他固定的或可移动的设备。另外,可以在相同的计算设备上或在不同的计算设备上实现引擎中的两个或更多个。
[0187]
本说明书中描述的过程和逻辑流程可以通过一个或多个可编程计算机来执行,这些可编程计算机执行一个或多个计算机程序以便通过操作输入数据和产生输出来执行功能。过程和逻辑流程还可以通过专用逻辑电路来执行,并且装置还可以实施为专用逻辑电路,所述专用逻辑电路例如fpga(现场可编程门阵列)或asic(专用集成电路)。例如,过程和逻辑流程可以通过图形处理单元(gpu)来执行,并且装置还可以实施为图形处理单元(gpu)。
[0188]
适于执行计算机程序的计算机包括例如可以基于通用的或专用的微处理器或两者、或任意类型的中央处理单元。一般而言,中央处理单元将从只读存储器或随机存取存储器或两者中接收指令和数据。计算机的必备元件是实施或执行指令的中央处理单元以及存储指令和数据的一个或多个存储设备。一般而言,计算机还将包括用于存储数据的一个或多个大容量存储设备或被操作耦合以从所述一个或多个大容量存储设备接收数据或向所述一个或多个大容量存储设备传输数据或两者,所述一个或多个大容量存储设备例如磁盘、磁光盘或光盘。然而,计算机不必具有这些设备。而且,计算机可以嵌入在另一种设备中,例如可移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏机、全球定位系统(gps)接收器、或便携式存储设备(例如通用串行总线(usb)闪存驱动),这里仅举几例。
[0189]
适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,包括例如半导体存储设备(例如eprom、eeprom、以及闪存设备);磁盘,例如内置硬盘或可换式磁盘;磁光盘;以及cd rom和dvd-rom盘。处理器和存储器可以通过专用逻辑电路来补充或整合在其中。
[0190]
为了提供与用户的交互,在本说明书中所描述的主题的实施例可以在计算机上实施,该计算机具有向用户显示信息的显示器设备(例如,crt(阴极射线管)或lcd(液晶显示器)监视器)以及通过其用户可以向计算机提供输入的键盘和定点设备(例如,鼠标或轨迹球)。还可以使用其他种类的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式(包括声音、语音或触觉反馈)接收来自用户的输入。另外,计算机可以通过向用户使用的设备发送文档并从其接收文档与用户进行交互;例如,响应于从web浏览器接收的请求,向用户客户端设备上的web浏览器发送网页。
[0191]
本说明书中所描述的主题的实施例可以在计算系统中实施,该计算系统包括后端组件(例如,作为数据服务器)或包括中间件组件(例如,应用服务器)、或包括前端组件(例如,具有用户可以通过其与本说明书中所描述的主题的实施例进行交互的图形用户界面或web浏览器的客户端计算机)、或一个或多个这种后端组件、中间组件、或前端组件的任何组合。系统的组件可以通过数字数据通信(例如,通信网络)的任何形式或介质来进行互连。通信网络的示例包括局域网(“lan”)和广域网(“wan”),例如互联网。
[0192]
计算系统可以包括客户端和服务器。客户端和服务器通常远离彼此并且一般通过通信网络交互。客户端与服务器的关系借助于在相应计算机上运行并且对彼此具有客户端-服务器关系的计算机程序产生。
[0193]
尽管本说明书包含很多具体的实施细节,但这些实施细节不应当被解释为对任意发明或可以要求保护的内容的范围的限制,而应解释为可以针对于特定发明的特定实施例的特征的解释。本说明书中所描述的单独实施例上下文中的某些特征还可以组合在单一实施例中来实施。相反地,在单一实施例上下文中描述的各种特征还可以分别在多个实施例中或在任意适合的子组合中实现。而且,尽管特征在上文可以描述为在某些组合中发生作用并且甚至最初就如此要求保护,但在一些情况中来自要求保护的组合中的一个或多个特征可以从组合中剥离,并且要求保护的组合可以针对于子组合或子组合的变化形式。
[0194]
同样,尽管在附图中以特定的顺序描述了操作,但这不应当理解为要求这些操作以所示的特定顺序或以相继顺序来执行,或者执行所有图示的操作,以便实现所希望的结果。在某些情况中,多任务和并行处理可能是有利的。而且,上述实施例中的各个系统模块和组件的分离不应当被理解成在所有实施例中都要求这种分离,并且应理解的是,所描述的程序组件和系统通常可以一起整合在单个软件产品中或封装进多个软件产品中。
[0195]
本主题的特定实施例已经进行了描述。其他实施例在以下权利要求书的范围内。例如,权利要求中记载的动作可以采用不同的顺序执行并且仍获得所希望的结果。例如,在附图中描绘的过程不一定需要所示的特定顺序或相继顺序来实现所希望的结果。在某些实施方式中,多任务和并行处理可能是有利的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1