一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

针对视觉输入的形式上安全的符号化强化学习的制作方法

2022-07-24 00:59:24 来源:中国专利 TAG:


1.本公开的实施例涉及使用视觉模板来将视觉输入映射到符号化状态空间中的深度强化学习算法。


背景技术:

2.相关技术的讨论:
3.用于物理系统(例如自驾汽车和飞机防撞系统)的控制软件必须确保安全系统操作的最高置信度。形式验证提供了一种用于确保这些系统的安全性的严格方法,但是通常假设控制策略是在符号化状态空间上定义的;即从高级变量到具体数值的映射。例如,用于自适应巡航控制系统的形式验证的控制策略将假定所有相关车辆的平面坐标作为输入。尽管这些验证的模型提供了强的安全保证,但是它们通常是高度不确定的,因此不能解释如何实现控制目标。
4.强化学习(rl)是一种机器学习方法,其中代理与其环境交互以学习执行任务。众所周知的任务示例包括游戏,例如围棋、国际象棋和各种计算机游戏。在每个状态,例如当前板设置,代理选择动作,例如快速到a4。代理接收针对好动作的奖励(例如赢得游戏),或针对坏动作的处罚。随着时间的过去,代理学会行动以最大化其奖励。安全rl是rl的一种变体,其中一些动作被限制以避免破坏代理或环境。在用于交通工具的控制系统的情况下,例如汽车和其它陆基机动交通工具、飞行器、船和水下交通工具,rl代理是交通工具本身的代表。安全rl需要关于什么状态和动作是安全的规范。
5.以前对于安全rl的方法包括提供模型(例如环境的模拟器)和安全状态集合,以及模拟每个动作以检查安全性。然而,如果没有可用的模型,则该方法是不适用的。最近对于安全强化学习的几种方法解释了如何利用控制系统的形式上验证的非确定性模型来提供对强化学习代理的安全性约束。对于形式上受约束的rl的许多现有方法假定代理是在世界的符号化表示上进行优化,例如自适应巡航控制问题,其中引导车厢和跟随车厢的位置和速度作为输入被提供给控制系统。类似地,可以在假设相关状态变量作为输入被提供的符号化状态空间上学习控制策略。
6.另一种方法涉及使人示范安全动作。然而,这种方法难以安全地推广到人类未示范的状态,并且难以安全地改善人类的表现。在另一种方法中,人监督代理训练,并且防止和惩罚不安全的动作。这种方法需要来自领域专家的大量时间,并且所学习的安全规则是不可解释的。
7.不幸的是,现实世界系统不具有给出关于世界状态的真实情况的这种类型的预言机(oracle)。这里,预言机是(理论的,而非实际的)函数,其总是返回正确的答案,但是其实现是未知的或不可行的。相反,机器人必须通过处理从传感器(例如相机和lidar)获得的高维输入来在安全性关键的设置中做出决定。将这些视觉输入的每个可能相关的方面手动映射到符号化状态空间是耗时的并且通常是难以处理的。这种观察以及对视觉问题的深度学习的有效性激发了深度强化学习算法的开发,其中代理直接在视觉输入上学习策略。
8.受约束的强化学习(rl)确保rl代理仅通过对动作空间强制执行形式上指定的约束来采取安全动作。针对形式上受约束的rl的现有方法假定从例如图像的原始输入到符号化状态空间的谕示映射。不幸的是,这种假设没有解决正确感知世界的基本和困难的任务。对符号化状态的学习还涉及构造这样的符号化状态空间,该符号化状态空间捕获与奖励信号相关的环境的每个方面。
9.针对形式上受约束的强化学习的现有方法通常在训练期间约束动作空间,从而在训练过程期间留下可能不安全的状态完全未被探索。这引起了对泛化的关注:经训练的系统是否即使在用于构建安全性约束的建模假设中存在不准确性时也保持安全?除了一些初步工作建议可以使用建模假设来构造奖励信号之外,这个问题仍然在很大程度上未被探索。
10.背景和相关工作分成三个大类:符号化强化学习,安全强化学习(重点在于可验证的/形式上的安全强化学习),和形式的规范/验证。若干作者已经提出在强化学习中利用符号化映射。对符号化rl的现有工作试图学习整个状态空间的完全符号化表示。此外,没有关于符号化强化学习的现有工作考虑到系统的安全性约束正在被优化。安全性约束可经由奖励结构被结合到符号化rl中,但这在安全性关键情形中是不够的,在安全性关键情形中避免灾难性状态比优化总奖励更重要。有时,可以选择确保最优策略将保持安全性约束的奖励结构,但是即使在那些情况下,符号化强化学习算法在训练过程期间也不提供安全性保证。对符号化rl的其它近期工作集成了基于rl的模型和符号化规划。
11.将深度神经网络(dnn)集成到rl中有助于对先前难处理的问题(例如,直接在相机输入上学习控制策略的视频游戏和机器人)进行规模强化学习。深度rl提供了优于传统rl方法的关键优点,传统rl方法受到手动、耗时且通常不完整的特征工程过程的瓶颈。
12.尽管有这些实质的益处,深度rl算法不提供基于第一原理的形式的和可解释的安全性保证。在训练期间尤其如此,其中代理在学习针对安全性进行优化之前可能必须观察相当数量的灾难性事件,并且即使这样,只有当奖励功能被仔细地黑客攻击时才能观察到。


技术实现要素:

