# 托马斯·桑德霍尔姆：扑克与博弈论

> 博弈论与 AI 研究者谈如何用算法求解不完全信息博弈，并让机器在扑克中取胜。

- 原标题：Tuomas Sandholm: Poker and Game Theory
- 期数：特别节目
- 发布日期：2018-12-28
- 嘉宾 / 主题：托马斯·桑德霍尔姆
- 网页版：https://lexfridman-cn.pages.dev/ep/tuomas-sandholm/
- 官方页面：https://lexfridman.com/tuomas-sandholm/
- 精读字数：约 6453 字（阅读约 14 分钟）

> 本文为 lex.qiaomu.ai 基于原始访谈的 AI 改写中文精读，非官方翻译；引用请注明出处并链接网页版。

2017 年 1 月，匹兹堡 Rivers 赌场。四个世界顶级的单挑无限注德州扑克选手，连续二十天，每天从早打到晚，对手不是人。

他们在一台屏幕前落座。对面是一个叫 Libratus 的人工智能系统。最终统计出来的结果是，如果筹码是真钱，这个系统从四位人类手里赢走了接近两百万美元。而更让组织者托马斯·桑德霍尔姆（Tuomas Sandholm）印象深刻的，是赛前国际博彩网站开出的赔率：人类赢，AI 是四赔一甚至五赔一的弱方。

连赢三天之后，博彩网站依然坚持五五开。

## 为什么博彩市场会持续看低一个已经连赢三天的系统

桑德霍尔姆在采访里聊到这件事时，语气挺平静：「人们对 AI 的认知有一种系统性的滞后，直到亲眼看见它赢过人类，否则很难相信它能赢。」

这句话背后的道理比扑克本身有意思得多。博彩市场是理性的，它只是用「我见过的顶级人类有多强」来推算 AI 的胜率。人类顶尖选手在牌桌上看穿对手、读表情、读下注节奏，那种能力看上去牢不可破，所以市场把这种印象直接平移成了赔率。

但牌桌的真实结构，和大众想象的不一样。

桑德霍尔姆把这个问题拆成了两半：一半是「人类为什么更信任人类」，另一半是「那些被浪漫化的读牌技巧，在最高水平的对局里到底占多大权重」。他的答案是，在周五晚上的朋友局里，表情和肢体语言几乎是全部；但在顶级职业选手之间，藏读的能力强到互相探查已经不划算。真正的差距在于下注策略的丰富程度，谁更会读人在这个层级上已经让位。

> 「在最顶级的扑克里，读人这件事，占的比重会小得多，小得多。」（桑德霍尔姆）

## 十万手牌以上才勉强能看出谁更强

理解这场比赛为什么需要打二十天，得先理解无限注德州扑克的方差有多大。

一副牌，每人先发两张暗牌，只有自己看得见。然后分四轮下注，中间桌面依次翻开五张公共牌。每一轮下注的额度不设上限，两个人随时可以把全部筹码推上去。桑德霍尔姆说，如果双方都 All-in，那就是一个「巨大的方差堆」。一场比赛打几千手，运气成分依然能淹没技术差距。所以要打十二万手，才能拿到统计学意义上的结论。

这个细节解释了一件事：桑德霍尔姆的团队为什么邀请的是四位世界前十，而不是随便找一位职业选手打满十二万手。四位选手轮换上场，每人对战的牌局数控制在可以承受的范围内，出场费二十万美元，但实际支付按他们对阵 Libratus 的胜负表现来分配。

桑德霍尔姆团队真正要的是统计显著性，观赏性是顺带产生的副产品。

## 十的一百六十一次方，怎么下手

单挑无限注德州扑克的策略空间，量级大约是 10 的 161 次方。这个数字大到任何直接求解的方法都无意义，哪怕用上当时最快的均衡求解算法。

所以必须先做抽象（abstraction）。

桑德霍尔姆特别强调，博弈里的抽象比单智能体场景里的抽象要棘手得多，因为存在「抽象病理」。一个更精细的抽象，解出来后应用到真实游戏里，效果可能反而比一个更粗糙的抽象更差。这是一种在博弈问题里真实存在的反直觉现象，并不只是理论上的边角情况。

抽象分两类。一类是信息抽象，把具体的牌型归类；另一类是动作抽象，把连续的下注金额离散成有限几个尺度。

信息抽象这一块，Libratus 是纯自动的。桑德霍尔姆团队用的是一种叫「潜在感知抽象」（potential aware abstraction）的算法。它不仅看一手牌当下的牌力强弱，还要评估这手牌在未来几轮演化成好牌或坏牌的可能性。底层是自下而上的整数规划和聚类。

