程序均衡:交代碼比交人更可能合作,但協調極難
程序均衡讓雙方互讀源代碼,用 Löb 定理實現合作;但合作依賴幾乎相同的代碼或共享隨機數,現實中協調成本極高。
原視頻在 YouTube 上放不出來,用音頻聽:
核心論點 · 點時間戳可跳到原聲
程序均衡:先交代碼,再玩遊戲
程序均衡是博弈論裡的一個設定:玩家不直接選合作或背叛,而是各自提交一段計算機程序,由程序替自己行動。關鍵增量是程序在運行時能讀到對方的源代碼,據此決定合作還是背叛。於是可以寫出「如果對手程序等於我自己就合作,否則背叛」這種程序——它對自己構成納什均衡,雙方各得 3 而不是各得 1。Caspar 強調,這個設定最早在 1984 年左右被提出,之後被重新發現或重新發明了大約三次。
— Caspar Oesterheld程序均衡的死穴是要事先對暗號
這套機制在實踐中的麻煩在於:兩個程序必須「相同」或滿足某種語法對應,才能互相合作。如果雙方能事先溝通,可以直說「我提交這段代碼,你也提交同一段」;但如果兩人是獨立、在不同時間寫程序,協調就非常困難。哪怕只是多一個空格,或者把「相同則合作否則背叛」寫成「不同則背叛否則合作」,這種極小的改動就會讓整個合作機制失效。
— Caspar Oesterheld證明搜索不會陷入無限遞歸
直覺上「證明對方會合作」和「直接運行對方程序」應該同樣陷入無限循環——後者確實會。但證明搜索不會:這依賴邏輯學裡一個相對冷門的結果 Löb 定理。它的形式是:如果你能證明「若 P 可證則 P 為真」,那你就能證明 P。之所以不平凡,是因為你無法證明自己的證明系統永遠可靠,所以不能無條件地從「P 可證」推出 P。Löb 定理恰好是程序均衡需要的那個工具,一旦寫下來,合作性質幾乎立刻推出。
— Caspar Oesterheld用 epsilon 概率打破無限循環
樸素做法「運行對方程序,它合作我就合作」在雙方同時提交時會無限循環。修法是:以 epsilon 的小概率直接合作、根本不看對方程序;只有這個低概率事件沒觸發時,才去模擬對方並複製其行動。這樣每一層遞歸都有 epsilon 概率停下,雙方最終以概率一停機。這對應重複博弈裡只看對手上一手的策略,epsilon 分支相當於還沒看到對手任何動作的第一輪。
— Caspar Oesterheld共享隨機串讓所有模擬同時停機
新論文(Emry Cooper 一作,Vince Conitzer 也在)用一個技巧解決無限模擬:把隨機性建模成程序啟動時拿到的一串無限隨機數。調用兩個對手和自己時,傳同一串隨機輸入,並去掉第一位。所有人檢查第一位是否小於 epsilon,是就停機,否則去掉第一位遞歸。因為共享同一串,所有模擬會在同一個位置一起停機。這樣既能模擬多個對手,也能模擬多個過去時間步。
— Caspar Oesterheld無關聯隨機數讓懲罰失效
為什麼 uncorrelated 情形拿不到完整的 folk theorem?Caspar 給了一個三人的直覺:Alice 可以用自己的私有隨機數以極低概率偏離,而我模擬 Alice 時用的是完全不同的隨機串,所以我無法判斷她是否真的會偏離;你模擬她時用的又是你的隨機數,於是「你檢測到她偏離」和「我檢測到她偏離」也不相關。結果是低概率偏離幾乎無法被同時抓到,懲罰也就無從協調。他還提到,如果懲罰需要兩人同時做一個特定動作,這種不可相關性就更致命。
— Caspar Oesterheldsimulationist 程序比 pybots 更強
論文第三部分定義了更一般的 simulationist programs:直觀上它們只做一件事——把對手和其他玩家作為輸入跑起來。Caspar 說這類程序在 uncorrelated 情形下達成均衡的能力比 epsilon grounded pybots 更強。直覺是:pybots 要求所有人做同一件事,而 simulationist 允許只有我需要做模擬,於是我可以獨立地對你的程序採樣一萬次——這是 pybots 做不到的。定義本身是遞歸的,base case 可能是「模擬空對象」或直接忽略對方輸入。
— Caspar Oesterheldfolk theorem 是壞消息不是好消息
Caspar 對 folk theorem 的態度和主流博弈論相反:博弈論者通常把它當正面結果,他則「感受非常複雜」,因為它意味著什麼都能發生,包括大量對我極差的結局——只要比「所有人最大程度懲罰我」好一點,就都是均衡。均衡越多,我們越難協調到其中一個。他提到 correlated 情形至少有一個凸的均衡空間,比在六個離散點之間選要好一些,但總體上他同意均衡選擇問題非常關鍵,這也是他很多工作的動機。
— Caspar Oesterheld原話 · 已逐字校驗
the crucial addition is that the programs get to get access to each other's source code at runtime
關鍵的附加設定是,程序在運行時可以訪問彼此的源代碼。
Caspar Oesterheld4:10
all these like very minor changes would already break these uh schemes
所有這些非常微小的改動,就已經會讓這些機制失效。
Caspar Oesterheld13:16
robust program equilibrium is not actually a solution concept in the sense that Nash equilibrium is or trembling hand equilibrium is
魯棒程序均衡其實並不是納什均衡或顫抖手均衡意義上的那種解概念。
Caspar Oesterheld17:22
Lub's theorem says that if you can prove that if you could prove P then P would be true then you would be able to prove P.
Löb 定理說的是:如果你能證明「若 P 可證則 P 為真」,那你就能證明 P。
Caspar Oesterheld41:41
you just have like a very high credence that like if you face a corporate bot probably something funny is going on, right?
你會有很高的置信度認為,如果你面對的是一個合作機器人,那背後多半有花樣。
Caspar Oesterheld1:24:13
But if you don't have shared randomness, all of this like like this is all like complete fiction, right?
但如果你沒有共享隨機數,這一切就全是虛構的,對吧?
Caspar Oesterheld2:13:46
I think game theorists often view this as sort of like a positive results whereas I have like very mixed feelings about this because it's it's kind of like a well anything can happen
博弈論者通常把這看成正面結果,而我的感受非常複雜,因為它差不多等於說什麼都可能發生。
Caspar Oesterheld2:24:53
the programs themselves aren't rational they're doing don't do expected utility maximization they just do what their source code says
程序本身並不理性,它們不做期望效用最大化,它們只是執行自己源碼裡寫的東西。
Caspar Oesterheld2:28:56
數字與實體
| 程序均衡設定首次提出年份 | 1984 年左右 | 8:11 |
| 程序均衡被重新發現/重新發明的次數 | 大約三次 | 8:11 |
| Manifold 錦標賽允許提交的程序數 | 最多三個 | 6:11 |
| Andrew Critch 有界 Löb 定理論文年份 | 2019 | 46:44 |
| epsilon grounded fairbot 平均停機輪數 | 約 1/epsilon | 1:07:58 |
| 模擬樹增長條件 | epsilon 小於二分之一時,模擬樹增長快於收縮 | 1:46:31 |
| PrudentBot 所需證明系統 | PA 加上該系統一致的假設(PA plus one) | 1:40:24 |
| 錦標賽中基本無效程序的比例 | 約 30% | 1:30:16 |
| simulationist 程序獨立採樣對手次數(舉例) | 10,000 次 | 2:18:49 |
| 討論的博弈人數(舉例) | 3 人 | 2:07:43 |
術語
- program equilibrium程序均衡
- 博弈論設定:玩家提交程序,程序運行時互讀源碼決定行動。
- Löb's theoremLöb 定理
- 若可證「P 可證則 P 為真」,則可證 P。
- folk theorem無名氏定理
- 重複博弈中,任何優於 minimax 收益的結果都可能是均衡。
- epsilon grounded fairbotepsilon 接地公平機器人
- 以 epsilon 概率直接合作,否則模擬對手並複製其行動的程序。
- simulationist programs模擬主義程序
- 只把對手和其他玩家作為輸入跑起來的程序,遞歸定義。
收聽指南
對博弈論、AI 對齊和機制設計感興趣的創業者和工程師,尤其是想理解多智能體合作底層邏輯的人。
對邏輯學和證明論細節不感興趣的聽眾,可跳過 40:40 至 1:07:58 的技術推導。