# 諾姆·布朗：撲克中 AI 與人類的對抗及策略性談判博弈

> OpenAI 研究者諾姆·布朗講撲克 AI 的訓練思路、博弈論基礎與機器在談判類任務中的推理。

- 原標題：#344 – Noam Brown: AI vs Humans in Poker and Games of Strategic Negotiation
- 期數：第 344 期
- 釋出日期：2022-12-06
- 嘉賓 / 主題：諾姆·布朗：AI 與博弈
- 網頁版：https://lex.qiaomu.ai/tw/ep/noam-brown/
- 官方頁面：https://lexfridman.com/noam-brown/
- 精讀字數：約 7199 字（閱讀約 16 分鐘）

> 本文為 lex.qiaomu.ai 基於原始訪談的 AI 改寫中文精讀，非官方翻譯；引用請註明出處並連結網頁版。

2017 年 1 月，匹茲堡。一臺叫 Libratus 的機器，在 20 天裡跟四位世界頂級單挑無限注德州撲克（No Limit Texas Hold'em）選手打了 12 萬手牌，贏走了接近 200 萬美元的籌碼。

同一批人，2015 年也打過一場。那次機器輸得很難看，差距不小。

兩年時間，對手沒換，規則沒換，賭注沒換。變的是演算法裡一個很具體的選擇，而這個選擇後來被證明，比多算幾百萬手牌重要得多。

Libratus 是拉丁語，意思是"平衡"。名字是諾姆·布朗（Noam Brown）起的。他當時在卡內基梅隆讀博，現在是 Meta AI（原 FAIR）的研究科學家。他參與打造的三個系統，構成了這條研究線的三級臺階：Libratus 打贏雙人無限注德州撲克，Pluribus 打贏六人局，Cicero 在《外交》（Diplomacy）這個靠自然語言談判推動的桌遊裡達到人類水平。

表面上這是三個遊戲。往深了看，這是同一個問題的三種難度：資訊不完全、對手會思考、對手還會說話。

## 無限注的真正區別，藏在人的心理閾值裡

無限注德州撲克是全世界最流行的撲克變體。電影裡那些場景，《007：大戰皇家賭場》《賭王之王》，桌上玩的都是它。

跟限注版本比，規則差異只有一句話：你可以在任何時候把面前所有的籌碼推進底池。限注局裡底池有 2 美元，你最多隻能下 2 美元。無限注局裡，面前擺著 1 萬美元，你就隨時可以推 1 萬美元進去。

開局底池可能只有一兩美元，一手牌打完，桌上可能已經有 1000 美元。籌碼量能以極快的速度放大，這個選項永遠擺在桌上。

布朗提到一個詞，jumpy，大致可以譯成"跳腳"。很多人在無限注裡輸錢，輸在這個地方：坐下的時候想的是玩個一百美元，打了兩圈，底池突然變成一千美元，手就開始抖，判斷就開始變形。

他自己給了一個很生活化的解釋。打撲克你要選的，是期望值最大的那個動作。這跟投資是一個邏輯：如果桌上這筆錢的輸贏會實質影響你的生活，你就會不自覺地轉向風險厭惡。對手推一個大注過來，你腦子裡冒出來的第一句話往往是"這太多了，我承受不起"。這一瞬間，你已經不在算牌了。

反過來，主動推大注的人也吃同一碗飯。**撲克的核心策略之一，就是把對手放進一個不舒服的位置。**底池裡躺著 50 美元，你甩進去 1000 美元，如果時機選對，對手就被迫在一個他從來沒準備好面對的量級上做決定。

這件事當然雙向。推錯了，你也會輸掉一大筆。布朗說得很直白，不懂行的人在無限注裡虧錢非常容易，但反過來，上升空間也大。

所以"無限注獎勵瘋子"這個說法只對了一半。它獎勵的是那種能精確控制自己瘋狂頻率的人。真正被懲罰的，是承受不了那個數字的人。

## 納什均衡：石頭剪刀布裡藏著的那個真理

任何有限的、雙人的、零和博弈，都存在一個最優策略。你按它打，不管對手做什麼，期望上你不會輸。

這個結論對很多人來說是反常識的，但它在象棋裡成立，在撲克裡成立，在所有滿足條件的雙人零和博弈裡都成立。

布朗用石頭剪刀布給直覺。你按相同機率出石頭、剪刀、布，對手怎麼出都無所謂，長期下來你不會虧。

