🎛️十六、多智能体系统
2025-2-14
| 2025-4-9
字数 4486阅读时长 12 分钟
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

    网络结构

    • 价值网络:记作,它是对状态价值函数的近似。它把所有观测作为输入,并输出一个实数,作为对状态的评分。
    • 策略网络:第号智能体的策略网络。所有智能体的策略网络结构都一样,但是参数可能不一样。输入是所有智能体的观测:。输出是在离散动作空间上的概率分布。比如,第号智能体的动作空间是;策略网络的输出是
      notion image

      梯度

      • 价值网络损失函数:用TD算法训练价值网络,损失网络的梯度可以表示为
        • 策略网络损失函数:根据10.2 Advantage actor-critic (A2C) 的推导,我们把近似成,把近似成。那么近似策略梯度可以进一步近似成:

          训练流程

          设当前价值网络和目标网络的参数分别是 。设当前个策略网络的参数分别是。MAC-A2C重复下面的步骤更新参数:
          1. 观测到当前状态,让每一个智能体独立做随机抽样:
            1. 并执行选中的动作。
          1. 从环境中观测到奖励与下一时刻状态
          1. 让价值网络做预测:
          1. 让目标网络做预测:
          1. 计算TD目标与TD误差:
            1. 更新价值网络参数:
              1. 更新目标网络参数:
                1. 更新策略网络参数:
                  💡
                  MAC-A2C属于同策略(on-policy),不能使用经验回放。

                  决策流程

                  在完成训练之后,不再需要价值网络。每个智能体可以用它自己的策略网络做决策。在时刻t观测到全局状态,然后做随机抽样得到动作:
                  并执行动作。
                  💡
                  注意,智能体并不能独立做决策,因为一个智能体的策略网络需要知道其他所有智能体的观测。

                  实现中的难点

                  在MARL的常见设定下,第号智能体只知道,而观测不到全局状态:
                  这会给决策和训练造成如下的困难:
                  • 每个智能体有自己的策略网络,可以依靠它做决策。但是它的决策需要全局状态
                  • 在训练价值网络时,为了计算TD误差与梯度,价值网络需要知道全局状态
                  • 在训练策略网络时,为了计算梯度,每个策略网络都需要知道全局状态
                  综上所述,如果智能体之间不交换信息,那么智能体既无法做训练,也无法做决策。想要做训练和决策,有两种可行的途径:
                  • 一种办法是让智能体共享观测。这需要做通信,每个智能体把自己的传输给其他智能体。这样每个智能体都有全局的状态
                  • 另一种办法是对策略网络和价值函数做近似。通常使用替代。甚至可以进一步用代替
                  共享观测的缺点在于通信会让训练和决策的速度变慢。而做近似的缺点在于不完全信息造成训练不收敛、做出错误决策。我们不得不在两种办法之间做出取舍,承受其造成的不良影响。

                  三种架构

                  notion image

                  中心化训练+中心化决策

                  • 中心化训练
                    • 在时刻,中央控制器收集到所有智能体的观测值
                      在“完全合作关系”的设定下,所有智能体有相同的奖励:
                      可以是中央控制器直接从环境中观测到的,也可能是所有智能体本地的奖励的加和:
                      更新价值网络的参数和策略网络的参数
                  • 中心化决策
                    • 时刻,中央控制器收集到所有智能体的观测值,然后用中央控制器上部署的策略网络做决策:
                      中央控制器把决策传达给第号智能体,该智能体执行
                  💡
                  优缺点
                  • 优点:基于全局的观测做中心化的决策,利用完整的信息,因此作出的决策可以更好。
                  • 缺点:在于延迟(latency)很大,影响训练和决策的速度。在中心化执行的框架下,智能体与中央控制器要做通信。

                  去中心化训练+去中心化决策

                  💡
                  去中心化训练的本质就是单智能体强化学习(SARL),而非多智能体强化学习(MARL)。在MARL中,智能体之间会相互影响,而本节中的“去中心化训练”把智能体视为独立个体,忽视它们之间的关联,
                  用局部观测代替,把策略网络和价值网络近似成为:
                  • 去中心化训练:假设所有智能体的奖励都是相同的,而且每个智能体都能观测到奖励。每个智能体独立做训练,智能体之间不做通信,不共享观测、动作、参数。每个智能体独立学习自己的参数
                    • 每个智能体还需要一个目标网络,记作 ,它的结构与 相同,但是参数不同。设第号智能体的策略网络、价值网络、目标网络当前参数分别为。该智能体重复以下步骤更新参数:
                      1. 时刻,智能体观测到,然后做随机抽样,并执行选中的动作
                      1. 环境反馈给智能体奖励与新的观测
                      1. 让价值网络做预测:
                      1. 让目标网络做预测:
                      1. 计算TD目标与TD误差:
                        1. 更新价值网络参数:
                          1. 更新目标网络参数
                            1. 更新策略网络参数:
                          • 去中心化决策:在完成训练之后,智能体不再需要其价值网络。智能体只需要用其本地部署的策略网络做决策即可,决策过程无需通信。去中心化执行的速度很快,可以做到实时决策。

                          中心化训练+去中心化决策

                          价值网络的输入是全局状态。第号策略网络的输入是当前观测(智能体局部观测替换了全局状态)。
                          • 中心化训练:训练的过程需要所有个智能体共同参与,共同改进策略网络参数 与价值网络参数。设当前个策略网络的参数为. 设当前价值网络和目标网络的参数分别是。训练的流程如下:
                              1. 每个智能体i与环境交互,获取当前观测,独立做随机抽样:
                                1. 并执行选中的动作。
                              1. 下一时刻,每个智能体都观测到。假设中央控制器可以从环境获取奖励,或者向智能体询问奖励
                              1. 每个智能体向中央控制器传输观测;中央控制器得到状态
                                1. 中央控制器让价值网络做预测:
                                1. 中央控制器让目标网络做预测:
                                1. 中央控制器计算TD目标和TD误差:
                                  1. 并将广播到所有智能体。
                                1. 中央控制器更新价值网络参数:
                                  1. 中央控制器更新目标网络参数:
                                    1. 每个智能体更新策略网络参数:
                                  • 去中心化决策:在完成训练之后,不再需要价值网络。智能体只需要用其本地部署的策略网络做决策,决策过程无需通信。去中心化执行的速度很快,可以做到实时决策。

                                  非合作关系

                                  简介

                                  本章研究非合作关系,智能体各自有不同的奖励、回报、价值、目标函数。
                                  notion image

                                  原理

                                  目标函数

                                  在非合作关系下,智能体的回报价值不同,不同智能体的状态价值可以表示为:
                                  号智能体的目标函数是状态价值的期望:
                                  💡
                                  目标函数 是各不相同的,也就是说智能体没有共同的目标。举个例子,在predator-prey(捕食者—猎物)的游戏中,捕食者的目标函数与猎物的目标函数负相关:
                                  💡
                                  注第号智能体的目标函数依赖于所有智能体的策略网络参数 ,。为什么一个智能体的目标函数依赖于其他智能体的策略呢?举个例子,捕食者改进自己的策略,而猎物没有改变策略。虽然猎物的策略没有变化,但是它的目标函数会减小。

                                  训练

                                  在多智能体的策略学习中,第号智能体的目标是改进自己的策略参数,使得尽量大。多智能体的策略学习可以描述为这样的问题:
                                  目标函数 是各不相同的,也就是说智能体没有共同的目标。策略学习的基本思想是让每个智能体各自做策略梯度上升:
                                  公式中的是学习率。由于无法直接计算策略梯度,我们需要对其做近似。各种策略学习方法的区别就在于如何对策略梯度做近似。

                                  收敛标准

                                  在非合作关系设定下,收敛标准是纳什均衡。一个智能体在制定策略的时候,要考虑到其他各方的策略。在纳什均衡的情况下,每一个智能体都在以最优的方式来应对其他各方的策略,所有智能体都找不到更好的策略。这种平衡状态就被认为是收敛。在实验中,如果所有智能体的平均回报都不再变化,就可以认为达到了纳什均衡。
                                  💡
                                  多智能体系统中,在其余所有智能体都不改变策略的情况下,一个智能体单独改变策略,无法让其期望回报变大。

                                  评价策略的优劣

                                  以捕食者—猎物的游戏为例,我们用两种方法训练策略网络,把它们训练出的策略网络 参数分别记作。在非合作关系的设定下,请问孰优孰劣呢?
                                  设收敛时的平均回报为:
                                  假如我们的目标是学出强大的捕食者(predator),能否说明策略优于?答案是否定的。>可能是由于策略没有训练好猎物(prey)的策略,导致捕食者(predator)相对有优势。所以>并不能说明策略>
                                  💡
                                  如何评价两种方法的优劣呢? 以捕食者—猎物的游戏为例,我们让一种方法训练出的捕食者与另一种方法训练出的猎物对决:

                                  非合作设定下的多智能体A2C

                                  策略网络和价值网络

                                  每个智能体有自己的策略网络和价值网络,记作:
                                  • 价值网络:记作。第 号价值网络需要把所有智能体的观测作为输入,并输出一个实数,作为对第号智能体,状态的评分。
                                    • 💡
                                      • 在完全合作关系,所有智能体有相同的状态价值函数,所以只用一个神经网络近似,记作
                                      • 在非合作关系,每个智能体各有一个状态价值函数,所以每个智能体各自对应一个价值网络
                                  • 策略网络:记作。第 号策略网络需要把所有智能体的观测作为输入,并输出一个概率分布;第个智能体依据该概率分布抽样得到动作
                                  notion image

                                  梯度

                                  在非合作关系设定下,第号智能体的动作价值函数记作,策略网络记作
                                  • 价值函数梯度:用TD算法训练价值网络,损失网络的梯度可以表示为
                                    • 策略梯度:设基线为不依赖于动作的函数。那么有
                                      • 近似成可以近似为
                                        推导
                                        按照10.2 Advantage actor-critic (A2C) 的推导。我们用作为定理中的基线,并且用价值网络近似;并把近似成。那么策略梯度可以进一步近似为
                                        观测到状态、动作、奖励

                                    训练流程

                                    使用目标网络缓解自举造成的偏差。第号智能体的目标网络记作,它的结构与相同,但是参数不同。设第号智能体策略网络、价值网络、目标网络当前的参数是。MAN-A2C重复下面的步骤更新参数:
                                    1. 观测到当前状态,让每一个智能体独立做随机抽样:
                                      1. 并执行选中的动作。
                                    1. 从环境中观测到奖励与下一时刻状态
                                    1. 让价值网络做预测:
                                      1. 让目标网络做预测:
                                        1. 计算TD目标与TD误差:
                                          1. 更新价值网络参数:
                                            1. 更新目标网络参数:
                                              1. 更新策略网络参数:

                                                决策流程

                                                在完成训练之后,不再需要价值网络。每个智能体可以用它自己的策略网络做决策。在时刻观测到全局状态,然后做随机抽样得到动作:
                                                并执行动作。智能体并不能独立做决策,因为策略网络需要知道所有的观测

                                                三种架构

                                                中心化训练+中心化决策

                                                训练和决策全部由中央控制器完成。智能体负责与环境交互,执行中央控制器的决策,并把观测到的汇报给中央控制器。这种中心化的方式严格实现了非合作设定下的多智能体A2C 的算法。
                                                notion image

                                                去中心化训练+去中心化决策

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

                                                中心化训练+去中心化决策

                                                价值网络的输入是全局状态。第号策略网络的输入是当前观测(智能体局部观测替换了全局状态)。
                                                notion image
                                                • 中心化训练:训练的过程需要所有个智能体共同参与,共同改进策略网络参数 与价值网络参数。设第号智能体的策略网络、价值网络、目标网络当前的参数分别是。训练的流程如下:
                                                    1. 每个智能体与环境交互,获取当前观测,独立做随机抽样:
                                                      1. 并执行选中的动作。
                                                    1. 下一时刻,每个智能体都观测到和收到奖励
                                                    1. 每个智能体向中央控制器传输观测;中央控制器得到状态
                                                      1. 让价值网络做预测:
                                                        1. 让目标网络做预测:
                                                          1. 计算TD目标与TD误差:
                                                            1. 更新价值网络参数:
                                                              1. 更新目标网络参数:
                                                                1. 更新策略网络参数:
                                                              • 去中心化决策:在完成训练之后,不再需要价值网络。智能 体只需要用其本地部署的策略网络做决策,决策过程无需通信,因此决策速 度很快。

                                                              连续控制与MADDPG

                                                              本节研究连续控制问题,即动作空间 都是连续集合,动作是向量。本节介绍的多智能体深度确定策略梯度(multi-agentdeepdeterministic policy gradient,缩写 MADDPG)是一种很有名的MARL方法,它的架构是“中心化训练-去中心化决策”。

                                                              策略网络和价值网络

                                                              设系统里有个智能体。每个智能体对应一个策略网络和一个价值网络:
                                                              • 策略网络:确定性的。对于确定的输入,输出的动作是确定的。
                                                              • 价值网络:输入是全局状态与所有智能体的动作,输出是一个实数,表示“基于状态执行动作”的好坏程度。
                                                              号策略网络用于控制第 号智能体,而价值网络则用于评价所有动作,给出的分数可以指导第号策略网络做出改进,如图16.5所示:
                                                              notion image

                                                              梯度

                                                              用确定策略梯度更新策略网络,用TD算法更新价值网络。MADDPG是异策略(off-policy),我们 可以使用经验回放,重复利用过去的经验。用一个经验回放数组存储收集到的经验,每一条经验都是 这样一个四元组,其中
                                                              • 策略网络
                                                                • 训练第号策略网络的目标是改进,增大第号价值网络的平均打分。所以目标函数是:
                                                                  其中状态;第个网络计算得到的动作是。根据链式法则,得到目标函数的梯度如下:
                                                              • 价值网络:用TD算法训练第号价值网络,让价值网络更好拟合价值函数。给定四元组,用所有个策略网络计算动作
                                                                • 。然后计算 TD 目标:
                                                                  再计算TD误差:
                                                                  最后做梯度下降更新参数
                                                                  这样可以让价值网络的预测更接近TD目标

                                                              中心化训练

                                                              为了训练第i号策略网络和第i号价值网络,我们需要用到如下信息:经验回放数组中的一条记录、所有个策略网络、以及第号价值网络。
                                                              1. 让所有个目标策略网络做预测:
                                                                1. 把预测汇总成
                                                              1. 让所有个目标价值网络做出预测:
                                                                1. 计算TD目标:
                                                                  1. 让所有个价值网络做预测:
                                                                    1. 计算TD误差:
                                                                      1. 更新所有个价值网络:
                                                                        1. 让所有个策略网络做预测:
                                                                          1. 把预测汇总成。请区别 与经验回放数组中抽出的
                                                                        1. 更新所有个策略网络:
                                                                          💡
                                                                          改进方法
                                                                          • 在策略网络和价值网络中使用RNN,记忆历史观测。

                                                                          去中心化决策

                                                                          在完成训练之后,不再需要价值网络,只需要策略网络做决策。第号智能体可以基于本地观测的,在本地独立做决策:

                                                                          自注意力在中心化训练中的应用

                                                                          自注意力机制(self-attention)是改进多智能体强化学习(MARL)的一种有效技巧,可以应用在中心化训练或中心化决策当中。自注意力机制在MARL中有不同的用法。此处只讲解一种用法,帮助大家理解自注意力在MARL中的意义。

                                                                          非合作关系

                                                                          多智能体系统中有个智能体,每个智能体有自己的观测(记作)和动作(记作)。如果做中心化训练,需要用到个状态价值网络
                                                                          个动作价值网络
                                                                          由于是非合作关系,个价值网络有各自的参数,而且它们的输出各不相同。

                                                                          状态价值网络示例

                                                                          notion image

                                                                          动作价值网络示例

                                                                          使用“中心化训练+去中心化决策”架构,在中央控制器上部署个动作价值网络,把第个记作:
                                                                          输入是所有智能体的观测和动作,输出是实数,表示动作价值。模型网络架构,如下图所示:
                                                                          notion image
                                                                        2. 强化学习
                                                                        3. 十七、环境模型预测十五、模仿学习
                                                                          Loading...