type
status
password
date
slug
summary
category
URL
tags
icon
多智能体系统(multi-agent system,缩写MAS)中包含个智能体,智能体共享环境,智能体之间会相互影响。
多智能体系统设定
多智能体系统有四种常见设定:合作关系(fully cooperative)、竞争关系(fully com petitive)、合作竞争的混合(mixed cooperative & competitive)、利已主义(self-interested)。
- 完全合作关系:智能体的利益一致,有共同的目标,获得的奖励相同。假设一共有个智能体,它们在t时刻获得的奖励分别是。(用上标表示智能体,用下标表示时刻。)在完全合作关系中,它们的奖励是相同的:
- 完全竞争关系:一方的收益是另一方的损失。在完全竞争的设定下,双方的奖励是负相关的:对于所有的,有。如果是零和博弈,双方的获得的奖励总和等于:。
- 合作竞争的混合。智能体分成多个群组;组内的智能体是合作关系,它们的奖励相同;组间是竞争关系,两组的奖励是负相关的。
- 利己主义:系统内有多个智能体;一个智能体的动作会改变环境状态,从而让别的智能体受益或者受损。利己主义的意思是智能体只想最大化自身的累计奖励,而不在乎他人收益或者受损。
比如股票自动交易程序可以看做是一个智能体;环境(股市)中有多个智能体。这些智能体的目标都是最大化自身的收益,因此可以看做利己主义。智能体之间会相互影响:一个智能体的决策会影响股价,从而影响其他自动交易程序的收益。智能体之间有潜在而又未知的竞争与合作关系:一个智能体的决策可能会帮助其他智能体获利,也可能导致其他智能体受损。
完全合作关系
简介
- 价值
完全合作关系(fully-cooperative)意思是所有智能体的利益是一致的,它们具有相同的奖励:
所以不同智能体具有相同的状态价值。
- 状态
一个智能体未必能观测到全局状态。设第号智能体有一个局部观测,记作,它是的一部分。
举个例子,在某个竞技电游中,玩家组队打任务;每完成一个任务,团队成员(即智能体)获得相同的奖励。所以大家的全都是一样的。和显然与所有成员的策略相关:只要有一个猪队友(即策略差)拖后腿,就有可能导致任务失败。通常来说,团队成员有分工合作,因此每个成员的策略是不同的,即。

原理
目标函数
设每个智能体的策略函数为那么所有智能体都有一个共同目标函数:
训练
合作关系设定下的策略学习的原理很简单,即让智能体各自做策略梯度上升,使得目标函数增长。
公式中的 是学习率。判断策略学习收敛的标准是目标函数不再增长。
多智能体A2C
网络结构
- 价值网络:记作,它是对状态价值函数的近似。它把所有观测作为输入,并输出一个实数,作为对状态的评分。
- 策略网络:第号智能体的策略网络。所有智能体的策略网络结构都一样,但是参数可能不一样。输入是所有智能体的观测:。输出是在离散动作空间上的概率分布。比如,第号智能体的动作空间是;策略网络的输出是
梯度
- 价值网络损失函数:用TD算法训练价值网络,损失网络的梯度可以表示为
- 策略网络损失函数:根据10.2 Advantage actor-critic (A2C) 的推导,我们把近似成,把近似成。那么近似策略梯度可以进一步近似成:
训练流程
设当前价值网络和目标网络的参数分别是 和 。设当前个策略网络的参数分别是。MAC-A2C重复下面的步骤更新参数:
- 观测到当前状态,让每一个智能体独立做随机抽样:
并执行选中的动作。
- 从环境中观测到奖励与下一时刻状态
- 让价值网络做预测:
- 让目标网络做预测:
- 计算TD目标与TD误差:
- 更新价值网络参数:
- 更新目标网络参数:
- 更新策略网络参数:
MAC-A2C属于同策略(on-policy),不能使用经验回放。
决策流程
在完成训练之后,不再需要价值网络。每个智能体可以用它自己的策略网络做决策。在时刻t观测到全局状态,然后做随机抽样得到动作:
并执行动作。
注意,智能体并不能独立做决策,因为一个智能体的策略网络需要知道其他所有智能体的观测。
实现中的难点
在MARL的常见设定下,第号智能体只知道,而观测不到全局状态:
这会给决策和训练造成如下的困难:
- 每个智能体有自己的策略网络,可以依靠它做决策。但是它的决策需要全局状态。
- 在训练价值网络时,为了计算TD误差与梯度,价值网络需要知道全局状态
- 在训练策略网络时,为了计算梯度,每个策略网络都需要知道全局状态。
综上所述,如果智能体之间不交换信息,那么智能体既无法做训练,也无法做决策。想要做训练和决策,有两种可行的途径:
- 一种办法是让智能体共享观测。这需要做通信,每个智能体把自己的传输给其他智能体。这样每个智能体都有全局的状态。
- 另一种办法是对策略网络和价值函数做近似。通常使用替代。甚至可以进一步用代替。
共享观测的缺点在于通信会让训练和决策的速度变慢。而做近似的缺点在于不完全信息造成训练不收敛、做出错误决策。我们不得不在两种办法之间做出取舍,承受其造成的不良影响。
三种架构