撲克同理。存在一套非常複雜的策略，按它打，長期你不會輸錢，實際對局裡大機率還會贏。

"期望"這個詞要拆開看。撲克方差極大，你會贏一些牌，也會輸一些牌，就算打的是完美策略，也沒法保證每一手都贏。打得足夠久，至少不虧，通常還會賺。這個"期望"講的是籌碼量長期的變化，它不含一個現實約束：你會不會中途破產。理論上你不會，現實裡你可能已經沒錢上桌了。

"有限"這個條件其實很寬鬆。大多數遊戲本來就是有限的，很多無限遊戲裡也存在這套完美策略，只要滿足緊緻性一類的技術條件。真有反例，比如那個著名的小遊戲：誰報的數字大誰贏。這個遊戲沒有納什均衡。訪談裡兩人還當場玩了一把，萊克斯喊 17，布朗喊 18，贏了。

"零和"這個條件更關鍵。我贏 50 美元，就意味著你輸 50 美元，總量守恆。

一旦走出雙人零和，納什均衡依然存在，但它的意義大打折扣。布朗舉了《風險》（Risk）這個遊戲：如果桌上其他所有人商量好了聯手先把你滅了，你沒有任何一套策略能保證自己贏。你做什麼都沒用。

六人撲克也在這條線上。它依然是籌碼守恆的，但三個以上玩家同場，納什均衡給不了你"不會輸"的保證。**雙人博弈裡，策略是你的護城河；多人博弈裡，別人的聯合才是你的天花板。**

這也解釋了一件很多人沒意識到的事：為什麼撲克 AI 的進展順序是先雙人、後六人。Pluribus 打贏六人局發生在 Libratus 之後，間隔一年多。技術上六人局的複雜度高得多，但更大的障礙在於，理論保證在多人局裡消失了，你沒法再聲稱自己"不可被擊敗"，只能聲稱自己在實戰裡贏了。

## 反事實遺憾最小化：把"如果我當時"算到底

怎麼找到那個均衡？布朗團隊用的是自我對弈（self play）。

演算法一開始完全隨機地打牌，打到一手牌結束，贏了 50 美元，然後回頭覆盤：如果我當時選另一個動作會怎樣？如果我在這一步加註而不是跟注，對手會怎麼反應？因為對面坐的是自己的副本，這個反事實推理做得出來。它會算出"如果我這麼走，對手那麼走，我再這麼走，最後能贏 150 美元而不是 50"。

然後它更新那個動作的後悔值（regret）。後悔值大致等於：過去沒打這個動作，我有多後悔。下次遇到同樣的局面，後悔值高的動作被選中的機率就更高。

這個過程反覆跑，後悔值不斷累積。按正確的方式把高後悔值動作的機率提上去，數學上可以證明它會收斂到納什均衡。哪怕是不完全資訊博弈，結論照樣成立。

這個方法叫反事實遺憾最小化（counterfactual regret minimization，CFR）。它不必然繫結自我對弈，只是自我對弈是它最自然的實現方式，也是一種有理論保證的強化學習。

布朗特意點了一句：這套東西跟人類學牌的方式非常像。你跟朋友打完一手牌，會問一句"如果我在轉牌加註，你會跟嗎"。這就是在做反事實推理，跟演算法乾的事一模一樣。規模放大到千萬手，你就能逼近一套最優策略。

這裡有個細節值得技術人留意。CFR 的強項不只是"會學習"，而是"有證明"。在完全資訊博弈裡，你甚至不需要這麼嚴密的演算法，隨便來點蒙特卡洛樹搜尋加上自我對弈就能收斂。一旦進入不完全資訊，理論的嚴密性就變成了必需品，隨手的工程手段會直接失效。

## 10 的 161 次方：為什麼需要神經網路

問題在於，無限注德州撲克的決策點數量大概是 10 的 161 次方。宇宙裡的原子數大約是 10 的 80 次方，平方一下是 10 的 160 次方。這個遊戲的規模比"宇宙原子數的平方"還大一截。

你不可能遍歷所有局面。你也不可能指望再次遇到完全相同的局面，機率低到可以忽略。神經網路解決的是"相似"：遇到一個沒見過的局面，它可以從見過的、結構類似的局面裡泛化，把那些局面上積累的後悔值遷移過來。

