EP 3442022-12-062:29:21
從撲克均衡到外交建立信任
Noam Brown
打造 Libratus 與 Pluribus 兩支撲克冠軍 AI 的研究者,講同一套方法怎麼教語言模型在外交遊戲裡談判、建立信任。
Noam Brown: AI vs Humans in Poker and Games of Strategic Negotiation | Lex Fridman Podcast #344在 YouTube 看 ↗
重點6 條
- 撲克其實可以被「解」:兩人零和賽局存在一個保證不虧錢的最優策略,也就是 Nash Equilibrium;checkers 已經完全解出,No Brown 用同樣的概念做出 Libratus,2017 年打贏四位頂尖職業選手。
- 贏的關鍵是即時運算,不是預先算好:2015 年輸了一大截,2017 年靠「比賽當下才即時規劃」(depth-limited search)逆轉,後來把訓練成本從十萬美元砍到一百五十美元,兩支撲克 AI 其實完全沒用到類神經網路。
- 外交遊戲比撲克更難:這是七人賽局,靠結盟與談判決勝負,行動空間是「所有能講出口的話」;純粹自我對弈訓練出的系統只會講機器聽得懂、人類聽不懂的語言,一定要餵人類真實對局的資料。
- 不說謊反而分數更高:Cicero 的設計會先評估送出某則訊息之後對方大概怎麼回應,藉此濾掉明顯的謊話;實測發現一旦被抓到說謊,其他玩家就再也不信任它,而信任正是外交這個遊戲的核心。
- 人類的不理性也要建模:一個只靠自我對弈訓練、在二人賽局裡所向無敵的系統,丟進七人真人賽局照樣慘敗,因為它學不會「有人會因為覺得不公平而生氣,寧可拖垮全局也要教訓你」這種人類反應。
- 同一套技巧也能讓棋類 AI 學會像人下棋:把外交用的「貼近人類政策」概念搬回西洋棋、圍棋,可以做出既強又像人類風格的 AI,甚至能模仿特定棋手,但也讓「抓作弊」變得更難。
時間軸25 段
介紹 Libratus、Pluribus、Cicero 三個計畫;No Limit Hold'em 跟西洋棋最大的不同,是下注沒有上限,籌碼規模能在一手牌裡從幾塊錢飆到上千。
二人零和賽局存在一個保證不會虧錢的最優策略,checkers 已經完全解出;理論上西洋棋、撲克也一樣有解,只是撲克的解複雜得多。
聊到 NPC,Lex 提到剛訪問過《異塵餘生》與《上古卷軸》系列的創作者 Todd Howard;No Brown 猜語言模型很快會用在遊戲 NPC 上,還轉述一位遊戲業高層的說法——做出會打架的 AI,遠比做出能好好對話、合作的 AI 容易。
系統從隨機亂玩開始,靠自我對弈不斷回頭問「如果當初選別的動作結果會怎樣」累積遺憾值;類神經網路負責把學到的東西類推到沒遇過的相似局面。
多了資訊不對稱之後,連「該用什麼機率做某個動作」本身都變成問題;詐唬的頻率抓不準,對手就會抓到模式。
Nash Equilibrium 不等於「可預測」,重點反而是不可預測;Hellmuth 這種厲害玩家擅長誘導對手偏離均衡,再反過來利用那個偏離。
2015 年輸了一大截,2017 年正式對戰四位頂尖職業選手,120,000 手贏了將近兩百萬美元(獎金池實際是二十萬美元)。
Libratus 被允許押到底池的好幾倍,這個原本沒人料到會用的選項把職業選手逼到要想五到十分鐘才敢決定;後來 over bet 反而變成高階牌局的常見打法。
1992 年的 TD-Gammon、後來的 AlphaGo 都靠搜索取得關鍵突破;拿掉 AlphaZero 比賽當下的 Monte Carlo Tree Search,ELO 會從 5200 掉到 3000,比人類還低。
用 C++ 平行運算上千顆 CPU,完全不知道贏人類的門檻在哪;人類一度連贏十天、還拿到每手底牌的紀錄去找漏洞,最後還是被逆轉。
靠 depth-limited search 把訓練成本從十萬美元砍到一百五十美元;兩支撲克 AI 其實完全沒有用到類神經網路,真正的難題是設計出會抓對詐唬機率的演算法。
七人賽局,1950 年代設計,背景設定在一戰前的歐洲;每輪玩家私下談判、結盟,再同時執行行動,JFK 與季辛吉都愛玩。
可以承諾支援某個單位卻臨陣倒戈,這是外交這個遊戲最核心的張力;公認法國是牌面上最強的國家,但遊戲設計成贏家越大、其他玩家就越有動機聯手阻止他,朝著「沒有人真正獲勝」的理想結局走。
行動空間變成「所有能說出口的句子」,比其他帶自然語言的遊戲(像 Settlers of Catan)複雜得多;團隊考慮過簡化語言,但最後決定直接挑戰完整的自然語言版本。
從零訓練會演化出人類看不懂的「機器語言」,丟進七人賽局裡人類只會覺得它在講幹話而已;也解釋了他們 2019 年為什麼選中外交當題目——AlphaStar、Dota、GPT-2 都已經出現,想挑一個更大的挑戰。
先用強化學習加 search 算出雙方該採取的「意圖」,再讓語言模型把這個意圖轉成一則訊息,而不是單純模仿人類會講什麼話。
系統會先評估送出某則訊息之後對方大概怎麼回應,藉此濾掉沒道理的訊息與明顯的謊話;實測發現說謊長期下來分數反而更低,因為一旦被抓到,其他玩家就再也不信任它。
資料來自 webdiplomacy.net,累積五萬局、上千萬則訊息,全部開源給研究社群;跟真人打了 40 局,在打超過五局的約 80 位玩家裡排名第二。
純自我對弈訓練出的系統,在二人零和版本裡所向無敵,丟進七人真人對局卻慘敗——因為它不懂人類會因為「覺得不公平」而生氣,寧可拖垮全局也要教訓對方。
先用監督式學習訓練出一個模仿人類打法的「錨定政策」,自我對弈時只有在某個動作的期望值明顯更高時才准許偏離它,兩個目標之間有個可以調整的權重。
提到賽局理論過去曾被用來理解核武嚇阻,他認為戰爭本質是負和賽局,但現實世界缺乏明確的動作空間與獎勵函數,寫程式、證明數學定理反而更適合套用;同樣技巧也被搬回西洋棋、圍棋,做出既強又像人類的 AI,卻讓抓作弊變得更難。
該不該做出會說謊的語言模型是團隊自己也在意的問題;他們還做過一場實驗,發現玩家對 AI 有天生偏見——只要猜到誰是機器人,其他人就會馬上聯手先殺掉它。
他認為現在 AI 最大的問題是資料效率太差,圍棋 AI 要下上百萬盤棋才學得會,人類棋手一輩子也下不到那個量;這在機器人這類難以大量生成樣本的領域特別麻煩。
別怕走一條跟別人不一樣的路——他自己是先學賽局理論、後來才轉向強化學習;但基礎的數學、程式與統計還是要先打好。
兩人聊到,活得好或許不是找到最優策略的問題,而是怎麼定義一個不會帶來意外後果的目標函數;多數人真正卡住的地方,是搞不清楚自己要的到底是什麼。