动作抽象则更多借鉴人类历史牌局的下注尺度，但在开局的前几轮，他们用了一种可证明收敛的自动动作抽象技术，能找出最优的下注尺度组合。问题是这个技术不太能扩展，所以他们只在最初几个下注动作上用它。

抽象完之后，才轮到均衡求解器进场。

## 为什么 Libratus 一行深度学习都没用

这是整个对话里最值得停下来想一想的部分。

AlphaGo 用了深度神经网络，AlphaZero 用了深度神经网络，很多人的印象里「顶尖游戏 AI 等于深度学习」。但 Libratus 完全没用学习，纯粹靠博弈论和抽象加搜索，照样赢了顶级人类。

原因是，在非完美信息博弈里，学习一个状态的评估函数这件事，根本上是定义不清的。

> 「如果我手里是一手烂牌，但对手认为我手里是好牌，那我其实处境不错。反过来，如果我手里是好牌，但对手以为我拿的是烂牌，我也占便宜。所以一个状态的价值，不只是牌面的函数。」（桑德霍尔姆）

换句话说，状态的价值不只是「现在桌上是什么」，还取决于双方对彼此的信念分布。在围棋里，一个局面的评估就是一个局面的评估，局面本身包含了所有信息。在扑克里并非如此，同一个牌面，配上不同的信念分布，就是完全不同的局面。

这就是为什么在非完美信息博弈里做搜索特别难：搜索树展开到叶子节点时，叶子节点的价值无法用单个数字表示，它是一个关于信念的函数。

Libratus 绕开这个问题的方式很简单：它只在本手牌打到终局时才做计算，那时收益是确定的，不需要人为构造信念函数。这种策略在全树搜索里行不通，但在每手牌内部是可行的。

后来桑德霍尔姆团队发表了一篇关于「深度受限搜索」的论文，让系统能够在游戏开局就启动有深度的前瞻搜索。他们的做法是允许对手在搜索树的叶子处选择不同的后续策略，从而避免搜索过程过于乐观。这是目前处理非完美信息博弈搜索的一种可靠方法。

至于一度很受关注的 DeepStack，用的是另一条路：随机生成大量牌局状态，从这些状态向前推演到终局，把终局价值当作新的学习目标，用深度学习去拟合。它学习的「状态」不只是物理状态，还包含信念分布。这条路和 Libratus 的思路完全不同。

## 没有数据，没有对手模型，只有理性

德州扑克玩家入座前会研究对手的历史录像，AI 系统通常也会做对手建模。但 Libratus 一个都不做。

桑德霍尔姆说这是博弈论最漂亮的地方。纳什均衡的定义方式决定了，它不仅给出每个玩家的策略，也同时给出每个信息集上的信念分布。你不需要知道对手过去怎么打过，你只需要假设他是理性的，然后从游戏规则本身推导出他可能的出牌分布。

> 「这是一种完全不需要数据、也不需要对手模型的方法。它来自游戏本身的设计，跟玩家的设计无关。」（桑德霍尔姆）

他用石头剪刀布举了个例子。双方策略都是各三分之一，这个策略一旦确定，对方在某个信息集上的信念自然就是三分之一、三分之一、三分之一。直接推出来的。

团队确实也做过对手建模的工作，把对手建模和博弈论结合起来，可以更狠地剥削弱玩家。但在对阵那四位顶级选手时，桑德霍尔姆把这个模块关掉了。

原因很有意思：一旦你开始剥削对手，你同时也在暴露自己，把自己置于被反剥削的境地。而那四位是人类世界里最擅长反剥削的人。他们身上可以剥削的漏洞本来就不多，不值得冒这个险。

## 为什么两个玩家和三个玩家之间隔着一条鸿沟

这是博弈论里一个很根本的分水岭，桑德霍尔姆花了挺多时间讲。

两人零和博弈在概念上和计算上都相对容易。原因在于：任何均衡策略对其他均衡策略都是最佳回应。即使你和我选的是不同的均衡点，博弈的值依然是对的。纳什均衡的集合是「互相兼容」的。

只要加入第三个玩家，或者去掉零和假设，这个性质立刻崩掉。

纳什均衡的存在性本身没有问题。约翰·纳什（John Nash）1950 年已经证明了，所有有限博弈都有纳什均衡。麻烦的是均衡可能有很多个，然后你就得面对「选哪一个」的问题。如果你从均衡 A 里取策略，我从均衡 B 里取策略，在非零和博弈里，我们可能双双受损，明明存在一个让双方都更好的选项。

更麻烦的是勾结。三个玩家的局里，你我完全可以联手对付第三个，收益会显著提升。

桑德霍尔姆的学生诺姆·布朗（Noam Brown）在 Reddit 的 AMA 里提到过：要让扑克变得无法被现有方法求解，方法不多，但玩家之间的合作或勾结会让它变得极其困难。