布朗補了一句，這個數字還取決於籌碼量怎麼設定，不同版本會有出入。但量級擺在這裡，多一兩個數量級不改變結論。

訓練用的版本里，機器自己的下注尺度是有約束的，它只在一個有限的候選集裡選。但對面的真人選手不受這個限制，想推多少推多少。這構成了一個不對稱：對手可以出招到你的搜尋空間之外，你不能。所以搜尋模組必須能處理"預期之外的輸入"，這跟很多工程系統面臨的處境是一樣的。

## 撲克和象棋，哪個更難

這是個會吵起來的問題。布朗的回答很乾脆：撲克。他還開了個玩笑，說這個答案大概會讓 DeepMind 的大衛·席爾瓦（David Silver）不太高興。

不完全資訊是第一個理由。德州撲克裡，你拿到兩張牌，只有你能看見；對手也拿到兩張，只有他能看見。你打牌的時候得同時算四件事：他以為我有什麼，我有什麼，他有什麼，他以為我以為他有什麼。

詐唬能成立，全靠這個不對稱。你手裡的牌很爛，但你下注，對手不知道，你就有可能贏下這一手。

第二個理由更微妙，也更值得琢磨：**在不完全資訊博弈裡，策略不只是"打哪個動作"，還包括"以多大機率打這個動作"，而機率本身決定了這個動作的價值。**

回到石頭剪刀布。你每次都出石頭，對手很快發現規律，你的石頭就不值錢了。你幾乎從不出石頭，只出 1% 的時候出，對手大機率在出剪刀，這時候你石頭的價值高得離譜。

平移到撲克：你從來不詐唬，名聲在外，某一天突然詐唬一次，成功率極高，賺得很多。反過來，你被人看出是個詐唬慣犯，你一詐唬就被人跟到底，你會輸得很慘。找到那個詐唬頻率，就是撲克的核心難題。

象棋裡沒有這回事。你十次開局走王后棄兵，還是一百次走王后棄兵，這個動作的期望值不變。

所以撲克的演算法要解決的是兩件事：每個動作值不值得打，以及每個動作該用多高的頻率去打。後一件才是真正難的地方，也是前面那些 CFR、搜尋、神經網路存在的理由。Libratus 這個名字取"平衡"，就是因為它被設計成去找那個頻率上的平衡點。

頻率不只管詐唬。下注多少、用哪些牌下注、大注還是小注，全都是頻率問題。所謂"範圍"（range）這個概念就來自這裡：你在某個位置詐唬的時候，不希望對手能抓到規律，所以你得同時想"如果我手裡是好牌，我會不會也這麼打"。你的動作要能被對手對映到很多種手牌，這個動作才夠好。

這套"我知道你知道我知道"的推理，在成功的撲克 AI 裡是被顯式建模的。共同知識的信念狀態，被直接寫進了演算法。它沒有從對局裡自己湧現出來。

## 12 萬手牌，200 萬美元，和 2015 年那場慘敗

布朗讀博期間，每年有個"計算機撲克競賽"，全世界做撲克 AI 的實驗室帶著自己的機器人來對打。他們的機器人贏了 2014 年和 2016 年的比賽。

他們決定把這個東西推到真人頂級選手面前。四位專精單挑無限注德州撲克的世界級選手，20 天，12 萬手牌，20 萬美元獎金池，按四個人互相之間的相對戰績分配，目的是讓他們有動機認真打。

這不是他們第一次幹這件事。2015 年，團隊帶著當時的版本跟職業選手打過一場，輸得很明顯。

從 2015 到 2017，改進的核心在演算法層面。

2015 年的思路是"先把整個遊戲解出來"。賽前把能算的算完，做成一張巨大的查詢表，實戰時遇到什麼局面就查表。

2017 年的思路轉向實時搜尋。賽前那張表只作為起點，每次真正做決策的時候，現場再算一遍：針對當前這個具體局面，重新求一個更好的策略。

聽起來像工程最佳化，實際上是正規化差異。查表意味著你把計算預算花在賽前，把所有可能性都鋪平；實時搜尋意味著你把預算花在當下這個點上，只算眼前這一步。前者在遇到表外局面時會直接崩掉，後者天然有應對空間。

搜尋空間長什麼樣？象棋裡的搜尋是你在這個局面下能走哪些棋，走完之後局面變成什麼樣。撲克裡搜的東西更繞：你搜的是自己可以採取的動作、採取這些動作的機率，以及**你如果拿的是別的牌，你會怎麼做**。