中心化训练+中心化决策
- 中心化训练
在时刻和,中央控制器收集到所有智能体的观测值
在“完全合作关系”的设定下,所有智能体有相同的奖励:
可以是中央控制器直接从环境中观测到的,也可能是所有智能体本地的奖励的加和:
更新价值网络的参数和策略网络的参数。
- 中心化决策
在时刻,中央控制器收集到所有智能体的观测值,然后用中央控制器上部署的策略网络做决策:
中央控制器把决策传达给第号智能体,该智能体执行。
优缺点
- 优点:基于全局的观测做中心化的决策,利用完整的信息,因此作出的决策可以更好。
- 缺点:在于延迟(latency)很大,影响训练和决策的速度。在中心化执行的框架下,智能体与中央控制器要做通信。
去中心化训练+去中心化决策
去中心化训练的本质就是单智能体强化学习(SARL),而非多智能体强化学习(MARL)。在MARL中,智能体之间会相互影响,而本节中的“去中心化训练”把智能体视为独立个体,忽视它们之间的关联,
用局部观测代替,把策略网络和价值网络近似成为:
- 去中心化训练:假设所有智能体的奖励都是相同的,而且每个智能体都能观测到奖励。每个智能体独立做训练,智能体之间不做通信,不共享观测、动作、参数。每个智能体独立学习自己的参数与。
- 在时刻,智能体观测到,然后做随机抽样,并执行选中的动作。
- 环境反馈给智能体奖励与新的观测。
- 让价值网络做预测:。
- 让目标网络做预测:。
- 计算TD目标与TD误差:
- 更新价值网络参数:
- 更新目标网络参数
- 更新策略网络参数:
每个智能体还需要一个目标网络,记作 ,它的结构与 相同,但是参数不同。设第号智能体的策略网络、价值网络、目标网络当前参数分别为、、。该智能体重复以下步骤更新参数:
- 去中心化决策:在完成训练之后,智能体不再需要其价值网络。智能体只需要用其本地部署的策略网络做决策即可,决策过程无需通信。去中心化执行的速度很快,可以做到实时决策。
中心化训练+去中心化决策
价值网络的输入是全局状态。第号策略网络的输入是当前观测(智能体局部观测替换了全局状态)。
- 中心化训练:训练的过程需要所有个智能体共同参与,共同改进策略网络参数 与价值网络参数。设当前个策略网络的参数为. 设当前价值网络和目标网络的参数分别是和。训练的流程如下:
- 每个智能体i与环境交互,获取当前观测,独立做随机抽样:
- 下一时刻,每个智能体都观测到。假设中央控制器可以从环境获取奖励,或者向智能体询问奖励。
- 每个智能体向中央控制器传输观测和;中央控制器得到状态
- 中央控制器让价值网络做预测:。
- 中央控制器让目标网络做预测:。
- 中央控制器计算TD目标和TD误差:
- 中央控制器更新价值网络参数:
- 中央控制器更新目标网络参数:
- 每个智能体更新策略网络参数:
并执行选中的动作。
并将广播到所有智能体。
- 去中心化决策:在完成训练之后,不再需要价值网络。智能体只需要用其本地部署的策略网络做决策,决策过程无需通信。去中心化执行的速度很快,可以做到实时决策。
非合作关系
简介
本章研究非合作关系,智能体各自有不同的奖励、回报、价值、目标函数。

