现实中很多实际问题都可以理解为是一个大规模非完美信息博弈(游戏)。为了解决这样的问题,之前的工作基本都集中在用手工设计的领域抽象(or 先验知识)去计算纳什均衡(i.e.非完美博弈的最优解)。在这篇文章里,我们第一个提出一种scalable的端到端的方法:在没有先验知识的情况下,直接学习近似的纳什均衡。我们的方法将虚拟自我博弈(Fictitious Self-Play, FSP)与深度强化学习(DRL)结合起来。当应用到冷扑(Leduc poker)时,神经虚拟自我博弈(Neural Fictitious Self-Play,NFSP)达到了纳什均衡,而普通的强化学习方法不行。在现实世界游戏德州扑克中,NFSP取得了最领先的成绩,超越了人类。
很多机器学习算法在完美信息博弈中取得了近乎最优解,但这些方法却无法在非完美信息博弈中收敛。另一方面,很多博弈论中搜寻纳什均衡的方法缺乏学习抽象模式的能力,很难泛化到新的情景中。本文的motivation来自于端到端地学习有用的策略。
虚拟博弈(Fictitious play, FP)是在规范式博弈(单步博弈)中学习纳什均衡的常用方法。虚拟玩家们选择最优反应(都以最大化自身利益为原则而做出的动作)。FSP将单步博弈拓展到多步博弈(extensive-form game,扩展式博弈)。
NFSP agent由两个网络组成。第一个网络(Q网络,这里有点像critic网络)是采用强化学习的方式、用过往与其他玩家博弈的经历来训练,这个网络用来学习一个近似最优反应(best response strategy);第二个网络采用监督学习的方式、用自己过往的博弈经历训练,这个网络(policy网络,有点像Actor,输出动作的概率分布)用来学习一个自己过往策略的平均策略(average strategy)。NFSP agent结合自己的平均策略和最佳反应策略综合来做出行动。
blah一堆,反正就是DQN是一种很不错的离线RL算法。
FP是一种从自我对弈中学习的博弈论模型,可以求解纳什均衡,但是要求有近似最佳反应和扰动的平均策略更新(解决了这两个核心问题,纳什均衡也就基本解出来了),这其实特别适合机器学习。(可以用一个网络(Q网络)去估计最佳反应,而平均策略更新可以通过不停更新一个policy网络实现)
FP通常用于规范形式的博弈(单步博弈),很难用到扩展形式的博弈(多步博弈)。XFP解决了这个局限,将策略表示原本规范形式中的各玩家策略线性组合(序列化之后应该还是原本n个玩家策略的线性组合,没毛病,因为搞来搞去就n个策略,当前的策略肯定从这n个策略中组合产生),然后用一个传统算法去算平均策略。
XFP没有用机器学习的方法,而FSP相当于是一种基于机器学习的近似XFP。FSP将两个核心问题(计算最优反应和更新平均策略)用两个网络去做,就可以完美地近似XFP了。
NFSP将FSP与神经网络近似相结合。在算法1中,游戏的每个玩家都由单独的NFSP agent控制,这些agent从与其他玩家博弈中学习,即self-play。每个NFSP agent与其他agents交互,将经历(st,at,rt+1,st+1)存在MRL中,再将自己的最优反应(st,at)存在MSL中。NFSP将这两个记忆MRL和MSL视为两个不同的数据集,分别用于深层强化学习和监督分类。(两者存放方式不一样,MRL是buffer的形式,先进先出;MSL用蓄水池reservoir的形式,每个样本重要性一致)
NFSP用MRL去训练一个DQN,从而可以得到近似最优反应 β=ε-greedy(Q), 也就是ε的概率随机选动作,(1-ε)的概率选择Q值最大的动作。(Q网络输入为s,输出Q值,loss为|Q(s)-(rt+Q(st+1))|2)
NFSP再用MSL通过监督分类的方式去训练另一个网络 Π(s,a|θΠ)去模拟自己过往最优反应。该网络将状态映射到动作概率并定义agent的平均策略 π=Π。( Π网络的输入为s,输出在各动作上的概率分布P,loss为-logP, 这里不是-R*logP,因为MSL中都是由Q网络估计而得到的近似最优反应经历,他们重要性相同,可以理解为每一个的R都等于1)
在博弈中,agent从策略 β 和策略 π 的混合策略中选择动作。
NFSP还利用两项技术创新,以确保最终算法的稳定性,并实现同步自博弈。首先,它使用蓄水池采样(reservoir sampling)来避免由于从有限存储器中采样而导致的窗口artifacts;其次,它使用anticipatory dynamics(预期动态)使每个agent都能够采样自己的最优反应行为,并更有效地跟踪对手行为的变化。
如果我们希望所有agent在互相博弈的同时学习,我们将面临以下困境。原则上,每个agent可以发挥其平均策略 π,并通过DQN学习最优反应,也就是估计并最大化他自己最优反应策略βi下的Qi(s,t) 来对抗其他玩家的策略组合 π-i。但是,在这种情况下,agent不会产生任何自己的最佳反应行为的经验,然而这是训练其平均策略网络 Π(s,a|θΠ) 所必需的。( Π(s,a|θΠ) 网络用于近似agent自己过往的平均最优反应)。
所以这个时候引出dynamics(预期动态),每个玩家都会预测对手们的平均单步博弈策略,然后做出最优反应,η为动态参数。
难,很难,需要一定博弈论知识。
需要进一步看下代码,不然还是很迷糊。