最後這一項是最難理解的。你手裡一把爛牌，想詐唬。這個詐唬好不好，取決於你會不會在同樣的位置用好牌也下注。如果你只在爛牌時下注，那就是明牌詐唬，對手一眼看穿。所以演算法必須同時評估"我拿好牌的時候怎麼打"，兩邊的頻率要配平，對手才會陷入兩難：這注到底該跟還是該棄。

這正是布朗說的目標：**永遠讓對手留著一絲懷疑。**

最終的結果是，12 萬手牌，接近 200 萬美元。這一次機器人沒有試圖適應對手，沒有試圖讀人，沒有搞任何心理戰，它只是在逼近納什均衡。

然後它把四位頂級選手打崩了。

## GTO 與剝削：一場持續多年的爭論，被一場比賽終結

撲克圈和學術界為這件事吵了很久。一邊叫 GTO（game theory optimal，博弈論最優），一邊叫剝削性打法（exploitative play）。

2017 年之前，佔上風的其實是後者。很多人說，博弈論那套東西純屬紙上談兵，真想賺錢，你得盯著對手的眼睛，讀出他的靈魂，猜出他手裡是什麼牌。

後來情況慢慢變了。一批選手開始老老實實打接近 GTO 的策略，賺到了錢，而且不太去調整自己適應對手。Libratus 那場比賽把這件事釘死了。

但布朗對菲爾·赫爾穆特（Phil Hellmuth）的評價很有意思。他承認這位撲克傳奇有時候打得並不"最優"，可他就是贏。布朗的解釋是，赫爾穆特的強項不在於讓自己變得不可預測，而在於他能引導對手犯錯：讓對手以為自己有某個弱點，然後預判對手會怎麼調整打法，再反手針對這個調整。

這是個兩層結構。第一層，你偏離均衡去剝削對手。第二層，對手發現你在剝削他，他也偏離均衡來反制你。誰在第二層站得更高，誰就贏。

頂尖人類選手通常的做法是：先把自己的策略打到接近均衡，讓自己不可被剝削；同時在實戰中觀察對手哪裡露出了破綻，再針對性地偏出去一點。偏離是有限度的，因為每一次偏離都在給對方留下可利用的空間。

這裡有個常被混淆的點需要說清。納什均衡不等於"可預測"。恰恰相反，均衡策略的全部意義就在於讓你變得難猜。赫爾穆特的混亂風格之所以有效，是因為它讓對手無法建立穩定的模型，這跟均衡策略要達到的效果在方向上是一致的，只是路徑不同。

訪談裡萊克斯問了一個布朗沒往深處答、但其實挺重要的問題：能不能把"表演性"也建模進去？職業牌手的收入大頭來自贊助和曝光，不來自牌桌。一個能說垃圾話、能製造節目效果、偶爾故意打得離譜的 AI，在商業上是更值錢的。

這已經不是博弈論問題了。

## 會贏的 AI 和好玩的 AI，是兩種東西

布朗把這個區分講得很清楚：贏下一個遊戲的 AI，和讓人願意跟它玩的 AI，是兩碼事。再加上一個維度，讓人願意看它玩的 AI，又是第三碼事。

他聽過做遊戲 AI 的人講過這個。《文明》（Civilization）系列裡的 AI 從來不打最優解，它們在做另一件事：製造人格，製造性格，讓局面好看。真按勝率最佳化，遊戲會變得很難玩。

萊克斯剛跟託德·霍華德（Todd Howard）聊過，就是《輻射》《上古卷軸》《星空》背後的那個人。話題自然滑到 NPC 上：大語言模型會把開放世界 RPG 裡的 NPC 變成什麼樣。

布朗的判斷是，這可能是大語言模型最早進入大眾消費場景的應用之一。《上古卷軸 6》大概快做完了，趕不上；《上古卷軸 7》用上語言模型，他一點都不意外。萊克斯在旁邊補了一句"這是我猜的，不是他說的"，兩人笑了一下。

更有意思的是布朗講的一段往事。他讀書時聽一位遊戲公司高管的分享，臺下有人問：為什麼這些遊戲全都圍繞著打打殺殺？那位高管的回答是，做一個能跟你對話、能跟你合作的 AI，比做一個能跟你對打的 AI，難太多了。

