王树森强化学习笔记——多智能体强化学习

本文详细介绍了多智能体强化学习的四种常见设定:完全合作、完全竞争、混合合作竞争和自我利益。每个智能体的动作、奖励和状态转移函数在多智能体系统中起关键作用。此外,探讨了多智能体系统中的策略网络、状态价值函数以及Nash均衡等概念。训练多智能体强化学习的三种架构——去中心化、完全中心化和中心化训练去中心化执行,各有优缺点。最后,提到了局部观测和完全观测的情况,并分析了参数共享的考量。
摘要由CSDN通过智能技术生成

多智能体强化学习

想要了解更多强化学习的内容,推荐观看王树森教授的教学视频
深度强化学习(王树森)

设定

在之前的学习当中,我们讨论的都是单个智能体如何进行决策,然而现实中还存在需要同时控制多个智能体进行决策的复杂情况,我们称之为多智能体强化学习。下面介绍多智能体系统的常见四种设定。

  • Fully cooperative
    • 完全合作关系,多个智能体获得的利益一致,只有当多个智能体通力合作才能获得更好的奖励,即它们的目标一致,例如:控制多个机械臂完成流水线工作。
  • Fully competitive
    • 完全竞争关系,一方智能体的奖励会是另一方智能体的损失,即两者的利益关系是完全相反的。例如:
      • 0和博弈:两个机器人进行格斗,一方获胜另一方就一定会输。
      • 非0和博弈:捕猎也是完全竞争关系,但两者的利益是不对等的,猎食者成功捕食可以饱餐一顿,而被捕食者则失去生命,显然被捕食者损害的利益更大。
  • Mixed-cooperative-competitive
    • 即有合作也有竞争关系,其中一部分智能体直接存在竞争关系,另一部分智能体又存在合作关系。例如,多人足球,两支球队是竞争关系,但是球队之间球员是合作关系。
  • Self-interested
    • 利己主义,只关心使自己利益最大化,对其他智能体不存在纯粹的竞争和合作关系,例如股票系统中的投资方,每个投资人都想让自身利益最大化,但是他们的行为会影响其他投资方的利益变化。

术语

