目录

  • 引言
  • 多人博弈理论与实际的挑战
  • Pluribus的描述
  • 大型不完备信息博弈的抽象化
    • 动作抽象
    • 信息抽象
  • 通过改进型蒙特卡洛CFR来进行自学习训练
  • 不完备信息博弈的深度限制搜索
  • 实验评价
  • 总结
  • 文章链接

引言

为什么poker能成为AI和博弈论领域要挑战的问题?因为人们可以优雅且高效的从poker中捕捉隐藏信息。并且针对多人牌局的AI被认为是下一阶段的重点。

多人博弈理论与实际的挑战

目前AI在游戏领域取得成绩均是基于双人零和博弈(整体的利益不会改变,要么你赢我输,要么我赢你输),AlphaGo就是基于双人零和博弈。在双人零和博弈中,应用那是均衡策略至少可以保证不输,基于双人零和博弈的AI 算法就是去寻找纳什平衡。找到一个基于三人或者更多人零和博弈的纳什平衡是非常困难的(理论上接近纳什平衡也是很困难的)。如果每个玩家单独计算找到纳什平衡,玩家联合起来的策略可能就不是一个纳什平衡。例如下面的Lemonade Stand Game:

在游戏中,每个玩家都要在这个环上找到一点离其他成员尽可能地远。左图表示了四个玩家,每个颜色代表了他们的一个纳什平衡,处于纳什平衡的玩家均匀的分布在环上。右图表示如果他们独立寻找纳什平衡,那么玩家的联合策略可能就不是一个纳什平衡。
所以作者提出,我们的目标不是寻找一个具体的博弈论解决方案,而是创造出一个AI,通过经验不断地击败人类对手包括顶级的专业选手。

Pluribus的描述

Pluribus 策略核心是持续不断地进行自学习自博弈,通过这样的策略训练,AI 系统和自己的镜像进行对抗,而不获取任何人类游戏数据或先前的 AI 游戏数据。Pluribus 利用自学习制定的离线策略为“蓝图策略”,随着真实游戏的进行,Pluribus 通过在比赛中根据自己的实际情况实时搜索更好的策略来改进蓝图策略。

大型不完备信息博弈的抽象化

为了降低游戏的复杂性,作者忽略了一些考虑因素并且将类似的决策点放在一起,这个过程称之为抽象。在抽象之后,划分的决策点被认为是相同决策点。作者在 Pluribus 中使用了动作抽象信息抽象

动作抽象

动作抽象主要是减少AI所要考虑的动作即将一些产生影响相似的动作归为一类。例如:在德州扑克中,下注200美元和下注201美元两种动作又很小的差异,他们可以归结为同一个动作。为了减少形成策略的复杂度,Pluribus在任何给定的决策点仅仅考虑 一些不同的下注情况。如果Pluribus只接受过100美元和200美元的投注训练,而对手投注150美元,会产生什么的结果?Pluribus 会通过实时搜索算法对这种“离树”行为产生相应动作。

信息抽象

对于透漏信息相似(比如说,在poker中,玩家的牌和显示的底牌)的决策点进行合并,例如,10-high straight (6到10的顺子)和 9-high straight(5到9的顺子) 在牌型上差距明显,但是针对他们的策略是相同的。Pluribus 可以将这些相似牌型放在一起进行相同的处理,从而减少了确定策略所需的不同情况的数量。信息抽象降低了游戏的复杂性,但它可能会消除一些对于超人表现来说非常重要的细微的不同。因此,在与人类进行实际比赛时,Pluribus仅用信息抽象来推断未来下注轮次的情况,而不会用它来实际进行下注

通过改进型蒙特卡洛CFR来进行自学习训练

Pluribus 的蓝图策略使用了 CFR(counterfactual regret minimization)
作者使用一种蒙特卡洛CFR(Monte Carlo CFR) 方法对博弈树上的行动进行采样而不是在每次迭代时遍历博弈树。