這個解釋放在今天看，依然成立，但正在鬆動。當對話不再需要逐句寫死指令碼，非戰鬥類的互動就有了空間。大量以合作為核心、以關係為核心的遊戲形態會被解鎖。

萊克斯提了個更野的方向：未必是正向的，可能只是戲劇性。你進《使命召喚》，不開槍，蹲在角落裡跟一個 AI 拌嘴，被它陰陽怪氣了一頓，晚上睡不著，第二天專門回去把這場架吵完。

布朗覺得這個方向挺帶勁。遊戲世界有個天然優勢：玩家心裡清楚這不是真實世界，所以 AI 犯點錯、出點亂子，代價可控。就像《外交》這個遊戲，它不是真實的地緣政治，不是真實的戰爭，它是個遊戲，可以在裡面放一點混亂，放一點樂趣。

## 從沒有語言的博弈，到有語言的博弈

撲克和《外交》，中間隔著一道坎。

撲克是純策略博弈，全程沒有一句話。所有資訊都編碼在動作裡：下注、加註、跟注、棄牌。詐唬是用籌碼說的謊。對手能讀的只有你的下注模式，你能藏的只有自己的牌。

《外交》不一樣。七個玩家，一戰前的歐洲，談判、結盟、背叛、承諾、威脅，全部透過自然語言完成。你要說服法國跟你一起打德國，你要在最後一刻撕毀約定去搶補給中心，你還得在下一輪重新找到盟友。

這裡的不完全資訊，不只是"你手裡有什麼牌"。更麻煩的是"你說的話算不算數"、"你現在的盟友明天會不會反水"、"你剛才那句承諾是真心還是緩兵之計"。牌是固定的，意圖是流動的。

Cicero 在 2022 年登上 webDiplomacy 平臺的匿名對局，40 局下來，平均得分是人類玩家的兩倍以上，進入了前 10%。它由兩部分組成：一個負責戰略推理的規劃模組，一個負責生成對話的語言模型。規劃模組算出該跟誰結盟、該往哪調兵，語言模型負責把這些意圖翻譯成讓對面信服的人話。

這套組合的難度在於，兩半必須對齊。戰略上你需要法國按兵不動，語言上你就得找出一個法國願意相信的理由，而且這個理由在後續幾十輪裡還得自洽，不能自己打自己的臉。

撲克 AI 裡那個"共同知識信念狀態"的顯式建模，在《外交》裡變成了另一種形態：你要建模的不只是對手認為你手裡有什麼牌，還要建模對手相信你這個人有多可信。前者是機率，後者是聲譽。

從 Libratus 到 Cicero，布朗走的是一條很清晰的線：先解決只有動作的博弈，再解決有語言、需要建立信任的博弈。**前者考的是機率和平衡，後者考的是意圖和信譽。而人類世界裡絕大多數難題，都是後者。**

這也是為什麼撲克那套東西值得技術人認真看一遍。你做產品定價，對手是競品；你做招聘談判，對手是候選人；你做商務合作，對手是合作方。這些場景的共同結構是：資訊不對稱、對手在思考、你的動作會被解讀成訊號、你的聲譽會影響下一輪的價值。

這四條，恰好就是撲克。

- 先判斷你面對的是"完全資訊"場景還是"不完全資訊"場景。象棋式的場景裡，把每一步算到最優就夠了；撲克式的場景裡，只算最優會被人讀穿。
- 在不完全資訊場景裡，主動保留隨機性。固定套路一旦被識別，價值就會歸零。同一個決策，故意用不同方式處理，哪怕單次看不是最優。
- 做覆盤時，問那句撲克選手會問的話：如果我當時換一種打法，對手會怎麼反應。只覆盤自己做了什麼遠遠不夠，要覆盤對手的應對函式。
- 評估一個策略的好壞，看它在對手最優應對下的表現，不要只看它在對手犯錯時的表現。後者只能證明對手菜。
- 多人博弈裡放棄"必勝策略"的幻想。你能控制的是自己不被聯合針對，控制不了別人是否結盟。把精力放在降低自己被圍剿的機率上。
- 做決策前先問一句：這個動作能不能被對方翻譯成唯一含義。如果你的每一個動作都指向一種意圖，你在談判桌上就沒有任何槓桿。
- 如果你想做出讓人願意用的 AI 產品，別隻盯著勝率或準確率。好玩、可信、有性格，是另一條獨立的最佳化目標，需要單獨設計。