State,Action,State Transition

  • 多智能体系统一共包含n个智能体。

  • S代表观测到系统的状态

  • 智能体的动作记为 A i A^i Ai,其中 i i i代表智能体的编号

  • 状态转移函数:
    p ( s ′ ∣ s , a 1 , . . . , a n ) = P ( S ′ = s ′ ∣ S = s , A 1 = a 1 , . . . , A n = a n ) p(s'|s,a^1,...,a^n)= P(S'=s'|S=s,A^1=a^1,...,A^n=a^n) p(ss,a1,...,an)=P(S=sS=s,A1=a1,...,An=an)
    下一个状态S’取决于所有agent的动作。

rewards

  • 每个智能体获得的奖励记作 R i R^i Ri,其中 i i i代表第 i i i个智能体。
  • 完全合作关系中每个agent获得的奖励一样,即 R 1 = R 2 = . . . . = R n R^1=R^2=....=R^n R1=R2=....=Rn.
  • 完全竞争关系中,智能体之间的奖励存在负相关关系,如 R 1 ∝ − R 2 R^1 \propto -R^2 R1R2
  • 一个智能体获得的奖励不仅取决于他自身的动作还取决于其他智能体的动作。

returns

  • i i i个智能体在t时刻获得的折扣回报可以写成:
    U t i = R t i + γ ∗ R t + 1 i + γ 2 ∗ R t + 2 i + . . . . . U^i_t=R^i_t+\gamma *R^i_{t+1}+ \gamma^2*R^i_{t+2}+..... Uti=Rti+γRt+1i+γ2Rt+2i+.....

policy network

  • 每一个agent都有自己的策略网络 π ( a i ∣ s ; θ i ) \pi(a^i|s;\theta^i) π(ais;θi)

  • 有些系统中agent的策略网络是可以交换的,例如在无人驾驶当中,每一辆车的policy network可以是一样的。

  • 大部分系统中agent的策略网络是不可以交换的,例如在足球比赛当中,每个角色承担的作用不同,有的是守门员,有的是进攻主力,所以不能进行交换。

state-value function

  • i i i个智能体的状态价值函数:
    V i ( s t ; θ 1 , . . . , θ n ) = E [ U t i ∣ S t = s t ] V^i(s_t;\theta^1,...,\theta^n)=E[U^i_t|S_t=s_t] Vi(st;θ1,...,θn)=E[UtiSt=st]

  • 智能体的状态价值函数 V i V^i Vi不仅依赖于自身的参数 θ i \theta^i θi,也依赖于其他所有agent的参数。

    • 例如,在足球比赛当中,如果其他队员的策略都没有发生改变,只有一名前锋的策略发生了改变,并且变的更好,那么其所在同一球队的其他队友获胜的概率也会变大,另一球队的队员获胜的价值会变小。
    • 同理,在多智能体系统当中,任何一个智能体改变了他的策略,其他智能体的状态价值都会发生改变,说明 V i V^i Vi不仅依赖于自身的策略网络,也依赖于其他所有agent的策略网络。

收敛问题

对于单个智能体的收敛问题最终可以归结为求状态价值函数的最大化,对于多个智能体该如何判断其收敛呢?

Nash Equilibrium

  • 当所有的agent都保持自身的策略不变时,改变其中的一个agent的策略也不能让其获得更好的回报期望
  • 每一个agent都在应对其他agent时采取了最优的方式
  • 如果所有的agent的策略都是理性的,在Nash Equilibrium的情况下,任何agent都没有改变自身策略的动机,因为采取改变自身策略的行为无法获得更高的价值和收益。

我们把满足以上条件的情形称为多智能体系统已达到收敛。

Traing

Difficulty of MARL

多个agent会使强化学习变得更难学习,原因是每个agent之间不在是独立的,他们之间的决策会影响到其他所有agent的策略。

举个例子:

我们将single agent策略梯度算法直接应用到多智能体系统当中,如下图
在这里插入图片描述
每个agent独立与环境进行交互,获得状态s以及获得的奖励r,agent根据状态s和奖励r独立的做出决策a,并且每个agent独立使用状态s,奖励r计算策略梯度,更新自己的策略网络。

自始至终,每个agent之间不进行通信,和single agent 的做法完全一致。

  • 对于第 i i i个agent,将其策略网络记为: π ( a i ∣ s ; θ i ) \pi(a^i|s;\theta^i) π(ais;θi)

  • 对于第 i i i个agent,将其状态价值函数记作: V i ( s ; θ 1 , . . . , θ n ) V^i(s;\theta^1,...,\theta^n) Vi(s;θ1,...,θn)

  • 对第 i i i个agent的状态价值函数做期望,得到目标函数: j i ( θ 1 , . . . , θ n ) = E s ( V i ( s ; θ 1 , . . . , θ n ) ) j^i(\theta^1,...,\theta^n)=E_s(V^i(s;\theta^1,...,\theta^n)) ji(θ1,...,θn)=Es(Vi(s;θ1,...,θn))

  • 对于每个agent,想要获得更好的策略,就需要让目标函数 j i j^i ji越大越好,即:
    m a x a ( j i ( θ 1 , . . . , θ n ) ) max_a(j^i(\theta^1,...,\theta^n)) maxa(ji(θ1,...,θn))

  • 前面提到,每个agent的状态价值函数 V i V^i Vi不仅依赖于自身的参数 θ i \theta^i θi,也依赖于其他所有agent的参数,由于每次更新都会更新agent的参数,所以会导致其他agent的状态价值函数 V i V^i Vi发生变化,进而导致目标函数 j i j^i ji发生变化,这时候其他的agent为了让 j i j^i ji最大化,就会不断改变更新自身的参数,最终可能导致agent永远无法完成收敛。

训练MARL的三种架构

常见的三种训练多智能体强化学习的架构:

  • Fully decentralized:去中心化架构,所有的agent使用自身观察到的环境状态以及奖励来学习自身的策略,agent之间不进行交流。
  • Fully centralized:完全中心化,所有的agent只负责将观察到的环境状态以及奖励发送到中央控制器,并完全由中央控制器进行控制自身的决策。
  • Centralized training with decentralized execution:中心化训练去中心化执行,中央控制器只负责对策略的训练,决策由agent进行执行。

Partial Observations(局部观测)

  • 一个agent往往不能知道全局的观测 s s s是怎样的,它只能观测到全局的一部分,记为: o i o^i oi
  • o i ≠ s o^i \ne s oi=s

Full observation

  • 完全观测是指所有的agent都能看到全局的状态s,即 o i = . . . = o n = s o^i =...=o^n= s oi=...=on=s
Fully decentralized

去中心化架构我们之前提到过,即每个agent独立与环境进行交互,获得状态s以及获得的奖励r,agent根据状态s和奖励r独立的做出决策a,并且每个agent独立使用状态s,奖励r计算策略梯度,更新自己的策略网络。
在这里插入图片描述
去中性化架构中,每个agent的训练都是采用single agent的方法进行训练,前面分析过这样做训练效果可能会很差,可能导致所有agent都无法收敛。

Fully centralized

完全中心化架构,每个agent只负责将观测值发送给中央控制器,agent不包含策略网络,中央控制器负责对所有agent的策略进行学习以及决策,因此中央控制器中包括n个agent的策略网络 π ( a i ∣ s , o 1 , . . . , o n ; θ i ) \pi(a^i|s,o^1,...,o^n;\theta^i) π(ais,o1,...,on;θi),如下图。
在这里插入图片描述
下面简单介绍一下centralized actor-critic method

  • 将所有agent所做的动作拼接在一起记为 a = [ a 1 , a 2 , . . . , a n ] a=[a^1,a^2,...,a^n] a=[a1,a2,...,an]
  • 将所有agent的观测值拼接在一起记为 o = [ o 1 , o 2 , . . . , o n ] o=[o^1,o^2,...,o^n] o=[o1,o2,...,on]
  • 中央控制器知道所有的 a , o a,o a,o以及 r e w a r d reward reward
  • 中央控制器保护n个策略网络以及n个价值网络。
    • 控制第i个agent的策略网络记为 π ( a i ∣ 0 , θ i ) \pi(a^i|0,\theta^i) π(ai∣0,θi)
    • 第i个agent的价值网络记为 q ( o , a ; w i ) q(o,a;w^i) q(o,a;wi)
  • 训练:训练由中央控制器负责
    • 中央控制器知道所有agent的观测值以及所有的奖励
    • 中央控制器通过策略梯度来训练策略网络 π ( a i ∣ o ; θ i ) \pi(a^i|o;\theta^i) π(aio;θi)
    • 中央控制器使用TD算法来更新价值网络 q ( a , 0 ; w i ) q(a,0;w^i) q(a,0;wi)
  • 执行:执行也是由中央控制器负责
    • 中央控制器根据所有agent发送的观测值 o o o,将 o o o输入对应的策略网络,得到决策 a a a,将决策发送到对应的agent当中进行执行。

shortcoming:slow during execution

  • 中心化的架构最大的缺点就是执行的速度太慢,agent本身没有策略网络,中央控制器需要收到所有agent的观测值之后才能进行决策,并且还需要将决策下发到所有的agent,其中agent的通信和同步需要花费很多时间。
  • 中心化的架构无法满足实时同步决策的需求,总是会“慢半拍”。
Centralized training with decentralized execution

中心化训练去中心化执行架构,中央控制器只负责对策略的训练,训练完成之后中央控制器就不起作用了,决策由agent进行执行。

  • 在该架构中,每个agent包含自身的决策网络 π ( a i ∣ o i ; θ i ) \pi(a^i|o^i;\theta^i) π(aioi;θi)
  • 中央控制器包含所有agent的价值网络(n个),记为 q ( o , a ; w i ) q(o,a;w^i) q(o,a;wi)
  • 中央训练:训练过程中,中央控制器知道所有agent的观测,动作以及奖励,中央控制器负责学习agent的价值网络
  • 去中心化执行:执行过程中,中央控制器不起作用,由agent自行决策。

Centralized training

在这里插入图片描述

  • 如上图,中央控制器采用TD算法训练第i个agent的critic网络 q ( o , a ; w i ) q(o,a;w^i) q(o,a;wi),因此需要agent进行通信将以下信息发送给中央控制器:
    • 所有的agent执行的动作: a = [ a 1 , . . . , a n ] a=[a^1,...,a^n] a=[a1,...,an]
    • agent的观测值: o = [ o 1 , . . . , o n ] o=[o^1,...,o^n] o=[o1,...,on]
    • 第i个agent获得的奖励 r i r^i ri
      在这里插入图片描述
  • 如上图,agent负责训练自身的actor网络,agent采用策略梯度来更新参数,因此需要中央控制器将 q i q^i qi发送给第i个agent。

参数共享

在多智能体系统中,agent的策略网络和价值网络的结构可以是相同的,但参数是不同的,参数共享的含义就是两个agent的网络参数也相同,是否需要进行参数共享呢?这个问题需要根据具体的问题来考虑,例如在足球比赛当中,不同运动员的职能是不同的,例如有些负责进攻,有些负责防守,因此不能进行参数共享,而在包含多个无人驾驶汽车的多智能体系统中,每辆无人车的参数可以共享,因为它们之间的职能是一样的。

小结

三种架构的多智能体AC系统的对比如下图:
在这里插入图片描述

多智能体强化学习已经在许多领域得到应用。一个典型的案例是多智能体博弈中的AlphaGo。AlphaGo是谷歌DeepMind开发的一个能够下围棋的AI系统。该系统使用了深度强化学习的方法,通过与自己对弈来训练,最终取得了在围棋比赛中战胜人类职业棋手的成就。在AlphaGo中,每个智能体都是一个独立的神经网络,通过强化学习来学习下棋的最佳策略。这个案例展示了多智能体强化学习在游戏AI领域的应用。 另一个案例是多智能体强化学习在智能交通系统中的应用。智能交通系统涉及到多个智能体,如车辆、行人和交通信号灯等。通过使用多智能体强化学习,可以实现交通系统的优化调度和流量控制。智能交通系统中的每个智能体可以根据当前的交通状况和自身的目标,选择最佳行动来避免交通拥堵和事故的发生。这种方法可以提高交通效率,减少交通延误和碰撞风险。 此外,多智能体强化学习还可以应用于机器人协作和分布式控制。在机器人协作中,多个机器人可以通过强化学习来学习如何协调行动,实现复杂任务的分工合作。在分布式控制中,多个智能体可以通过强化学习来学习如何在分布式系统中协同工作,实现更高效的控制和决策。这些案例都展示了多智能体强化学习在实际问题中的应用和潜力。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [多智能体强化学习及其在游戏AI上的应用与展望](https://blog.csdn.net/wangchewen/article/details/120904996)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [一个简单易懂的多智能体强化学习建模过程的例子](https://blog.csdn.net/u010442908/article/details/106747533)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值