在图中,玩家P1正在遍历博弈树。左图模拟游戏直到结束。中间图是对于左侧面板中遇到的每个P1决策点,在P1决策点中探索P1可能采取的其他操作,并在游戏结束时进行模拟。然后P1更新其策略,选择回报率更高、概率更高的行动。右图P1探索P1在中间面板中遇到的每个新决策点可能采取的行动,P1在这些假设决策点更新其策略。这个过程会重复,直到没有遇到新的P1决策点。(图中的百分比仅供说明,可能与算法计算的实际百分比不符。)
遍历者选择的动作和实际的动作的差值将在迭代中被添加到这个动作的遗憾值中。
由于反事实值和期望值的差值是被添加到遗憾值中的而不是取代,所以,玩家第一次的动作会仍对后续的遗憾值产生影响。因此这种策略是为了将来的迭代。
在一般的CFR中,第一次动作的影响以1/T的速率衰减,其中T的迭代次数。为了快速减少早期的“坏”的策略的影响,Pluribus 在早期迭代中采取线性 CFR 方法(后期迭代不会使用这种方法,乘法的时间成本太高)。第一次动作的影响会以下面的速率衰减:

不完备信息博弈的深度限制搜索

由于无限制德州扑克的规模和复杂性,整个游戏的蓝图策略一定是粗粒度的。Pluribus只在第一轮下注时,根据蓝图策略进行游戏,因为第一轮的决策点的数量足够少,蓝图策略可以承担不使用信息抽象,并且在动作抽象使用大量的动作。在第一轮之后(即使对手赌注大小与蓝图策略中动作抽象的大小完全不同),Pluribus会进行实时搜索,来确定针对当前情况的更好、更细粒度的策略。对于对手在第一次偏离树的下注,Pluribus通过the pseudoharmonic mapping将赌注映射到on tree附近的赌注上,然后继续按照蓝图策略进行,就好像对手使用了on tree 上的赌注。
在许多完备信息博弈中,实时搜索时实现超人性能的必要条件。

在剪刀石头布的游戏中,如果玩家P1首先行动,但是P1的动作不展示给玩家P2。然后,玩家P2行动。从玩家P1进行搜索,只前进行了一步,他的每一个动作都会产生一个零值的叶节点。如果玩家P2选择纳什均衡策略,玩家P2会以1/3的概率随机选择一个动作。那么选择石头的玩家P1的值为0,选择剪刀的玩家P1的值也为0。那么玩家P1总选择石头也是一个最佳策略。但是实际上,玩家P2可以根据玩家P1的动作调整策略,调整为总是出布。在这种情况下,玩家P1总是出石头的值是-1。在不完美信息子博弈中,叶子节点是没有固定值的,他们的值取决于搜索者在子博弈中选择的策略(搜索者在子博弈中分配给其动作的概率)。原则上,可以通过子博弈的叶子节点的值作为子博弈中搜索者策略的函数来解决,但是在大型游戏中是不是实际的。

Pluribus使用了一种改进的方法,搜索者明确认为任何或者所有的玩家都可以转移到子博弈叶子节点之外的不同策略中。 作者假设当到达叶子节点时,每个玩家不是只有固定的策略而是可以在 k 个不同的策略之间进行选择以进行接下来的博弈。这种技术会使搜索者找到一个更平衡的策略,选择一个不平衡的策略,例如总是出石头会被对手转换到总是出布的策略惩罚。

在不完备信息博弈中搜索的另一个主要的挑战是,玩家的在特定环境的最优策略依赖于对手如何看待玩家在每种情况下的策略是什么。比如说,玩家拿着一副特别好的牌,下注可能是一个很好的策略。但是如果玩家只在有好牌的情况下下注,那么对手就会知晓你的策略。为了解决这一问题,Pluribus根据它的策略追踪每副可能的手牌达到当前状态的概率。无论实际上持有哪副手牌,它都会先计算出每一手牌的动作,一旦计算出所有人的平衡策略,Pluribus 就会为它实际持有的手牌执行一个动作。

