机器博弈 (三) 虚拟遗憾最小化算法
文章目录
- 虚拟遗憾最小化算法(Counterfactual Regret Minimization)
- 例子-库恩扑克(Kunh's pocker)
- 计算1PB的遗憾值
虚拟遗憾最小化算法(Counterfactual Regret Minimization)
如果不能遍历计算机所有节点的遗憾值,那么可以采用虚拟遗憾最小化算法来进行模拟计算。
假设:
- 集合AAA是博弈中所有玩家所能采用的行为集(如在石头-剪刀-布游戏中出石头、出剪刀或出布三种行为)
- III为信息集,包含了博弈的规则以及玩家采取的历史行动,在信息集III下所能采取的行为集合记为A(I)A(I)A(I)。
玩家iii在第ttt轮次采取的行动ai∈A(Ii)a_{i} \in A(I_{i})ai∈A(Ii)反映了其在该轮次所采取的策略σit\sigma_{i}^{t}σit。包含玩家iii在内的所有玩家在ttt轮次采取的行动a∈A(I)a \in A(I)a∈A(I)构成了一组策略组合σt\sigma^{t}σt。
在信息集III下采取行动aaa所反映的策略记为σI→a\sigma_{I \rightarrow a}σI→a。
在第ttt轮次所有玩家采取的行动是一条序列,记为hhh。采取某个策略σ\sigmaσ计算行动序列hhh出现的概率记为πσ(h)\pi^{\sigma}(h)πσ(h)。
每个信息集III发生的概率πσ(I)=∑h∈Iπσ(h)\pi^{\sigma}(I)=\sum_{h \in I}\pi^{\sigma}(h)πσ(I)=∑h∈Iπσ(h),表示所有能够到达该信息集的行动序列的概率累加。
给定博弈的终结局势z∈Zz \in Zz∈Z,玩家iii在游戏结束后的收益记做ui(z)u_{i}(z)ui(z)。
在策略组合σ\sigmaσ下,施加博弈行动序列hhh后达到最终局势zzz的概率为πσ(h,z)\pi^{\sigma}(h,z)πσ(h,z)。
有了这些定义之后,我们现在来计算虚拟遗憾:
- 当采取策略σ\sigmaσ时,其所对应的行动序列hhh的虚拟价值(Counterfactual Value)如下计算(注:行动序列hhh未能使博弈进入终结局势):
vi(σ,h)=∑z∈Zπ−iσ(h)πσ(h,z)ui(z)v_{i}(\sigma,h)=\sum_{z \in Z} \pi_{-i}^{\sigma}(h)\pi^{\sigma}(h,z)u_{i}(z) vi(σ,h)=z∈Z∑π−iσ(h)πσ(h,z)ui(z)
我们首先去计算其他玩家在产生行动序列hhh中他们的概率值是多少,乘以在这个策略下,从行动序列hhh进入到终止局势zzz的概率,最终再乘以玩家iii在终止局势zzz的概率。之后对终止局势做一个遍历,把它的乘积做一个累加。
- 玩家iii采取行动aaa所得到的虚拟遗憾值:
r(h,a)=vi(σI→a,h)−vi(σ,h)r(h,a)=v_{i}(\sigma_{I \rightarrow a},h) - v_{i}(\sigma,h) r(h,a)=vi(σI→a,h)−vi(σ,h)
- 行动序列hhh所对应的信息集III遗憾值为:
r(I,a)=∑r(h,a)r(I,a)=\sum r(h,a) r(I,a)=∑r(h,a)
- 玩家iii在第TTT轮次采取行动aaa的遗憾值为:
RegrettT(I,a)=∑t=1Trit(I,a)Regret_{t}^{T}(I,a)=\sum_{t=1}^{T}r_{i}^{t}(I,a) RegrettT(I,a)=t=1∑Trit(I,a)
- 同样,对于遗憾值为负数的情况,我们不予考虑,记:
RegretiT,+(I,a)=max(RiT(I,a),0)Regret_{i}^{T,+}(I,a) = max(R_{i}^{T}(I,a),0) RegretiT,+(I,a)=max(RiT(I,a),0)
- 在T+1T+1T+1轮次,玩家iii选择行动aaa的概率计算如下:
σiT+1(I,a)={RegretiT,+(I,a)∑a∈A(I)RegretiT,+(I,a)if∑a∈A(I)RegretiT,+(I,a)>01∣A(I)∣otherwise\sigma_{i}^{T+1}(I,a) = \left\{\begin{matrix} \frac{Regret_{i}^{T,+}(I,a)}{\sum_{}a \in A(I)Regret_{i}^{T,+}(I,a)}& if \sum_{a \in A(I)}Regret_{i}^{T,+}(I,a)>0\\ \frac{1}{|A(I)|} & otherwise \end{matrix}\right. σiT+1(I,a)={∑a∈A(I)RegretiT,+(I,a)RegretiT,+(I,a)∣A(I)∣1if∑a∈A(I)RegretiT,+(I,a)>0otherwise
- 玩家iii根据遗憾值大小来选择下一时刻行为,如果遗憾值为负数,则随机挑选一种行为进行博弈。
例子-库恩扑克(Kunh’s pocker)
- 库恩扑克是最简单的限注扑克游戏,由两名玩家进行游戏博弈,牌值只有1,2和3三种情况。
- 每轮每位玩家各持一张手牌,根据各自判断来决定加定额赌注。
- 游戏没有公共牌,摊牌阶段比较未弃牌玩家的底牌大小,底牌牌值最大的玩家即为胜者。
- 游戏规则:
库恩扑克(Kunh’s pocker):以先手玩家(定义为玩家AAA)为例的博弈树:
从初始节点开始,1、2、3分别表示玩家AAA手中的牌,当玩家拿了1之后,玩家BBB只能拿2或者3。玩家AAA选择过牌还是加注,玩家BBB也可以选择过牌还是加注。依次进行下去,就构建了博弈树。
- 在这个博弈树里面,总共的信息集与12个:{1,1P,1B,1BP,2,2P,2B,2BP,3,3P,3B,3BP}。
- 每个信息集由不同路径可以到达。如信息集1PB可通过如下路径到达:
1玩家A拿到大小为1的纸牌→1P玩家A采取过牌行动→1PB玩家B采取加注行动1_{玩家A拿到大小为1的纸牌}\rightarrow 1P_{玩家A采取过牌行动} \rightarrow 1PB_{玩家B采取加注行动} 1玩家A拿到大小为1的纸牌→1P玩家A采取过牌行动→1PB玩家B采取加注行动
可见信息集1PB1PB1PB所对应的行动序列为{P,B}
- 在该问题中,到达每个信息集的路劲均唯一,因此所有信息集仅对应一个行动序列。
有了上述定义之后,我们可以采取如下算法进行策略选择:
- 初始化遗憾值和累加策略表为0
- 采用随机选择的方法来决定策略
- 利用当前策略与对手进行博弈
- 计算每个玩家采取每次行为后的遗憾值
- 根据博弈结果计算每个行动的累加遗憾值大小来更新策略
- 重复博弈若干次
- 根据重复博弈最终的策略,完成最终的动作选择
计算1PB的遗憾值
- 假设初始情况下,两个玩家都以随机选择的策略进行决策,即在任一节点,都以50%的概率分别选择过牌和加注
- 若第一轮中,玩家AAA的博弈过程为1→P1P→B1PB→BZ21 \overset{P}{\rightarrow}1P \overset{B}{\rightarrow}1PB \overset{B}{\rightarrow} Z_{2}1→P1P→B1PB→BZ2,收益为uA(Z2)=−2u_{A}(Z_{2})=-2uA(Z2)=−2。
- 计算玩家AAA针对信息集{1PB}\{1PB\}{1PB}选择“过牌”行动的遗憾值:
- 在当前策略下,行动序列h={PB}h=\{PB\}h={PB}产生的概率:
πBσ(h)=1×0.5=0.5\pi_{B}^{\sigma}(h) = 1 \times 0.5 = 0.5 πBσ(h)=1×0.5=0.5
- 在当前策略下,行动序列h={PB}h=\{PB\}h={PB}产生的概率:
由于在 {1PB}\{1PB\}{1PB}节点选择加注和过牌的概率均为50%,所以当前策略下,从行动序列hhh到达终结状态z1z_{1}z1和z2z_{2}z2的概率分别为:
πσ(h,z1)=0.5,πσ(h,z2)=0.5\pi^{\sigma}(h,z_{1})=0.5,\pi^{\sigma}(h,z_{2})=0.5 πσ(h,z1)=0.5,πσ(h,z2)=0.5
又已知uA(z1)=−1u_{A}(z_{1})=-1uA(z1)=−1,uA(z2)=−2u_{A}(z_{2})=-2uA(z2)=−2,可知当前策略的虚拟价值:
vA(σ,h)=πBσ(h)×πσ(h,z1)×uA(z1)+πBσ(h)×πσ(h,z2)×uA(z2)=0.5×0.5×(−1)+0.5×0.5×(−2)=−0.75v_{A}(\sigma,h)=\pi_{B}^{\sigma}(h) \times \pi^{\sigma}(h,z_{1}) \times u_{A}(z_{1})+\pi_{B}^{\sigma}(h) \times \pi^{\sigma}(h,z_{2}) \times u_{A}(z_{2}) \\ = 0.5 \times0.5 \times (-1) + 0.5 \times 0.5 \times (-2) = -0.75 vA(σ,h)=πBσ(h)×πσ(h,z1)×uA(z1)+πBσ(h)×πσ(h,z2)×uA(z2)=0.5×0.5×(−1)+0.5×0.5×(−2)=−0.75
- 若使用过牌策略,即σ{1PB}→P\sigma_{\{1PB\} \rightarrow P}σ{1PB}→P,此时玩家BBB促使行动序列h={P,B}h=\{P,B\}h={P,B}达成的概率仍然为πBσ(h)=0.5\pi_{B}^{\sigma}(h)=0.5πBσ(h)=0.5,由于最终抵达的终结状态只有z1z_{1}z1,所以πσ(h,z1)=1\pi^{\sigma}(h,z_{1})=1πσ(h,z1)=1。
- 则最终选择过牌的虚拟价值为:
vA(σ{1PB}→P,h)=πBσ(h)×πσ(h,z1)×uA(z1)=0.5×1×(−1)=−0.5v_{A}(\sigma_{\{ 1PB\}\rightarrow P}, h) = \pi_{B}^{\sigma}(h) \times \pi^{\sigma}(h,z_{1}) \times u_{A}(z_{1})=0.5 \times 1 \times (-1) = -0.5 vA(σ{1PB}→P,h)=πBσ(h)×πσ(h,z1)×uA(z1)=0.5×1×(−1)=−0.5
- 在信息集{1PB}\{1PB\}{1PB}上采取“过牌”的遗憾值
r(I,P)=r(h,P)=vA(σ{1PB}→P,h)−vA(σ,h)=(−0.5)−(−0.75)=0.25r(I,P)=r(h,P)=v_{A}(\sigma_{\{1PB\}\rightarrow P},h)-v_{A}(\sigma, h)=(-0.5)-(-0.75)=0.25 r(I,P)=r(h,P)=vA(σ{1PB}→P,h)−vA(σ,h)=(−0.5)−(−0.75)=0.25
- 库恩扑克的博弈共有12个信息集,对应上图中的正方形和三角形
- 通过反复迭代计算,可以得到到达各个信息集应采取行动的概率:
- 对于玩家AAA而言,库恩扑克的混合策略纳什均衡的理论解如下(α∈[0,1/3]\alpha \in [0,1/3]α∈[0,1/3]):
可见,算法得到的解与理论得到的解之间较为接近,验证了算法的有效性。
机器博弈 (三) 虚拟遗憾最小化算法相关推荐
- CFR虚拟遗憾最小化算法基础
虚拟遗憾最小化算法[Counterfactual Regret Minimization,CFR] 基础理论 博弈问题分类 博弈论基本概念与符号 算法框图 参考文献 基础理论 博弈问题分类 按照效用值 ...
- 【点宽专栏】虚拟遗憾最小化(CFR)之量化择时与交易
谷歌DeepMind公司研发的AI围棋AlphaGo在去年嗨翻天的时候,让我觉得现在的机器学习学习技术真的很NB,因为自己的专业,私下一直有关注机器学习在量化投资这块的一些实践.昨天看到广发出了一篇名 ...
- Kaldi WFST最小化算法
WFST最小化算法 最小化算法主要是在保证DFA识别的语言不变的条件下,将DFA中等价状态合并,减少状态数.转移边数,简化DFA结构,从而减少存储空间和运算时间.比较有名的最小化算法有Moore,Ho ...
- 思维模型——贝索斯的遗憾最小化模型
目录 一.遗憾最小化模型含义 二."最小遗憾化模型"的提出 三.最喜欢贝索斯的几个观点 1. 关注在不变的事情上,而不是变化的事情上 2."客户至上"原则 3. ...
- 图像全变差 matlab,全变差图像重建的交替最小化算法
全变差图像重建的交替最小化算法 matlab 2021-2-11 下载地址 https://www.codedown123.com/64520.html 全变差图像重建的交替最小化算法 包含灰度图像, ...
- 遗憾最小化框架:杰夫·贝佐斯离职创立Amazon背后的思考办法
文章来源: http://tandc.likesyou.org/?p=36 Chris Dixon 在<谈何时放弃你的idea>一文中谈到了在决定是放弃还是继续自己的创业idea的时候,可 ...
- 近端算法:近端最小化(Proximal minimization)、近端梯度(PG)、加速近端梯度(APG)、ADMM
近端算法 基本介绍及定义 定义 工作原理 性质 近端算子解释 Moreau-Yosida正则化 次微分算子的预解 修正梯度步长 信任区域问题 近端算法(Proximal Algorithms) 近端最 ...
- 正则表达式引擎的构建——基于编译原理DFA(龙书第三章)——5 DFA最小化
完整引擎代码在github上,地址为:https://github.com/sun2043430/RegularExpression_Engine.git DFA最小化的算法原理 "DFA状 ...
- python实现dfa过滤算法_Hopcroft算法DFA最小化Python实现
DFA最小化原理 所谓自动机的化简问题即是对任何一个确定有限自动机DFA M,构造另一个确定有限自动机DFA M',有L(M)=L(M'),并且M'的状态个数不多于M的状态个数,而且可以肯定地说,能够 ...
- 压缩感知的尽头: 原子范数最小化
文章目录 前言 问题建模 Toeplitz 矩阵的范德蒙德分解 DOA估计的一般框架 ℓ0\ell_0ℓ0-原子范数 ℓ0\ell_0ℓ0-原子范数 与 范德蒙德分解 原子范数 多维原子范数 证明 ...
最新文章
- hdu4277 DFS+SET
- JAVA中如何确保N个线程可以访问N个资源,但同时又不导致死锁?
- MySQL 大表优化方案(1)
- qchart折现图_Qt开发技术:QCharts(二)QCharts折线图介绍、Demo以及代码详解
- DirectShow组件原理分析及应用
- 西门子和阿里云要搞啥事情?| 极客头条
- linux下ora 01110,ORA-01003ORA-01110
- 如何使用JavaScript控制台:超越console.log()
- mysql存储过程和自定义函数_MySQL存储过程/存储过程与自定义函数的区别
- Jquery 同个类名中点击的显示其他隐藏的效果
- LL1分析构造法_行测技巧:比较构造法两步轻松解决方程题
- k8s升级从1.13到1.16教程与采坑解决办法
- 使用Configuration Manager部署及管理软件更新(1)
- 点滴记录笔记_持续更新
- syn包发送(拒绝攻击,但是有问题)
- kinect2.0 之摄像头
- 【论文泛读】ChineseBERT:融合字形与拼音信息的中文预训练模型
- python引用自己写的文件
- 整合Mybatis、Servlet、Mysql、Axios、Filter、Session写一个入门级项目:非常适合初接触JavaWeb的小白白来进阶
- 苹果xr电池容量_2019销量最高的苹果手机,不是iPhone11,更不是iPhone8
热门文章
- javascript探秘-检测浏览器和操作系统
- 游戏开发之C++类和对象相关概念实例(C++)
- HCIE Security 防火墙反病毒 备考笔记(幕布)
- Ansible详解(十五)——Ansible Role实战
- Tomcat详解(十一)——Tomcat管理
- Linux Autofs自动挂载服务详解
- CSS详解(一)——CSS基本原理
- leetcode 13 13. 罗马数字转整数 (python)
- BE THE PIONEER FROM APSARADB——2018云栖大会·深圳峰会·云数据库在线直播分论坛
- 如何解决安装CentOS时遇到引导分区位于一个GPT分区方案的错误提示问题