MARL多智能体强化学习

总结自
Wang Shusen youtube教程 https://www.youtube.com/watch?v=KN-XMQFTD0o

MARL 四种设定

  1. Fully cooperative。 多个机器人协同装配汽车;一个机械手臂举箱子另一个伸手拿。这些例子中agent都是合作关系。即使action不同,他们的利益都是一样的,最终收到的reward也是一样的。总结起来就是说他们需要为同一目的相互配合。
  2. Fully competitive。一方的收益是另一方的损失。一种就是零和博弈,双方的reward sum为0,比如下棋或者机器人打架,总之一方赢了另一方就会输。完全竞争并不一定是零和博弈,比如捕猎,狮子赢了得到一堆饭,小鹿输了就是一条生命。显然小鹿的损失要大于狮子的收益。
  3. Mixed cooperative and competitive。两个机器人球队踢足球或者对战游戏dota,双方竞争内部队友之间却是合作
  4. self-interested. 利己主义,不在乎别人收益还是损失。利己主义者不会可以的帮别人或者害别人,只是为了最大化自己的利益。比如说无人车,如果有很多无人车在路上,他们的目的都是在保证安全的情况下尽快到达目的地。这样一来,一辆车可能会超车变道从而使得其他车变慢;而它也要保障自身安全所以会离其他车远一点,这样其实又是有利于其他车的。

Terminologies

大写字母表示随机变量。小写字母表示观测值。

  1. State S S S. 整个系统只有一个state,当然每个人观测到的状态可能会不同。
  2. Actions A i : i = 1 , 2 , . . . , n A^i:i=1,2,...,n Ai:i=1,2,...,n. 有 n n n 个agent,每个agent的动作都会影响整个状态。
  3. 条件转移概率: 可以看到,下一状态会受到所有agent动作影响。
    p ( s ′ ∣ s , a 1 , a 2 , . . . , a n ) = P ( S ′ = s ∣ S = s , A 1 = a 1 , . . . , A n = a n ) p(s'|s,a^1,a^2,...,a^n)=\mathbb{P}(S'=s|S=s,A^1=a^1,...,A^n=a^n) p(ss,a1,a2,...,an)=P(S=sS=s,A1=a1,...,An=an)
  4. Reward R t i R^i_t Rti: 每个agent收到的reward是不同的,在完全合作场景下我们有应该把所有agent收到的reward置为相同;但是如果是完全竞争那应该 R 1 ∝ − R 2 R^1\propto -R^2 R1R2.
  5. Return U t i U^i_t Uti
    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+...
  6. Policy: 每个agent都有自己的策略网络 θ i \theta^i θi, 而policy可以由 π ( a i ∣ s ; θ i ) \pi(a^i|s;\theta^i ) π(ais;θi) 得出。可以看到,每个agent的输入是同一state,但在实际情况中的输入是一个observation of state,此时每个agent的输入便不同了;另一方面,在某些场景下每个agent都有相同的policy比如无人车,此时所有人的 θ \theta θ 可以互换;当然也可以是不同的policy,比如说一个机器人各个部位之间的协作。

对于每一个agent来说,它观测到状态后,要用policy nets做一个决策,然后这个决策连同其他人所有的决策决定了系统的演进方向。而它所收获的expected return也是由所有人的policy和状态转移概率联合决定。因此,我们可以定义每个人的state value为
V i ( s t ; θ 1 , θ 2 , . . . , θ n ) = E [ U t i ∣ S t = s t ] V^i(s_t;\theta^1,\theta^2,...,\theta^n)=\mathbb{E}[U^i_t|S_t=s_t] Vi(st;θ1,θ2,...,θn)=E[UtiSt=st]

之所以把 θ 1 , θ 2 , . . . , θ n \theta^1,\theta^2,...,\theta^n θ1,θ2,...,θn 也当做 V i V^i Vi 的输入是因为 V i V^i Vi 会随着他们的改变而变化,而系统转移概率一般是不会变的,因此略去。右边的expectation is taken over 所有agent的action和所有可能转移的状态轨迹。同样的,如果任何一个agent的policy改变了,那么所有人的value function 都会改变。

在MARL中,如果每个agent单独optimize自己的policy (就像single-agent RL一样):
θ ∗ i = arg ⁡ max ⁡ θ i E S [ V i ( S ; θ 1 , θ 2 , . . . , θ n ] \theta^i_*=\arg\max_{\theta^i}\mathbb{E}_S[V^i(S;\theta^1,\theta^2,...,\theta^n] θi=argθimaxES[Vi(S;θ1,θ2,...,θn]

是很难收敛的。原因是,对于每一个agent来说,其他agent都是环境,别人policy的更改会引 发自己原本已经optimal (optimal in the sense that 再怎么动也不会使自己收益增加) 的策略的改变。反之,自己policy的改变又会引发别人policy的改变。因此,最终可能会陷入不断更改的无限循环中。(其实这个解释比较牵强,因为如果在 Nash equilibrium 时,大家都没有incentive去更改自己的policy了。所以这里是需要证明SARL的方法达不到Nash equilibrium。但我估计没人能证这个,只是说在实际应用时,发现效果不好而已)。

收敛:在单agent系统中,收敛指的是这个agent不管怎么更改policy都不能使自己跟环境交互时收益增加。在多agent系统中,收敛指的是Nash equilibrium,即对于任何一位agent来说,单方更改自己的策略 (其他不变) 不会给自己带来任何好处。John Nash证明了在每个参与者都只有有限种策略选择,并允许混合策略的前提下,纳什均衡一定存在.

Architectures

MARL目前的架构大概分为三种:

  1. Fully decentralized: 即每个agent根据自己observe到的状态 o i o^i oi做决策收reward并学习, 所有agent之间没有任何交流.
  2. Fully centralized: 这个就是假设有一个中央控制器控制所有人的动作,实际上就是用决策权在中央控制器.
  3. Centralized training and decentralized execution: 用中央控制器(啥都知道)帮助agent训练, 训练完成后deploy分布式决策.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值