原理
目标函数
在非合作关系下,智能体的回报价值不同,不同智能体的状态价值可以表示为:
第号智能体的目标函数是状态价值的期望:
目标函数,· 是各不相同的,也就是说智能体没有共同的目标。举个例子,在predator-prey(捕食者—猎物)的游戏中,捕食者的目标函数与猎物的目标函数负相关:。
注第号智能体的目标函数依赖于所有智能体的策略网络参数 ,。为什么一个智能体的目标函数依赖于其他智能体的策略呢?举个例子,捕食者改进自己的策略,而猎物没有改变策略。虽然猎物的策略没有变化,但是它的目标函数会减小。
训练
在多智能体的策略学习中,第号智能体的目标是改进自己的策略参数,使得尽量大。多智能体的策略学习可以描述为这样的问题:
目标函数 是各不相同的,也就是说智能体没有共同的目标。策略学习的基本思想是让每个智能体各自做策略梯度上升:
公式中的是学习率。由于无法直接计算策略梯度,我们需要对其做近似。各种策略学习方法的区别就在于如何对策略梯度做近似。
收敛标准
在非合作关系设定下,收敛标准是纳什均衡。一个智能体在制定策略的时候,要考虑到其他各方的策略。在纳什均衡的情况下,每一个智能体都在以最优的方式来应对其他各方的策略,所有智能体都找不到更好的策略。这种平衡状态就被认为是收敛。在实验中,如果所有智能体的平均回报都不再变化,就可以认为达到了纳什均衡。
多智能体系统中,在其余所有智能体都不改变策略的情况下,一个智能体单独改变策略,无法让其期望回报变大。
评价策略的优劣
以捕食者—猎物的游戏为例,我们用两种方法和训练策略网络,把它们训练出的策略网络
参数分别记作和。在非合作关系的设定下,请问和孰优孰劣呢?
设收敛时的平均回报为:假如我们的目标是学出强大的捕食者(predator),能否说明策略优于?答案是否定的。>可能是由于策略没有训练好猎物(prey)的策略,导致捕食者(predator)相对有优势。所以>并不能说明策略>。
如何评价两种方法和的优劣呢?
以捕食者—猎物的游戏为例,我们让一种方法训练出的捕食者与另一种方法训练出的猎物对决:
非合作设定下的多智能体A2C
策略网络和价值网络
每个智能体有自己的策略网络和价值网络,记作:
- 价值网络:记作。第 号价值网络需要把所有智能体的观测作为输入,并输出一个实数,作为对第号智能体,状态的评分。
- 在完全合作关系,所有智能体有相同的状态价值函数,所以只用一个神经网络近似,记作。
- 在非合作关系,每个智能体各有一个状态价值函数,所以每个智能体各自对应一个价值网络。
- 策略网络:记作。第 号策略网络需要把所有智能体的观测作为输入,并输出一个概率分布;第个智能体依据该概率分布抽样得到动作。
梯度
在非合作关系设定下,第号智能体的动作价值函数记作,策略网络记作。
- 价值函数梯度:用TD算法训练价值网络,损失网络的梯度可以表示为
- 策略梯度:设基线为不依赖于动作的函数。那么有
把近似成,可以近似为
推导
按照10.2 Advantage actor-critic (A2C) 的推导。我们用作为定理中的基线,并且用价值网络近似;并把近似成。那么策略梯度可以进一步近似为
观测到状态、、动作、奖励
训练流程
使用目标网络缓解自举造成的偏差。第号智能体的目标网络记作,它的结构与相同,但是参数不同。设第号智能体策略网络、价值网络、目标网络当前的参数是、、。MAN-A2C重复下面的步骤更新参数:
- 观测到当前状态,让每一个智能体独立做随机抽样:
并执行选中的动作。
- 从环境中观测到奖励与下一时刻状态。
- 让价值网络做预测:
- 让目标网络做预测:
- 计算TD目标与TD误差:
- 更新价值网络参数:
- 更新目标网络参数:
- 更新策略网络参数:
决策流程
在完成训练之后,不再需要价值网络。每个智能体可以用它自己的策略网络做决策。在时刻观测到全局状态,然后做随机抽样得到动作:
并执行动作。智能体并不能独立做决策,因为策略网络需要知道所有的观测
三种架构
中心化训练+中心化决策
训练和决策全部由中央控制器完成。智能体负责与环境交互,执行中央控制器的决策,并把观测到的和汇报给中央控制器。这种中心化的方式严格实现了非合作设定下的多智能体A2C 的算法。

