总结自
Wang Shusen youtube教程 https://www.youtube.com/watch?v=KN-XMQFTD0o
MARL 四种设定
- Fully cooperative。 多个机器人协同装配汽车;一个机械手臂举箱子另一个伸手拿。这些例子中agent都是合作关系。即使action不同,他们的利益都是一样的,最终收到的reward也是一样的。总结起来就是说他们需要为同一目的相互配合。
- Fully competitive。一方的收益是另一方的损失。一种就是零和博弈,双方的reward sum为0,比如下棋或者机器人打架,总之一方赢了另一方就会输。完全竞争并不一定是零和博弈,比如捕猎,狮子赢了得到一堆饭,小鹿输了就是一条生命。显然小鹿的损失要大于狮子的收益。
- Mixed cooperative and competitive。两个机器人球队踢足球或者对战游戏dota,双方竞争内部队友之间却是合作
- self-interested. 利己主义,不在乎别人收益还是损失。利己主义者不会可以的帮别人或者害别人,只是为了最大化自己的利益。比如说无人车,如果有很多无人车在路上,他们的目的都是在保证安全的情况下尽快到达目的地。这样一来,一辆车可能会超车变道从而使得其他车变慢;而它也要保障自身安全所以会离其他车远一点,这样其实又是有利于其他车的。
Terminologies
大写字母表示随机变量。小写字母表示观测值。
- State S S S. 整个系统只有一个state,当然每个人观测到的状态可能会不同。
- Actions A i : i = 1 , 2 , . . . , n A^i:i=1,2,...,n Ai:i=1,2,...,n. 有 n n n 个agent,每个agent的动作都会影响整个状态。
- 条件转移概率: 可以看到,下一状态会受到所有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(s′∣s,a1,a2,...,an)=P(S′=s∣S=s,A1=a1,...,An=an) - Reward R t i R^i_t Rti: 每个agent收到的reward是不同的,在完全合作场景下我们有应该把所有agent收到的reward置为相同;但是如果是完全竞争那应该 R 1 ∝ − R 2 R^1\propto -R^2 R1∝−R2.
- 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+... - Policy: 每个agent都有自己的策略网络 θ i \theta^i θi, 而policy可以由 π ( a i ∣ s ; θ i ) \pi(a^i|s;\theta^i ) π(ai∣s;θ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[Uti∣St=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目前的架构大概分为三种:
- Fully decentralized: 即每个agent根据自己observe到的状态 o i o^i oi做决策收reward并学习, 所有agent之间没有任何交流.
- Fully centralized: 这个就是假设有一个中央控制器控制所有人的动作,实际上就是用决策权在中央控制器.
- Centralized training and decentralized execution: 用中央控制器(啥都知道)帮助agent训练, 训练完成后deploy分布式决策.