文章目录

  • 虚拟遗憾最小化算法(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∑T​rit​(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)∣1​​if∑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}

  • 在该问题中,到达每个信息集的路劲均唯一,因此所有信息集仅对应一个行动序列。

有了上述定义之后,我们可以采取如下算法进行策略选择:

  1. 初始化遗憾值和累加策略表为0
  2. 采用随机选择的方法来决定策略
  3. 利用当前策略与对手进行博弈
  4. 计算每个玩家采取每次行为后的遗憾值
  5. 根据博弈结果计算每个行动的累加遗憾值大小来更新策略
  6. 重复博弈若干次
  7. 根据重复博弈最终的策略,完成最终的动作选择

计算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

  由于在 {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]):

  可见,算法得到的解与理论得到的解之间较为接近,验证了算法的有效性。

机器博弈 (三) 虚拟遗憾最小化算法相关推荐

  1. CFR虚拟遗憾最小化算法基础

    虚拟遗憾最小化算法[Counterfactual Regret Minimization,CFR] 基础理论 博弈问题分类 博弈论基本概念与符号 算法框图 参考文献 基础理论 博弈问题分类 按照效用值 ...

  2. 【点宽专栏】虚拟遗憾最小化(CFR)之量化择时与交易

    谷歌DeepMind公司研发的AI围棋AlphaGo在去年嗨翻天的时候,让我觉得现在的机器学习学习技术真的很NB,因为自己的专业,私下一直有关注机器学习在量化投资这块的一些实践.昨天看到广发出了一篇名 ...

  3. Kaldi WFST最小化算法

    WFST最小化算法 最小化算法主要是在保证DFA识别的语言不变的条件下,将DFA中等价状态合并,减少状态数.转移边数,简化DFA结构,从而减少存储空间和运算时间.比较有名的最小化算法有Moore,Ho ...

  4. 思维模型——贝索斯的遗憾最小化模型

    目录 一.遗憾最小化模型含义 二."最小遗憾化模型"的提出 三.最喜欢贝索斯的几个观点 1. 关注在不变的事情上,而不是变化的事情上 2."客户至上"原则 3. ...

  5. 图像全变差 matlab,全变差图像重建的交替最小化算法

    全变差图像重建的交替最小化算法 matlab 2021-2-11 下载地址 https://www.codedown123.com/64520.html 全变差图像重建的交替最小化算法 包含灰度图像, ...

  6. 遗憾最小化框架:杰夫·贝佐斯离职创立Amazon背后的思考办法

    文章来源: http://tandc.likesyou.org/?p=36 Chris Dixon 在<谈何时放弃你的idea>一文中谈到了在决定是放弃还是继续自己的创业idea的时候,可 ...

  7. 近端算法:近端最小化(Proximal minimization)、近端梯度(PG)、加速近端梯度(APG)、ADMM

    近端算法 基本介绍及定义 定义 工作原理 性质 近端算子解释 Moreau-Yosida正则化 次微分算子的预解 修正梯度步长 信任区域问题 近端算法(Proximal Algorithms) 近端最 ...

  8. 正则表达式引擎的构建——基于编译原理DFA(龙书第三章)——5 DFA最小化

    完整引擎代码在github上,地址为:https://github.com/sun2043430/RegularExpression_Engine.git DFA最小化的算法原理 "DFA状 ...

  9. python实现dfa过滤算法_Hopcroft算法DFA最小化Python实现

    DFA最小化原理 所谓自动机的化简问题即是对任何一个确定有限自动机DFA M,构造另一个确定有限自动机DFA M',有L(M)=L(M'),并且M'的状态个数不多于M的状态个数,而且可以肯定地说,能够 ...

  10. 压缩感知的尽头: 原子范数最小化

    文章目录 前言 问题建模 Toeplitz 矩阵的范德蒙德分解 DOA估计的一般框架 ℓ0\ell_0ℓ0​-原子范数 ℓ0\ell_0ℓ0​-原子范数 与 范德蒙德分解 原子范数 多维原子范数 证明 ...

最新文章

  1. hdu4277 DFS+SET
  2. JAVA中如何确保N个线程可以访问N个资源,但同时又不导致死锁?
  3. MySQL 大表优化方案(1)
  4. qchart折现图_Qt开发技术:QCharts(二)QCharts折线图介绍、Demo以及代码详解
  5. DirectShow组件原理分析及应用
  6. 西门子和阿里云要搞啥事情?| 极客头条
  7. linux下ora 01110,ORA-01003ORA-01110
  8. 如何使用JavaScript控制台:超越console.log()
  9. mysql存储过程和自定义函数_MySQL存储过程/存储过程与自定义函数的区别
  10. Jquery 同个类名中点击的显示其他隐藏的效果
  11. LL1分析构造法_行测技巧:比较构造法两步轻松解决方程题
  12. k8s升级从1.13到1.16教程与采坑解决办法
  13. 使用Configuration Manager部署及管理软件更新(1)
  14. 点滴记录笔记_持续更新
  15. syn包发送(拒绝攻击,但是有问题)
  16. kinect2.0 之摄像头
  17. 【论文泛读】ChineseBERT:融合字形与拼音信息的中文预训练模型
  18. python引用自己写的文件
  19. 整合Mybatis、Servlet、Mysql、Axios、Filter、Session写一个入门级项目:非常适合初接触JavaWeb的小白白来进阶
  20. 苹果xr电池容量_2019销量最高的苹果手机,不是iPhone11,更不是iPhone8

热门文章

  1. javascript探秘-检测浏览器和操作系统
  2. 游戏开发之C++类和对象相关概念实例(C++)
  3. HCIE Security 防火墙反病毒 备考笔记(幕布)
  4. Ansible详解(十五)——Ansible Role实战
  5. Tomcat详解(十一)——Tomcat管理
  6. Linux Autofs自动挂载服务详解
  7. CSS详解(一)——CSS基本原理
  8. leetcode 13 13. 罗马数字转整数 (python)
  9. BE THE PIONEER FROM APSARADB——2018云栖大会·深圳峰会·云数据库在线直播分论坛
  10. 如何解决安装CentOS时遇到引导分区位于一个GPT分区方案的错误提示问题