具体实施方式
以下由特定的具体实施例说明本申请的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本申请的其他优点及功效。
在下述描述中,参考附图,附图描述了本申请的若干实施例。应当理解,还可使用其他实施例,并且可以在不背离本公开的精神和范围的情况下进行模块或单元组成、电气以及操作上的改变。下面的详细描述不应该被认为是限制性的,并且本申请的实施例的范围仅由公布的专利的权利要求所限定。这里使用的术语仅是为了描述特定实施例,而并非旨在限制本申请。
虽然在一些实例中术语第一、第二等在本文中用来描述各种元件、信息或参数,但是这些元件或参数不应当被这些术语限制。这些术语仅用来将一个元件或参数与另一个元件或参数进行区分。例如,第一元件可以被称作第二元件,并且类似地,第二元件可以被称作第一元件,而不脱离各种所描述的实施例的范围。第一元件和第二元件均是在描述一个元件,但是除非上下文以其他方式明确指出,否则它们不是同一个元件。取决于语境,比如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”。
再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、步骤、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能、步骤或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
目前,对于多智能体系统例如自动行驶汽车系统,智能仓库系统,传感器网络等等,协同式多智能体强化学习(cooperative multi-agent reinforcement learning)提供了一种使得智能体能够处理不确定且动态变化的环境的可行方法。在此基础上,为了实现可扩展性,深度多智能体强化学习(deep multi-agent reinforcement learning)采用了所有智能体共享并学习去中心化值或策略网络的简单机制。然而,这些简单的共享方式对于复杂的智能体任务而言通常都效率低下。
另外,角色概念在经济学、社会学以及组织学理论中的广泛应用,使其为多智能体协同工作的研究提供了有利工具。其中,角色指行为的综合模式,角色与分工密切相关且对于提高工作效率至关重要,通常,某种角色专攻于某些子任务。一般地,具有相似角色的智能体通常显示出相似行为,因而能够共享其经验以提高性能。
在基于角色的架构中,通过限定与职责(responsibility)关联的角色来分解任务,可以降低智能体设计的复杂度,其中职责由子任务集组成,因而策略搜索空间也被有效分解。现如今,基于角色的方法常常使用现有域知识并且预先设定角色的结构和行为,并未被引入到多智能体系统中。
鉴于此,本申请提出了一种智能体的控制方法,所述控制方法还可称为面向角色的多智能体强化学习(role-oriented multi-agent reinforcement learning,简称为ROMA)方法,主要是在多智能体强化学习的背景下隐含地引入了角色的概念,使得在允许智能体学习足够多样化的技能的同时实现高效的共享学习。在该ROMA中,角色并不是预先设定的,而是涌现(emergent)的。其中,涌现可以描述为没有任何预先定义,包括一个从无序到有序,从纷乱复杂到有组织的过程。本申请中角色的涌现通过所引入的两个规范项来描述,以实现角色既丰富又足够专业化的优化目标。基于此,对于多个智能体,具有相似角色的智能体可以共享其专攻于某些子任务上的学习,从而实现高效共享学习的目的。
具体地,本申请提供一种智能体的控制方法,所述控制方法用于包含多个智能体通过各自的行为操作执行协同任务的系统。其中,所述智能体的控制方法可应用在例如物联网、物流网络、多终端监控、分布式通信网络、多人游戏等环境下。所述智能体是指在相应环境下能够完成某些子任务的每个个体,以游戏场景为例,智能体是指各个玩家。
请参阅图1,其显示为本申请智能体的控制方法在一实施例中的流程图。如图所示,所述智能体的控制方法包括步骤S101至S104,其中步骤S102至步骤S104是在一角色控制机制下执行的。所述角色控制机制是用于对在生成当前行为信息的过程中所采用的可机器学习的算法中涉及的与角色属性关联的参数进行控制或优化的机制。所述可机器学习的算法包括但不限于:神经网络算法、决策树算法、聚类算法、随机森林算法、遗传算法等。在一具体示例中,步骤S102至步骤S104可以采用经训练的神经网络来实现,基于此,所述角色控制机制对应的表示用于对在生成当前行为信息的过程中所使用的神经网络中涉及的与角色属性关联的参数进行控制或优化的机制。所述神经网络包括但不限于:角色编码器、角色解码器、局部效用网络、混合网络等。
在步骤S101中,以多个智能体中的一个智能体为目标智能体并获取目标智能体的当前观测信息。
所述当前观测信息包括目标智能体在当前时间步(time step)下观测到的能够清楚描述其所处环境且对于待完成任务而言足够的信息。例如,观测信息可以包括目标智能体的自身信息,目标智能体周围的环境信息,以及目标智能体与其他智能体之间的位置信息等。根据智能体所处环境不同,其观测信息也有所不同。例如,在目标智能体为机器人的情况下,观测信息可以包括机器人上摄像装置所拍摄到的物体的特征信息,机器人与其他物体之间的位置关系信息,机器人上的雷达输入信息等。以游戏场景为例,观测信息可以包括目标智能体(玩家)所处环境的地形特征信息,目标智能体视野范围内的信息,例如其他智能体相对于自己的位置信息,游戏指标信息,目标智能体相对于地图中心的位置信息,以及游戏中已知的输入信息等。
在步骤S102中,基于包含当前观测信息的输入信息集生成目标智能体的当前行为信息。
所述输入信息集是为生成目标智能体当前行为信息所需的信息的集合,所需的信息包括但不限于:目标智能体的当前观测信息、目标智能体的轨迹信息等等。在一实施例中,所述输入信息集可以包括目标智能体的当前观测信息以及目标智能体的轨迹信息。则步骤S102基于所获取的目标智能体的当前观测信息以及轨迹信息,生成目标智能体的当前行为信息。其中,所述轨迹信息是指目标智能体在获取当前观测信息之前的与目标智能体执行任务有关的所有信息例如观测信息、历史行为信息等,所述轨迹信息包括但不限于:目标智能体所处的历史环境信息,历史操作信息等,即何时何地在何种环境下进行了何种操作。
所述当前行为信息用于在当前步长下指导智能体的当前行为动作。以游戏场景为例,行为信息可以包括智能体前进多少距离、后退多少距离、向左转向多少度,使用哪种技能或武器等信息。例如,若所生成的行为信息为目标智能体前进两个栅格距离,则控制目标智能体向前移动两个栅格距离。
为了获得目标智能体的当前行为信息,可以基于输入信息集所提供的输入信息例如当前观测信息、轨迹信息等通过可机器学习的算法来获得目标智能体的当前行为信息。所述可机器学习的算法包括但不限于:神经网络算法、决策树算法、聚类算法、随机森林算法、遗传算法等。
请参阅图2,其显示为本申请智能体的控制方法中的步骤S102在一实施例中的流程图,如图所示,步骤S102基于输入信息集生成目标智能体的当前行为信息包括步骤S1021和步骤S1022。
在步骤S1021中,基于输入信息集进行角色生成处理以获得与当前角色属性对应的行为特征。
所述当前角色属性可表示为智能体在当前环境当前时间步下隐含的可由计算设备识别的参数或数据。角色属性与智能体的行为操作相关,智能体在执行子任务时的动作或行为反映其角色属性。具体地,智能体的一段时间内的行为操作反映其当前角色属性,在所述一段时间内,智能体可以有多个行为操作,其行为操作的轨迹反映出智能体在执行子任务时所具有的角色属性。以游戏场景为例,所述角色属性例如智能体进攻的角色属性、智能体防守的角色属性、智能体死亡的角色属性等,所述角色属性不同。所述行为特征与角色属性相对应,并根据角色属性的变化而变化。
在此,所述角色生成处理的操作可以通过可机器学习的算法实现,以根据输入的当前观测信息、轨迹信息等获得当前角色属性对应的行为特征。在一些实施例中,步骤S1021包括:利用角色编码器基于输入信息集生成当前角色属性,以及利用角色解码器将当前角色属性转换为行为特征。
所述角色编码器和角色解码器可以是通过可机器学习的算法而设计的数据处理逻辑。例如,所述角色编码器和角色解码器例如为经训练的神经网络。角色编码器用于例如对输入信息集中的信息进行提取,例如提取观测信息中所包含的智能体的特征信息、智能体的位置信息等,提取智能体的轨迹信息等,然后经过可机器学习的算法计算后输出表征智能体角色属性的参数或数据,或者输出能够作为角色解码器输入以执行解码器操作的中间量。角色解码器用于对角色编码器输出的参数或数据或中间量进行转换,所述转换操作可以通过可机器学习的算法实现,以输出对应当前角色属性的行为特征。
为了便于后续的优化操作,在一示例中,所述角色编码器可以包括编码单元和采样单元。所述编码单元用于基于输入信息集输出角色特征信息,所述采样单元用于对基于所述角色特征信息而得到的角色分布进行采样处理以得到当前角色属性。具体地,所述编码单元例如为经训练的神经网络。所述神经网络例如为全连接网络或循环神经网络,在一示例中,所述全连接网络包括12维隐藏层以及具有ReLU激活函数。所述角色特征信息举例为高斯分布中决定其特性的均值和方差,所述角色分布相应的为高斯分布。所述角色解码器例如为经训练的神经网络,所述神经网络例如为全连接网络或循环神经网络,在一示例中,所述全连接网络包括12维隐藏层以及具有ReLU激活函数。在一具体示例中,编码单元基于所获取的包括智能体的当前观测信息、轨迹信息等的输入信息集输出高斯分布的均值和方差,采样单元从基于上述均值和方差确定的高斯分布中采样作为当前角色属性,并作为解码器的输入以输出智能体的行为特征。
在步骤S1022中,依据所述行为特征生成目标智能体为执行所述协同任务的当前行为信息。
基于行为特征生成行为信息的步骤可以通过可机器学习的算法实现,其中,所述行为特征可以表示为基于输入信息集获得的影响目标智能体后续行为操作的参数或数据。在一些实施例中,步骤S1022可以通过经训练的神经网络实现,所述神经网络例如为局部效用网络,所述局部效用网络包括全连接层,64位门控循环单元(gated recurrent unit,简称为GRU)以及另一全连接层,其输入为目标智能体的当前观测信息,目标智能体的轨迹信息以及角色解码器输出的智能体的行为特征,经所述局部效用网络后输出目标智能体的当前行为信息。
在步骤S103中,按照所生成的目标智能体的当前行为信息控制目标智能体的当前行为操作。
所述目标智能体的一段时间内的行为操作用于反映目标智能体的当前角色属性,也就是说,当前角色属性决定目标智能体的一段时间内的行为操作。具体地,智能体的角色属性与智能体的职责相关联,其职责可以反映在其行为上,即,智能体表现出什么样的行为操作即代表智能体执行着什么样的任务,也就隐含地表征了智能体具有什么样的角色属性。
所述当前角色属性是由角色控制机制生成的。结合上述步骤,所述角色控制机制是用于对在生成当前行为信息的过程中所使用的神经网络中涉及的与角色属性关联的参数进行控制或优化的机制。所述角色属性的获取是基于输入信息集经由一神经网络输出表征高斯分布的均值和方差,然后从上述均值和方差表征的高斯分布中采样作为当前角色属性的方式实现的。也就是说,当前角色属性是角色控制机制中一内部数据。换言之,高斯分布中涉及的与角色属性关联的参数是指确定高斯分布的均值和方差组,即各智能体基于各自对应的输入信息集获得的确定高斯分布的各均值和方差组,基于其中某一组均值和方差模拟高斯分布,采样获得角色属性。
为了能够更直观地显示各智能体隐含的角色属性,所述智能体的控制方法还包括可视化表示各智能体当前角色属性的相似性的步骤。其中,由于角色属性是从高斯分布中所采样而来的,因而可以利用高斯分布中的均值来实现可视化。具体地,以三维向量描述均值,对应地,经采样获得的角色属性也由三维向量表示,则在三维空间中,依据均值或角色属性对应的三维向量在三维空间中显示各智能体。另外,将均值接近的目标用一种颜色表示,则在当前时间步下颜色相同的智能体表示其角色属性相似。
应当注意的是,所述角色属性并不仅限于三维,可以根据本领域技术人员需求以及根据计算量设置为其他维度,若为采用高于三维的向量表示,则为显示需要可以先做降维处理,将高维向量降至三维,然后再进行显示。
在步骤S104中,基于目标智能体的包含新的观测信息的输入信息集重新执行步骤S102至步骤S103,以利用新的行为信息控制目标智能体执行协同任务中的新的行为操作。也就是说,目标智能体根据所获取的观测信息的变化使其在不同时段将具有不同的角色属性,呈现出不同的行为操作。在一些实施例中,目标智能体的新的观测信息的获取或更新是由智能体所处环境或者智能体所协同完成的任务本身决定的。例如,在智能体所处环境发生变化后,获取或更新观测信息。在另一些实施例中,目标智能体的观测信息的获取或更新与当前行为操作的完成度关联,例如可以设置为在执行当前行为操作期间同时不断获取或更新观测信息以生成新的行为信息进而更新旧的行为信息,或者设置为在当前行为操作执行完成时获取或更新观测信息以生成新的行为信息进而接续上一行为信息。以游戏场景为例,获取或更新观测信息的时间可以由游戏引擎返回观测信息的预设时长决定。例如,设置为每隔5秒获取或更新观测信息,则基于下一个5秒时所获取的目标智能体的新的观测信息,确定目标智能体的新的角色属性,该角色属性可能与前一个5秒时的角色属性相同或者不同,所述智能体的控制方法依据新学习到的角色属性所决定的行为信息来控制目标智能体的行为操作。
请参阅图3,其显示为本申请智能体的控制方法在一实施例中的数据流示意图,如图所示,其中,角色编码器31包括编码单元301和采样单元302,为了学习目标智能体i的角色属性ρ
i,编码单元301为一经训练的神经网络f(o
i;θ
p),θ
ρ为神经网络
的参数,所述神经网络的输入为目标智能体i在当前时间步t的当前观测信息
输出为高斯分布的方差和均值即
和
即
其中:
然后,采样单元302从高斯分布中采样即智能体i在当前时间步t的当前角色属性
经过角色解码器32后输出局部效用网络中用于表征目标智能体i的行为特征的参数θ
i,其中角色解码器为一经训练的神经网络
θ
h为神经网络
的参数。局部效用网络33基于目标智能体i在当前时间步t的当前观测信息
目标智能体i的轨迹信息
以及角色解码器输出的θ
i,输出目标智能体的当前评价信息
目标智能体i在当前时间步t的当前行为信息
进而基于当前行为信息,控制目标智能体的当前行为操作。其中a
i∈A,A为有限的行为集合。
应注意,上述采用从高斯分布中采样出的采样值
来表征当前角色属性仅为示例,本申请并不限于此,例如,还可采样高斯分布的均值来表征当前角色属性,在此不再赘述。
此外,角色控制机制如何控制并优化涌现的角色以使得智能体协同完成任务时的性能最优即如何实现角色既丰富又专业化也是值得关注的问题。
为了确保角色的多样化和可识别性,使得角色足够丰富且根据行为可识别,在某些实施方式中,角色控制机制基于目标智能体的当前观测信息、目标智能体的当前角色属性、以及目标智能体的轨迹信息而被优化,以使目标智能体所执行的后续行为操作能反映出比优化前具有更高识别性的角色属性。其中,识别性越高则表示角色越丰富。所述轨迹信息仅与智能体本身以及时间相关。以游戏场景为例,所述轨迹信息可以是智能体从开始游戏时所有的轨迹信息,或者,为了平衡计算量等问题,也可以是游戏系统设置的一个时间段内的轨迹信息,其可以根据智能体所处环境及任务需求而定。
为了实现上述角色丰富多样化及可识别性的目的,基于目标智能体的角色属性以及轨迹信息进行相关性计算,并最大化所计算的值以获得丰富的角色,其中,相关性计算例如互信息。
具体地,为了实现上述目的,最大化熵目标H(ρi|oi)并且最小化条件熵H(ρi|τi,oi),其中,ρi为目标智能体i的角色属性,oi为目标智能体i所获取的观测信息,τi为目标智能体i的轨迹信息,H(ρi|τi,oi)表明智能体的角色属性与其行为操作是可互相反映的,即,智能体外在所表现出来的行为操作用于反映智能体的角色属性,同样地,智能体的角色属性也决定了智能体所表现出的行为操作。本申请中,设定用于使角色丰富多样化且可识别的第一规范项,最大化H(ρi|oi)-H(ρi|τi,oi),其在数学上满足H(ρii|oi)-H(ρii|τi,oi)=I(τi;ρi|oi),I(τi;ρi|oi)即表示当前观测信息所属目标智能体的角色属性与其轨迹信息之间的互信息。
在实际计算中,为最大化互信息,引入变分后验分布(variational posteriorestimator)并推导出针对每个时间步t的互信息的下限:
其中,
a
i表示目标智能体i的行为,a
i∈A,A为有限的行为集合,q
ξ为以ξ为参数的变分分布,其中,q
ξ可以为任意分布。本申请中,可以使用经训练的神经网络对智能体的历史观测信息和历史行为信息进行编码操作,所述神经网络可称为轨迹编码器,即q
ξ,所述轨迹编码器例如为全连接网络或循环神经网络,在一示例中,所述全连接网络包括12维隐藏层以及具有ReLU激活函数,其输入为局部效用函数中在上一个时间步后GRU的隐藏状态。
因为角色编码器的输入为观测信息,所以考虑到观测信息,角色的分布
独立于局部历史,则:
其中,D为缓冲器,H(·)和cε[·||·]分别为熵和交叉熵操作数。
如上所述,在第一规范项的作用下,涌现的角色属性足够丰富且都可以通过行为识别,但角色属性过于丰富也会影响智能体协同完成任务的性能。最小化损失函数使得角色属性包含了足够多长期行为相关信息,但是并不能确保具有相似行为的智能体具有相似的角色属性。直观来讲,例如,对于具有专业化子任务的两个智能体而言,两个智能体要么具有相似角色属性,要么具有完全不同的职责,这些都可以通过其行为轨迹来表征。然而,在角色属性的涌现过程中,两个智能体彼此并不知道他们具有相似角色,行为之间的相似性也很难被限定。
为了解决上述问题,在某些实施方式中,所述角色控制机制基于所述多个智能体的当前观测信息、所述多个智能体的当前角色属性、以及所述多个智能体的轨迹信息而被优化,以使所述目标智能体所执行的后续行为操作反映出比优化前具有更专业化的角色属性。其中,所述专业化并不表示角色属性在数量上的变化,而是指角色属性相似的智能体共享一个策略,进而提高了学习效率,达到专业化的目的。
在一具体示例中,为了鼓励智能体i和智能体j具有相似角色属性以及相似行为,最大化智能体i的角色属性ρi和智能体j的轨迹信息τj之间的互信息,即I(ρi|τj)。但在实际操作中,直接优化上述互信息会导致所有智能体具有一个相同的角色属性,以及对应地,具有一个相同的行为特征,呈现出相同的行为操作,这会限制系统性能。为解决此问题,本申请中,设定用于使角色专业化的第二规范项,引入相异性模型dφ:T×T→R,所述相异性模型可以为经训练的神经网络,其输入为智能体i和智能体j的轨迹信息,并最大化I(ρi;τj)+dφ(τi;τj),同时最小化矩阵Dφ=(dij)中的非零项的数量,其中,dij=dφ(τi;τj),用于表示智能体i和智能体j的轨迹信息之间的相异性。基于此,可以确保仅当互信息I低时相异性d高,因而所学习的角色属性被专业化但又足够多样化以识别子任务,进而有效地解决所分配的任务。
在实际计算中,涉及到最大化互信息
在此,推导出该互信息的可变下限以使其可优化
然后,将角色分布的方差以一很小值(0.1)裁剪,以确保角色分布的熵总为非负,进而使得不等式成立:
其中,qξ为上述的轨迹编码器,KL散度项因是非负的,因而在推导下限时可忽略,因此,
鉴于此,为了学习专业化角色,最小化下述项:
其中,
表示智能体i和智能体j的轨迹信息之间所估计的相异性。
其中,τ
t-1是节点轨迹信息,o
t是节点观测信息,
令:
因为
以及
所以
即公式(8)满足:
最小化该上限以优化公式(8)。在使用时,使用缓冲器并最小化损失函数
其中,D为缓冲器,τ
t-1是节点轨迹信息,o
t是节点观测信息,
如上所述,在第二规范项的作用下,使得角色属性尽量专业化。
结合第一规范项和第二规范项,在第一规范项的作用下获得高识别性角色属性,第二规范项使基于第一规范项下获得的丰富角色属性更专业化,实现了角色属性多样化、可识别以及专业化的目的。此外,通过两个规范项对应的损失函数对角色编码器、角色解码器、轨迹编码器等进行训练和优化,使得本申请智能体的控制方法能够学习动态的、多样化的、可识别的以及专业化的角色属性,提高了智能体协同工作的性能。
基于上面的描述,针对本申请智能体的控制方法中所采用的神经网络,在训练及优化时引入损失函数对神经网络进行调整。例如,本申请中的损失函数包括但不限于:LI,LD以及LTD。其中,LI和LD如上所述,主要用于训练和优化涉及第一规范项和第二规范项的神经网络中的参数。LTD为强化学习的标准时序差分损失函数(TD loss),用于训练和优化本申请的ROMA架构下所有网络的参数。
基于此,本申请智能体的控制方法还包括:根据目标智能体的当前评价信息以及多个智能体中其他智能体所生成的各自当前评价信息生成多个智能体执行协同任务的整体评价信息;以及基于整体评价信息对角色控制机制进行优化。其中,所述当前评价信息是基于包含当前观测信息的输入信息集生成的。
所述当前评价信息用于表征智能体执行当前行为操作后对系统性能的影响度,当前评价信息可以被记录下来以用于后续优化操作。
具体地,在以图3所示方法生成各智能体的当前评价信息Q(τ,at)后,通过混合网络将各智能体的当前评价信息Q进行混合处理,以输出多个智能体执行协同任务的整体评价信息Qtot。其中所述混合网络可以是简单的加法网络,或者是经训练的神经网络,所述神经网络例如包括32维隐藏层以及具有ReLU激活函数,所述神经网络的参数可经由另一神经网络基于全局状态s生成,所述另一神经网络的参数为θm且具有全连接的32维隐藏层。在某些实施例中,所述混合网络的设置与QMIX算法中的混合网络的架构相同,在此不再赘述。
然后基于所得到的整体评价信息,可以根据损失函数LTD对角色控制机制中涉及的参数进行优化。
此外,所述智能体的控制方法中所采用的神经网络的整体损失函数如下所示:
其中,θ=(θp,ξ,φ,θh,θm),λI和λD是比例因子,LTD(θ)=[r+γmaxa′Qtot(s′,a′;θ-)-Qtot(s,a;θ)]2,θ-是周期性更新的目标网络的参数。
基于上述整体损失函数,可以将前期一段时间内在缓冲器中存储的数据作为新的样本数据,对所述控制方法中涉及的神经网络进行优化,使得角色编码器、角色解码器、局部效用网络、混合网络以及轨迹编码器等在使用的同时不断被优化训练,以获得更优的性能。
综上可知,本申请提出的智能体的控制方法隐含地引入了角色概念,角色属性作为一个中间量,使得具有类似职责的智能体共享其学习。通过确保具有相似角色属性的智能体具有相似策略和职责来实现智能体的控制。同时,为了关联角色属性和职责,引入了两个规范项使得角色属性足够多样化且能够通过行为来识别,并且专攻于某些子任务。基于本申请所提供的智能体的控制方法,能够促进角色的涌现及专业化,进而使智能体专业化且实现动态共享以改进其学习效率,为高效的策略学习提供了适合的学习共享机制。
本申请还提供一种智能体的控制系统,所述控制系统用于包含多个智能体通过各自的行为操作执行协同任务的系统。其中,所述智能体的控制系统可应用在例如物联网、物流网络、多终端监控、分布式通信网络、多人游戏等环境下。所述智能体是指在相应环境下能够完成某些子任务的每个个体,以游戏场景为例,智能体是指各个玩家。
请参阅图4,其显示为本申请智能体的控制系统在一实施例中的结构示意图。如图所示,所述智能体的控制系统包括获取装置41,生成装置42以及控制装置43。
获取装置41用于以所述多个智能体中的一个智能体为目标智能体,并获取所述目标智能体的当前观测信息。
所述当前观测信息包括目标智能体在当前时间步(time step)下观测到的能够清楚描述其所处环境且对于待完成任务而言足够的信息。例如,观测信息可以包括目标智能体的自身信息,目标智能体周围的环境信息,以及目标智能体与其他智能体之间的位置信息等。根据智能体所处环境不同,其观测信息也有所不同。例如,在目标智能体为机器人的情况下,观测信息可以包括机器人上摄像装置所拍摄到的物体的特征信息,机器人与其他物体之间的位置关系信息,机器人上的雷达输入信息等。以游戏场景为例,观测信息可以包括目标智能体(玩家)所处环境的地形特征信息,目标智能体视野范围内的信息,例如其他智能体相对于自己的位置信息,游戏指标信息,目标智能体相对于地图中心的位置信息,以及游戏中已知的输入信息等。
生成装置42用于在一角色控制机制下基于包含所述当前观测信息的输入信息集生成所述目标智能体的当前行为信息。
所述角色控制机制是用于对在生成当前行为信息的过程中所采用的可机器学习的算法中涉及的与角色属性关联的参数进行控制或优化的机制。所述可机器学习的算法包括但不限于:神经网络算法、决策树算法、聚类算法、随机森林算法、遗传算法等。在一具体示例中,生成装置和稍后描述的控制装置可以由经训练的神经网络来实现,基于此,所述角色控制机制对应的表示用于对在生成当前行为信息的过程中所使用的神经网络中涉及的与角色属性关联的参数进行控制或优化的机制。所述神经网络包括但不限于:角色编码器、角色解码器、局部效用网络、混合网络等。
所述输入信息集是为生成目标智能体当前行为信息所需的信息的集合,所需的信息包括但不限于:目标智能体的当前观测信息、目标智能体的轨迹信息等等。在一实施例中,所述输入信息集可以包括目标智能体的当前观测信息以及目标智能体的轨迹信息。则生成装置用于在一角色机制下基于所获取的目标智能体的当前观测信息以及轨迹信息,生成目标智能体的当前行为信息。其中,所述轨迹信息是指目标智能体在获取当前观测信息之前的与目标智能体执行任务有关的所有信息例如观测信息、历史行为信息等,所述轨迹信息包括但不限于:目标智能体所处的历史环境信息,历史操作信息等,即何时何地在何种环境下进行了何种操作。
所述当前行为信息用于在当前步长下指导智能体的当前行为动作。以游戏场景为例,行为信息可以包括智能体前进多少距离、后退多少距离、向左转向多少度,使用哪种技能或武器等信息。例如,若所生成的行为信息为目标智能体前进两个栅格距离,则控制目标智能体向前移动两个栅格距离。
为了获得目标智能体的当前行为信息,可以基于输入信息集所提供的输入信息例如当前观测信息、轨迹信息等通过可机器学习的算法来获得目标智能体的当前行为信息。所述可机器学习的算法包括但不限于:神经网络算法、决策树算法、聚类算法、随机森林算法、遗传算法等。
请参阅图5,其显示为本申请智能体的控制系统中的生成装置在一实施例中的结构示意图。如图所示,生成装置42包括处理模块51和行为信息生成模块52。
处理模块51用于基于所述输入信息集进行角色生成处理以获得与所述当前角色属性对应的行为特征。
所述当前角色属性可表示为智能体在当前环境当前时间步下隐含的可由计算设备识别的参数或数据。角色属性与智能体的行为操作相关,智能体在执行子任务时的动作或行为反映其角色属性。具体地,智能体的一段时间内的行为操作反映其当前角色属性,在所述一段时间内,智能体可以有多个行为操作,其行为操作的轨迹反映出智能体在执行子任务时所具有的角色属性。仍以游戏场景为例,所述角色属性例如智能体进攻的角色属性、智能体防守的角色属性、智能体死亡的角色属性等,所述角色属性不同。所述行为特征与角色属性相对应,并根据角色属性的变化而变化。
在此,所述角色生成处理的操作可以通过可机器学习的算法实现,以根据输入的当前观测信息、轨迹信息等获得当前角色属性对应的行为特征。在一些实施例中,请参阅图6,其显示为本申请智能体的控制系统中的处理模块在一实施例中的结构示意图。如图所示,处理模块51包括角色编码器61和角色解码器62,角色编码器61用于基于所述输入信息集生成所述当前角色属性;角色解码器62用于将所述当前角色属性转换为所述行为特征。
所述角色编码器和角色解码器可以是通过可机器学习的算法而设计的数据处理逻辑。例如,所述角色编码器和角色解码器例如为经训练的神经网络。角色编码器用于例如对输入信息集中的信息进行提取,例如提取观测信息中所包含的智能体的特征信息、智能体的位置信息等,提取智能体的轨迹信息等,然后经过可机器学习的算法计算后输出表征智能体角色属性的参数或数据,或者输出能够作为角色解码器输入以执行解码器操作的中间量。角色解码器用于对角色编码器输出的参数或数据或中间量进行转换,所述转换操作可以通过可机器学习的算法实现,以输出对应当前角色属性的行为特征。
为了便于后续的优化操作,在一示例中,请参阅图7,其显示为本申请智能体的控制系统中的角色编码器在一实施例中的结构示意图。如图所示,所述角色编码器61可以包括编码单元71和采样单元72。编码单元71用于基于所述输入信息集输出角色特征信息;采样单元72用于对基于所述角色特征信息而得到的角色分布进行采样处理以得到所述当前角色属性。具体地,所述编码单元例如为经训练的神经网络。所述神经网络例如为全连接网络,包括12维隐藏层以及具有ReLU激活函数。所述角色特征信息举例为高斯分布中决定其特性的均值和方差,所述角色分布相应的为高斯分布。所述角色解码器例如为经训练的神经网络,所述神经网络例如为全连接网络,包括12维隐藏层以及具有ReLU激活函数。在一具体示例中,编码单元基于所获取的包括智能体的当前观测信息、轨迹信息等的输入信息集输出高斯分布的均值和方差,采样单元从基于上述均值和方差确定的高斯分布中采样作为当前角色属性,并作为解码器的输入以输出智能体的行为特征。
行为信息生成模块52用于依据所述行为特征生成所述目标智能体为执行所述协同任务的当前行为信息。
基于行为特征生成行为信息的步骤可以通过可机器学习的算法实现,其中,所述行为特征可以表示为基于输入信息集获得的影响目标智能体后续行为操作的参数或数据。在一些实施例中,行为信息生成模块52可以由经训练的神经网络实现,所述神经网络例如为局部效用网络,所述局部效用网络包括全连接层,64位门控循环单元(gated recurrentunit,简称为GRU)以及另一全连接层,其输入为目标智能体的当前观测信息,目标智能体的轨迹信息以及角色解码器输出的智能体的行为特征,经所述局部效用网络后输出目标智能体的当前行为信息。
控制装置43用于在所述角色控制机制下按照所生成的当前行为信息控制所述目标智能体的当前行为操作。
所述目标智能体的一段时间内的行为操作用于反映所述目标智能体的当前角色属性,也就是说,当前角色属性决定目标智能体的一段时间内的行为操作。具体地,智能体的角色属性与智能体的职责相关联,其职责可以反映在其行为上,即,智能体表现出什么样的行为操作即代表智能体执行着什么样的任务,也就隐含地表征了智能体具有什么样的角色属性。
所述当前角色属性是由所述角色控制机制生成的。结合上述步骤,所述角色控制机制是用于对在生成当前行为信息的过程中所使用的神经网络中涉及的与角色属性关联的参数进行控制或优化的机制。所述角色属性的获取是基于输入信息集经由一神经网络输出表征高斯分布的均值和方差,然后从上述均值和方差表征的高斯分布中采样作为当前角色属性的方式实现的。也就是说,当前角色属性是角色控制机制中一内部数据。换言之,高斯分布中涉及的与角色属性关联的参数是指确定高斯分布的均值和方差组,即各智能体基于各自对应的输入信息集获得的确定高斯分布的各均值和方差组,基于其中某一组均值和方差模拟高斯分布,采样获得角色属性。
为了能够更直观地显示各智能体隐含的角色属性,所示智能体的控制系统还包括显示装置(未图示),所示显示装置用于可视化表示各智能体当前角色属性的相似性。其中,由于角色属性是从高斯分布中所采样而来的,因而可以利用高斯分布中的均值来实现可视化。具体地,以三维向量描述均值,对应地,经采样获得的角色属性也由三维向量表示,则在三维空间中,依据均值或角色属性对应的三维向量在三维空间中显示各智能体。另外,将均值接近的目标用一种颜色表示,则在当前时间步下颜色相同的智能体表示其角色属性相似。
应当注意的是,所述角色属性并不仅限于三维,可以根据本领域技术人员需求以及根据计算量设置为其他维度,若为采用高于三维的向量表示,则为显示需要可以先做降维处理,将高维向量降至三维,然后再进行显示。
所述控制装置43还用于在所述角色控制机制下根据基于所述目标智能体的包含新的观测信息的输入信息集生成的新的行为信息控制所述目标智能体执行所述协同任务中的新的行为操作。也就是说,目标智能体根据所获取的观测信息的变化使其在不同时段将具有不同的角色属性,呈现出不同的行为操作。在一些实施例中,目标智能体的新的观测信息的获取或更新是由智能体所处环境或者智能体所协同完成的任务本身决定的。例如,在智能体所处环境发生变化后,获取或更新观测信息。在另一些实施例中,目标智能体的观测信息的获取或更新与当前行为操作的完成度关联,例如可以设置为在执行当前行为操作期间同时不断获取或更新观测信息以生成新的行为信息进而更新旧的行为信息,或者设置为在当前行为操作执行完成时获取或更新观测信息以生成新的行为信息进而接续上一行为信息。以游戏场景为例,获取或更新观测信息的时间可以由游戏引擎返回观测信息的预设时长决定。例如,设置为每隔5秒获取或更新观测信息,则基于下一个5秒时所获取的目标智能体的新的观测信息,确定目标智能体的新的角色属性,该角色属性可能与前一个5秒时的角色属性相同或者不同,所述智能体的控制方法依据新学习到的角色属性所决定的行为信息来控制目标智能体的行为操作。
请参阅图8,其显示为本申请智能体的控制系统在一实施例中的数据流示意图,如图所示,智能体的控制系统包括获取装置81,生成装置82以及控制装置83,其中,生成装置82包括处理模块821和行为信息生成模块822,处理模块821包括角色编码器831和角色解码器832,所述角色编码器831可以包括编码单元841和采样单元842。为了学习目标智能体i的角色属性ρ
i,编码单元841为一经训练的神经网络f(o
i;θ
p),θ
ρ为神经网络
的参数,获取装置81将获取的目标智能体i在当前时间步t的当前观测信息
输出给角色编码单元841,经角色编码单元841输出高斯分布的方差和均值即
和
即
其中:
然后,采样单元842从高斯分布中采样即智能体i在当前时间步t的当前角色属性
经过角色解码器832后输出行为信息生成模块822中用于表征目标智能体i的行为特征的参数θ
i,其中角色解码器为一经训练的神经网络g(ρ
i;θ
h),θ
h为神经网络
的参数。行为信息生成模块822基于目标智能体i在当前时间步t的当前观测信息
目标智能体i的轨迹信息
以及角色解码器输出的θ
i,向控制装置43输出目标智能体的当前评价信息
目标智能体i在当前时间步t的当前行为信息
进而控制装置基于当前行为信息,控制目标智能体的当前行为操作。其中a
i∈A,A为有限的行为集合。
应注意,上述采用从高斯分布中采样出的采样值
来表征当前角色属性仅为示例,本申请并不限于此,例如,还可采样高斯分布的均值来表征当前角色属性,在此不再赘述。
此外,角色控制机制如何控制并优化涌现的角色以使得智能体协同完成任务时的性能最优即如何实现角色既丰富又专业化也是值得关注的问题。
为了确保角色的多样化和可识别性,使得角色足够丰富且根据行为可识别,在某些实施方式中,所述角色控制机制基于所述目标智能体的当前观测信息、所述目标智能体的当前角色属性、以及所述目标智能体的轨迹信息而被优化,以使所述目标智能体所执行的后续行为操作能反映出比优化前具有更高识别性的角色属性。其中,识别性越高则表示角色越丰富。所述轨迹信息仅与智能体本身以及时间相关。以游戏场景为例,所述轨迹信息可以是智能体从开始游戏时所有的轨迹信息,或者,为了平衡计算量等问题,也可以是游戏系统设置的一个时间段内的轨迹信息,其可以根据智能体所处环境及任务需求而定。
为了实现上述角色丰富多样化及可识别性的目的,基于目标智能体的角色属性以及轨迹信息进行相关性计算,并最大化所计算的值以获得丰富的角色,其中,相关性计算例如互信息。
具体地,为了实现上述目的,最大化熵目标H(ρi|oi)并且最小化条件熵H(ρi|τi,oi),其中,ρi为目标智能体i的角色属性,oi为目标智能体i所获取的观测信息,τi为目标智能体i的轨迹信息,H(ρi|τi,oi)表明智能体的角色属性与其行为操作是可互相反映的,即,智能体外在所表现出来的行为操作用于反映智能体的角色属性,同样地,智能体的角色属性也决定了智能体所表现出的行为操作。本申请中,设定用于使角色丰富多样化且可识别的第一规范项,最大化H(ρi|oi)-H(ρi|τi,oi),其在数学上满足H(ρi|oi)-H(ρi|τi,oi)=I(τi;ρi|oi),I(τi;ρi|oi)即表示当前观测信息所属目标智能体的角色属性与其轨迹信息之间的互信息。
在实际计算中,为最大化互信息,引入变分后验分布(variational posteriorestimator)并推导出针对每个时间步t的互信息的下限:
其中,
a
i表示目标智能体i的行为,a
i∈A,A为有限的行为集合,q
ξ为以ξ为参数的变分分布,其中,q
ξ可以为任意分布。本申请中,可以使用经训练的神经网络对智能体的历史观测信息和历史行为信息进行编码操作,所述神经网络可称为轨迹编码器,即q
ξ,所述轨迹编码器例如为全连接网络,包括12维隐藏层以及具有ReLU激活函数,其输入为局部效用函数中在上一个时间步后GRU的隐藏状态。
因为角色编码器的输入为观测信息,所以考虑到观测信息,角色的分布
独立于局部历史,则:
其中,D为缓冲器,H(·)和cε[·||·]分别为熵和交叉熵操作数。
如上所述,在第一规范项的作用下,涌现的角色属性足够丰富且都可以通过行为识别,但角色属性过于丰富也会影响智能体协同完成任务的性能。最小化损失函数使得角色属性包含了足够多长期行为相关信息,但是并不能确保具有相似行为的智能体具有相似的角色属性。直观来讲,例如,对于具有专业化子任务的两个智能体而言,两个智能体要么具有相似角色属性,要么具有完全不同的职责,这些都可以通过其行为轨迹来表征。然而,在角色属性的涌现过程中,两个智能体彼此并不知道他们具有相似角色,行为之间的相似性也很难被限定。
为了解决上述问题,在某些实施方式中,所述角色控制机制基于所述多个智能体的当前观测信息、所述多个智能体的当前角色属性、以及所述多个智能体的轨迹信息而被优化,以使所述目标智能体所执行的后续行为操作反映出比优化前具有更专业化的角色属性。其中,所述专业化并不表示角色属性在数量上的变化,而是指角色属性相似的智能体共享一个策略,进而提高了学习效率,达到专业化的目的。
在一具体示例中,为了鼓励智能体i和智能体j具有相似角色属性以及相似行为,最大化智能体i的角色属性ρi和智能体j的轨迹信息τj之间的互信息,即I(ρi|τj)。但在实际操作中,直接优化上述互信息会导致所有智能体具有一个相同的角色属性,以及对应地,具有一个相同的行为特征,呈现出相同的行为操作,这会限制系统性能。为解决此问题,本申请中,设定用于使角色专业化的第二规范项,引入相异性模型dφ:T×T→R,所述相异性模型可以为经训练的神经网络,其输入为智能体i和智能体j的轨迹信息,并最大化I(ρi;τj)+dφ(τi;τj),同时最小化矩阵Dφ=(dij)中的非零项的数量,其中,dij=dφ(τi;τj),用于表示智能体i和智能体j的轨迹信息之间的相异性。基于此,可以确保仅当互信息I低时相异性d高,因而所学习的角色属性被专业化但又足够多样化以识别子任务,进而有效地解决所分配的任务。
在实际计算中,涉及到最大化互信息
在此,推导出该互信息的可变下限以使其可优化
然后,将角色分布的方差以一很小值(0.1)裁剪,以确保角色分布的熵总为非负,进而使得不等式成立:
其中,qξ为上述的轨迹编码器,KL散度项因是非负的,因而在推导下限时可忽略,因此,
鉴于此,为了学习专业化角色,最小化下述项:
其中,
表示智能体i和智能体j的轨迹信息之间所估计的相异性。
其中,τ
t-1是节点轨迹信息,o
t是节点观测信息,
令:
因为
以及
所以
即公式(8)满足:
最小化该上限以优化公式(8)。在使用时,使用缓冲器并最小化损失函数
其中,D为缓冲器,τ
t-1是节点轨迹信息,o
t是节点观测信息,
如上所述,在第二规范项的作用下,使得角色属性尽量被专业化。
结合第一规范项和第二规范项,在第一规范项的作用下获得高识别性角色属性,第二规范项使基于第一规范项下获得的丰富角色属性更专业化,实现了角色属性多样化、可识别以及专业化的目的。此外,通过两个规范项对应的损失函数对角色编码器、角色解码器、轨迹编码器等进行训练和优化,使得本申请智能体的控制方法能够学习动态的、多样化的、可识别的以及专业化的角色属性,提高了智能体协同工作的性能。
基于上面的描述,针对本申请智能体的控制系统中所采用的神经网络,在训练及优化时引入损失函数对神经网络进行调整。例如,本申请中的损失函数包括但不限于:LI,LD以及LTD。其中,LI和LD如上所述,主要用于训练和优化涉及第一规范项和第二规范项的神经网络中的参数。LTD为强化学习的标准时序差分损失函数(TD loss),用于训练和优化本申请的ROMA架构下所有网络的参数。
基于此,在本申请智能体的控制系统中,所述生成装置用于在所述角色控制机制下基于包含所述当前观测信息的输入信息集生成所述目标智能体的当前评价信息;所述智能体的控制系统还包括评价信息生成模块和优化模块,评价信息生成模块用于根据所述目标智能体的当前评价信息以及所述多个智能体中其他智能体所生成的各自当前评价信息生成所述多个智能体执行协同任务的整体评价信息;优化模块用于基于所述整体评价信息对所述角色控制机制进行优化。
所述当前评价信息用于表征智能体执行当前行为操作后对系统性能的影响度,当前评价信息可以被记录下来以用于后续优化操作。
具体地,在以图8所示系统生成各智能体的当前评价信息Q(τ,at)后,通过评价信息生成模块例如混合网络将各智能体的当前评价信息Q进行混合处理,以生成多个智能体执行协同任务的整体评价信息Qtot。其中所述混合网络可以是简单的加法网络,或者是经训练的神经网络,所述神经网络例如包括32维隐藏层以及具有ReLU激活函数,所述神经网络的参数可经由另一神经网络基于全局状态s生成,所述另一神经网络的参数为θm且具有全连接的32维隐藏层。在某些实施例中,所述混合网络的设置与QMIX算法中的混合网络的架构相同,在此不再赘述。
然后基于所得到的整体评价信息,优化模块可以根据损失函数LTD对角色控制机制中涉及的参数进行优化。
此外,所述智能体的控制方法中所采用的神经网络的整体损失函数如下所示:
其中,θ=(θp,ξ,φ,θh,θm),λI和λD是比例因子,LTD(θ)=[r+γmaxa'Qtot(s',a';θ-)-Qtot(s,a;θ)]2,θ-是周期性更新的目标网络的参数。
基于上述整体损失函数,可以将前期一段时间内在缓冲器中存储的数据作为新的样本数据,对所述控制方法中涉及的神经网络进行优化,使得角色编码器、角色解码器、局部效用网络、混合网络以及轨迹编码器等在使用的同时不断被优化训练,以获得更优的性能。
本申请还提供一种计算机装置,请参阅图9,其显示为本申请计算机装置在一实施例中的结构示意图,如图所示,本申请的计算机装置90包括:显示器91,至少一个存储器92,以及至少一个处理器93。
在实施例中,所述计算机装置例如为装载有APP应用程序或具备网页/网站访问性能的电子设备,所述电子设备包括存储器、存储器控制器、一个或多个处理单元(CPU)、外设接口、RF电路、音频电路、扬声器、麦克风、输入/输出(I/O)子系统、显示屏、其他输出或控制设备,以及外部端口等组件,这些组件通过一条或多条通信总线或信号线进行通信。所述电子设备包括但不限于如台式电脑、笔记本电脑、平板电脑、智能手机、智能电视等个人计算机。所述电子设备还可以是由带有多个虚拟机的主机和对应每个虚拟机的人机交互装置(如触控显示屏、键盘和鼠标)所构成的电子设备。
所述显示器的功能是通过电子设备中的图形模块及显示器控制器实现的,所述图形模块包括用于在触摸屏上呈现和显示图形的各种已知软件组件。注意术语“图形”包括可以显示给用户的任何对象,包括但不局限于文本、网页、图标(例如包括软按键在内的用户界面对象)、数字图像、视频、动画等等。显示屏例如为触摸屏,在设备与用户之间同时提供输出接口和输入接口。触摸屏控制器接收/发送来自/去往触摸屏的电信号。该触摸屏则向用户显示可视输出。这个可视输出可以包括文本、图形、视频及其任意组合。
为了能够更直观地显示各智能体隐含的角色属性,显示器91用于显示各智能体当前角色属性的相似性。由于角色属性是从高斯分布中所采样而来的,因而可以利用高斯分布中的均值来实现可视化。具体地,以三维向量描述均值,对应地,经采样获得的角色属性也由三维向量表示,则在三维空间中,依据均值或角色属性对应的三维向量在三维空间中显示各智能体。另外,均值接近的目标可以用一种颜色或同一种图形表示,则在当前时间步下颜色相同或形状相同的智能体表示其角色属性相似。请参阅图10,其显示为本申请计算机装置中的显示器显示的角色属性相似性的示意图。如图所示,设置均值接近的智能体采用同一种图形表示,图中圆形、椭圆型和正方形都表示智能体,当前环境中共有十个智能体,由图可知,呈现圆形的五个智能体具有相似的第一种角色属性,呈现正方形的三个智能体具有相似的第二种角色属性,呈现椭圆型的两个智能体具有相似的第三种角色属性。在实际操作中,可以通过例如均值通过图形或颜色的方式可视化智能体的角色属性,可以使用户直观地观察智能体的角色属性的涌现以及演化的过程。
所述至少一个存储器用于存储至少一个程序;在实施例中,所述存储器可包括高速随机存取存储器,并且还可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。在某些实施例中,存储器还可以包括远离一个或多个处理器的存储器,例如经由RF电路或外部端口以及通信网络访问的网络附加存储器,其中所述通信网络可以是因特网、一个或多个内部网、局域网、广域网、存储局域网等,或其适当组合。存储器控制器可控制设备的诸如CPU和外设接口之类的其他组件对存储器的访问。
在一实施例中,所述至少一个处理器与所述至少一个存储器连接,用于运行所述至少一个程序时以执行并实现如上述智能体的控制方法所描述的至少一种实施例,比如图1至图3中所描述的实施例。在实施例中,所述处理器可操作地与存储器和/或非易失性存储设备耦接。更具体地,处理器可执行在存储器和/或非易失性存储设备中存储的指令以在计算设备中执行操作,诸如生成图像数据和/或将图像数据传输到电子显示器。如此,处理器可包括一个或多个通用微处理器、一个或多个专用处理器、一个或多个现场可编程逻辑阵列、或它们的任何组合。
本申请还提供一种计算机可读写存储介质,存储有计算机程序,所述计算机程序被执行时实现上述针对智能体的控制方法所描述的至少一种实施例,比如图1至图3任一中所描述的实施例。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
于本申请提供的实施例中,所述计算机可读写存储介质可以包括只读存储器、随机存取存储器、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁存储设备、闪存、U盘、移动硬盘、或者能够用于存储具有指令或数据结构形式的期望的程序代码并能够由计算机进行存取的任何其它介质。另外,任何连接都可以适当地称为计算机可读介质。例如,如果指令是使用同轴电缆、光纤光缆、双绞线、数字订户线(DSL)或者诸如红外线、无线电和微波之类的无线技术,从网站、服务器或其它远程源发送的,则所述同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线电和微波之类的无线技术包括在所述介质的定义中。然而,应当理解的是,计算机可读写存储介质和数据存储介质不包括连接、载波、信号或者其它暂时性介质,而是旨在针对于非暂时性、有形的存储介质。如申请中所使用的磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。
在一个或多个示例性方面,本申请所述方法的计算机程序所描述的功能可以用硬件、软件、固件或其任意组合的方式来实现。当用软件实现时,可以将这些功能作为一个或多个指令或代码存储或传送到计算机可读介质上。本申请所公开的方法或算法的步骤可以用处理器可执行软件模块来体现,其中处理器可执行软件模块可以位于有形、非临时性计算机可读写存储介质上。有形、非临时性计算机可读写存储介质可以是计算机能够存取的任何可用介质。
本申请上述的附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。基于此,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以通过执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以通过专用硬件与计算机指令的组合来实现。
上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本申请所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。