Monte Carlo Sampling for Regret Minimization in Extensive Games(MCCFR)

  • 采样虚拟遗憾
  • 结果采样
  • 外部采样
  • 平均策略计算
  • 参考文献

虚拟遗憾最小化算法是基于时间步长的一个迭代过程,玩家们采取的策略集定义为(σ1t\sigma_1^tσ1t​,σ2t\sigma_2^tσ2t​),对于每个动作和信息集计算遗憾值。然后通过遗憾值最小化计算一个新的策略集(σ1t+1\sigma_1^{t+1}σ1t+1​,σ2t+1\sigma_2^{t+1}σ2t+1​)。为了达到近似纳什均衡,CFR算法需要记住一个关键,接近纳什均衡的策略是一个平均策略σˉT\bar\sigma^TσˉT;每次迭代后策略都会被更新,该算法对每个信息集上的每个行动保持表格式的累积遗憾,这决定了后续的策略。

采样虚拟遗憾

玩家i利用策略σ\sigmaσ的虚拟价值定义为
vi(σ,I)=∑z∈ZIπ−iσ(z[I])πσ(z[I],z)ui(z)v_{i}(\sigma, I)={\sum_{z\in\Z_I}\pi_{-i}^{\sigma}(z[I]) \pi^\sigma(z[I], z)}u_i(z) vi​(σ,I)=z∈ZI​∑​π−iσ​(z[I])πσ(z[I],z)ui​(z)
这个值代表了当到达信息集III时的期望效用。虚拟遗憾值是没有选择策略σI→at\sigma_{I\rightarrow a}^tσI→at​信息集III中的动作aaa而是遵循了另外的策略σit\sigma_i^tσit​。此时的遗憾值表示为
rt(I,a)=vi(σI→at,I)−vi(σt,I)r^t(I,a) = v_{i}(\sigma_{I\rightarrow a}^t, I) - v_{i}(\sigma^t, I) rt(I,a)=vi​(σI→at​,I)−vi​(σt,I)
蒙特卡洛CFR(MCCFR)的主要思想是重新定义虚拟价值和遗憾值的无偏估计,MCCFR仅仅采样了博弈树的一部分并且通过遗憾最小化对树进行采样,此时应用虚拟价值的估计值而不是真实值。由于估计值是无偏的,所以估计值接近期望的真实值。只要采样的方式合理,就可以很容易达到近似的均衡。

定义Q={Q1,Q2,...}\mathcal Q = \{Q_1,Q_2,...\}Q={Q1​,Q2​,...}是ZZZ的子集(∪Q∈QQ∈Z\cup_{Q\in\mathcal Q}Q\in Z∪Q∈Q​Q∈Z) 。此时要注意QQQ并不是一个partition因为我们并不要求Q1∩Q2=ϕQ_1\cap Q_2 = \phiQ1​∩Q2​=ϕ。我们称一个QiQ_iQi​为终端历史的一个块(block),并且集合Q\mathcal QQ是所有可能块的集合。在每一迭代轮次ttt中,MCCFR首先通过一些采样规则采样出一个块QiQ_iQi​,并且每个块的抽样概率qi>0q_i>0qi​>0。然后MCCFR计算每个信息集中的虚拟值和遗憾。使
q(z)=∑j:z∈Qjqjq(z) = \sum_{j:z\in Q_j}q_j q(z)=j:z∈Qj​∑​qj​
表示某些轮次迭代采样的块包含zzz的概率。
采样时的虚拟值定义为:
v~i(σ,I∣j)=∑z∈Qj∩ZI1q(z)π−iσ(z[I])πσ(z[I],z)ui(z)\tilde{v}_{i}(\sigma, I \mid j)=\sum_{z \in Q_{j} \cap Z_{I}} \frac{1}{q(z)} \pi_{-i}^{\sigma}(z[I]) \pi^{\sigma}(z[I], z) u_{i}(z) v~i​(σ,I∣j)=z∈Qj​∩ZI​∑​q(z)1​π−iσ​(z[I])πσ(z[I],z)ui​(z)
此时我们需要保证q(z)>=δ>0q(z) >= \delta>0q(z)>=δ>0。这里δ\deltaδ 是采样z的最低概率。
当交集Qj∩ZIQ_j\cap Z_IQj​∩ZI​为空,这个块没有包含ZZZ的任意历史状态,所以此时的v值为0。

定理1 v~i(σ,I∣j)\tilde{v}_{i}(\sigma, I \mid j)v~i​(σ,I∣j)的期望值等于原始CFR的value(vi(σ,I)v_{i}(\sigma, I)vi​(σ,I)),证明见参考文献。
定理一表明:v~i(σ,I∣j)\tilde{v}_{i}(\sigma, I \mid j)v~i​(σ,I∣j)是vi(σ,I)v_{i}(\sigma, I)vi​(σ,I)的无偏估计。因此采样虚拟遗憾值为
r~t(I,a)=v~i(σI→at,I)−v~i(σt,I)\tilde r^t(I,a) =\tilde v_{i}(\sigma_{I\rightarrow a}^t, I) -\tilde v_{i}(\sigma^t, I)r~t(I,a)=v~i​(σI→at​,I)−v~i​(σt,I)
这与真实的遗憾值在期望上相匹配。

MCCFR的时间复杂度取决于所使用的抽样方案。例如,在CFR中,每次迭代的时间与游戏树的大小成线性关系。如果一个游戏在根处包含一个单一的机会节点,并且在每个结果下面有4个相同大小的树,那么一次机会抽样CFR迭代所花费的时间大约是CFR的四分之一。另一方面,每个MCCFR实例(包括CFR)都存储策略集,并且空间复杂度为O(∣C1∣+∣C2∣)O(|C_1|+|C_2|)O(∣C1​∣+∣C2​∣)。当存储空间受到限制,可以使用抽象技术来减少内存消耗。

蒙特卡洛虚拟遗憾最小化伪代码

结果采样

在结果采样MCCFR中,每个块包含一个终端历史。在每次迭代中,我们采样一个终端历史,并只更新该历史中的每个信息集。采样概率,qjq_jqj​指定了终端历史的分布。我们要使用一个采样策略集σ′\sigma'σ′表示这个分布,以便q(z)=πσ′(z)q(z) = \pi^{\sigma'}(z)q(z)=πσ′(z)。注意,任何采样策略的选择都会在块抽样概率q(z)q(z)q(z)有一个特定的分布。
该算法对zzz按照策略σ′\sigma'σ′采样,并存储πσ′(z)\pi^{\sigma'}(z)πσ′(z)。然后将单个历史向前遍历,计算每个玩家达到该历史每个前缀的概率πiσ(h)\pi^{\sigma}_i(h)πiσ​(h),向后计算每个玩家进行历史中剩余动作的概率πiσ(h,z)\pi^{\sigma}_i(h,z)πiσ​(h,z)。在向后遍历过程中,计算每个访问到的信息集的抽样反事实遗憾(并将其加到总遗憾中)。
当使用结果抽样时,有两种情况。要么z[I]az[I]az[I]a是zzz的前缀(在我们的抽样历史中,在III采取了行动a),要么z[I]az[I]az[I]a不是zzz的前缀(即在信息集III的时候,玩家没有采取动作a)。两种情况更新遗憾值的公式不同,具体如下所示:

如何设计采样策略 σ′\sigma'σ′ 仍然是一个问题。对根据玩家的策略可能发生的信息集进行抽样是合理的。在此过程中,确保探索的最直接的方法是使用ϵ\epsilonϵ-greedy的方法。当遍历树和信息集I时,概率ϵ\epsilonϵ统一随机选择一个动作,否则根据玩家当前的策略σt(I)σ^t(I)σt(I)对其进行抽样。我们称这种抽样方法为ϵ\epsilonϵ策略探索。
由于只对单个历史序列进行采样,每次迭代在树的深度上都是线性的,不受游戏分支因素的影响。缺点是必须不断探索(explore),导致可能选择永远不会做出的动作。
在结果抽样中,单个抽样的历史可以为两个玩家重复使用,我们称这种为结果采样的parallel form

外部采样

