[0155] 在当前速度超过35.7m/s的情况下,-0.1
[0156] 共享全局奖励
[0157] 根据一个方面,共享全局奖励Rg(st;at;g)可以通过以下确定:
[0158] 在发生任何碰撞的情况下,-10;以及
[0159] 在时间t到达道路的终点的代理的所有个体奖励的平均值。
[0160] 架构
[0161] 根据一个方面,在级一期间的策略网络π1将每个输入o自行和gn馈送到具有32个单元的一个全连接层。拼接可以全连接到具有64个单元的层 并且全连接到具有5个单元的softmax输出层,每个单元对应于一个离散行动。在级二中,输入观察网格o其他可以由具有大小为5×3且步幅为1×1的4个
滤波器的卷积层处理、平坦化并且全连接到具有64个单元的层,然后全连接到π1的层 ReLU非线性可以用于所有隐藏层。通过经由Pr(an=i)=(1-∈)softmax(i)+∈/|A|界定softmax输出下限来计算行动概率,其中∈是衰减探索参数并且|A|=5。
[0162] 在级一期间,分散评价V1可以将输入o自行和gn中的每个馈送到具有32个单元的一个全连接层。拼接可以全连接到具有单个单元的输出线性层hV1_。在级二中,输入观察网格o其他可以由具有大小为5×3且步幅为1×1的4个滤波器的卷积层13处理、平坦化并且全连接到具有32个单元的层,然后全连接到V1的输出层 ReLU非线性可以用于所有隐藏层。
[0163] 集中评价Q(s,a,g)可以接收输入(s,a-n,gn,g-n,n),该输入可以连接到具有128个单元和ReLU激活的两个全连接层,并且全连接到具有5个单元的线性输出层。每个输出
节点i的值可以被解释为采取行动i的代理n和采取行动的所有其他代理a-n的行动值Q(s,a-n,an=i,g)。代理标签矢量n是单热指示符矢量,用作区分不同代理的Q函数的估计的输入。
[0164] 双重重放
缓冲器B1和B2可以用作启发式方法,以提高在级二上的所有
算法的训练稳定性。可以使用附加的事件缓冲器来存储在每个事件期间遇到的所有环境转变,而不是立即存储每个转变。在每个事件的结束时,可以将所有代理的累积奖励与
阈值(例如,32)进行比较,以确定是否应当将在事件缓冲器中的转变存储到B1或B2对于训练,小批量的一半分别从B1和B2取样。
[0165] 图7至图8是根据一个方面的与协同多目标、多代理、多级强化学习相关联的示例性性能结果。如图7所示,CM3比E2中的其他技术更早地会聚到超过45k事件的更高性能。在图8中,可以看出,由基于CM3框架的系统或方法学习的策略更好地一般化到E2+。
[0166] 图9是根据一个方面的与协同多目标、多代理、多级强化学习相关联的示例性模拟场景。在图9中,与E2相关联的初始车道配置要求代理执行双重合并或双重车道变更以到达其目标车道。
[0167] 图10是根据一个方面的单代理环境E1中的示例性奖励与事件图。
[0168] 基于掩码的自主车辆策略生成
[0169] 图11是根据一个方面的自主车辆策略生成系统1100的组件图。用于CM3强化学习的系统100可以包括图11的组件中的一个或多个或整个自主车辆策略生成系统1100。自主车辆策略生成系统1100可以包括处理器1102、存储器1104、存储驱动器1106、状态输入发生器1108、交通模拟器1112、Q-掩码器1114和行动发生器1116。状态输入发生器1108、交通模拟器1112、Q-掩码器1114和行动发生器1116可以经由处理器1102、存储器1104和/或存储驱动器1106实现。
[0170] 自主车辆策略生成系统1100可以通过模拟和通过Q掩码来生成用于车辆170的自主车辆策略,例如,该车辆可以使用车辆170的控制器176来实现自主车辆策略。
[0171] 状态输入发生器1108可以如模拟的那样确定或生成与自主车辆相关联的状态信息。换句话说,状态输入发生器1108负责确定网络的与自主车辆策略生成相关联的输入。这些输入的示例可以包括模拟的自主车辆的状态,包括模拟的自主车辆内部的状态信息(例如,与模拟的自主车辆相关联的速度或当前速度)和模拟的自主车辆外部的状态信息(例如,与模拟的自主车辆相关联的车道定位或车道位置,以及距目标(诸如期望的目的地)的距离)。例如,目标可能不一定是最终目的地,但是可以是沿着路线的路点目的地。交通模拟器1112可以模拟模拟环境,该模拟环境包括模拟的自主车辆和在模拟环境内的一个或多个其他车辆(例如,第一车辆、第二车辆、第三车辆等)。交通模拟器1112可以被配置为控制其他车辆以维持在一定范围内的速度。
[0172] 根据一个方面,交通模拟器1112可以是用于图1的CM3强化的系统100的模拟器108。另外,处理器1102和存储器1104可以与来自图1的用于CM3强化的系统100的处理器102和存储器104相同。
[0173] 由于距目标的距离可以被认为是交通模拟器1112的输入,因此当存在于诸如在交通中的多车道高速公路的驾驶场景中时,可以考虑关于在策略级上的长期决策的推理。
[0174] 根据一个方面,交通模拟器1112可以控制在模拟环境内的其他车辆以避免彼此碰撞,而不是与模拟的自主车辆(例如,代理)的碰撞。Q-掩码器1114可以经由低级控制器实现,并且是深度Q-学习系统的一部分,该深度Q-学习系统学习使自主车辆能够在战术级上做出决策的策略。深度Q-学习系统可以学习在状态和与每个潜在行动相关联的Q值之间的映射。换句话说,在深度Q-学习系统并且不应用Q-掩码器1114的情况下,交通模拟器1112将继续模拟每个时间
帧的所有可能行动,这可以利用处理器1102和存储器1104的大量计算能力进行。因此,学习完整策略(其中探索每个且每一个行动)在大型网络的情况下可能难以进行训练。
[0175] 在Q-学习网络中,可以学习在状态和与每个行动相关联的Q值之间的映射。根据一个方面,呈在最大值(或柔性最大值)运算符之前应用在输出Q值上的掩码的形式的Q-掩码可以应用在Q值的输出层上以选取‘最佳’行动。就这一点而言,Q-掩码器1114的直接作用是当采取最大值运算来选择‘最佳’行动时,仅考虑与由较低级模块指示的行动子集相关联的Q值。
[0176] 因此,Q-掩码器1114可以对将由交通模拟器1112模拟的输出Q值的子集进行掩码。因此,在模拟期间交通模拟器1112仅考虑与剩余行动子集相关联的Q值,从而减少在自主车辆策略生成中在自主车辆的模拟和训练期间利用的处理能力和/或计算资源的量。基于剩余行动子集(例如,一组可能行动的剩余行动子集,该行动子集排除被掩码的子集),行动发生器1116可以探索剩余行动并且相应地确定自主车辆策略。这可以跨一个或多个时间间隔重复进行。Q-掩码器1114可以因此‘强制’模拟的自主车辆仅探索未掩码的状态,并且由此仅学习相关联的Q值(其指示在状态(s)上的策略(π)下的行动(a)的长期回报)的空间的子集。
[0177] 更详细地,状态输入发生器1108可以生成与正在进行训练的自主车辆(例如,模拟的自主车辆)相关联的一组属性。例如,该组属性可以包括与自主车辆相关联的当前速度v、与自主车辆相关联的车道位置l、以及从自主车辆到目标(其可以是期望的目的地)的距离d2g。另外,该组属性或与车辆相关联的位置信息可以被表示为占用网格。该组属性可以是状态信息,其指示或表示与自主车辆相关联的状态(S)或场景。例如,可以基于自主车辆的位置或定位来确定诸如公示的速度限制或最小速度限制v最小和最大速度限制v最大的信息。
[0178] 交通模拟器1112可以模拟模拟环境,该模拟环境包括自主车辆、与多个车道相关联的公路以及在模拟环境内的一个或多个其他车辆。交通模拟器1112可以一定交通
密度生成交通,并且每个车道可以被分配有在起始位置处以一定时间间隔发出车辆的概率P车道,其中另一个车辆可以与随机起始速度、随机目标速度以及保持在内的从随机目标速度起的范围相关联。交通模拟器1112可以使用控制其他车辆以避免彼此碰撞而不控
制模拟的自主车辆的模型。根据一个方面,交通模拟器1112不控制模拟的自主车辆,而仅控制在模拟环境内的其他车辆以仅避免彼此碰撞(而不是与模拟的自主车辆的碰撞)。
[0179] 交通模拟器1112可以是深度Q-学习系统,其基于模拟的自主车辆的状态输入生成属性和由交通模拟器1112提供的模拟环境来实现强化学习。在由交通模拟器1112管理的模拟环境内,模拟的自主车辆可以是代理,其可以采取来自一组可能行动的模拟行动。该组可能行动可以被称为行动集(A)。例如,用于自主车辆的一组可能行动包括在时间间隔期间维持与自主车辆相关联的当前速度、加速、减速、执行右侧车道变更或执行左侧车道变更的自主驾驶操纵。
[0180] 模拟环境可以是模拟的自主车辆在其中到处移动的世界或环境。交通模拟器1112模拟模拟环境并且使用模拟的自主车辆的当前状态和行动(例如,在给定时间间隔内)作为输入,并且将模拟的自主车辆的奖励(下面描述)、以及下一状态作为输出返回。例如,交通模拟器1112可以采用车辆的当前状态(例如,50mph)和行动(例如,减速),并且应用物理定律来确定模拟的自主车辆的下一状态(例如,45mph)。
[0181] 交通模拟器1112可以利用奖励函数(R),该奖励函数可以是估计所采取的(例如,模拟)行动的函数。换句话说,奖励函数可以用于衡量成功或失败。例如,如果模拟的自主车辆错过目标(例如,期望的目的地)或牵涉碰撞,那么奖励函数可以惩罚导致当前状态(例如,错过目标或碰撞)的模拟行动。相反地,奖励函数可以基于到目标的最快时间或最快路线而进行奖励。基于奖励函数,奖励可以立即提供,或可以延迟提供。由奖励函数提供的奖励使得基于给定目标(例如,到达出口匝道)而进行强化学习。
[0182] 贴现因子(γ)可以与未来奖励相乘以使短期决策的权重大于长期奖励。换句话说,贴现因子可以用于使未来奖励的价值低于立即奖励。就这一点而言,值(V)可以是包括贴现影响的预期的长期回报。Q-值(Q)可以是指示在状态(s)上的策略(π)下的行动(a)的长期回报的行动值。轨迹可以是包括那些状态的状态和/或行动的序列。策略(π)或自主车辆策略可以是行动发生器1116基于当前状态(例如,如与自主车辆相关联的一组属性所指示)而使用或采用来确定自主车辆的下一行动的策略。
[0183] 根据一个方面,奖励函数可以是:
[0184] 其中l是模拟的自主车辆位于距起始位置的目标距离D处时所在车道。
[0185] 因此,根据该奖励函数,对于成功(例如,到达目标),给出正终端奖励,并且在模拟的自主车辆越远离与目标相关联的车道终止的情况下给出越来越负的终端奖励。贴现因子可以促使模拟的自主车辆以最短的时间量或数量最少的时间间隔(即,维持较高的平均速度)达到目标。此外,由于在训练期间从不允许碰撞,因此奖励函数不需要考虑碰撞,从而简化奖励函数。
[0186] 例如,给定某个状态,Q-掩码器1114可以限制或以其他方式“掩盖”代理或模拟的自主车辆不需要探索或从它们的行动学习的任一组行动。换句话说,如果模拟的自主车辆定位在最左侧车道中,那么采取左侧车道变更行动将会导致驶离高速公路。因此,Q-掩码器1114可以在与左侧行动相关联的Q值上设下掩码,使得在这种状态下从不选择左侧车道变更行动。这使关于系统的先验知识(即,该示例中的高速公路路肩)能够直接地结合到学习过程中。继而,不需要设置对于驶离高速公路的负奖励,从而简化奖励函数。
[0187] 另外,由于行动发生器1116不探索这些状态,因此学习本身变得更快速且更有效。行动发生器1116最终学习的是Q值的实际空间的子集,而不是整个集。在系统上的约束可也以类似的方式结合。例如,如果自主车辆以最大速度v最大驾驶,那么可以对加速行动进行掩码(或如果是以最小速度v最小,那么对减速行动进行掩码)。以此方式,行动发生器1116不需要花时间来学习高速公路或公路的速度限制。
[0188] Q-掩码器1114可以确定在一定时间间隔内要应用于自主车辆的一组可能行动的子集的掩码。行动发生器1116将不探索或考虑这些组行动掩码,从而减少用于自主车辆策略生成的系统所利用的计算资源(例如,处理能力、存储器、存储装置等)的量。
[0189] 根据一个方面,Q-掩码器1114可以基于先验知识、一个或多个交通规则、来自低级控制器的约束或信息或者与自主车辆相关联的能力而确定要应用的掩码。先验知识可以指示自主车辆与模拟环境之间或自主车辆与模拟环境内的其他车辆之间的预限定的可允许的交互。换句话说,例如,Q-掩码器1114可以利用先验知识来对可能出现以下状况的行动进行掩码:导致模拟的自主车辆与其他车辆之间的碰撞、增加碰撞时间(TTC)、使模拟的自主车辆偏离公路、或落在期望的操作阈值或范围外。
[0190] 交通规则可以基于车辆的定位或当前位置而指示可允许的驾驶操纵。例如,交通规则可以包括最大速度限制、最小速度限制、驾驶礼节(诸如不急转弯、不执行中间无停顿的双车道变更、不执行将会‘拦截’另一个驾驶员的驾驶操纵等)。换句话说,Q-掩码器1114可以基于交通规则而确定掩码的行动子集,其包括当与自主车辆相关联的当前速度大于与公路相关联的速度限制时加速和当与自主车辆相关联的当前速度小于与公路相关联的最小速度限制时减速。以此方式,将会破坏最小速度限制v最小和最大速度限制v最大的加速和减速行动将会由Q-掩码器1114进行掩码。
[0191] 其他交通规则可以包括不经过双车道标记。例如,Q-掩码器1114可以基于交通规则而确定掩码的行动子集,其包括当自主车辆定位在公路的双车道标记的正好右侧时执行右侧车道变更的自主驾驶操纵和当自主车辆定位在公路的双车道标记的正好左侧时执行左侧车道变更的自主驾驶操纵。
[0192] 另外,与自主车辆相关联的能力可以指示与自主车辆相关联的物理上可能的驾驶操纵。例如,如果自主车辆已经以最高速度行驶,那么可能无法加速,因此加速行动可能由Q-掩码器1114进行掩码。作为另一个示例,当车辆以操作速度操作时,可能不期望加速或施加硬制动行动,因为这将对乘坐的平稳性造成影响。该操作速度可以由Q-掩码器1114作为加速或减速阈值进行应用,使得由自主车辆采取的行动不超过该加速或减速阈值是大多数的场景。
[0193] 然而,在一些场景中,诸如防止或减轻碰撞的场景,Q-掩码器1114可以允许超过加速或减速阈值。以此方式,Q-掩码器1114可以场景特定的方式实现阈值。换句话说,Q-掩码器1114可以利用一个或多个运动学规则来应用最大加速或减速的水平,以使乘坐起来感觉更舒适,同时考虑乘客的安全性(例如,该阈值可以被超驰以避免碰撞)。此外,可以基于车辆的当前速度、当前位置、当前加速等而实现不同的运动学规则。例如,加速阈值可以当车辆在运动中时比当车辆处于静止时大。
[0194] 可以由Q-掩码器1114掩码的行动的其他示例包括将会导致自主车辆驶离公路的车道变更。换句话说,Q-掩码器1114可以基于先验知识而确定掩码的行动子集,其包括当自主车辆定位在公路的最右侧车道上时执行右侧车道变更的自主驾驶操纵和当自主车辆定位在公路的最左侧车道上时执行左侧车道变更的自主驾驶操纵。
[0195] 类似地,Q-掩码器1114可以对与向另一个车辆加速或减速相关联的行动进行掩码。例如,Q-掩码器1114可以基于先验知识而确定掩码的行动子集,其包括在自主车辆和另一个车辆两者定位在同一车道中的情况下当自主车辆定位在另一个车辆后方的第一阈值距离处时加速的自主驾驶操纵和在自主车辆和另一个车辆两者定位在同一车道中的情况下当自主车辆定位在另一个车辆前方的第二阈值距离处时减速的自主驾驶操纵。
[0196] 根据另一个方面,Q-掩码器1114可以基于其他阈值(例如,在一些场景中,基于车道变更阈值距离而没有车道变更或者没有与减少碰撞时间(TTC)估计相关联的行动)而对模拟的自主车辆的行动进行掩码。例如,Q-掩码器1114可以基于先验知识而确定掩码的行动子集,其包括当自主车辆定位到右侧并且在另一个车辆的车道变更阈值距离内时的左侧车道变更的自主驾驶操纵和当自主车辆定位到左侧并且在另一个车辆的车道变更阈值距离内时的右侧车道变更的自主驾驶操纵。Q-掩码器1114可以基于先验知识而确定掩码的行动子集,其包括当TTC估计低于阈值TTC值时与随自主车辆与另一个车辆之间的TTC估计的预期减小相关联的任何驾驶操纵。
[0197] 以此方式,Q-掩码器1114提供许多益处和/或优点。例如,在使用Q掩码的情况下,可以简化奖励函数,从而使深-Q学习更快速且更有效。换句话说,可以通过将先验知识直接地结合到学习过程(例如,训练网络)中来简化奖励函数,如交通模拟器1112和行动发生器1116所实现。由于Q-掩码器1114基于先验知识而对行动进行掩码,因此不需要负奖励函数,从而简化奖励函数。通过使用Q-掩码,Q-掩码器1114可以在训练或测试期间减少或消除碰撞,从而使得能够直接地在真实系统上执行训练,而不一定是仅在那些模拟下进行训练。换句话说,Q-掩码器1114可以在实际自主车辆上实现对自主车辆的训练。因此,根据一个方面,交通模拟器1112可以替代地替换为检测一个或多个其他车辆(例如,第一车辆、第二车辆、第三车辆等,以及一个或多个相关联的属性,诸如速度、位置、车道定位、转向信号等)的传感器。
[0198] 行动发生器1116可以从一组可能行动探索一组剩余行动,并且基于该组剩余行动(例如,排除被掩码的行动子集)和与自主车辆相关联的一组属性而确定在一定时间间隔内的自主车辆策略。行动发生器1116可以从一组可能行动探索一组剩余行动并且确定在一个或多个附加的时间间隔内的自主车辆策略,诸如直到自主车辆到达终端状态(例如,目标或期望的目的地)。这里,行动发生器1116可以将与一个或多个附加的时间间隔相关联的一组探索行动中的一个或多个存储为一个或多个对应轨迹。如先前所讨论,轨迹可以是包括那些状态的状态和/或行动的序列。
[0199] 行动发生器1116可以基于奖励函数从一组可能行动探索一组剩余行动,并且基于奖励函数而确定自主车辆策略。奖励函数可以包括贴现因子。通过训练和/或模拟,行动发生器1116可以学习自主车辆策略,该自主车辆策略可以存储到存储驱动器1106、传达到车辆170,并且经由车辆ECU 176实现以便于自主驾驶。
[0200] 在训练期间,可以epsilon-贪婪的方式采取行动,并且可以使E
退火。行动发生器1116可以模拟完全轨迹直到终端状态为止,并且将轨迹分类为好的或坏的(即,好的缓冲器与模拟的自主车辆相关联,以使其达到目标而不牵涉碰撞、超过速度限制等)。换另一个方式解释,所有转变(即,来自成功轨迹的状态、行动和奖励元组)保存在好的缓冲器中,而来自失败轨迹的转变(即,没有使其到达目标)保存在坏的缓冲器中。
[0201] 对于任何转变,可以从终端奖励反算预期奖励,其由以下给出:
[0202]
[0203] 可以使用从好的缓冲器和坏的缓冲器均等地采样的小批量转变使用以下损失函数优化网络:
[0204] L(θ)=(yt-Q(st,at,θ))2
[0205] 当探索可能不断地导致失败轨迹时,两个单独的缓冲器有助于维持对成功执行的合宜的曝光,从而避免网络陷入局部最小值。
[0206] 以此方式,自主驾驶汽车策略生成系统1100提供了利用深度强化学习的强度来进行高级战术决策的框架并且展示了就问题的端对端完整策略学习(其中高级策略可能难以使用传统基于优化或规则的方法定制,但是其中良好地设计的低级控制器(例如,实现Q-掩码器1114的控制器)可用)的更结构化和数据有效的替代方案。自主车辆策略生成系统1100使用深度强化学习来获得用于战术决策的高级策略,同时维持与低级控制器的紧密整合。
[0207] 在将该框架应用于自行驾驶车辆(例如,自主车辆)的自主车道变更决策的情况下,网络可以学习高级战术决策策略。针对贪婪基线和人类驾驶员的实验结果已经证明,本文描述的自主车辆策略生成系统1100和方法比这两者更为优异,具有更高效率和低得多的碰撞率(例如,通过消除碰撞)。贪婪基线可以是这样的策略,其中自主车辆优先进行右侧车道变更,直到该自主车辆在正确车道中为止,然后在保持在速度限制内的同时尽可能快地行驶,并且不与其他车辆碰撞。
[0208] 根据一个方面,状态输入发生器1108可以记录闭塞,并且交通模拟器1112可以提供概率占用网格。此外,作为单独的信道,交通模拟器1112可以接收来自先前时间间隔的占用网格的历史。
[0209] 图12是根据一个方面的自主车辆策略生成方法200的流程图。在1202处,生成用于自主车辆的一组属性。该组属性可以包括与自主车辆相关联的当前速度、与自主车辆相关联的车道位置、以及从自主车辆到目标的距离,其中目标是期望的目的地。在1204处,执行交通模拟。例如,模拟环境可以包括自主车辆、与多个车道相关联的公路以及在模拟环境内的另一个车辆。
[0210] 在1206处,确定行动子集的掩码。可以基于指示自主车辆与模拟环境之间或在自主车辆与模拟环境内的其他车辆之间的预限定的可允许的交互的先验知识、指示可允许的驾驶操纵的交通规则或指示与自主车辆相关联的物理上可能的驾驶操纵的与自主车辆相关联的能力来确定掩码。
[0211] 在1208处,探索一组剩余未掩码的行动。换句话说,模拟可以探索与一组剩余行动相关联的所有可能结果,以将这些分为两类:好的和坏的,其中好的结果与模拟的自主车辆到达目标相关联,坏的结果与模拟的自主车辆没有达到目标相关联。在1210处,确定自主车辆策略,诸如基于奖励函数或贴现因子,其考虑到时间、未来奖励与当前奖励等。
[0212] 图13A是根据一个方面的示例性自主车辆策略生成方法的流程图。具有历史的占用网格可以通过单个卷积层,被平坦化,并且与具有由状态输入发生器1108生成的标量输入的全连接层的输出拼接。拼接通过全连接层以给出与5个战术行动相关联的5个Q值的最终输出。如图13A所示,由Q-掩码器1114进行的Q-掩码被注入Q值与最大值运算之间,以由行动发生器1116确定行动,从而结合先前信息,因此通过探索从头开始学习就不需要进行。最大值运算可以是对Q值的最大值或柔性最大值运算以选择行动。
[0213] 图13B是根据一个方面的与自主车辆策略生成相关联的示例性模拟接口。如先前所讨论,用于自主车辆的一组可能行动包括在时间间隔期间维持与自主车辆相关联的当前速度(例如,‘N’或无操作)、加速(A)、减速(D)、执行右侧车道变更(R)或执行左侧车道变更(L)的自主驾驶操纵。除了减速(D)之外,还可以设想其他行动,诸如制动释放行动。根据一个方面,当采取制动释放行动时可以不实现加速阈值。换句话说,根据该方面,释放制动可以始终是任选的,使得Q-掩码器1114从不对制动释放行动进行掩码。
[0214] 图14A至图14C是根据一个方面的可实现自主车辆策略生成的示例性场景。根据一个示例性方面,模拟的自主车辆的任务是在考虑速度限制并且避免碰撞等的同时以最少的时间量到达在最右侧车道上的出口,如图14A所示。在图14A中,自主车辆从出口到目标的距离为d2g。如果模拟的自主车辆未能到达出口(例如,在该场景中的目标),那么行动发生器1116或交通模拟器1112将其视为失败。由于距目标的距离连同信息(诸如来自低级控制器的约束信息的先验知识)一起被考虑,因此考虑高级考虑因素和低级考虑因素两者。
[0215] 在图14B中,如果自主车辆或代理在位置1402处,那么可以由Q-掩码器1114对左侧车道变更行动进行掩码,因为自主车辆已经在公路的最左侧车道中。类似地,当自主车辆在位置1404处时,可以由Q-掩码器1114对加速行动进行掩码,而当自主车辆在位置1406处时,可以由Q-掩码器1114对减速行动进行掩码。可以分别基于距其他车辆的阈值距离来对这些加速和减速行动进行掩码。
[0216] 在图14C中,示出了两个不同轨迹1410和1420。行动发生器可以选择与较高奖励(例如,更快时间)相关联的轨迹,因为Q-掩码器1114已经减轻相应轨迹所牵涉的任何决策中的
风险的大部分。
[0217] 图15是根据一个方面的用于交互感知决策的系统1500的示例性组件图。用于交互感知决策的系统1500可以利用协同多目标、多代理、多级(CM3)强化学习的特征,如上面参考图1至图10所讨论。另外,用于交互感知决策的系统1500可以利用自主车辆策略生成的特征,如上面参考图11至图14所讨论的。用于交互感知决策的系统1500可以包括处理器102、存储器104、模拟器108和通信接口150。这些组件可以经由总线106通信地耦接。用于交互感知决策的系统1500的模拟器108可以根据第一级和第二级来执行多级训练。
[0218] 在第一级内,模拟器108可以执行以下操作:使用马尔可夫决策过程(MDP)在单代理环境中基于第一策略梯度而训练第一代理并且基于第一损失函数而训练第一评价以学习一个或多个特征。在单代理环境中,第一代理是唯一存在的代理。在环境内的特征可以包括通向公路的一个或多个岔道、一个或多个车道、一个或多个障碍物(例如,在级一训练期间可以是静止的)。在级一训练(例如,训练的第一级)中,模拟器108可以训练代理以实现一个或多个任务或目标。由于在单代理环境中没有其他代理,因此在级一中由模拟器108提供的单代理设置或环境使第一代理能够以适当、有效的方式学习单代理环境的一个或多个特征或就其进行训练,因为在不存在其他代理的情况下可以更可靠地产生与实现目标相关联的学习行为的期望的状态配置。以此方式,可能需要更少的模拟
迭代就能达到一定驾驶或操作能力的水平。
[0219] 模拟器108可以包括状态输入发生器1108、Q-掩码器1114、行动发生器1116、驾驶员类型管理器1502和优先级确定器1504。状态输入发生器1108可以确定或生成与作为模拟代理的第一代理相关联的状态信息。以此方式,状态输入发生器1108可以确定网络的与多目标、多代理、多级交互感知决策网络策略生成相关联的输入。由状态输入发生器1108生成的示例输入可以包括第一代理的状态,诸如当前速度、车道位置、距目标或期望的目的地的距离等。
[0220] Q-掩码器1114可以对将由模拟器108模拟的输出Q值的子集(例如,行动集)进行掩码。行动发生器1116可以通过从一组可能行动排除一组被掩码的行动来基于一组剩余行动而训练第一代理。因此,在模拟期间模拟器108仅考虑与剩余行动子集相关联的Q值,从而减少在自主车辆策略生成中在自主车辆的模拟和训练期间利用的处理能力和/或计算资源的量。
[0221] 基于剩余行动子集(例如,一组可能行动的剩余行动子集,该行动子集排除被掩码的子集),行动发生器1116可以探索剩余行动并且相应地确定自主车辆策略。这可以跨不同的时间间隔重复进行。Q-掩码器1114可以因此‘强制’模拟的自主车辆仅探索未掩码的状态,并且由此仅学习与相关联的Q值(指示在状态(s)上的策略(π)下的行动(a)的长期回报)的空间的子集相关联的行动。
[0222] 在根据MDP在单代理环境内基于第一策略梯度而训练第一代理并且基于第一损失函数而训练第一评价期间,模拟器108可以通过使第一代理能够从一组一个或多个行动选择某个行动来训练第一代理。一组可能行动可以包括无操作行动、加速行动、减速行动、制动释放行动、向左位移一个子车道行动或向右位移一个子车道行动。
[0223] 可由第一代理在级一中学习的特征中的一个或多个的示例可以包括学习规则和公路规制、如何在速度限制内在公路上行驶或维持速度、如何维持车辆在车道内、如何改变车道或改变子车道位置、如何离开出口匝道、如何进入入口匝道等。
[0224] 以此方式,第一策略网络具有分散评价,该分散评价可以在单代理设置或环境中学习不同特征。由于第一评价可以是分散评价,因此第一级或级一可以与第一代理的局部视图或个性化奖励、个性化学习等相关联。以此方式,模拟器108可以使用马尔可夫决策过程,在单代理环境中(在该单代理环境中第一代理是唯一存在的代理)基于第一策略梯度而训练第一代理并且基于第一损失函数而训练第一评价以学习一个或多个目标。第一代理可以与第一代理神经网络相关联,并且第一评价可以与第一评价神经网络相关联。
[0225] 模拟器108可以执行级二训练,包括使用马尔可夫博弈在多代理环境中基于第一策略梯度和第二策略梯度而训练数量N个代理并且基于第一损失函数和第二损失函数而训练第二评价以学习在数量N个代理(例如,其可以包括第一代理)之间的第二组特征来将第二代理神经网络实例化。根据一个方面,多代理环境的数量N个代理中的一个或多个可以与指示相应代理的协同级别的驾驶员类型相关联。换句话说,在级二训练中,模拟器108可以教导第一代理当在周围有较少的协同驾驶员时如何驾驶或操作,如竞争驾驶员类型所模拟。
[0226] 可以用来自级一训练的预训练的第一代理神经网络将数量N个代理中的一个或多个实例化或初始化。因此,数量N个代理中的每一个可以具有来自预训练的第一代理神经网络的先验知识,并且可以使用CM3强化学习来实现课程增益。模拟器108可以基于从第一策略梯度和第二策略梯度得到的组合策略梯度而训练数量N个代理。然而,基于驾驶员类型(例如,指示数量N个代理中的相应代理的协同级别),数量N个代理中的一个或多个可能不一定在级二训练期间是协同的,从而使第一代理能够学习在其他代理(例如,车辆)不一定友好或协同的环境中如何操作或如何驾驶。此外,如先前所指示,根据一个方面,数量N个代理中的一个或多个的驾驶员类型可以在模拟或训练(例如,训练中)期间改变。根据其他方面,数量N个代理中的一个或多个的驾驶员类型可以在模拟或级二训练期间保持恒定。数学框架板可以用于生成具有不同的驾驶员类型的代理的不同类型的行为。根据一个方面,驾驶员类型可以是协同的或竞争的。根据另一个方面,驾驶员类型可以由数字表示(例如,在1至10的范围上或在从-2到+2的等范围上等)。
[0227] 例如,在合并车道上,出于安全目的,在合并到交通中之前,确实协同的驾驶员(例如,+2)可以提前减速,而不太协同的驾驶员(例如,-2)可以加速并且争取合并空间。类似地,在主车道或公路上,协同的驾驶员可能退让合并车辆,而竞争的驾驶员可能加速并且首先尝试来通过合并点。
[0228] 无论如何,模拟器108可以使用马尔可夫博弈在多代理环境中基于第一策略梯度而训练数量N个代理并且基于第一损失函数和第二损失函数而训练第二策略梯度和第二评价以学习一个或多个目标来将第二代理神经网络实例化。在级二训练中,当在两个车辆之间发生碰撞时,可以分配事故责任。数量N个代理中的每个可以基于相应代理的位置和多代理环境的布局而被分配车道优先级级别。
[0229] 例如,如果第一车辆在公路内直行并且第二车辆在与直行道合并的车道中,那么第一车辆可以被分配比第二车辆更高的车道优先级级别。在这种情况下,优先级确定器1504可以基于第二车辆在合并车道中而在第一车辆与第二车辆之间发生碰撞的情况下将事故责任分配给第二车辆。然而,由于优先级确定器1504可以基于每个车辆的位置并且还基于多代理环境的布局(例如,公路的配置)而将车道优先级级别分配给每个车辆,因此可以存在其中可以为第一车辆分配比第二车辆更低的车道优先级级别的场景。
[0230] 例如,如果处于与直行道合并的车道中的第二车辆在第一车辆前方的至少阈值距离处,那么优先级确定器1504可以基于第二车辆在第一车辆前方(例如,以及第一车辆追尾第二车辆)而在第一车辆与第二车辆之间发生碰撞的情况下将事故责任分配给第一车辆。此外,可以基于第一车辆与第二车辆之间的距离而分配事故责任百分比。优先级确定器
1504可以利用该事故责任百分比来确定要分配给碰撞所牵涉的相应代理或车辆中的每一个的负奖励或惩罚。
[0231] 具体地,优先级确定器1504可能不一定惩罚模拟事故或碰撞中牵涉的所有方或将负奖励分配给它们,因为事故责任可以与现实交通规则类似地分配。另外,还存在其他场景,其中优先级确定器1504可以确定两个或更多个车辆具有相等的车道优先级级别,并且如果在该场景中发生碰撞,那么可以为所牵涉的车辆分配相等量的事故责任。以此方式,模拟器108可以训练网络策略以使车辆或代理能够在其中代理与其他代理相比不具有任何更高的优先级的场景中操作,但是有些时候其他驾驶员可以先走,而其他时候,第一代理可能是先走的那者。将参考下面讨论的图19A至图19D进行优先级确定器1504的各方面的进一步讨论和示例。
[0232] 返回关于由模拟器108进行的级二训练的讨论,可以使第一代理知道它具有比数量N个代理中的另一个更高的车道优先级,但是由于可由驾驶员类型管理器1502分配的不同的驾驶员类型,其他代理可能不一定根据其较低车道优先级级别来退让。换句话说,并且参考上面的示例,在第一车辆在直行道上并且第二车辆在与直行道合并的车道中的情况下,在级二训练期间,在第二车辆的位置的一些代理可能不一定退让(例如,第二车辆实际上可以进行加速或忽略第一车辆)第一车辆,而在第二车辆的位置的其他代理可以退让,如两个车辆或代理的不同的车道优先级级别所要求。
[0233] 再次解释,由于现实生活中的驾驶员可以非协同或竞争的方式拦截其他驾驶员或操作他们自己的车辆,本文描述的用于交互感知决策的系统和方法通过在其中存在模拟非协同或竞争代理(例如,数量N个代理中的一些)从而导致模拟器108可训练网络策略和/或数量N个代理的各种冲撞或碰撞场景的多代理环境中训练第一代理来解决该问题。例如,驾驶员类型中的非协同驾驶员可以在其自己的合并操作期间或在其他代理的合并操作期间进行加速。相反,驾驶员类型的协同驾驶员可以在合并到交通中之前提前减速,或在另一个代理的合并操作期间退让该另一个代理。
[0234] 此外,基于对多代理环境内的数量N个代理中的一个或多个所采取的行动的观察,模拟器108可注意到数量N个代理中的一个或多个的观察的驾驶员类型(例如,从第一代理的角度看)。换句话说,如果第一代理观察到第二代理以不符合该代理的车道优先级级别的方式行动,那么驾驶员类型管理器1502可以注意到第二代理是非协同驾驶员类型或基于观察而估计驾驶员类型。以此方式,模拟器108可以实现第一代理的训练以及多目标、多代理、多级交互感知决策网络策略的基于第一代理神经网络和第二代理神经网络的生成,从而结合CM3、道路优先级的概念、以及协同和非协同驾驶员的概念等。
[0235] 此外,在使用多代理强化学习和CM3的单行动者、双重评价方面时,用于交互感知决策的系统和方法可以结合自适应行为(IDAB)并且在合并场景下被应用于自主车辆。由于第一代理与数量N个代理中的其他代理之间的交互可能不同(例如,取决于其他代理的驾驶员类型),因此第一代理将在多代理环境中的训练期间学习不同的响应策略。具体地,所学习的网络策略一般相对于其他人的观察到的驾驶行为是自适应性的。另外,Q-掩码器1114可以被实现为采用掩码机制,该掩码机制促成更快速和更有效的学习过程。
[0236] 关于马尔可夫博弈,模拟器108可以定义具有由n∈[1,N]标记的数量N个代理的多代理马尔可夫博弈。马尔可夫博弈可以由描述所有代理的可能配置的一组状态S、一组部分n n观察O、以及每个代理的一组行动A来限定。优先级确定器1504和驾驶员类型管理器1502可以分别确定或生成车道优先级和驾驶员类型信息, 车道优先级和
驾驶员类型信息是可影响代理的行为的两个预先确定的参数。每个代理n可以经由模拟器
108根据随机策略πn:OnxBnxAn→[0,1]来选择它自己的行动,并且N个代理的联合行动根据转变函数T:S×A1×…×AN→S来将多代理环境移动到下一状态。每个代理可以接收奖励rn:
该奖励是状态、代理行为和代理行动的函数,以最大化其自己的总预
期回报 其中γ∈[0,1)是贴现因子,并且T是时间范围。
[0237] 在单代理环境和多代理环境两者内,行动者-评价方法可以用于不同强化学习任务。行动者可以是参数化策略,其限定了如何选择行动。评价可以是估计的状态-值函数,其评价了行动者所做行为。然后,模拟器108可以针对评价的估计而更新行动者的参数。
[0238] 一般来说,在单代理环境中,π由θ参数化,通过采用在 的方向上的步长使目标 最大化,其中预期 相对于由π引发的状态-行动分布。策略的梯度可以写为:
[0239]
[0240] 其中 是策略π的行动-值函数,b(st)是引入的基线,并且它们的不同被称为优势函数Aπ(st,at)
[0241] 通过选择值函数Vπ(st)作为基线并且使用时间差分(TD)误差作为优势函数的无偏估计,可以将优势函数重写为Aπ(st,at)≈r(st,at)+γVπ(st+1)-Vπ(st)。
[0242] 在多代理环境中,评价可以由模拟器108用关于其他代理的策略的完全状态-行动信息扩充,在这种情况下,行动者只能访问局部信息或观察到的信息。根据一个方面,通过使用反事实基线在多代理环境中处理信用分配:
[0243] b(s,a-n)=∑a,nπn(a′n|on)Q(s,(a-n,a′n))
[0244] 它使代理n的行动a边缘化并且允许集中评价推断仅代理n的行动改变的反事实。
[0245] 模拟器108可以训练单个行动者,诸如第一代理,以产生交互式和自适应驾驶行为、以及由所有数量N个代理共享的一对分散和集中评价。可以经由单代理环境和多代理环境提供两个学习目标,这两个学习目标对应于使代理在遵循规则的同时在不同场景中驾驶、以及与其他代理交互以在维持有效交通流动的同时进行更有效的合并。
[0246] 由于每个代理可以被分配有不同的个体奖励,以便学习不同行为,因此难以从联合奖励提取各种学习信号,并且由此可以从具有共享参数的每一个代理利用分散评价。分散评价可以为代理提供策略梯度,以学习如何在具有不同行为时通过遵循规则来在不同场景(例如,合并场景)下进行驾驶。代理(例如,第一代理)初始不一定对其他代理做出反应,并且将学习如何执行理性行动以完成其自己的任务,该任务可以被称为第一目标J1。相关联的策略梯度可以通过以下给出:
[0247]
[0248] 其中 是由φ1参数化的分散评价并且通过最小化损失来更新:
[0249]
[0250] 其中i是被采样的批次的数量,并且 是目标网络,其中参数 缓慢地更新到φ1。目标网络用于稳定训练过程。
[0251] 在多代理环境中,严格地遵循交通或优先级规则就可能不导致合并场景发生事故,应当考虑宏观级因素,诸如交通流速。就这一点而言,集中评价经由模拟器108可以促使每个代理彼此交互以维持交通流动并且获得联合成功。第二目标可以是目标J2。相关联的第二策略梯度可以通过以下给出:
[0252]
[0253] 其中可以利用本文讨论的反事实基线,并且通过考虑所有代理的联合奖励,集中评价可以被限定为:
[0254]
[0255] 。在由φ2参数化的情况下,通过最小化损失来更新集中评价:
[0256]
[0257] 其中 表示目标策略网络,并且 表示目标集中评价网络的参数。
[0258] 整体或组合策略梯度可以被限定为:
[0259]
[0260] 其中α∈[0,1]是两个目标J1(θ)和J2(θ)的加权因子。由于模拟器108利用两个单独的目标,因此可以利用课程学习。因此,模拟器108可以基于从第一策略梯度和第二策略梯度得到的组合或整体策略梯度而训练数量N个代理,该组合或整体策略梯度可以是基于第一代理神经网络和第二代理神经网络的多目标、多代理、多级交互感知决策网络策略。
[0261] 参考交互感知决策的自适应行为方面,模拟器108可以训练多目标、多代理、多级交互感知决策网络策略,该网络策略可以能够根据一个或多个行为参数来生成不同驾驶行为。网络策略可以基于状态、行动对和奖励函数r(s,a,b),该奖励函数包括考虑车道优先级级别b优先级和驾驶员类型b类型的变量。以此方式,当非协同驾驶员的车道优先级级别b优先级小于碰撞中牵涉的另一个代理的车道优先级级别时,奖励函数可以向非协同驾驶员分配负奖励。此外,奖励函数可以包括两个或更多个子奖励函数,该子奖励函数可以与驾驶行为r完成和r碰撞相关。如果相应代理在多代理环境中安全地驾驶(例如,而不导致或牵涉任何碰撞并且到达目标或目的地),那么模拟器108可以为每个代理分配一次性奖励。奖励值可以是r完成=f1(b类型)。例如,由于贴现因子γ,相比分配大的奖励,可以分配小的最终奖励以促使代理更快地完成任务或达到其目标,这引发了不太协同的驾驶员类型。
[0262] 如果两个或更多个代理碰撞或牵涉碰撞,那么可以将负奖励或惩罚分配给碰撞中牵涉的代理中的一个或多个,并且这可以基于所牵涉的相应代理的车道优先级级别而完成。换句话说,r碰撞=f2(b优先级)。作为示例,如果第一车辆(例如,一个代理)正在左转而第二车辆(例如,另一个代理)正在直行,并且两个代理发生碰撞,那么可以为第一车辆分配比第二车辆更多的负奖励,因为根据交通规则、公路布局或多代理环境,并且基于相应代理的定位,第二车辆具有先行权。以此方式,优先级确定器1504可以在训练数量N个代理(例如,在多代理环境中的级二训练)期间,当多代理环境中的两个或更多个代理之间发生碰撞时,基于相应代理的车道优先级,为碰撞所牵涉的相应代理分配负奖励或惩罚。
[0263] 如前所述,Q-掩码器1114可以被实现为策略网络的掩码机制,从而提高训练(例如,这可以在级一和级二训练中发生)的效率。以此方式,模拟器108不会探索已知会导致事故或破坏已知交通规则的行动,而是,模拟器108可以直接地进行关于如何在战术级上进行决策的代理、评价和策略训练,从而减少训练时间、计算在训练期间利用的资源、加强用于运行模拟器108的系统、计算机和/或处理器和存储器的操作。可以使用三种不同类型的掩码,包括车辆运动学(Mk)、交通规则(Mr)和安全系数(Ms)。在选择行动之前,模拟器108可以应用由Q-掩码器1114提供的掩码机制,使得通过从一组可能行动排除一组被掩码的行动来基于一组剩余行动而进行代理训练。一组被掩码的行动可以是M=(Mk)∪(Mr)∪(Ms)的并集。以此方式,Q-掩码器1114可以基于多代理环境的布局或第一代理和N个代理的定位而确定在时间间隔内应用于第一代理的一组可能行动的子集的掩码M。因此,模拟器108可以通过从一组可能行动排除一组被掩码的行动来基于一组剩余行动而训练代理。如先前所讨论,一组可能行动可以包括无操作行动、加速行动、减速行动、制动释放行动、向左位移一个子车道行动或向右位移一个子车道行动。
[0264] 用于交互感知决策的系统1500的通信接口150可以将多目标、多代理、多级交互感知决策网络策略传输到服务器160、或车辆170、180中的一个,从而传播网络策略并且相应地使相应自主车辆操作。自主车辆可以包括适于接收网络策略的车辆通信接口。另外,自主车辆可以包括一个或多个车辆系统,如上所述,该车辆系统可以包括自主驾驶系统、巡航控制系统、碰撞缓解制动系统、变速器系统、制动踏板系统、电子动力转向系统等。车辆的控制器可以根据多目标、多代理、多级交互感知决策网络策略来操作车辆的一个或多个车辆系统。
[0265] 图16是根据一个方面的用于交互感知决策的方法1600的示例性流程图。根据一个方面,用于交互感知决策的方法1600可以包括使用马尔可夫决策过程在单代理环境1602中基于第一策略梯度而训练第一代理并且基于第一损失函数而训练第一评价以学习一个或多个目标。用于交互感知决策的方法1600可以包括使用马尔可夫博弈在具有不同的驾驶员类型1604的多代理环境中基于第一策略梯度而训练数量N个代理、基于第一损失函数和第二损失函数而训练第二策略梯度和第二评价以学习目标中的一个或多个来将第二代理神经网络实例化。数量N个代理中的每一个可以与指示相应代理的协同级别的驾驶员类型相关联。用于交互感知决策的方法1600可以包括基于相应代理的位置和多代理环境的布局而分配车道优先级级别1606。当在多代理环境的代理中的两个或更多个之间发生碰撞时,基于相应代理的车道优先级级别而向碰撞所牵涉的相应代理分配负奖励1608或惩罚。用于交互感知决策的方法1600可以包括基于第一代理神经网络和第二代理神经网络而生成网络策略1610。
[0266] 图17是根据一个方面的其中策略网络生成根据用于交互感知决策的系统或方法发生的示例性场景。图17示出了包括使用优先级和驾驶员类型作为用于生成策略网络的输入的掩码机制的策略网络。在该示例中,利用在fc1、fc2、fc3等层(例如,全连接层)中的32个单元。开放和封闭观察由可包括两个尺寸为3×30、步幅为1×1的滤波器的
卷积神经网络(CNN)处理;fc3、fc5、fc6可以具有神经元,并且ReLU可以用作层的非线性激活函数。
[0267] 图18A至图18B是根据一个方面的分别与用于交互感知决策的系统和方法的级一训练和级二训练相关联的示例性数据流程图。图18A至图18B示出了所提出的两级课程学习结构。V是分散评价,其可能具有与策略网络相同的输入和网络结构。集中评价Q可以将所有代理的完整信息作为输入,并且可以连接到具有128个单元的两个FC层。
[0268] 图19A至图19D是根据一个方面的与根据用于交互感知决策的系统或方法训练代理相关联的示例性环境。图19A至图19D可以被实现为单代理环境或多代理环境。模拟器108可知道的环境的方面可以包括道路几何形状、速度限制、以及道路优先级级别规则或交通规则。
[0269] 在图19A中,公路或环境的第一道路是直行道1910,并且第二道路是包括合并车道1920的道路。因此,可以为在位置1902处的车辆分配比在1904或1906处的车辆更大的车道优先级级别。然而,可以为在另一个车辆足够前的地方的车辆(诸如在1904处的车辆)分配比在1906处的车辆更大的车道优先级级别。根据其他方面,在位置1906处的车辆可以具有比在1904处的车辆更大的车道优先级级别。
[0270] 在图19B中,公路或环境的第一道路是直行道1930,并且第二道路是包括合并车道1940的道路。因此,可以为在位置1932处的车辆分配比在1934或1936处的车辆更大的车道优先级级别。类似地,在位置1936处的车辆可以具有比在1934处的车辆更大的车道优先级级别。
[0271] 在图19C中,公路或环境的第一道路包括合并车道1950,并且第二道路是还包括合并车道1960的道路。可以为在位置1952和1954处的车辆分配相等的车道优先级级别,因为在这种场景下没有人拥有先行权。
[0272] 在图19D中,公路或环境的第一道路包括在竖直方向1970上的道路和在水平方向1980上的第二道路。当在1972处的车辆进行左转时,可以为在1972处的车辆分配比在1974处的车辆更大的车道优先级级别。
[0273] 又一方面涉及计算机可读介质,该计算机可读介质包括处理器可执行指令,该处理器可执行指令被配置为实现本文呈现的技术的一个方面。图20中示出了以这些方式设计的计算机可读介质或计算机可读装置的一个方面,其中实施方式2000包括计算机可读介质2008,诸如CD-R、DVD-R、闪存驱动器、
硬盘驱动器盘片等,计算机可读数据2006在该计算机可读介质上进行编码。该编码的计算机可读数据2006,诸如包括如2006所示的多个零和一的二进制数据,又包括一组处理器可执行计算机指令2004,该组指令被配置为根据本文阐述的原理中的一个或多个操作。在该实施方式2000中,处理器可执行计算机指令2004可以被配置为执行方法2002,诸如图3的方法300、图5A至图5B的方法、图12的方法1200或图16的方法1600。在另一个方面,处理器可执行计算机指令2004可以被配置为实现系统,诸如图1的系统100、图11的系统1100或图15的系统1500。许多此类计算机可读介质可以由本领域的普通技术人员设计,其被配置为根据本文呈现的技术进行操作。
[0274] 如本申请中所用,术语“组件”、“模块”、“系统”、“接口”等一般旨在是指计算机相关实体、
硬件、硬件和
软件的组合、软件或执行中的软件。例如,组件可以是但不限于是在处理器上运行的
进程、处理单元、对象、可执行程序、执行线程、程序或计算机。作为说明,在控制器上运行的应用程序和控制器两者都可以是组件。驻留在进程或执行线程和组件内的一个或多个组件可以位于一台计算机上或分布在两台或更多台计算机之间。
[0275] 此外,所要求保护的主题被实现为使用标准编程或工程技术以产生软件、
固件、硬件或它们的任何组合来控制计算机实现所公开的主题的方法、设备或制品。如本文所用的术语“制品”旨在涵盖可从任何计算机可读装置、载体或介质访问的
计算机程序。当然,在不脱离所要求保护的主题的范围或精神的情况下,可以对该配置做出许多修改。
[0276] 图21和以下讨论提供了用于实现本文阐述的规定中的一个或多个的方面的合适的计算环境的描述。图21的操作环境仅是合适的操作环境的一个示例,并且并不旨在对操作环境的使用范围或功能性提出任何限制。示例性计算装置包括但不限于个人计算机、服务器计算机、手持式或膝上型装置、移动装置(诸如
移动电话、个人数字助理(PDA)、媒体播放器等)、多处理器系统、消费者电子装置、小型计算机、大型计算机、包括上述系统或装置中的任一个的分布式计算环境等。
[0277] 一般来说,在“计算机可读指令”可由一个或多个计算装置执行的一般上下文中描述各方面。计算机可读指令可以经由计算机可读介质分发,如下面将讨论。计算机可读指令可以被实现为执行一个或多个任务或实现一个或多个抽象数据类型的程序模块,诸如函数、对象、
应用程序编程接口(API)、数据结构等。通常,计算机可读指令的功能性根据需要在各种环境中组合或分布。
[0278] 图21示出了包括被配置为实现本文提供的一个方面的计算装置2112的系统2100。在一种配置中,计算装置2112包括至少一个处理单元2116和存储器2118。取决于计算装置的确切配置和类型,存储器2118可以是易失性的(诸如RAM)、非易失性的(诸如ROM、闪存存储器等)或这两者的组合。该配置在图21中由虚线2114示出。
[0279] 在其他方面,计算装置2112包括附加特征或功能。例如,计算装置2112可以包括附加存储装置,诸如可移动存储装置或不可移动存储装置,包括但不限于
磁性存储装置、光学存储装置等。这种附加存储装置在图21中由存储装置2120示出。在一方面,用于实现本文提供的一个方面的计算机可读指令在存储装置2120中。存储装置2120可以存储其他计算机可读指令以实现操作系统、应用程序等。例如,计算机可读指令可以加载到存储器2118中以供处理单元2116执行。
[0280] 如本文所用的术语“计算机可读介质”包括计算机存储介质。计算机存储介质包括在用于存储信息(诸如计算机可读指令或其他数据)的任何方法或技术中实现的易失性和非易失性、可移动和不可移动介质。存储器2118和存储装置2120是计算机存储介质的示例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存存储器或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光学存储装置、盒式磁带、磁带、磁盘存储装置或其他磁性存储装置,或可用于存储期望的信息并且可由计算装置2112访问的任何其他介质。任何此类计算机存储介质都是计算装置2112的一部分。
[0281] 术语“计算机可读介质”包括通信介质。通信介质通常以“经调制的数据信号”(诸如载波或其他传输机制)来体现计算机可读指令或其他数据并且包括任何信息传递介质。术语“经调制的数据信号”包括以对信号中的信息进行编码的方式设置或改变其特性中的一个或多个的信号。
[0282] 计算装置2112包括输入装置2124,诸如
键盘、
鼠标、笔、语音输入装置、触摸输入装置、红外相机、视频输入装置或任何其他输入装置。输出装置2122(诸如一个或多个显示器、扬声器、
打印机或任何其他输出装置)可以包括在计算装置2112中。输入装置2124和输出装置2122可以经由有线连接、无线连接或它们的任何组合连接到计算装置2112。在一方面,来自另一个计算装置的输入装置或输出装置可以用作计算装置2112的输入装置2124或输出装置2122。例如,计算装置2112可以包括通信连接2126,以便于进行与一个或多个其他装置2130的通信,诸如通过网络2128。
[0283] 尽管用特定于结构特征或方法动作的语言描述了本主题,但是应当理解,所附
权利要求书的主题不一定限于上述具体特征或动作。相反,上述具体特征和动作是作为示例性方面被公开。
[0284] 在本文提供了各方面的各种操作。描述操作中的一个或多个或全部的次序不应被解释为暗示这些操作必须是按次序的。将会基于该描述而知道替代排序。此外,并非所有操作都必须要存在于本文提供的每个方面中。
[0285] 如本申请中所用,“或”旨在表示包括性“或”而非排他性“或”。此外,包含性“或”可以包括它们的任何组合(例如,A、B或它们的任何组合)。另外,除非另外指明或从上下文清楚指向单数形式,否则如本申请中所用的“一个”和“一种”一般被解释为表示“一个或多个”。另外,A和B中的至少一个和/或相似的表达一般表示A或B或A和B两者。此外,就“包括(includes)”、“具有(having)”、“具有(has)”、“带有”或它们的变体在详细描述或权利要求书中使用来说,此类术语旨在以与术语“包括(comprising)”类似的方式是包括性的。
[0286] 此外,除非另有说明,否则“第一”、“第二”等并不表示暗示时间方面、空间方面、排序等。相反,此类术语仅用作特征、要素、项等的标识符、名称等。例如,第一信道和第二信道一般对应于信道A和信道B或两个不同或两个相同的信道、或同一信道。另外,“包括(comprising)”、“包括(comprises)”、“包括(including)”、“包括(includes)”等一般表示包括(comprising)或包括(including)但不限于。
[0287] 将会理解,上面公开的特征和功能以及其他特征和功能中的各种特征和功能或它们的替代物或变体可以理想地组合成许多其他不同系统或应用。此外,本领域的技术人员可以之后做出本文的各种目前无法预料或无法预期的替代、修改、变化或改进,这些也旨在涵盖在所附权利要求书中。