为了简单起见,子博弈只显示两个玩家。节点之间的虚线表示要操作的玩家不知道她在两个节点中的哪一个。左图表示原始的博弈子树,假设对手只是用一种固定的策略;右图表示对手使用k(k=2)种不同策略的博弈子树。

Pluribus使用两种不同形式的CFR来计算子博弈中的策略,这取决于子博弈的大小和博弈的位置。如果子博弈相对较大或者在博弈的早期,则使用线性蒙特卡洛CFR。否则,Pluribus使用一种优化的基于向量的线性CFR形式,只对机会事件进行采样(例如对公共牌进行采样)
实际测试时,Pluribus 仅仅使用了两台 Intel Haswell E5-2695 v3 CPU,仅占用小于 128G 的内存。AlphaGo 对阵李世石时使用了 1920 块 CPU 和 280 块 GPU。在对每一个子博弈进行搜索时,根据现场情况,Pluribus 仅需要 1-33 秒。在其与自己镜像对抗的 6 人牌局中平均出牌时间为 20s,这远比顶尖人类选手快了近乎 2 倍。

实验评价

作者采用了两种形式评估 Pluribus 对阵精英选手。1、5 个顶尖人类选手 +1 个 AI (5H1 AI );2、1 个人类顶尖选手 +5 个 AI (1H5AI )。作者通过使用 AI 领域中的标准度量mbb /game来衡量 AI 表现。作者利用 AIVAT 技术来减少游戏中的运气成分。

在 5H1AI 实验中,在应用了 AIVAT 之后,Pluribus 平均每手赢 48 个 mbb(48 mbb/game)。在 1H5AI 中,Pluribus 平均以 32mbb/game 的速率将人类击败。

总结

Pluribus的成功表明,尽管在多人博弈的性能上缺乏已知的强有力的理论保证,但在存在大规模、复杂的多人不完善信息这种情况下,一个精心构建的自我博弈加实时搜索算法可以产生超人的策略。

文章链接

《Superhuman AI for multiplayer poker》

解读《Superhuman AI for multiplayer poker》相关推荐

  1. 《森林防火视频监控系统技术规范》解读

    <森林防火视频监控系统技术规范>(以下简称"标准")经过全国森林消防标准化技术委员会和编制组及相关单位两年的不懈努力,于2016年1月18日由国家林业局发布,于2016 ...

  2. 解读《森林防火视频监控系统技术规范》

    新近发生的加拿大.俄罗斯森林火灾令人揪心,火灾肆虐.席卷蔓延.损失惨重,令政府头疼不已.熊熊烈火遮天蔽日.惨不忍睹.尽管当今世界科学发展日新月异,但是,人类在控制森林火灾上却并未能取得实质性进展,森林 ...

  3. 林业局制定的《森林防火视频监控系统技术规范》

    迎革新,标准实施促森林防火迈向现代化 水火无情. 新近发生的加拿大.俄罗斯森林火灾令人揪心,火灾肆虐.席卷蔓延.损失惨重,令政府头疼不已.熊熊烈火遮天蔽日.惨不忍睹. 尽管当今世界科学发展日新月异,但 ...

  4. SkeyeARS全景AR增强监视系统助力林业部门打造森林防火视频监控网

    森林火灾是一种突发性强.破坏性大.处置救助较为困难的自然灾害,危害极大.杜绝森林防火,提前预警是关键.森林防灭火工作必须时刻紧绷安全弦,严防死守,严格火源管控,加大巡护力度,严格卡口设置和管理,坚决管 ...

  5. 粮食行业视频监控系统互联互通技术规范

    前言 本规范按照GB/T 1.1-2009给出的规则起草. 本规范由国家粮食和物资储备局提出. 本规范由全国粮油标准化技术委员会(SAC/TC 270)归口. 本规范起草单位: 本规范主要起草人: 范 ...

  6. 【论文】铁路综合视频监控系统图像质量诊断技术研究

    本文转载自<中文科技期刊数据库(全文版)工程技术> 作者:林海 单位:中铁十七局集团电气化工程有限公司 声明:本文仅用于学术分享,不做商业用途,如有侵权,联系即删除 摘要 随着铁路管理从粗 ...

  7. 油田智能化远程监控系统_十种远程无线视频监控系统拓扑图

    有人问,既然无线视频监控系统如此普及,是不是所有地方都能用到无线视频监控设备呢? 例如在大街上.学校里,工厂中.写字楼内,建筑工地上.公园中.住宅小区里.江河岸边.港口码头.甚至是森林.戈壁滩等等.只 ...

  8. inventor扳手制作视频_弱电工程视频监控系统施工方案,可作施工组织设计

    1 工程概况 1.1 编制<工程总体实施方案> 主要包括:结合高清监控系统设计方案作配套的深化设计,编制高清监控系统实施计划,并提出相关的配合要求.根据总体方案,对高清监控系统工程的技术设 ...

  9. cad监控图标_干货!多种不同环境的无线视频监控系统拓扑图

    有人问,既然无线视频监控系统如此普及,是不是所有地方都能用到无线视频监控设备呢? 例如在大街上.学校里,工厂中.写字楼内,建筑工地上.公园中.住宅小区里.江河岸边.港口码头.甚至是森林.戈壁滩等等.只 ...

  10. GPS授时服务器在电厂视频监控系统中的应用

    GPS授时服务器在电厂视频监控系统中的应用 GPS授时服务器在电厂视频监控系统中的应用 前言 近几年来,随着变电站自动化水平的提高,在综自变电站中计算机监控系统.微机保护装置.微机故障录波装置以及各类 ...

