# 托馬斯·桑德霍爾姆：撲克與博弈論

> 博弈論與 AI 研究者談如何用演算法求解不完全資訊博弈，並讓機器在撲克中取勝。

- 原標題：Tuomas Sandholm: Poker and Game Theory
- 期數：特別節目
- 釋出日期：2018-12-28
- 嘉賓 / 主題：托馬斯·桑德霍爾姆
- 網頁版：https://lex.qiaomu.ai/tw/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 頻譜拍賣這種幾百億美元級別的專案，設計的實際規則裡誠實出價依然算不上最優解。
- 如果你對人的評判抱有很強信心，尤其是「憑直覺、憑讀表情、憑歷史印象」，可以留意一下自己是不是正在忽略某個已經連贏三天的事實。這個偏見在牌桌上有，在商業競爭和職業選擇裡也有。