去中心化训练+去中心化决策
每个智能体上部署一个策略网络和一个价值网络,它们的参数记作和;智能体之间不共享参数。并对策略网络和价值网络做以下近似:
这样一来,训练就可以在智能体本地完成,无需中央控制器的参与,也无需通信。这种实现的本质是单智能体强化学习,而非多智能体强化学习。

中心化训练+去中心化决策
价值网络的输入是全局状态。第号策略网络的输入是当前观测(智能体局部观测替换了全局状态)。

- 中心化训练:训练的过程需要所有个智能体共同参与,共同改进策略网络参数 与价值网络参数。设第号智能体的策略网络、价值网络、目标网络当前的参数分别是、、。训练的流程如下:
- 每个智能体与环境交互,获取当前观测,独立做随机抽样:
- 下一时刻,每个智能体都观测到和收到奖励。
- 每个智能体向中央控制器传输观测、、;中央控制器得到状态
- 让价值网络做预测:
- 让目标网络做预测:
- 计算TD目标与TD误差:
- 更新价值网络参数:
- 更新目标网络参数:
- 更新策略网络参数:
并执行选中的动作。
- 去中心化决策:在完成训练之后,不再需要价值网络。智能 体只需要用其本地部署的策略网络做决策,决策过程无需通信,因此决策速 度很快。
连续控制与MADDPG
本节研究连续控制问题,即动作空间,,, 都是连续集合,动作是向量。本节介绍的多智能体深度确定策略梯度(multi-agentdeepdeterministic policy gradient,缩写 MADDPG)是一种很有名的MARL方法,它的架构是“中心化训练-去中心化决策”。
策略网络和价值网络
设系统里有个智能体。每个智能体对应一个策略网络和一个价值网络:
- 策略网络:确定性的。对于确定的输入,输出的动作是确定的。
- 价值网络:输入是全局状态与所有智能体的动作,输出是一个实数,表示“基于状态执行动作”的好坏程度。
第号策略网络用于控制第 号智能体,而价值网络则用于评价所有动作,给出的分数可以指导第号策略网络做出改进,如图16.5所示:

梯度
用确定策略梯度更新策略网络,用TD算法更新价值网络。MADDPG是异策略(off-policy),我们
可以使用经验回放,重复利用过去的经验。用一个经验回放数组存储收集到的经验,每一条经验都是 这样一个四元组,其中
- 策略网络
训练第号策略网络的目标是改进,增大第号价值网络的平均打分。所以目标函数是:
其中状态;第个网络计算得到的动作是。根据链式法则,得到目标函数的梯度如下:
- 价值网络:用TD算法训练第号价值网络,让价值网络更好拟合价值函数。给定四元组,用所有个策略网络计算动作
设。然后计算 TD 目标:
再计算TD误差:
最后做梯度下降更新参数:
这样可以让价值网络的预测更接近TD目标。
中心化训练
为了训练第i号策略网络和第i号价值网络,我们需要用到如下信息:经验回放数组中的一条记录、所有个策略网络、以及第号价值网络。
- 让所有个目标策略网络做预测:
把预测汇总成
- 让所有个目标价值网络做出预测:
- 计算TD目标:
- 让所有个价值网络做预测:
- 计算TD误差:
- 更新所有个价值网络:
- 让所有个策略网络做预测:
把预测汇总成。请区别 与经验回放数组中抽出的。
- 更新所有个策略网络:,
去中心化决策
在完成训练之后,不再需要价值网络,只需要策略网络做决策。第号智能体可以基于本地观测的,在本地独立做决策:。
自注意力在中心化训练中的应用
自注意力机制(self-attention)是改进多智能体强化学习(MARL)的一种有效技巧,可以应用在中心化训练或中心化决策当中。自注意力机制在MARL中有不同的用法。此处只讲解一种用法,帮助大家理解自注意力在MARL中的意义。
非合作关系
多智能体系统中有个智能体,每个智能体有自己的观测(记作)和动作(记作)。如果做中心化训练,需要用到个状态价值网络
或个动作价值网络
由于是非合作关系,个价值网络有各自的参数,而且它们的输出各不相同。
状态价值网络示例

动作价值网络示例
使用“中心化训练+去中心化决策”架构,在中央控制器上部署个动作价值网络,把第个记作:
输入是所有智能体的观测和动作,输出是实数,表示动作价值。模型网络架构,如下图所示:
