Monte Carlo Counterfactual Regret Minimization
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∈QQ∈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∈IiCFR中,在每个信息集上仅为每个动作累积分子,当要计算平均策略时,维护的值可以被其他动作的策略值规范化。信息集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相关推荐
- ADPRL - 近似动态规划和强化学习 - Note 10 - 蒙特卡洛法和时序差分学习及其实例 (Monte Carlo and Temporal Difference)
Note 10 蒙特卡洛法和时序差分学习 Monte Carlo and Temporal Difference 蒙特卡洛法和时序差分学习 Note 10 蒙特卡洛法和时序差分学习 Monte Car ...
- 强化学习(四) - 蒙特卡洛方法(Monte Carlo Methods)及实例
强化学习(四) - 蒙特卡洛方法(Monte Carlo Methods)及实例 4. 蒙特卡洛方法 4.1 蒙特卡洛预测 例4.1:Blackjack(21点) 4.2 动作价值的蒙特卡洛估计 4. ...
- [matlab]Monte Carlo模拟学习笔记
理论基础:大数定理,当频数足够多时,频率可以逼近概率,从而依靠概率与$\pi$的关系,求出$\pi$ 所以,rand在Monte Carlo中是必不可少的,必须保证测试数据的随机性. 用蒙特卡洛方法进 ...
- 蒙特卡罗(Monte Carlo)方法
蒙特卡罗(Monte Carlo)方法,也称为计算机随机模拟方法,是一种基于"随机数"的计算方法. 一 起源 这一方法源于美国在第二次世界大战进研制原子弹的&qu ...
- Monte Carlo仿真方法的基本思想及其特点
Monte Carlo仿真方法又称统计试验法,它是一种采用统计抽样理论近似地求解数学.物理及工程问题的方法.它解决问题的基本思想是,首先建立与描述该问题有相似性的概率模型,然后对模型进行随机模拟或统计 ...
- 论文辅助笔记(代码实现):Bayesian Probabilistic Matrix Factorizationusing Markov Chain Monte Carlo
1 主要思路回顾 具体可见:论文笔记 Bayesian Probabilistic Matrix Factorizationusing Markov Chain Monte Carlo (ICML 2 ...
- Algorithm之MC:Monte Carlo method蒙特·卡罗方法的简介、实现、应用
Algorithm之MC:Monte Carlo method蒙特·卡罗方法的简介.实现.应用 目录 随机算法 MC的简介 MC的应用 随机算法 随机算法分为两大类:蒙特卡罗算法和拉斯维加斯算法,都是 ...
- 强化学习—— 蒙特卡洛树(Monte Carlo Tree Search, MCTS)
强化学习-- 蒙特卡洛树(Monte Carlo Tree Search, MCTS) 1. 单一状态蒙特卡洛规划 1.1 特点 1.2 数学模型 2. 上限置信区间策略 3. 蒙特卡洛树搜索 3.1 ...
- Monte carlo
转载 http://blog.sciencenet.cn/blog-324394-292355.html 蒙特卡罗(Monte Carlo)方法,也称为计算机随机模拟方法,是一种基于"随机数 ...
最新文章
- 数据挖掘导论读书笔记10聚类分析续
- 如何在GitHub上重命名存储库?
- 【生成模型】关于无监督生成模型,你必须知道的基础
- Web API 速率限制(一)
- oracle数据库存储结构语句,oracle基本语句(第五章、数据库逻辑存储结构管理)...
- 年薪50-80万 | 海南省崖州湾种子实验室海外优青招聘公告
- python发送微信消息_python 发送QQ或者微信消息
- JAVA基础:从一道面试题看逻辑运算符与、|与||的区别
- python1e2_Python必修基础(1)
- 万春 读《Orange’S 一个操作系统的实现》有感
- caffe FCN Ubuntu16.0
- KITTI 3D目标检测数据集解析(完整版)
- pythondjango网页制作_python+django加载静态网页模板解析
- iphone11各机型对比_三款机型运行速度对比,iPhone11Pro表现如何?
- 洛谷P1345 [USACO5.4]奶牛的电信Telecowmunication(最小割点,最大流) 题解
- vue引入wangEditor
- 因为造轮子,我一个月就转正了
- IEEE 754 浮点数
- Linux—教你两个方法轻松找回root密码
- 基于ffplay改造成自定义多开播放器