本文首发于https://zhuanlan.zhihu.com/p/327129657,欢迎关注知乎专栏https://www.zhihu.com/column/c_1317610869467709440,不定期更新多智能体强化学习相关的论文
QMIX:Monotonic Value Function Factorisation for Deep Multi-agent Reinforcement Learning
QMIX是多智能体强化学习中比较经典的算法之一,其在DQN类的值函数强化学习的基础上进行改进,从而实现了针对多智能体环境的强化学习算法
多智能体强化学习
多智能体强化学习与单智能体的强化学习最本质的区别就在于多智能体的环境中,每个智能体都会和环境进行交互,造成环境的改变,所以,对于多智能体环境中的一个智能体来说,其外界环境的改变不仅与自己当前的状态和动作有关,更与其他的未知信息(例如其他智能体的动作)有关,所以对于某一个智能体而言,其外界环境是不断变化的,而且这个变化也是没有一定的规律的。这样子的情况下就无法满足强化学习中的马尔可夫性,所以算法的收敛性也就没有了理论的保证。
此外,对于多智能体强化学习而言,每个智能体通常只能得到对于环境的一部分的观察,并不能完全获得环境的状态。
多智能体的奖励r也与单智能体有所不同,在多智能体的任务中,通常情况下,r是整个环境中得到的奖励,而无法得知其中的每个智能体的奖励是多少。
为了解决多智能体强化学习的问题,目前主流的方式有以下几种:
- IDL(Independent Q-Learning): 不考虑环境的不确定性,直接对每个智能体使用单智能体的强化学习算法,虽然不具备收敛性保证,但是在实际应用中,有时候能够获得不错效果
- Centralized Learning: 将所有的智能体当作一个整体,状态s为所有智能体状态的拼接,动作也为所有智能体动作的拼接。这样子虽然满足了马尔可夫性,但是动作空间和状态空间随着智能体数量的增加而指数增加,难以处理大量的智能体。此外,由于在现实世界,智能体之间的信息交流是有限的,所以将所有智能体的状态都收集起来再计算得到动作后再执行是难以实时实现的。
- Centralized Training with Decentralized Excution :在训练过程中使用Centralized的方式,因为在训练过程中(通常在仿真环境下)没有信息通讯的限制,也可以使用全局状态甚至额外的信息,所以使用Centralized的训练方式,也能保证算法的收敛性。在执行过程中,由于每个智能体只能得到自己当前的观测(observation),所以使用decentralized执行的方式。这种方式也是目前多智能体强化学习算法中最主流的方式
Value Decomposition Networks
想要得到较为正确的动作价值函数,就需要使用centralised的方式,来获取总的动作价值函数 Q t o t Q_{tot} Qtot,其s为全体状态,a为联合动作。这样的函数不仅非常难学,而且即使学到了也难以通过这个函数使得每个智能体能够在仅有自己的observation的情况下独立的选择动作。为了解决这个问题,VDN就提出了这种方法–将 Q t o t Q_{tot} Qtot当作所有智能体的动作价值函数 Q a Q_{a} Qa的累加,即:
Q t o t ( τ , u ) = ∑ i = 1 n Q i ( τ i , u i ; θ i ) Q_{tot}(\bm{\tau,u})=\sum_{i=1}^{n}Q_{i}(\tau^i,u^i;\theta^i) Qtot(τ,u)=i=1∑nQi(τi,