13.本公开的示例性实施方式涉及一种指定并实施安全性约束以便生成针对rl代理的受约束动作以避免破坏其自身/环境的系统和方法。本公开的实施例采用关于什么状态/动作是安全的规范作为来自领域专家的输入,并且不需要任何环境模型。根据一实施方式的系统可以学习端对端策略,并通过从视觉输入学习基于模板的映射来强制实施安全性约束以创建系统状态的部分符号化表示。本公开的实施例泛化到复杂的视觉输入。实验评估表明,根据实施例的系统可以安全地学习并且优化仅在原始视觉输入上能观察的目标。根据本公开的实施例的系统将是制造机器人硬件或软件产品(例如自主的交通工具)或向那些行业部门提供服务的任何公司所感兴趣的。
14.根据本公开的实施例,提供了一种用于训练控制软件以使用视觉输入来强化安全性约束的方法,包括:使用用于图像中的每个对象的视觉模板来针对强化学习(rl)代理的动作空间的图像中的每个对象执行模板匹配,其中rl代理的动作空间的图像中的每个对象被检测;将每个检测到的对象映射到针对每个对象的在rl代理的动作空间的图像中的平面坐标的集合;通过将针对rl代理的动作空间的安全性规范应用于针对rl代理的动作空间的
图像中的每个对象的坐标的变量集合,来确定用于rl代理的安全动作的集合;针对rl过程的当前状态向rl代理输出该安全动作的集合;以及在所述rl代理采取动作之前防止rl代理执行不安全的动作。
15.根据本公开的另一实施方式,针对rl代理的动作空间的图像中的每个对象执行模板匹配包括:使用用于每个对象的视觉模板,来在rl代理的动作空间的图像中的每个对象周围放置边界框。
16.根据本发明的另一实施例,将每个检测到的对象映射到针对每个对象的在rl代理的动作空间的图像中的平面坐标的集合包括:将每个边界框的重心映射到rl代理的动作空间的图像中的每个对象的平面坐标。
17.根据本公开的又一实施方式,该方法包括通过增强rl代理的动作空间的单个标记图像中的数据,从图像中移除所有模板,随机采样多个模板,增强多个模板中的每一个,使用模板掩模将多个模板中的每一个随机放置在图像中,来训练针对每个对象的模板匹配,其中创建多个图像,以及使用多个图像来训练模板匹配,
18.根据本发明的另一实施例,增强所述单个标记图像中的数据包括以下中的一个或多个:随机调整所述图像的亮度,裁剪所述图像,或所述图像的左右翻转,并且增强所述多个模板中的每一个包括以下中的一个或多个:所述模板的左右翻转,旋转所述模板,或从所述模板中丢弃像素。
19.根据本发明的另一实施例,rl代理是自控陆基机动交通工具、自控航空机动交通工具、自控漂浮水上机动交通工具或自控水下机动交通工具中的一个。
20.根据本发明的另一实施例,所述方法包括:使用在当前rl步骤处针对每个对象的平面坐标的集合与先前rl步骤处针对每个对象的平面坐标的集合之间的差别,来推断每个对象的潜在动作。rl代理使用其动态知识和安全性规范来构造约束,该约束确保rl代理仅在以下情况下才采取动作,即在采取动作之后且然后随有所有先前观察到的状态转变中的最坏可能结果时,安全性规范在未来的一步中仍然得到满足。
21.根据本公开的另一实施例,安全性规范包括以形式逻辑针对图像中的每个对象指定的多个安全性约束。
22.根据本公开的另一实施例,提供了一种用于训练控制软件以强化运行该控制软件的强化学习(rl)算法中的安全性约束的方法,包括:从每个安全性相关对象的样本观察中形成在输入图像中的一个或多个安全性相关对象的视觉模板;从输入图像中的每个安全性相关对象的视觉模板中确定针对每个安全性相关对象的坐标;通过使用针对每个安全性相关对象的坐标来在rl算法中实施针对rl代理的安全性约束;以及在rl代理采取动作之前防止rl代理执行不安全的动作。
23.根据本发明的另一实施例,从输入图像中的每个安全性相关对象的视觉模板确定每个安全性相关对象的坐标包括通过使用用于每个对象的视觉模板来放置每个安全性相关对象的边界框,以及将每个边界框的重心映射到输入图像中的每个安全性相关对象的坐标。
24.根据本公开的另一实施方式,在rl算法中实施针对rl代理的安全性约束包括:接收用于rl代理的安全性规范,从安全性规范和每个安全性相关对象的坐标中确定安全性约束,其中rl代理的每个动作被标记为安全或不安全,以及防止rl代理执行不安全的动作。
25.根据本发明的另一实施例,rl代理是自控陆基机动交通工具、自控航空机动交通工具、自控漂浮水上机动交通工具或自控水下机动交通工具中的一个。
26.根据本公开的另一实施例,提供了一种计算机可读的非暂时性程序存储设备,其有形地体现指令程序,该指令程序由计算机执行以执行用于训练控制软件以使用视觉输入来强化安全性约束的方法步骤。
27.根据一个方面,提供了一种用于训练控制软件以使用视觉输入来强化安全性约束的方法,所述方法包括以下步骤:使用用于图像中的每个对象的视觉模板来执行针对强化学习(rl)代理的动作空间的所述图像中的每个对象的模板匹配,其中,所述rl代理的动作空间的所述图像中的每个对象被检测;将每个检测到的对象映射到针对每个对象的在所述rl代理的动作空间的图像中的平面坐标的集合;通过将针对所述rl代理的动作空间的安全性规范应用于针对所述rl代理的动作空间的图像中的每个对象的坐标的变量集合,来确定用于所述rl代理的安全动作的集合;针对rl过程的当前状态向所述rl代理输出所述安全动作的集合;以及在rl代理采取动作之前,防止rl代理执行不安全的动作。
28.根据另一方面,提供了一种用于训练控制软件以强化运行控制软件的强化学习(rl)算法中的安全性约束的方法,所述方法包括以下步骤:从每个所述安全性相关对象的样本观察中形成在输入图像中的一个或多个安全性相关对象的视觉模板;从输入图像中的每个安全性相关对象的视觉模板中确定针对每个安全性相关对象的坐标;通过使用针对每个安全性相关对象的坐标,在rl算法中实施针对rl代理的安全性约束;以及在rl代理采取动作之前,防止rl代理执行不安全的动作。
29.根据另一方面,提供了一种计算机可读的非暂时性程序存储设备,有形地体现指令程序,该指令程序由计算机执行以执行用于训练控制软件以使用视觉输入来强化安全性约束的方法步骤,所述方法包括以下步骤:使用用于图像中的每个对象的视觉模板,来针对强化学习(rl)代理的动作空间的所述图像中的每个对象执行模板匹配,其中,所述rl代理的动作空间的所述图像中的每个对象被检测;将每个检测到的对象映射到针对每个对象的在所述rl代理的动作空间的图像中的平面坐标的集合;通过将针对所述rl代理的动作空间的安全性规范应用于针对所述rl代理的动作空间的图像中的每个对象的坐标的变量集合,来确定用于所述rl代理的安全动作的集合;针对rl过程的当前状态,向所述rl代理输出所述安全动作的集合,以及在所述rl代理采取动作之前,防止所述rl代理执行不安全的动作。
30.根据另一方面,提供了一种用于训练控制软件以使用视觉输入来增强安全性约束的系统,所述系统可操作以:使用用于图像中的每个对象的视觉模板,来执行针对强化学习(rl)代理的动作空间的图像中的每个对象的模板匹配,其中,所述rl代理的动作空间的图像中的每个对象被检测;将每个检测到的对象映射到针对每个对象的在所述rl代理的动作空间的图像中的平面坐标的集合;通过将针对所述rl代理的动作空间的安全性规范应用于针对所述rl代理的动作空间的图像中的每个对象的坐标的变量集合来确定用于所述rl代理的安全动作的集合;针对rl过程的当前状态向所述rl代理输出所述安全动作的集合;以及在rl代理采取动作之前防止rl代理执行不安全的动作。
31.根据另一方面,提供了一种用于训练控制软件以强化运行所述控制软件的强化学习(rl)算法中的安全性约束的系统,所述系统可操作以:从每个安全性相关对象的样本观察中形成在输入图像中的一个或多个安全性相关对象的视觉模板;从所述输入图像中的每
个安全性相关对象的视觉模板中确定针对每个安全性相关对象的坐标;通过使用针对每个安全性相关对象的坐标来在rl算法中实施针对rl代理的安全性约束;以及在rl代理采取动作之前防止rl代理执行不安全的动作。
附图说明
32.现在将参考附图仅通过示例的方式描述本发明的实施例,在附图中:
33.图1a是根据本公开的实施例的计算机视觉和强化学习代理系统的框图;
34.图1b图示了根据本公开的实施例的应用于路跑者(roadrunner)计算机游戏环境的端到端深度强化学习算法;
35.图2a示出了路跑者游戏环境;
36.图2b示出了根据本公开的实施例的路跑者和郊狼(coyote)的符号化映射;
37.图2c示出了根据本公开的实施例的单个标记的模板图像;
38.图2d示出了根据本公开的实施例的一组示例性训练图像;
39.图3a根据本公开的实施例比较了在xo环境中在训练期间的安全性违规的数量;
40.图3b示出了根据本公开的实施例在xo环境中在训练期间的累积奖励;
41.图3c示出了根据本公开的实施例当在xo环境中惩罚不安全动作尝试时的安全泛化能力,其中惩罚(“不安全奖励”≠0)使系统性能降级;
42.图3d比较根据本公开的实施例的在奔跑者环境中训练期间的安全违规的数量;
43.图3e示出了根据本公开的实施例的在路跑者环境中在训练期间的累积奖励;
44.图3f示出了根据本公开的实施例的每当尝试不安全动作时当在训练期间应用“不安全奖励”(惩罚)时的回报的比较;
45.图3g示出了xo环境;
46.图4是实现本公开的实施例的示例性云计算节点的示意图;以及
47.图5示出了根据本公开的实施例的示例性云计算环境。
具体实施方式
48.如本文所述的本公开的示例性实施方式一般地提供了使用视觉模板来将视觉输入映射到符号化状态空间中的深度强化学习算法。虽然实施例易于进行各种修改和替换形式,但是其具体实施例在附图中以示例的方式示出并且将在此详细描述。然而,应当理解,不旨在将本公开限制于所公开的特定形式,而是相反,本公开将覆盖落入本公开的精神和范围内的所有修改、等效物和替代方案。
49.本公开的示例性实施例提供了一种将符号化安全性约束并入到在视觉输入上学习策略的端到端强化学习算法中的框架。本公开的实施例不假设存在给出当前状态的完整符号化表示的预言机,并且不假设代理的策略或值函数是在符号化状态空间上定义的。根据实施例的系统使用视觉模板匹配来从视觉数据提取安全性相关的符号化特征,例如代理的位置和代理应当避开的任何障碍物。然后,这些符号化特征被用于实施形式的安全性约束,但不被用作学习策略的实际域。
50.根据本公开的实施例的系统提供了一种用于对视觉输入进行形式上安全的端到端强化学习的系统,该系统不依赖于用于从视觉输入映射到其上定义了形式模型的符号化
状态空间的预言机,以及在给定更高级别的形式安全性规范(即,最终安全性目标)(例如碰撞避免)的情况下,一种用于学习对动作的防护的系统,动作诸如其中左转安全的状态集合。
51.指定安全性控制器
52.根据一个实施例,差分动态逻辑(dl)将被用于指定对代理的动作空间的安全性约束。dl是用于指定和证明离散时间动态系统和连续时间动态系统两者的可达性属性的逻辑。动态系统由混合程序(hp)指定,混合程序是一种将命令式程序与微分方程组组合的简单编程语言。hp的语法和非正式语义如下:
53.α;β执行α,然后执行β。
54.α∪β不确定地执行α或β。
55.α*不确定地重复α的零次或更多次。
56.x:=θ对项θ求值,并且将结果分配给x。
57.x:=*对x分配任意的实数值。
58.{x
′1=θ1,...,x
′n=θn&f}是xi沿着对于约束到由f定义的域的系统的解的连续演进。
59.?f如果公式f不为真,则f中止。
60.dl的公式由以下语法生成:
[0061][0062]
其中f,g是实数算术的多项式,~是{≤,<,=,>,≥}中的一个,而[a]的含义是在通过执行程序α可以达到的每个状态中都为真。dl的公式可以在keymaera x定理证明者中陈述和证明。给定这样的规范,可以在符号化状态空间上构造用于强化学习算法的安全动作的集合,在此称为安全监视器。根据实施例,安全性约束是以dl原语陈述的,但是证明不是针对安全性约束构造的。
[0063]
概述
[0064]
根据实施例的指定和实施安全性约束的系统和方法不需要环境模型,并且可应用于复杂(视觉)状态空间。根据实施例的系统允许领域专家指定高级安全性约束,将视觉输入映射到高级特征以检查约束,并使用可解释的安全规则。这减少了领域专家指定安全性约束所需的时间。根据实施例的系统可以防止代理采取不安全的动作。在用于物理系统的控制软件的上下文中,代理将是自动化的自控制交通工具,例如自驾驶或机器人机动交通工具、机器人船或潜水艇、或自控制无人驾驶飞行器。
[0065]
示例现实世界应用是亚马逊式仓库中的机器人。机器人需要将货物堆从仓库带到人工打包机。安全性约束将控制机器人的被允许位置和速度,其将针对其它机器人、人类工作者和货物堆被分开地定义。
[0066]
根据实施例的计算机视觉和强化学习代理系统将以下作为输入:(1)来自领域专家的高级(符号化)安全性约束;(2)规范化对象表示;以及(3)来自强化学习环境的视觉输入。根据实施例的系统不使用模型。根据实施例的计算机视觉和强化学习代理系统从视觉输入映射到符号化特征,检查符号化约束,并在环境中执行动作。根据实施例的计算机视觉和强化学习代理系统的输出是(1)当前状态下的安全动作的集合,以及(2)安全控制策略。
[0067]
图1a是根据实施例的计算机视觉和强化学习代理系统的框图。根据实施例的系统
包括强化学习循环110和安全系统120。强化学习循环110包括视觉观察111、代理112、动作113、环境114和奖励115。安全系统120包括领域专家121、对象表示122、符号化映射123、符号化特征124、符号化约束125和安全动作126。
[0068]
在强化学习循环110中,在每个状态,例如当前板设置,代理112基于当前环境114的视觉观察111选择动作113,例如,到a4的车。动作113改变环境114,并且代理112接收对好动作的奖励115,例如赢得游戏,或者对坏动作的处罚。随着时间的过去,代理学会行动以最大化其奖励。在根据实施例的计算机视觉和强化学习代理系统中,视觉观察111由安全系统120在符号化映射过程123中使用以确定安全动作126,其被提供给代理112。这些将在下面详细描述。
[0069]
根据实施例,领域专家121提供了在高级特征方面(例如对象)和它们的属性(诸如位置)的符号化约束125。符号化约束125指定条件以及如果满足该条件则哪些动作是不安全的。例如,“如果汽车在你的左边附近并且既不在你的上方也不在你的下方,则不向左移动”可以被象征性地表示为
[0070]
(0<agent.x-car.x<5)&(abs(agent.y-car.y)<5):{left}。
[0071]
根据实施例,领域专家121还提供系统中的每个对象的规范化表示122。根据观察111,代理可以接收例如图像,专家121标明哪些对象在图像中的何处。例如,在图2a所示的ai路跑者游戏中,代理人是路跑者210,并且郊狼220是不安全的对象。框212、222是专家注释。
[0072]
根据实施例的系统使用系统中的针对每个对象的规范化表示122来创建从视觉输入111到符号化特征124的映射123。来自其它计算机视觉任务的预先训练的模型可用于避免对许多标记数据的需要。可以针对从模板图像生成的数据执行进一步的训练。图2b中的路跑者210和郊狼220的符号化映射产生以下符号化特征:(roadrunner,x=100,y=124),(coyote,x=130,y=129)。
[0073]
根据实施例的系统评估关于对象的每个可能分组的符号化约束125,并且仅允许在每个约束125下安全的那些动作126。例如,给定符号化特征(roadrunner,x=100,y=124)、(coyote,x=130,y=129),符号化约束(abs(coyote.y-roadrunner.y)<6)&(0<coyote.x-roadrunner.x<31):{right},和可能动作集合{左,右,上,下},根据实施例的约束评估产生以下安全动作126:{左,上,下}。这些安全动作126被提供给代理112以供从中选择。
[0074]
根据实施例的安全系统与rl代理集成以通过多种方式实施安全性。安全性动作可以通过最高安全q值选择,通过从安全动作上的策略分布中采样选择,或随机均匀地选择。对试图不安全的处罚可以教导代理将安全性泛化到意外从约束中省略的状态。然而,强烈的惩罚可能导致过度谨慎的行为。在探索和安全刚度之间存在折衷。代理的训练可以考虑其安全和不安全的原始动作,或者使用安全动作来代替。
[0075]
下面提供根据实施例的方法和结果的详细实现。
[0076]
在视觉输入上的安全rl
[0077]
本公开的实施方式可以提供端到端深度强化学习算法,该算法使用视觉模板来将视觉输入映射到符号化状态空间中,该符号化状态空间可以用于对代理的动作空间实施安全性约束。基本框架如上所述在图1a中示出。在学习之前,领域专家提供以dl或另外的编程
语言/逻辑编写的安全性规范。根据实施例的安全性规范是安全性约束的集合。除了这些符号化约束之外,领域专家还为符号化安全性约束中提到的每个对象提供视觉模板。在学习期间使用这些规范化对象表示以从视觉输入提取符号化状态。于是,用安全性监视系统来增强标准的端到端深度强化学习算法,该安全监视系统将每个视觉输入映射到符号化特征空间中,应用符号化安全性约束,并输出针对当前状态的安全动作的集合。
[0078]
图1b图示了根据应用于路跑者环境100的实施例的端到端深度强化学习算法。在图1b中,对象模板160用于检测在路跑者环境的视觉表示100中的对象,例如路跑者131、郊狼141和汽车151。从检测到的对象导出的符号化约束与作用于视觉表示100的策略网络150的输出组合,以学习安全性监视器180,其是用于路跑者的安全动作的集合。注意,符号化映射仅用于实施安全性约束,并且用于实施安全性的符号化表示不是预言机,而是使用模板匹配算法学习的。在该游戏中,在位置(rr.x,rr.y)处的路跑者131必须在拾取鸟食时避开在位置(co.x,co.y)处的郊狼141和位置(car.x,car.y)处的汽车151,鸟食在符号化状态中未被表示。总体安全性规范是针对这两个障碍的碰撞避免:
[0079]
(rr.x≠car.x∨rr.y≠car.y)∧(rr.x≠co.x∨rr.x≠co.y)
ꢀꢀꢀ
(1)
[0080]
根据实施例,模板匹配用于围绕路跑者132、郊狼142(对抗障碍)和汽车152(移动障碍)放置边界框。然后,将这些边界框的重心映射到每个对象的x和y坐标的变量。然后,在这些变量上定义的符号化安全性约束被用来约束可用动作的集合。例如,列表1是针对路跑者环境的若干约束之一。该约束表明,当汽车在路跑者东北部时,路跑者可能不能向上或竖直(向上和向右)移动。对于汽车、路跑者和郊狼的其它配置的动作的类似约束可以防止碰撞。
[0081]
列表1:针对路跑者环境的安全性约束的示例。
[0082][0083]
列表1中的约束是由人(即领域专家),根据安全性规范的组合(在这种情况下为eq(1)),以及通常隐式的但优选地显式的环境模型,系统地构建的。根据另一个实施例,通过将例如等式(1)的安全性规范作为输入,并在其学习过程开始时从一些初始实验推断在给定其关于世界如何行为的观察的情况下如何保持安全性规范,来构造例如列表1中的动作约束。本公开的实施例可提供安全rl方法,该方法从视觉输入自动学习环境的形式符号化动态模型。
[0084]
构建符号化映射
[0085]
根据实施例,符号化安全性约束是在安全性相关对象的平面坐标方面陈述的,这意味着支持位置方面的安全性约束,而不是在速度方面陈述的约束。大多数现有的方法针对位置方面的形式上安全的rl状态安全性约束。检测在输入图像中的每个安全性相关对象
的平面坐标需要对所有安全性相关对象进行样本观察。所有安全性相关对象的这些样本观察将形成每个对象的视觉模板的一部分。这些样本观察由人提供,该人利用用边界框和分割掩模标记的所有安全性相关对象来标记来自环境的至少一个样本观察。这个人是上述领域专家。该人标记每个类别的安全性相关对象的至少一个实例,但不需要标记该对象的每个实例。例如,可以有多个汽车进入和离开场景。人必须标记一辆车,但不需要标记进入场景的每一辆单个汽车。掩模是可选的,但是可以提高映射的精度。对于在约束中提到的每个符号化对象,该规范化视觉表示用于将视觉输入映射到安全性相关对象的平面坐标的集合。注意,对象的规范化视觉表示是从对象的视觉模板获得的,并且可以与视觉模板相同。也可以是这样的情况,即规范化视觉表示是视觉模板的扰动版本。此外,标记图像应当是样本观察,而不是仅仅是安全性相关对象本身的剪切图像,从而使得标记图像的背景可以用于数据增强,如下所述。
[0086]
根据一实施例,一旦发现视觉模板,模板和图像就可被传递到模板匹配函数,该模板匹配函数返回图像中与模板匹配的部分的坐标(x,y)作为输出。根据实施例,这些(一个或多个)(x,y)坐标对应于视觉模板中感兴趣对象周围的边界框的重心。例如,根据实施例的符号化映射的非限制性实现方式如下。
[0087][0088][0089]
根据本公开的实施例,在cheng等人所著的“qamt:用于深度学习的质量感知模板匹配(qamt:quality-aware template matching for deep learning)”(ieee会议关于计算机视觉和模式识别的学报,11553-11562(2019),其内容通过引用整体并入本文)中公开的质量感知模板匹配(qatm)算法的变体被用于检测视觉输入中的对象,其匹配用户提供的安全性相关对象的模板。qamt是一种端到端可辨模板匹配算法,意味着其参数是可训练的。
算法1给出了根据实施例的用于将视觉输入映射到符号化特征的方法的概述。下面更详细地描述每个步骤。输入和输出是
[0090]
·
f:针对任何任务预训练的cnn,其中图像作为输入。这意味着已经学习了包含关于一般图像的相关特征的表示。在该cnn的表示空间中执行模板匹配。
[0091]
·
i:正在针对由模板指定的所有对象的位置而查询该图像。
[0092]
·
t:模板图像的集合,每个模板图像用于要检测的每个对象。
[0093]
·
α
t
:针对每个模板的softmax温度参数。
[0094]
·
τ
t
:针对每个模板的阈值;对于发生检测,模板匹配分数应当超过这个分数(也存在另一个条件,如下所述)。
[0095]
·
conv
t
:针对每个模板的分开的卷积层。在每层中使用的核的大小与对应的模板图像的大小匹配。当这些被训练时,它们将使其使得每个模板的模板匹配分数聚焦于对于该模板最有辨别力的像素位置。还添加了模板特定的补零层,使得即使在利用不同内核大小卷积之后,所有模板的分数图也是相同的,但是为了清楚起见,这被省略。
[0096]
·
sym_state:字典,其中键是模板,并且值是图像中模板对象的每个检测到的实例的(x,y)位置的列表。
[0097]
根据实施方式的符号化映射包括三个部分:qamt算法(上面的第3行,包括修改;从qamt得分检测对象(上面的第4-13行);以及训练模型。
[0098]
qatm
[0099]
特征提取器f可以是任何预训练的cnn。模板匹配将使用所学习的cnn的表示而不是在原始像素空间中完成。因为模板匹配任务可能不同于特征提取器被训练的原始任务,所以提取的特征取自不在网络的输出层附近的层。根据一个实施例,使用与原始qamt论文中相同的设置:特征提取器是在图像数据库上预训练的深度卷积神经网络,并且使用来自第二和第十六层的特征。在更多的池化发生之后,双线性内插被用于将来自第十六层的特征调整大小为与来自第二层的特征相同的大小。然后,将来自这两层的特征图串接起来,以产生最终的特征张量。传递到符号化映射的图像i是来自环境的全分辨率rgb观察结果。尽管为了效率使用较低分辨率的灰度图像作为ppo的输入,但是根据实施方式的符号化映射利用原始观察更准确。由于保持安全性如此关键,这值得降低效率,这主要与训练有关。根据实施例的算法仍可以每秒处理多于100个帧,这对于实时推断是足够的。符号化映射所使用的模板t是使用给定的边界框从专家注释图像中剪切的。如果提供了分割掩模,则不属于该对象的那些像素可以被设置为背景值。零用于路跑者环境,但是对xo环境中的模板不进行改变,因为对象本身具有像素值0。下面将讨论模板特定温度α
t
、阈值τ
t
和卷积层conv
t

[0100]
根据实施例,在串接来自两个层的特征映射之后,可训练的卷积层被添加到qamt的特征提取器,并且针对每个模板训练分开的平滑层和softmax温度。关于qamt功能如何工作的全部细节,参见cheng等人的著作。简而言之,cheng的方法首先使用特征提取器计算图像和模板的特征。在每个位置处的这些特征之间的相似性使用在通道维度上的张量积来计算。于是使用给定温度计算两个softmax阵列:一个在模板的维度上,一个在图像的维度上。这些被逐元素地相乘,并且在模板的维度上取最大值以获得在每个位置处的qatm得分,其是预测的匹配概率。
[0101]
从分数图中检测对象
[0102]
根据实施例,为了从分数图获得检测,选择具有比其邻居更大的分数并且达到模板特定阈值的所有位置。检测具有局部最大分数的位置可以通过检查在一个位置处的分数是否等于以该位置为中心的maxpool操作的结果来完成。由于优化的gpu实现可用于maxpool操作,所以这是一种有效的方法。返回分数等于具有应用在位置处的3
×
3内核的maxpool的结果的任何位置,和分数超过该类型的对象的阈值的任何位置,作为检测。为了清楚起见,在算法1的第2-11行中明确地用for循环完成该计算。
[0103]
根据实施例,针对每个模板运行算法1以获得所有对象的检测位置,尽管实际上可以在对相同输入图像的调用之间重用一些计算。这些对象类型和位置是将用于评估当前状态下的安全性约束的符号化特征,如下所示。
[0104]
训练符号化映射
[0105]
根据一个实施例,为了避免引入对重度注释的依赖性,如图2c所示,单个标记的模板图像被用于训练qamt,并且积极的数据增强被用于训练符号化映射的参数。示例增强包括对图像的亮度的随机调整、裁剪和左右翻转。另外,模板掩模用于将模板移动到背景图像中的不同位置。最初,通过使用内部涂色算法来替换其像素,从图像中移除所有模板。然后,为了创建用于训练的每个图像,对模板的集合随机采样以包括在图像中。对于每个模板,随机地应用左右翻转、小旋转和丢弃一些模板像素。然后,将模板粘贴到背景图像中的随机位置上,以创建许多训练图像的集合。图2d示出了根据本公开的实施例的示例性训练图像的集合。由于这些环境的图形简单性,模板的平均颜色与粘贴区的平均颜色充分不同。这确保模板是可区分的。
[0106]
移动的对象经常彼此部分地遮挡。为了确保符号化映射可以执行识别部分被遮挡对象的任务,在增强中使用模板重叠的高概率。这在路跑者环境中是有意义的,原因有两个。首先,汽车撞击郊狼是可接受的。第二,路跑者可以与汽车重叠而不与汽车碰撞。类似的部分重叠情况发生在其他控制问题中,例如当两个行人在汽车前方擦肩而过时。
[0107]
[0108][0109]
根据实施例,在创建增强数据集合之后,通过使用针对单个标记模板图像的少量标记示例,使用反向传播来训练模板匹配。用于创建标记分数图的示例性、非限制性过程是上面的算法2。如果对象的真实位置在像素位置(x,y),则具有均值[x;y]的高斯分布被创建,并且在每个像素位置(i,j)处评估其概率密度以获得标记图像。注意,这不是被归一化为在整个图像上和为1。将高斯的协方差设置为沿着对角线[w=2,h=2]而别处为0,其中(w,h)是给定模板的宽度和高度;这意味着模板对象越大,在预测对象位置中惩罚的微小误差就越小。如果在图像中存在相同对象的多个实例,则通过取为相同类型的每个对象创建的标记图像的元素方面的最大值来创建单个标记图像。该标记分数图和预测分数图之间的损失函数是焦点损失:交叉熵的一种变体,其更关注于困难的示例,其中预测的概率离真实概率更远。根据实施例,使用修改的焦点损失:
[0110][0111]
其中n是图像中任何类型的对象的数量;(w,h)分别是图像的宽度和高度;t是模板的数量,其对应于不同类型的对象的数量。是对象匹配模板t以图像中的位置(x,y)为中心的预测概率,即来自qamt的分数图,并且y
xyt
是使用算法2生成的“真实”概率。α、β是超参量。根据实施例,这些分别被设置为2和4。当在对象上求平均时,使用n 1而不是通常的n,以避免除以0误差,因为我们创建了一些不存在对象的图像。
[0112]
符号化映射的所有训练都在rl代理使用之前发生,从而可在整个rl训练中实施安全性。
[0113]
实施约束
[0114]
根据本公开的实施例的系统可以增强任何现有的深度强化学习算法,唯一的修改是在采取任何动作之前,根据实施例安全监视器首先使用基于模板的方法从视觉输入中提取符号化特征。根据实施方式,对安全性约束进行评估,其中每个安全性约束将符号化状态映射到受允许动作的集合。为了防止执行不安全动作,动作空间上所有不安全动作的概率被设置为零,并且在从策略中采样在动作之前重新归一化的分布。例如,如果动作空间是{左,右,上,下},则prob(左) prob(右) prob(上) prov(下)=1。然而,如果动作左是不安全的,则代理只能在{右,上,下}之间选择,并且prov(左)被设置为0。在这种情况下,prob(左)被均匀地重新分配给所有其它选项,以使prob(右) prob(上) prov(下)=1。
[0115]
以下是针对视觉输入的安全端到端强化学习算法的伪代码。
[0116]
列表2:针对视觉输入的安全端到端强化学习
[0117][0118][0119]
根据实施例,由于s在图像上而不是在符号化状态上范围变动,因此在每个步骤,构造符号化状态,在该符号化状态上定义控制器监视器。符号化状态symbstate是从symmap获得,并用于例示在控制器监视器中的符号化变量。
[0120]
从安全性规范学习动作约束
[0121]
根据实施例的框架可通过对动作空间评估依赖于状态的约束(例如,如果汽车刚好在你下面则不下降)来确保rl代理遵守安全性约束,例如碰撞避免。在针对形式上安全的rl的方法中,这些依赖于状态的约束由领域专家通过考虑环境的近似模型和期望的安全性规范来构建。对动作空间构造这些依赖于状态的约束既耗时又容易出错。根据另一实施例的系统可以学习安全性相关对象的动态,并且自动构建关于遵守高级安全性规范所需的对动作空间的约束。因为这是在符号化空间中完成的,所以动态比在视觉空间中更容易学习。
[0122]
根据另一实施例,在每一步骤,在每一对象的当前和先前符号化特征之间的差异用于推断该对象的潜在动作。对于具有动作{左,右,上,下}的代理,这些差异被映射到被执行的动作;在rl算法训练开始时每个动作被采取一次,以提供关于代理动态的初始知识。通过使用一步前瞻,代理可以使用这些动态和安全性规范来构造约束,这些约束确保它在采取动作之后并且然后随有所有先前观察到的状态转变中的最差可能结果,安全性规范在未
来一步中仍然得到满足的情况下才采取动作。
[0123]
列表3:从安全性规范学习动作约束
[0124]
[0125][0126][0127]
learnbeavior函数通过对每个对象执行最坏情况的一步前瞻来构造对每个动作的防护。例如,根据另一个实施例,考虑观察采取动作“右”的代理可以导致其自己的x坐标在1和5个像素之间的改变。代理还观察到总是向左移动2个像素的障碍物。在这种情况下,可以构建安全性约束,其说明如果障碍物在代理的右边,则代理仅可以在代理距离障碍物超过7个像素时向右移动。
[0128]
根据另一实施例的系统不保证构建安全策略;在短视的一步安全性不足以确保全球安全性的领域中,这可能无法做到。然而,根据另一实施例的方法需要少得多的人力,在
某些类型的域中是足够的,并且可以通过构造预先规划多个步骤的约束来扩展。
[0129]
实验评价
[0130]
针对两种环境评估根据本公开的实施例的系统:玩具“xs和os”(xo)环境和路跑者环境的计算机游戏实现。根据一个实施方案,使用三个标准进行评价:安全性约束的保持;向稍微偏离原始环境的的环境泛化,以及经由惩罚将安全性约束内在化到控制策略中;以及除了维持安全性之外的目标优化——在这种情况下,优化环境奖励。
[0131]
评估环境的描述
[0132]
xo环境是被引入以示范符号化强化学习算法的简单设置。在图3g中直观化的xo环境包含三种类型的对象:必须收集的x对象( 1奖励);必须避免的o对象(-1奖励);和代理(由a 标示)。在每一步还存在小的罚分(-0.01)以鼓励所有x的快速收集和事件的完成。该环境提供了用于根据本公开的实施例评估深度强化学习算法的简单基线。修改和扩展也是简单的,其可以用于根据实施例评估系统的能力,以将安全策略泛化到稍微偏离隐含建模假设的环境。符号化状态空间包括 和o,但不包括x,因为它们不是安全性相关的。为了效率,将更简单的模板匹配器用于该环境。
[0133]
除了xo环境之外,路跑者游戏被认为是街机式游戏的范例,其中端到端强化学习算法已经证明是特别有效的。在这个游戏中,如图1b所示,路跑者110必须避开郊狼120以及汽车130,同时还从地面收集鸟食。根据实施例的符号化状态空间包括郊狼、汽车和路跑者,但不包括鸟食。仅考虑该环境的第一级,并且当达到第二级时结束事件,其中,级别是指视频游戏中的级别。尽管灰度图像通常用作rl代理的输入,但全rgb图像用于符号化映射。
[0134]
安全性约束的保持
[0135]
保持期望的安全性规范是根据实施例的系统的目标。根据实施例的系统即使在视觉

符号化映射中存在一些噪声时也可以保持安全性规范。保持安全性规范还显著地改善了在训练过程中早期的策略性能。
[0136]
根据实施例的系统可以在xo环境中的整个训练过程中完美地保持安全性,因为视觉

符号化映射可以完美地执行。图3a示出了根据另一实施例303的系统在整个训练中保持安全性,而全面近似策略优化(ppo)301甚至不收敛到在训练结束时完全避免不安全对象的策略。
[0137]
保持路跑者环境中的安全性更具挑战性,因为在视觉

符号化映射中存在一些噪声。尽管存在噪声映射,根据实施例302的系统可以在绝大多数训练事件中保持安全性,显著地多于ppo 301,如图3d所示。
[0138]
泛化和内部化
[0139]
通常表达的关于受约束rl的担心是在训练期间剪除状态-动作空间的不安全部分将导致脆弱策略,该脆弱策略不内在化与不良状态相关联的负面奖励。假设地,这意味着所得到的受约束策略不能被泛化到建模假设中的轻微偏差。解决这种担心的一种方式是强制rl代理在不实际采取受限动作的情况下对潜在的负面奖励进行内在化。
[0140]
该惩罚假设通过以如下方式修改根据实施例的系统来测试。代替向代理提供受限的动作空间,代替:(1)允许代理选择任何动作;(2)因选择不安全动作而处罚所该代理;但是(3)仍然用已知的安全动作代替不安全的动作。这样,在训练过程中,代理因选择不安全的动作而被处罚,而实际上不损害安全性。工作假设是,具有惩罚的该实施例将允许代理的
策略内在化由安全性约束提供的知识,而不必实际采取那些动作并直接观察不安全状态。然而,xo环境中的实验揭示,惩罚常常降低每个相关度量的性能。
[0141]
图3c比较根据实施例的具有安全性防护和不具有安全性防护的系统的累积奖励。利用在训练期间对于尝试不安全动作的不同量的惩罚(“不安全奖励”)和对探索的鼓励(“熵系数”),训练代理。当安全监视器被移除时,即使在训练期间因选择不安全动作而惩罚代理,最终训练的策略也明显地较不安全;更多的惩罚不能引起安全性约束的更大的内在化。另外,超过微小的惩罚也降低了奖励优化。
[0142]
为了测试安全性泛化,通过在测试时间将o修改为大于规定的o,来将规范错误引入xo环境,从而使得安全性约束不会在它们周围设置足够大的半径。在这种错误指定的环境上测试根据实施例的未修改的算法,并且测量返回。图3f示出了根本不惩罚不安全的动作尝试导致对错误指定的测试环境的最佳安全性泛化。
[0143]
这些观察结果表明,惩罚不安全的动作尝试不是用于构建安全地概括超出原始域的策略的有效方法。事实上,这样做降低了原始任务和类似但新颖的任务的性能。因此,提出了另一个实施例,其直接观察环境转变并感应地构建忠实于实际观察的动态的安全性约束,而不是试图通过内在化安全监视器的风险概念来进行概括。图3b示出了根据另一实施例303的方法在实践中针对xo环境工作良好。
[0144]
优化
[0145]
根据实施例的系统在可能精确指定不安全状态集合的环境中表现良好。图3b绘出了针对vanilla ppo、根据实施例302的系统和根据另一实施例303的系统的累积奖励的曲线图。安全性受约束策略303更快地收敛到更好的策略。
[0146]
由于安全性,在路跑者环境中,故事更加复杂。图3e绘出了根据实施例302的系统和vanilla ppo 301的累积奖励。根据实施例302的系统在训练开始时比ppo 301改进得快得多,但是最终ppo 301在比赛得分方面超过根据实施例302的系统。ppo超出根据实施例的系统的性能有两个潜在原因。
[0147]
一些无约束代理的额外奖励可归因于用于路跑者游戏的奖励结构不优先考虑安全性的事实。例如,在非常接近1级结束时,通过垂死收集鸟食将比活着完成该级时获得更高的回报。根据实施例的系统关于使kamikaze策略最大化的奖励的保守性证明了安全性作为独立关注的重要性,该独立关注有时与某些最优性定义(例如游戏得分)竞争。
[0148]
然而,ppo的一些额外奖励是由于安全性防护的保守性。这种保守性被用于处理视觉到符号化映射中的噪声,并且因为由于在地图的中途的坐标变换,精确地建模路跑者中的障碍物移动是看似挑战性的。约束的保守性推动路跑者进一步远离汽车,从而使得使汽车在路跑者和郊狼之间更具挑战性,这是奖励郊狼被碾过的行为所需要的。
[0149]
总之,在其中安全性和奖励最大化被对准的简单环境中,根据实施例的系统在奖励最大化方面表现得极好。相反,在感知嘈杂并且奖励结构与安全性脱离的环境中,根据实施例的系统在桌子上留下一些奖励。根据实施例的系统遗漏了该附加奖励,这是因为安全排除了自杀性奖励最大化,并且因为避免了由于误杀而引起的冲突排除了更危险的奖励最大化策略。
[0150]
系统实现
[0151]
应当理解,本公开的实施例可以以硬件、软件、固件、专用过程或其组合的各种形
式来实现。在一个实施例中,本公开的实施例可以以软件实现为有形地体现在计算机可读程序存储设备上的应用程序。该应用程序可以被上载到包括任何适当体系结构的机器,并由该机器执行。此外,预先理解,尽管本公开包括关于云计算的详细描述,但是本文中记载的教导的实现不限于云计算环境。相反,本公开的实施例能够结合现在已知或以后开发的任何其他类型的计算环境来实现。根据本公开的实施例的自动故障查找系统也适用于云实现。
[0152]
云计算是服务交付的模型,用于使得能够方便地、按需地网络访问可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池,所述可配置计算资源可以以最小的管理努力或与服务的提供者的交互来被快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
[0153]
特性如下:
[0154]
按需自助服务:云消费者可以单方面地根据需要自动地提供计算能力,诸如服务器时间和网络存储,而不需要与服务的供应商进行人工交互。
[0155]
广泛的网络接入:能力可通过网络获得并且通过标准机制接入,该标准机制促进异构瘦客户机平台或厚客户机平台(例如,移动电话、膝上型计算机和pda)的使用。
[0156]
资源池化:供应商的计算资源被池化以使用多租户模型来服务多个消费者,其中不同的物理和虚拟资源根据需求被动态地指派和重新指派。存在位置独立性的感觉,因为消费者通常不具有对所提供的资源的确切位置的控制或了解,但是可能能够以较高抽象级别(例如国家、州或数据中心)指定位置。
[0157]
快速弹性:能够快速和弹性地提供能力,在一些情况下自动地快速放大和快速释放以快速缩小。对于消费者而言,可用于供应的能力通常看起来不受限制,并且可以在任何时间以任何数量购买。
[0158]
测量的服务:云系统通过在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某一抽象级别处利用计量能力来自动地控制和优化资源使用。可以监视、控制和报告资源使用,从而为所利用服务的提供者和消费者两者提供透明度。
[0159]
服务模型如下:
[0160]
软件即服务(saas):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。可通过诸如web浏览器(例如,基于web的电子邮件)等瘦客户端界面从各种客户端设备访问应用。消费者不管理或控制包括网络、服务器、操作系统、存储、或甚至单独的应用能力的底层云基础设施,可能的例外是有限的用户特定应用配置设置。
[0161]
平台即服务(paas):提供给消费者的能力是将消费者创建的或获取的使用由提供商支持的编程语言和工具创建的应用部署到云基础设施上。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但具有对部署的应用和可能的应用托管环境配置的控制。
[0162]
基础设施即服务(iaas):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其它基本计算资源,所述软件可以包括操作系统和应用。消费者不管理或控制底层云基础设施,但具有对操作系统、存储、部署的应用的控制,以及对所选的联网组件(例如,主机防火墙)的可能受限的控制。
[0163]
部署模型如下:
[0164]
私有云:云基础设施仅为组织运作。它可以由组织或第三方管理,并且可以存在于建筑物内或建筑物外。
[0165]
社区云:云基础设施由若干组织共享,并且支持具有共享关注(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
[0166]
公有云:云基础设施可用于一般公众或大型工业群体,并且由销售云服务的组织拥有。
[0167]
混合云:云基础设施是两个或更多个云(私有、社区或公共)的组合,所述云保持唯一实体,但是通过使能数据和应用能够移植的标准化或私有技术(例如,用于云之间的负载平衡的云突发)绑定在一起。
[0168]
云计算环境是面向服务的,其焦点在于无状态、低耦合、模块化和语义互操作性。云计算的核心是包括互连节点的网络的基础设施。
[0169]
现在参考图4,示出了云计算节点的示例的示意图。云计算节点410仅是合适的云计算节点的一个示例,并且不旨在对本文描述的本公开的实施例的使用范围或功能提出任何限制。无论如何,云计算节点410能够被实现和/或执行上文阐述的任何功能。
[0170]
在云计算节点410中,存在计算机系统/服务器412,其可与许多其他通用或专用计算系统环境或配置一起操作。适合与计算机系统/服务器412一起使用的公知的计算系统、环境和/或配置的示例包括但不限于,个人计算机系统、服务器计算机系统、瘦客户端、厚客户端、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络pc、小型计算机系统、大型计算机系统、以及包括上述系统或设备中的任一个的分布式云计算环境等。
[0171]
计算机系统/服务器412可以在计算机系统可执行指令(诸如由计算机系统执行的程序模块)的一般上下文中描述。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器412可以在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质中。
[0172]
如图4所示,云计算节点410中的计算机系统/服务器412以通用计算设备的形式示出。计算机系统/服务器412的组件可以包括但不限于一个或多个处理器或处理单元416、系统存储器428以及将包括系统存储器428的各种系统组件耦合至处理器416的总线418。
[0173]
总线418表示若干类型的总线结构中的任何一种的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线体系结构中的任何一种的处理器或局部总线。作为示例而非限制,这些体系结构包括工业标准体系结构(isa)总线、微通道体系结构(mca)总线、增强型isa(eisa)总线、视频电子技术标准协会(vesa)局部总线和外围部件互连(pci)总线。
[0174]
计算机系统/服务器412通常包括各种计算机系统可读介质。这样的介质可以是计算机系统/服务器412可访问的任何可用介质,并且它包括易失性和非易失性介质、可移动和不可移动介质。
[0175]
系统存储器428可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)430和/或高速缓冲存储器432。计算机系统/服务器412还可以包括其他可移
动/不可移动、易失性/非易失性计算机系统存储介质。仅作为示例,存储系统434可被提供用于从不可移动、非易失性磁介质(未示出,并且通常被称为“硬盘驱动器”)读取和向其写入。尽管未示出,但是可以提供用于从可移动、非易失性磁盘(例如,“软盘”)读取和向其写入的磁盘驱动器,以及用于从诸如cd-rom、dvd-rom或其它光学介质等可移动、非易失性光盘读取或向其写入的光盘驱动器。在这种情况下,每个可以通过一个或多个数据介质接口连接到总线418。如下文将进一步描绘及描述,存储器428可包含至少一个程序产品,该至少一个程序产品具有经配置以执行本发明的实施例的功能的一组(例如,至少一个)程序模块的。
[0176]
具有一组(至少一个)程序模块442的程序/实用程序440,以及操作系统、一个或多个应用程序、其它程序模块和程序数据,可作为示例而非限制地存储在存储器428中。操作系统、一个或多个应用程序、其它程序模块和程序数据或其某种组合中的每一个可包括联网环境的实现。程序模块442通常执行如本文所述的本发明的实施例的功能和/或方法。
[0177]
计算机系统/服务器412还可以与一个或多个外部设备414通信,诸如键盘、指示设备、显示器424等;一个或多个设备,其使得用户能够与计算机系统/服务器412交互;和/或任何使计算机系统/服务器412能够与一个或多个其它计算设备通信的设备(例如,网卡、调制解调器等)。这种通信可以经由输入/输出(i/o)接口422发生。此外,计算机系统/服务器412可以经由网络适配器420与一个或多个网络通信,所述网络诸如局域网(lan)、通用广域网(wan)和/或公共网络(例如,因特网)。如所描绘的,网络适配器420经由总线418与计算机系统/服务器412的其他组件通信。应当理解,尽管未示出,但是其他硬件和/或软件组件可以与计算机系统/服务器412结合使用。示例包括但不限于:微码、设备驱动程序、冗余处理单元、外部磁盘驱动器阵列、raid系统、磁带驱动器和数据档案存储系统等。
[0178]
现在参考图5,示出了说明性云计算环境50。如图所示,云计算环境50包括一个或多个云计算节点400,云消费者使用的本地计算设备可以与云计算节点400通信,本地计算设备例如个人数字助理(pda)或蜂窝电话54a、台式计算机54b、膝上型计算机54c和/或汽车计算机系统54n。节点400可彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上文描述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为云消费者不需要为其维护本地计算设备上的资源的服务。应当理解,图5中所示的计算设备54a-n的类型旨在仅是说明性的,并且计算节点400和云计算环境50可以通过任何类型的网络和/或网络可寻址连接(例如,使用web浏览器)与任何类型的计算设备通信。
[0179]
尽管已经参照示例性实施例详细描述了本公开的实施例,但是本领域技术人员将理解,在不脱离所附权利要求中阐述的本公开的精神和范围的情况下,可以对其进行各种修改和替换。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献