这种合作博弈可以用桥牌来理解。你和我是搭档，收益是共享的，但我们不能说话，不能互相透露手里的牌。我们只能事先约定策略，也允许一些双方都能理解的信号。桥牌把「合作」写进了规则里，所以它是可分析的。

但拍卖、谈判、外交关系，乃至扑克，这种合作并不写在规则里，是玩家在过程中自发形成的。这种情况下博弈的维度会暴涨，一些标准的博弈表示方法甚至无法表达这种结构。桑德霍尔姆和另一位学生加布里埃拉·法里纳（Gabriela Farina）在当年的 NeurIPS 上专门发表了一篇论文，提出了一种新的博弈表示方法，来处理这种联盟博弈。

## 一个叫「肾交换」的系统，让几百个活人没死

很多人对博弈论的印象是「理论上很漂亮，现实里没几个应用」。桑德霍尔姆对这个印象有意见。

他参与运营的全国性肾交换系统，已经让几百个原本等不到肾源的患者活了下来。这是真人真事。而且它创造了一系列实际岗位：肾交换中心需要运营人员，器官移植中心需要对接人员，多出来的外科医生、护士、麻醉师、医院床位，全都是就业。

另一个例子是组合采购拍卖。2001 到 2010 年间，桑德霍尔姆团队完成了 800 场大规模组合采购拍卖，涉及六千亿美元的采购支出，把供应链效率提升了 12.6%。折合下来，是超过六十亿美元的效率改善。

他强调，这些钱并没有把价值从一个口袋挪到另一个口袋。物流里少跑空车，意味着更少的浪费、更小的碳足迹。这六十亿美元是真真切切从系统里省出来的。

> 「在机器学习领域，这项技术已经相对成熟，被广泛应用，并且在现实世界中被验证过。但在博弈求解领域，应用几乎还没有。」（桑德霍尔姆）

这句话值得反复读几遍。Libratus 在 2017 年打败了顶级人类，但博弈求解技术在现实世界的应用，几乎还是空白。这也是桑德霍尔姆现在把大量精力放在创业公司上的原因。他创办了两家公司，一家叫 Strategic Machine，面向商业、体育、金融、电力市场这些领域；另一家叫 Strategic Robot，面向军事、安全、网络安全和情报领域。

## 自动机制设计，在不可能的地图上划出可行的小岛

机制设计这个词听起来抽象，说白了就是「设计游戏规则，让博弈的结局朝你想要的方向走」。

桑德霍尔姆团队做的是自动机制设计，用算法自动搜索最优规则，人的手工微调退居次要位置。他对这项技术有很坚定的信念，但也保持清醒。

机制设计领域有一堆「不可能定理」。1983 年，罗杰·迈尔森（Roger Myerson）和马克·萨特思韦特（Mark Satterthwaite）证明了一个著名结果：在非完美信息下，要同时实现交易效率和预算平衡，是做不到的。

但桑德霍尔姆指出，这类不可能定理有一个前提：它说的是「在整个类 C 上，不存在一个机制能实现目标 X」。而现实中的问题从来都是具体的实例，不会以一整个类的形式出现。

> 「这些定理没有在给人类智慧下判决。它们只是说，如果你想在整个类 C 上实现目标 X，那是做不到的。但在具体的实例里，你可以划出很多可行的小岛。」（桑德霍尔姆）

他们确实做到了。在迈尔森萨特思韦特定理划定的不可能区域内，很多具体设置下，只要换一种游戏设计方式，高效交易依然可以实现。这并不矛盾，定理依然成立，只是它的边界之外还有大片可耕作的土壤。

一个反面例子是 FCC 频谱拍卖。这是机制设计进入现实世界的著名案例，背后有最顶尖的经济学家参与。但最终设计出来的实际规则里，「诚实出价」算不上最优策略。哪怕拍卖的是几百亿美元级别的频谱，参与者依然有动机歪曲报价。而且桑德霍尔姆补了一句：这些拍卖里，目前没有人知道哪怕一个最优的出价策略。

机制设计理论应用到现实的时候，人和制度之间的缝隙比想象中大得多。

## 为什么他不担心 AI 的价值对齐问题

桑德霍尔姆对 AI 存在性风险的态度，和麦克斯·泰格马克（Max Tegmark）、斯图尔特·罗素（Stuart Russell）这些人很不一样。他承认价值对齐在理论上是个真实的担忧，但坦率说自己做了几十年实际系统，没在现实里见过它发生。

