1.2.2 多智能体系统
随着群体智能的发展,它与诸多领域(如计算机科学、机器学习、运筹学、社会学等)产生了各种联系与交叉。智能体应用如火如荼、普遍存在于智能网联车、无人机群、全息通信等中,并表现为群体智能系统。在这些大规模系统中,群体智能以智能体的学习过程为基础,在保证模型可以收敛的情况下增加智能体之间的协作过程,提升多智能体的性能水平。群体智能技术可以在没有中心控制且对全局环境认知不足的情况下完成很多复杂任务,这一优势使其在多个领域崭露头角。如图1-2所示,目前群体智能技术的典型应用领域和场景包括:
1)工业4.0:群体智能在工业生产领域被广泛应用于生产调度、智能控制器优化/设计、系统优化等方面。
2)智能交通:群体智能在交通运输领域具体可以应用于路径规划、导航避障,也可通过仿真平台进行交通事故的模拟分析。
3)通信网络:群体智能在通信领域具体可应用于通过无人机或观测站构建自组织通信网络、完成通信网络的节点优化和路由优化,以及未来的海、陆、空立体通信网络的构建。
4)数据分析:群体智能技术在数据分析领域具体应用于聚类分析、群体智能软件开发、交互场景仿真以及神经网络训练等方面。
5)军事国防:军事应用是群体智能技术目前应用最为广泛的一个领域,具体可以应用于无人机编队控制、多艇协同攻击、鱼雷查打一体、水下实时监控等方面。
图1-2 群体智能技术的典型应用领域和场景
群体智能研究也不限于群体智能优化算法,涵盖了多智能体系统、多机器人协同合作等多个方面,它们之间的关系如图1-3所示。通过将若干个具备简单智能且易于控制和管理的系统,通过互相协作实现较为复杂的智能,多智能体系统具有更好的自主性、灵活性、可拓展性和鲁棒性,其协调控制的基本问题包括一致性控制、会合控制、聚结控制和编队控制等。多智能体系统要达到协调控制,首先需要模拟生物群体行为,建立群体运动模型,其次构建通信拓扑结构来完成信息交互,最后通过一致性协议使得每个个体均能达到近似相同的状态,实现协同控制。
图1-3 群体智能衍生关系
1)运动模型。多智能体系统常见的建模手段是基于个体的微观模型,这类模型以个体为建模对象,通过个体的感知、交互、运动规律以及外部环境影响等因素进行建模。Reynolds、Vicsek、Couzin等人是研究集群运动模型的代表人物,其中,Reynolds等人所提出的分离(Separation)、同步(Alignment)、聚集(Cohesion)三个基本规则奠定了集群运动模型的基础。
2)通信拓扑。多智能体系统实现信息交互需要在个体间建立物理连接,将智能体个体视为节点,各节点互连形成拓扑结构。常用的拓扑结构有树形、总线型、星形和环形,当面对大型通信网络的构建时,一般采用网状拓扑结构。网状拓扑结构使用路由算法得到发送数据的最佳路径。此外,随着图论、矩阵论、非线性理论等相关理论的引入,多智能体系统通信拓扑结构的搭建变得更加高效、可靠。
3)一致性协议。一致性协议用来维护系统中各智能体即各节点间信息和数据的一致性,来确保系统能够可靠地完成任务。一致性协议可分为单主协议和多主协议。单主协议指整个集群系统中仅存在一个主节点,主要有2PC、Paxos、Raft协议等;多主协议指整个集群中存在多个主节点,主要有Pow协议以及Gossip协议。在多智能体协同结构中,一致性协议是使系统整体高效,可靠运行的关键。
多智能体系统在当今社会中日益普遍,如智能交通灯通过感知路网的车流数据给出实时的红绿灯信号调配,优化早晚高峰的交通情况;无人驾驶车通过感知周围车辆的信号,做出局部最优行车的轨迹规划。在多智能体系统中的每个智能体(如无人驾驶车)视角下,当前决策环境中还包含其他智能体,它们也在不断学习和更新自己的决策方式,所以该决策环境是非稳态的(Non-stationary)。这打破了传统机器学习(特别是强化学习)的基本假设,即环境虽然可以是动态随机的,但必须是稳态的。为了解决多智能体系统中每个智能体的最优决策问题,克服单智能体强化学习在多智能体系统中面临的非稳态环境问题,多智能体强化学习技术在近年来开始获得越来越多的关注。
非依赖性强化学习(Independent Reinforcement Learning, IRL)[21]是单智能体直接扩展并应用到多智能体系统而得到的一种自然模型。在该模型中,通过只接收和自身相关的环境信息,每个智能体被指定完成独立的强化学习过程,并且将全局奖励值直接当作个体奖励值来使用。除此之外,除非群体协作任务需要,智能体之间没有额外的信息交互过程和协作行为。在非依赖性强化学习中,由于只接收和利用与自身相关的环境信息,因此单个智能体通常可以保证学习环境的平稳。但是,在不考虑群体协作机制的情况下,系统中的每个智能体都会优先考虑最大化自身的累积奖励值,特别是在多个智能体不完全合作的任务场景中(即多个智能体的奖励值之间会产生冲突)。该现象会影响任务的完成效果,使系统陷入局部最优。此外,在非依赖性强化学习中,还需要对全局奖励的分配机制进行设计。值得一提的是,非依赖性强化学习是在对多智能体强化学习的研究中被广泛采用的一种基础模型,其中最重要的原因在于该模型具有很强的易实施性和鲁棒性。该模型在许多现实场景中取得了不错的测试效果[22]。
近年来,深度强化学习的快速发展为单个智能体的模型训练过程提供了许多十分高效的算法,其中有基于价值迭代的算法[23],也有基于策略迭代的算法[24-26]。特别地,基于演员—评论家(Actor-Critic)的强化学习结构由于具有良好的收敛特性而被广泛使用。此外,为了提升模型训练方法的可扩展性,当群体智能系统包含的智能体数量较大时,参数共享是在多智能体强化学习中被广泛采用的一种技术方法[27]。这类方法普遍采用联邦学习[28-35]、图神经网络[36]等方式进行多智能体之间集中式或者去中心化的信息交互。例如在联邦学习中,事先假定系统中的所有智能体共用一套模型参数,即使这些智能体可能处于不同的任务场景当中。在参数共享技术中,群体智能系统通常会额外设置一个中心节点。中心节点不参与和环境的交互过程,而是依靠每个智能体从环境中收集到的样本信息进行模型参数的更新,并将更新后的模型参数共享给所有智能体。在参数共享技术中,单个智能体获取更新后的模型参数的时机可以是同步的[37],也可以是异步的[24]。除此之外,中心节点收集样本信息的方式通常可以分成两类:收集模型的计算梯度值[24]和收集训练样本[38]。在第一种情况下,中心节点从每个智能体处得到的是直接用于模型参数更新的梯度值,该梯度值是由每个智能体在本地通过梯度计算过程得到的,这种收集方式适用于智能体在本地的计算资源充足但是通信资源匮乏的场景。在第二种情况下,中心节点收集每个智能体得到的训练样本,这些训练样本可以直接用来更新中心节点的模型参数,也可以用来补充经验池(Experience Pool),然后通过深度强化学习中的经验回放机制(Experience Replay)来更新模型参数[23],这种收集方式适用于智能体在本地的计算资源匮乏但是通信资源充足的场景。参数共享技术的优势是可以提升多智能体强化学习模型训练算法的可拓展性,并提升模型在训练过程当中的稳定性和收敛性。另外,智能体间的通信水平也会在一定程度上影响联邦学习或者图神经网络的性能,并且已得到一定的关注。文献[34]面向资源异构、通信拓扑受限下的联邦学习,提出了基于网络感知的优化方法。文献[35]研究了资源受限的边缘计算系统,提出了自适应联邦学习算法。文献[28]将上述结果进一步拓展到了无线网络场景。文献[31]利用周期性平均的方法设计了具备高效通信的联邦学习机制,并设计了基于高斯分布的方法,将边缘设备的训练结果扰动后传输至联邦学习,从而取得更好的性能。文献[39]提出了基于量化的联邦学习方法。但上述方法主要考虑单任务的场景,文献[33]针对联邦多任务场景进行了分析,并利用主—对偶方法(Primal-Dual Method)有效解决了多任务本地数据保护的难题。文献[40]借鉴设备间通信的理念,通过增加少量同层智能体之间的交互,提升联邦强化学习的性能。针对图神经网络的通信交互开销问题,文献[41]提出利用网络节点数据采样的方法减少资源开销。然而,参数共享技术不能扮演多智能体协作算法的角色,也不能解决多智能体强化学习中的学习环境非平稳以及全局奖励分配等问题。
基于深度强化学习等的多智能体系统通常可以分成训练和测试两个阶段,并且依据单个智能体对环境信息的感知和利用程度,每个阶段又可以大致分成两类:集中式(Centralized)和分散式(Decentralized)。在测试执行阶段,群体智能系统大多采用的是分散式执行的形式,目的是最大程度地发挥多智能体并行工作的优势。而在训练阶段,群体智能系统则可以采用集中式训练和分散式训练两种不同的形式。相较于分散式训练,集中式训练的一个突出特点是,单个智能体在训练过程中可以利用到超出自身感知能力的更多信息,进而缓解多智能体强化学习中的经典问题。集中式训练的优势是可以在更大程度上探索多个智能体的最佳行为策略,然而,集中式训练的前提假设往往过于理想,导致该训练方式无法在一些实际场景中实现。因此,相较于分散式训练,集中式训练的适用性较差。另外,在多智能体强化学习中,依据群体智能系统目标任务的不同,可以将多个智能体之间的关系划分成以下三类:合作关系、竞争关系和混合关系。
❑ 在合作关系中,多个智能体的奖励值之间不会产生冲突,并且单个智能体的行为选择不会对其他智能体的行为选择造成影响。在这种情况下,最大化群体智能系统的全局奖励值等价于最大化每一个智能体的个体奖励值。值得一提的是,智能体之间的合作关系可以极大地缓解多智能体强化学习中的全局收益分配问题,针对这种类型的目标任务,通常可以直接应用上文提到的非依赖性强化学习。
❑ 在竞争关系中,多个智能体的奖励值之间是完全冲突的,这意味着一个智能体的个体奖励值的增加必然会导致其他智能体的个体奖励值的减少。在这种情况下,基于零和(Zero-Sum)博弈理论的奖励函数设计方法在研究中被广泛使用[42]。
❑ 在混合关系中,多个智能体之间既存在合作关系,也存在竞争关系,混合关系是在群体智能系统中最广泛存在的一种关系。
围绕多智能体强化学习的协作问题,表1-1列举出了一些典型方法。概括地讲,多智能体协作可以有以下几种形式:
❑ 独立学习类[27,42]。该类算法将单智能体强化学习直接扩展并应用到群体智能系统中,其中多个智能体相互独立,基本遵循非依赖性强化学习的思路。独立学习类算法在包含合作关系或者竞争关系的任务中取得了良好的测试效果,原因是在这一类任务中,多个智能体的协作方法以及全局奖励的分配机制都得到了极大的简化。
❑ 通信协作类[43-45]。该类算法显式地假设智能体之间存在信息的交互过程,并在训练过程中使智能体学习如何根据自身的感知信息来生成通信消息,或者确定是否需要通信、与哪些智能体进行通信等。在测试执行阶段,每个智能体都需要显式地根据其他智能体传递的消息进行决策。通信协作类算法以智能体之间的通信过程来实现多智能体协作,并通过消息的传递来解决单个智能体对学习环境观测不足的问题。可以看出,通信协作类算法的性能取决于针对通信动作、通信消息以及通信时机等内容的设计方法,并需要在训练过程中保证智能体的行动策略可以收敛。然而,通信协作类算法不能有效解决全局收益的分配问题,这会限制该类算法在现实场景中的应用。
❑ 群体协作类。该类算法针对目标任务人为地在多个智能体之间引入协作机制。其中,在解决全局收益分配问题方面[46-48],一种直观的解决方案是在得到全局收益的同时,计算出每个智能体对于该全局收益的贡献值,计算的贡献值可以用来指导全局收益在多个智能体之间的分配过程。在这种解决方案中,每个智能体的贡献值都可以通过估计整个群体在缺少该智能体的情况下获得的全局收益和原本的全局收益的差值来得到[49]。该方案存在的难点是如何准确、快速地估算出每个智能体的贡献值。特别地,在该方案中,需要将缺少某个智能体的群体置于完全相同的任务仿真场景中进行模拟,从而得到用来对比的全局收益值。然而,当系统中的智能体数量不断增大时,针对智能体的模拟次数也会不断增多,进而导致训练时间大大增加。除此之外,为了解决单个智能体的部分观测问题,已有研究在模型的训练阶段采用集中式训练的方式来提升模型的训练效果,其中有基于演员—评论家的学习结构进行设计的方法[50],也有对经验回放机制进行进一步改进的方法[51-52]。然而,正如前文所述,集中式训练的前提假设往往过于理想,例如,单个智能体在训练阶段需要利用其他智能体的感知信息或者行动策略来辅助自身决策,这在一些现实场景中是无法实现的,进而限制了该类算法的实际部署和应用。
❑ 模型设计类。该类算法主要通过对其他智能体的策略或行动意图进行建模来更好地进行协作或者更快地打败竞争对手[53],其工作重点是对智能体的策略模型和决策过程进行设计。
表1-1 群体智能的一些典型方法
有关多智能体系统的研究尝试从不同的角度来解决该领域中的经典问题,而在群体协作方法上,罕有研究在多智能体强化学习中利用既有算法模型在解决一系列经典问题的同时,诱发期望的智能涌现现象,后者被认为是提升群体协作效率的有效方法。另外,深度强化学习是单个智能体借助与环境之间的交互过程来提升自身智能水平的重要方式,与此同时,群体智能中的智能涌现过程则是提升群体协作效果的重要环节。因此,图1-4所示为多智能体强化学习系统的演进示意图。在图1-4中,个体智能水平和群体智能水平的提升是一个相互促进的过程,其中包含了两个十分重要的阶段,第一个阶段是深度强化学习过程。借助于智能涌现过程提供的宝贵经验,单个智能体可以通过这个阶段来提升自身的智能水平。第二个阶段是智能涌现过程,借助于合适的群体协作机制,单个智能体可以最大程度地发挥自身的效用,进而提升群体智能系统的性能水平。在整个演进过程中,群体智能水平由群体协作机制和单个智能体的水平两个因素共同决定,伴随着单个智能体水平的不断提升,群体协作的效果也会越来越好。
图1-4 多智能体强化学习系统的演进示意图