最新文章

  1. 编程软件python图片-python Plotly绘图工具的简单使用
  2. 删除指定下标的元素c语言,PHP删除数组中指定下标的元素方法
  3. IntelliJ IDEA for Mac 如何自定义快捷键_设置快捷键
  4. LeetCode 1033. 移动石子直到连续
  5. python编程总结
  6. hadoop强制删除
  7. 想成为架构师,你必须掌握的CAP细节
  8. 网上购物系统数据库分析
  9. jmail的使用说明
  10. 如何让企业微信的消息在微信里显示?
  11. 一个能够让你快速从html结构生成css结构的vscode插件
  12. android左抽屉点击事件,Android导航抽屉单击事件问题
  13. Touch ID使用
  14. MMDet踩坑与使用体会
  15. 如何判断初级,中级,高级等等不同级别程序员
  16. Haar特征和级联分类器目标检测介绍及应用
  17. Minecraft 1.12.2模组开发(四十三) 自定义盾牌(Shield)
  18. 汽车ABS控制器设计及车身稳定算法研究笔记(二)——ABS控制器硬件设计及调试
  19. 解决SecureCRT报错keyboard-interactive authentication with the ssh2 server failed
  20. SAP 消息号 KI261 成本中心 XXXX/XXXXX 冻结而不能直接对 XXXX.XX.XX 收入记帐 的问题处理

热门文章

  1. itunes未能连接到iphone软件更新服务器,无法联系iphone软件更新服务器,itunes无法联系iphone软件更新服务器解决方法...
  2. java小白日常报错
  3. 荣耀30sr升级鸿蒙,华为荣耀30怎么升级鸿蒙系统?
  4. BZOJ 1062: [NOI2008]糖果雨(二维树状数组)
  5. 企业即时通讯系统十大排名
  6. android 傻瓜式编程,傻瓜式App开发:jimu 像搭积木一样搭建Android App
  7. HDU-1863 畅通工程
  8. 别被吉利的“车企”一面晃了眼
  9. 使用Amazon Deep Learning AMI 快速实现 CUDA,cuDNN 和深度学习框架版本兼容
  10. 计算机每次关机需要配置,电脑一键关机怎么设置 电脑关机一步到位设置教程...