他提到一个 1980 年代末的例子。当时团队在构建交通优化系统，有人跟他说，「资产利用率高是个好东西，为什么不做成目标函数？」他当场演示了结果：如果真把它当成目标，AI 会让卡车装满货在城里绕圈开，利用率百分之百，但什么东西都送不出去。

所以「目标设计错了、AI 会把它优化到极致、造成巨大伤害」这件事，他三十多年前就懂了。但他从来没在现实里见过这种情形真正成为灾难。

> 「你要是给了 AI 一个错误的目标，它确实会把这个错误目标优化到极致，造成的破坏会比一个半罐子人类凭借直觉瞎搞更大。但我就是没见过它在现实里真发生。」（桑德霍尔姆）

他认为这和「理论与现实的鸿沟」有关。理论上能想象出来的最坏情况，和现实里通常发生的事情，中间隔着巨大的距离。

那真正让他担心的是什么？

他说得很直接：气候变化和核战争，这是他真正担心的两件事。他为气候问题两次启动过研究，想看看自己的技术能不能找到切入点。最容易想到的是碳排放交易市场设计，但他发现真正的瓶颈在政治意愿，再精巧的市场设计也推不动。芝加哥气候交易所后来也关了，这条路走不通。

核战争呢？他说自己比以前更担心。

> 「冷战时期的相互保证毁灭（MAD），用很小的矩阵就可以做博弈分析，结论是没人愿意先动手。但那是高度粗粒化的建模。当年只有两三个超级大国，现在核门槛更低，小国和非国家行为者也可能拿到核武。我认为现在的风险比历史上任何时候都高。」（桑德霍尔姆）

换句话说，博弈论能告诉你冷战为什么稳定，但博弈论所依赖的那个结构已经变了。

## 商业策略和军事策略，未来可能由算法来出方案

桑德霍尔姆认为博弈求解技术在现实世界最大的应用缺口，是商业策略和军事策略这两块。他承认自己是乐观派，但也说得很实在，这更像一种信念，还没有被事实验证。

一个有意思的差异是关于可解释性。深度学习不可解释，这是大家都知道的问题。博弈论方法呢？

桑德霍尔姆的回答是「一半一半」。纳什均衡有可证明的性质，你不会像训练神经网络那样「交叉手指祈祷它能工作」，你知道解的质量受什么约束。但可解释不等于人类能看懂。算法给出的策略可能反直觉、复杂、难以用人类语言复述。这一点和深度学习的处境类似。

> 「深度学习和计算博弈论在可解释性上是同一条船上的。但博弈论技术至少还有一个东西：它给出的解有质量保证。」（桑德霍尔姆）

他还聊到一个很具体的应用场景：自动驾驶汽车的车队之间如何合流。不同公司运营的车队，遵守公路规则，但规则只界定合法性，巨大的策略空间留给了具体操作。人类开车合流时会减速、打灯、看对方一眼，这些摩擦全都是时间成本。如果用自动化的方式，让各家车队提前把「合流时谁让谁」这些约定谈好，把所有可能的合流场景做成一份组合式谈判协议，整个交通系统的效率都会提升。

这套逻辑其实和扑克抽象一模一样：把一个巨大的策略空间，用自动化的方式压缩成可谈判、可执行、可证明的形式。

## 给读者的行动建议

- 别把深度学习当成 AI 能力的唯一路径。Libratus 一行神经网络都没用，靠抽象加搜索加博弈论就打败了顶级人类。如果你的问题里存在多方博弈，先想想该用哪一类工具，博弈论在这个场景里往往比深度学习更对口。
- 如果你的场景里有多个决策者，先问一个问题：这是两人零和，还是更一般的情形？两人零和博弈的均衡求解有原理级优势，任意均衡都互相兼容。一旦加入第三个人或去掉零和假设，问题复杂度会跳跃式上升，别低估这条鸿沟。
- 抽象任何复杂博弈时，记住「抽象病理」的存在：更精细的抽象不等于更好的实际表现。抽象之后要在真实游戏里验证，只在小规模实验里比指标很容易被误导。
- 把「只有在真实规模下才能看出哪个算法好」当作一条工程原则。桑德霍尔姆团队证明了，很多理论上收敛更快的算法，实际表现反而不如 CFR；很多在小规模场景下看起来漂亮的技术，放大了会完全走样。
- 如果你在运营或设计某个制度、市场或协议，问一句：在这套规则下，诚实参与是不是最优策略？如果答案是否定的，别急着上线。FCC 频谱拍卖这种几百亿美元级别的项目，设计的实际规则里诚实出价依然算不上最优解。
- 如果你对人的评判抱有很强信心，尤其是「凭直觉、凭读表情、凭历史印象」，可以留意一下自己是不是正在忽略某个已经连赢三天的事实。这个偏见在牌桌上有，在商业竞争和职业选择里也有。
