当整个强化学习系统存在多个智能体的时候,我们称作多智能体强化学习。强化学习中智能体与环境交互获得数据以及一些反馈信号,通过不断的交互和反馈信号最终达到控制目标。
那如果是Multi-Agent
的话,从一个Agent
角度来看,环境当中还会存在其它Agent
,环境中的Agent
也在执行强化学习算法。这样的环境我们称作Non-stationary environment
,也就是说环境中的分布、state
、action
、和reward
的分布都是一直在变,原因就是环境中还存在其他智能体,也在改变它自己的参数。
我们最熟悉的GameAI
是中心化AI
,一个智能体调度整场游戏的资源,单很多时候我们也希望去Designing multi-agent communications and co-learning algorithms for elaborate collective game intelligence。因为多个智能体之间的协同其实是非常厉害的群体算法。
- 参考文献:Peng, Peng, et al. "Multiagent bidirectionally-coordinated nets for learning to play starcraftcombat games."NIPS workshop 2017.
Difficulty in Multi-Agent Learning
与单智能体强化学习相比多智能体强化学习(Multi-Agent Reinforcement Learning)有什么难点呢?
难点就在于环境中的智能体会依据其他智能体所采取的行动而改变自己的策略,因此整个环境会变得混沌,而你希望在这样一种混沌的状态下去求解。
当然你也可以拿强化学习算法强行做,不考虑智能体之间的相互影响,将所有的信息统统看作环境。这种方式无法保证theoretical convergence
,也有可能出现越学越差的情况。
所以我们必须去考虑其他智能体会怎么与我进行协作,或者其他智能体会如何与我进行对抗。这里就会引入Game theorem
。
Sequential Decision Making
跳出强化学习的MDP
设定,在机器博弈里面,类似的问题更广泛的概念是Sequential Decision Making
。
Sequential Decision Making
里面可以大致分为三类:
- Markov decision processes
第一类就是马尔可夫决策过程 (Markov decision processes),就是我们强化学习里面常见的情况,整个环境里面只有一个决策者 (one decision maker ),但是involve multiple states,在不同的state
的情况下选择的动作一般会不一样,并且还要做planing
,期望所得到的return
最大。
- Repeated games
第二种设定是Repeated games
,既然涉及到game
,那一定是多个智能体之间相互进行协作或者是博弈 (multiple decision makers )。但是它只有一个state
。也就是说每次做一次决策之后拿到reward
,然后游戏从头开始。比如说猜拳游戏。
虽然游戏每次action
之后,都会从头开始,但是我们可以通过游戏数据对对手进行建模,学习到对手的策略 (opponent model)。
- Stochastic games (Markov games)
最general
的是stochastic game
,或者叫做Markov game
,具备多个智能体 (multiple decision makers) 和多个状态序列 (multiple states )。
我们可以来简单解释一下这个stochastic game
,如果我们学习过博弈论的话,我们经常会看到一个matrix game
的东西。
如上图所示,在state 1
的matrix
上,如果player 1
采取action a1
,player2
采取action a2
,于是player 1
得到0
的reward
,player 2
得到3
的reward
。如果在state 1
上面一直重复地采取action
的话,就称作repeated game
;如果采取完了action
之后,环境transition
到其他新的state matrix
上面,我们称作stochastic game
。
也就是说agent
选择的action
不仅要考虑所能获得的reward
,还要考虑它迁移到新的state
上面,以及新的state
对每个agent
的影响。这种设置比较复杂,但是比较general
。
- 参考文献:Shapley, Lloyd S. "Stochastic games."Proceedings of the national academy of sciences39.10 (1953): 1095-1100.
Definition of Stochastic Games
stochastic game
可以从数学上定义一下stochastic game,可定义为如下元组形式:
其中:
- state space:
- action space of agent :
- reward function of agent :
- Transition probability : , is the collection of probability distributions over
- Discount factor across time
从上述可以定于看出,它与MDP
的区别仅仅在于从一个agent
,变成多个agent
,每个agent
的action space
可能会不一样。在当前state
,采取joint action
,每个agent
会得到一个reward
,所以会有
个action
,
个reward
。然后state
依据joint action
转移到下一个state
。可以看出区别就在于多个agent
采取多个action
,相互之间进行影响。
Policies in Stochastic Games
- For agent , the corresponding policy is:
there
is the collection of probability distributions over
。每个智能体
,依据当前的state
,去选择action
,或者是输出一个action
的分布。
The joint policy of all agents is
. 将所有agent
的
总体上用joint policy
表示,黑体的
,简单地来讲这就变成了一个policy
,只不过这个policy
非常复杂。
- State value function of agent :
基于当前的policy
,整个环境就可以往前move
,对于某一个agent
来说,它自己的value function
如上式所述。
- Action value function of agent :
there .
同样的,对于某一个state-action来说,可以表示成上面这个式子,输入是state
和joint action
,之后再follow joint policy
得到
。之后用TD
算法对其学习、更新。
Independent Learning in SG
既然Q function
都被定义出来了,我们就可以直接用Q learning
来做independent learning in stochastic game
,这里是把其他的agent
看成环境的一部分。
For each agent , assume the other agents’ policies are stationary, thus the environment for is stationary to perform Q-learning :
当前智能体的action
定义为
,
看成其它智能体采取动作的joint
。但是这种做法没有theoretical convergence guarantee,也没与考虑其它agent
,以及如何与他们进行协作。
如果玩石头剪刀布的游戏,可能就会形成石头剪刀布轮流出的一种情形,而不是每个按 的概率出。
Nash Equilibrium in SG
那我们怎么在stochastic game
上面perform
一个真正有效的算法呢?
我们需要引入Nash Equilibrium
的这样一个概念先:
我们需要 optimal agent
的
需要depend on
整个joint policy
.
在SG
中 Nash equilibrium
的joint policy
表示为:
在Nash equilibrium
中任何一个agent
都不会单方面去改变自己的policy
,用数学公式表达如下所示:
理解的话就是,其他agent
的policy
不变,对于自己的这个agent
,当前策略是最优的。并且对于每个agent
都是这样的。其中
表示如下:
当我的对手的policy
不变,我也不会改变,因为改变了并不能获得更大的奖励,对于每个智能体都是这样,因此所有agent
都不会改变自己的policy
,从而达到均衡解。
Nash Q-learning Nash Q-learning
如果我们在每一个状态上面去找一个Nash equilibrium
,那么我们就可以非常稳定的perform
一个Q-Learning
的算法。
那给定Nash policy
,Nash value function可表示为:
Nash Q Learning
做了一件什么事情呢?他在每一个state
的时候solve
一个当前state
的nash equilibrium
。比如在每个matrix game
上面去算,基于当前state
,这个matrix game
下的policy
是什么?
当policy
是stochastic policy
而不是deterministic policy
,那我们会按照某一个概率分布去出action
,那么至少存在一个nash equilibrium
使得游戏会收敛,这是game theorem
的一个theorem
。
那这个时候我们就可以对于任何一个state
去计算他的Nash equilibrium
,得到了这个Nash equilibrium
之后我们也就得到了joint policy
,得打这个policy
之后我们做policy iteration
,改进value
,具体步骤可表示为:
- Nash Q-learning defines an iterative procedure
- Solving the Nash equilibrium of the current stage defined by .
- Improving the estimation of the Q-function with the new Nash value .
对上述两个过程迭代进行,就可以了。
这个时候,每一个state
都是在follow
一个Nash equilibrium
,以至于大家没有任何motivation
去修改自己的policy
,从而使得policy
收敛。
这是一个比较有趣的把博弈论结合进来的多智能体强化学习。但是它有很明显的缺点,需要在每一个state
上面去算Nash equilibrium
,这是需要一个很大的计算量的,也有很多博弈论的研究者专门在求解nash equilibrium
,这里面就会涉及很多算法,本身也是比较困难的。还有我们必须知道其它agent
的policy
,我们才能计算nash equilibrium
。如果其它agent
是对手的话,往往很难得到这个对手的policy
,也就很难,这种情况一般要做一个opponent modeling
。
总结一下主要是以下两点:
- Very high computational complexity
- May not work when other agents’ policy is unavailable
From Multi-to Many-Agent RL
这个时候我们再回过头来再看看,如果我们的agent number
变得很大(通常都很小的number 20个以内这样),下面这两个component
会变得特别复杂:
- Reward function of agent :
- Transition probability :
可以看到其定义域的维度直接变大。多一个agent
就多一个维度,维度升高之后需要更多的数据对其进行学习,而且这里的学习还是高阶的,还要进行交互,会involve
更多的信息,因此需要大量的数据去sample
到有效的state-action pair
。因为整个强化学习实际上是基于try
的一种学习方式,try
到了就能学习,而多智能体定义在joint action
,因此更难去一起try
到有效数据(action
之间是相互配合的)。
由于环境的模型变难了,使得环境更加dynamic、更加sensitive、更加容易被overfiting,因此需要超大量的exploration data。因此像DeepMind、OpenAI这种团队做多智能体上来就是一千块GPU。
Mean Field Multi-Agent RL
那我们能不能从模型层面去做一个简化呢?
我们很容易想到去从生物上面去寻找灵感,比如鱼群、鸟群等等这些群体生物。他们迁移的时候不会去与每一个个体进行交互。
In some many-body systems, the interaction between an agent and others can be approximated as that between the agent and the “mean agent” of others。
比如说在大合唱的时候,我们只需要知道整体大概唱在什么位置,而不需要去指导每个人唱到了哪里。
Mean Field Multi-Agent RL
在Mean Field Multi-Agent
里面,Approximate the joint action value by factorizing the Q-function into pairwise interactions
其中
表示Neighboring agent set of
,把agent
周围的neighbor
做pairwise interactions
的
average
在一起。这样就做了简化。
在给定这样一种假设的情况下,我们现在将action representation:
考虑discrete action space
用one hot
形式去具体地表示某一个action
,因此action
of agent
is one-hot encoded as:
因此如果把周围的neighbor
所采取的action
做个平均的话,The mean action based on the neighborhood of
is:
所表达的意思就是周围的agent
采取每一个action
的概率是多少,也就得到了neighbor
选这些action
的distribution
。
具体的每个agent
所采取的action
还是one-hot
的形式。单我们可以用mean action
加上residual
把他还原回具体的one-hot
形式。Thus the action
of each neighbor
can be represented as :
其中 Residual sum is 0。
- 参考文献:YaodongYang, Weinan Zhang et al. Mean Field Multi-Agent Reinforcement Learning. ICML 2018
Mean Field Q-Learning
- A 2-order Taylor expansion on Q-function
有了上述的一些设定之后,我们就可以做二阶的泰勒展开:
其中 ,External random signal for agent :
- A softmax MF-Q policy
基于当前agent 的action ,以及周围neighbor action的distribution ,建立 function,我们就可以去perform 一个policy,比如说softmax policy,或者 - greedy policy。然后按照学习算法更新就可以了。
Given an experience sampled from replay buffer:
- Sample the next action from 。
- Set
- Update Q function with the loss function:
MF-Q Convergence
Theorem: In a finite-state stochastic game, the Q values computed by the update rule of MF-Q converges to the Nash Q-value.
Summary of MARL
在Multi-Agent
训练过程中一般是自己的模型与自己的模型做对抗,做self-play
,做完之后再与其他模型对抗,看效果,如果直接对抗看效果的话很容易找到对方模型的弱点而过拟合。
在multi-agent
里面 agent
不仅需要学习数据,还要学习其它智能体的policy
,因此很多时候也需要引用game theorem
的结论。机器学习中常做的是model
与data
之间的objective
,在multi-agent
里面agent
与agent
之间的objective
也需要去学习。