在外部抽样中,我们只对对手的行动和机会结点进行采样(在玩家以外的结点),对于对手结点和机会结点的纯策略,即从I∈IC∪IN\{i}I\in \mathcal I_C\cup \mathcal I_{N\backslash \{i\}}I∈IC​∪IN\{i}​到A(I)A(I)A(I)的每个确定性映射,都有一个blockQτ∈QQ_\tau\in\mathcal QQτ​∈Q。这个块的采样概率基于fc和σ−if_c和\sigma_{-i}fc​和σ−i​的分布,所以qτ=∏I∈Icσc(I,τ(I))∏I∈IN\{i}σ−i(I,τ(I))q_{\tau}=\prod_{I \in \mathcal{I}_{c}} \sigma_{c}(I, \tau(I)) \prod_{I \in \mathcal{I}_{N \backslash\{i\}}} \sigma_{-i}(I, \tau(I))qτ​=I∈Ic​∏​σc​(I,τ(I))I∈IN\{i}​∏​σ−i​(I,τ(I))

if P(h) == i:# traverse all available actions, to illiminate influence of σ_iv[I] = {a: mccfr(h + [a], {**π_i, P(h): π_i[P(h)] * σ[t][I][a]}, i, t) for a in A[I]}
else:# sample one a from A[I]a = sample(A[I], σ[t][I])v[I][a] = mccfr(h + [a], {**π_i, P(h): π_i[P(h)] * σ[t][I][a]})

平均策略计算

当我们使用CFR算法时,能够接近均衡的策略实际上为σˉT\bar\sigma^TσˉT。如果我们的目标是计算一个近似的平衡,那么当所有的迭代都完成之后得到的策略集就即为平均策略。
平均策略定义为σˉiT(I,a)=∑t=1Tπiσt(I)σt(I,a)∑t=1Tπiσt(I),I∈Ii\bar{\sigma}_{i}^{T}(I, a)=\frac{\sum_{t=1}^{T} \pi_{i}^{\sigma^{t}}(I) \sigma^{t}(I, a)}{\sum_{t=1}^{T} \pi_{i}^{\sigma^{t}}(I)}, I \in \mathcal{I}_{i}σˉiT​(I,a)=∑t=1T​πiσt​(I)∑t=1T​πiσt​(I)σt(I,a)​,I∈Ii​CFR中,在每个信息集上仅为每个动作累积分子,当要计算平均策略时,维护的值可以被其他动作的策略值规范化。信息集III中动作aaa的平均策略增量为πiσt(I)σt(I,a)\pi_i^{\sigma^t}(I)\sigma^t(I,a)πiσt​(I)σt(I,a);在实验中,这个增量是由h∈Ih\in Ih∈I的更小的增量πiσt(h)σt(I,a)\pi_i^{\sigma^t}(h)\sigma^t(I,a)πiσt​(h)σt(I,a)相加而成。也就是说,递归遍历是在游戏树而不是信息集树上。由于每次迭代都完成一幕,因此精确地计算了平均策略。
计算MCCFR中的平均策略通常不是很明确,因为每次迭代只访问了的一部分信息集。但是,平均策略的计算应该包含玩家T轮迭代中在那是如何行动的。

参考文献

[1]: MONTE CARLO SAMPLING AND REGRET MINIMIZATION FOR EQUILIBRIUM COMPUTATION AND DECISION-MAKING IN LARGE EXTENSIVE FORM GAMES
[2]: Monte Carlo Sampling for Regret Minimization in Extensive Games

Monte Carlo Counterfactual Regret Minimization相关推荐

  1. ADPRL - 近似动态规划和强化学习 - Note 10 - 蒙特卡洛法和时序差分学习及其实例 (Monte Carlo and Temporal Difference)

    Note 10 蒙特卡洛法和时序差分学习 Monte Carlo and Temporal Difference 蒙特卡洛法和时序差分学习 Note 10 蒙特卡洛法和时序差分学习 Monte Car ...

  2. 强化学习(四) - 蒙特卡洛方法(Monte Carlo Methods)及实例

    强化学习(四) - 蒙特卡洛方法(Monte Carlo Methods)及实例 4. 蒙特卡洛方法 4.1 蒙特卡洛预测 例4.1:Blackjack(21点) 4.2 动作价值的蒙特卡洛估计 4. ...

  3. [matlab]Monte Carlo模拟学习笔记

    理论基础:大数定理,当频数足够多时,频率可以逼近概率,从而依靠概率与$\pi$的关系,求出$\pi$ 所以,rand在Monte Carlo中是必不可少的,必须保证测试数据的随机性. 用蒙特卡洛方法进 ...

  4. 蒙特卡罗(Monte Carlo)方法

    蒙特卡罗(Monte Carlo)方法,也称为计算机随机模拟方法,是一种基于"随机数"的计算方法.          一 起源 这一方法源于美国在第二次世界大战进研制原子弹的&qu ...

  5. Monte Carlo仿真方法的基本思想及其特点

    Monte Carlo仿真方法又称统计试验法,它是一种采用统计抽样理论近似地求解数学.物理及工程问题的方法.它解决问题的基本思想是,首先建立与描述该问题有相似性的概率模型,然后对模型进行随机模拟或统计 ...

  6. 论文辅助笔记(代码实现):Bayesian Probabilistic Matrix Factorizationusing Markov Chain Monte Carlo

    1 主要思路回顾 具体可见:论文笔记 Bayesian Probabilistic Matrix Factorizationusing Markov Chain Monte Carlo (ICML 2 ...

  7. Algorithm之MC:Monte Carlo method蒙特·卡罗方法的简介、实现、应用

    Algorithm之MC:Monte Carlo method蒙特·卡罗方法的简介.实现.应用 目录 随机算法 MC的简介 MC的应用 随机算法 随机算法分为两大类:蒙特卡罗算法和拉斯维加斯算法,都是 ...

  8. 强化学习—— 蒙特卡洛树(Monte Carlo Tree Search, MCTS)

    强化学习-- 蒙特卡洛树(Monte Carlo Tree Search, MCTS) 1. 单一状态蒙特卡洛规划 1.1 特点 1.2 数学模型 2. 上限置信区间策略 3. 蒙特卡洛树搜索 3.1 ...

  9. Monte carlo

    转载 http://blog.sciencenet.cn/blog-324394-292355.html 蒙特卡罗(Monte Carlo)方法,也称为计算机随机模拟方法,是一种基于"随机数 ...

最新文章

  1. 数据挖掘导论读书笔记10聚类分析续
  2. 如何在GitHub上重命名存储库?
  3. 【生成模型】关于无监督生成模型,你必须知道的基础
  4. Web API 速率限制(一)
  5. oracle数据库存储结构语句,oracle基本语句(第五章、数据库逻辑存储结构管理)...
  6. 年薪50-80万 | 海南省崖州湾种子实验室海外优青招聘公告
  7. python发送微信消息_python 发送QQ或者微信消息
  8. JAVA基础:从一道面试题看逻辑运算符与、|与||的区别
  9. python1e2_Python必修基础(1)
  10. 万春 读《Orange’S 一个操作系统的实现》有感
  11. caffe FCN Ubuntu16.0
  12. KITTI 3D目标检测数据集解析(完整版)
  13. pythondjango网页制作_python+django加载静态网页模板解析
  14. iphone11各机型对比_三款机型运行速度对比,iPhone11Pro表现如何?
  15. 洛谷P1345 [USACO5.4]奶牛的电信Telecowmunication(最小割点,最大流) 题解
  16. vue引入wangEditor
  17. 因为造轮子,我一个月就转正了
  18. IEEE 754 浮点数
  19. Linux—教你两个方法轻松找回root密码
  20. 基于ffplay改造成自定义多开播放器

热门文章

  1. 一个简单的2DRoguelike游戏随机地图生成思路
  2. python实现一键换脸+源码+教程
  3. BMC通过PECI接口获取CPU温度实现方法
  4. FakeSMC 修改
  5. 腾讯Android开发面试记录,附大厂真题面经
  6. Python编程 统计Java源文件代码行数,注释行数,空白行数
  7. 灿谷集团荣获“公益践行奖”
  8. iOS 苹果2.1大礼包解决方法
  9. Exynos4412-itop4412 uboot移植
  10. 5000立方米球罐设计