99国产精品欲av蜜臀,可以直接免费观看的AV网站,gogogo高清免费完整版,啊灬啊灬啊灬免费毛片

網易首頁 > 網易號 > 正文 申請入駐

真AGI的遞歸理性概率編程語言:memo的實現,具身博弈

0
分享至

A Domain-Specific Probabilistic Programming Language for Reasoning about Reasoning (or: a memo on memo)

面向推理的領域專用概率編程語言(或:關于 memo 的備忘錄)

https://comosoco.daeh.info/assets/papers/chandra2025memo.pdf

https://osf.io/preprints/psyarxiv/pt863_v1

https://github.com/kach/memo

代碼庫縮小了 3 倍或更多 ),并且執行和適應數據的速度大大加快(我們已經看到 3,000 倍或更多 的加速)。在慣用的備忘錄中,POMDP 求解器是 15 行代碼,并且與用 200 行代碼編寫的手動優化求解器一樣快。

需要將我們對心智行為的直覺表達(如 believe、think、see、do、want、imagine 等動詞)翻譯成概率編程語言的基本操作(如 sample、condition、infer 等)。這種翻譯過程中可能會引入一些細微的 bug,導致模型違背我們對心智行為的基本直覺。



摘要

人類對思維本身的思考能力(即“心理理論”)是許多學科研究的基本對象。在最近幾十年里,來自不同學科的研究人員逐漸采用了一種豐富的計算范式來建模心理理論,這種范式基于遞歸的概率推理。然而,實踐者常常發現以這種范式進行編程極具挑戰性:一方面,因為“思考他人的思考”本身就讓程序員感到困惑;另一方面,這類模型運行起來極其緩慢。本文介紹了一種新的、面向心理理論的領域專用概率編程語言——memo。它克服了上述兩個挑戰:首先,通過為心理理論提供專門設計的語法和語義結構,使建模更加直觀;其次,采用了一種獨特的推理方法,利用數組編程在現代硬件上實現了良好的擴展性,從而顯著提升了性能。使用 memo,研究人員可以用更少的代碼編寫出運行速度更快的模型。該語言已經得到了多個研究團隊的實際應用與采納。

1 引言

語言的生命力在于它能夠描繪其使用者、讀者和作者的實際生活、想象生活以及可能的生活。

托妮·莫里森,《諾貝爾文學獎演講》,1993年

句子“Mary thought she saw a ghost”(瑪麗以為她看到了一個鬼)中,主句是真實的(“Mary thought”,即瑪麗以為),而嵌入的從句是虛假的(“she saw a ghost”,即她看到了鬼)。這種語法結構可能為語言學習者提供了理解他人錯誤信念的邏輯工具。

Pyers 和 Senghas [108]

人類不僅具備思考的能力,還能夠思考“思考”本身:我們的心智可以對其他心智進行遞歸推理。這種非凡的能力被稱為“心理理論”(theory of mind),它幾乎支撐著我們所做的一切:從玩游戲、解釋概念、說服陪審團,到發起合作、安慰朋友、識別誤解,甚至發動戰爭。

由于心理理論在人類經驗中的核心地位,許多學科都試圖通過計算模型來理解它。這些學科包括認知科學 [12, 13, 128]、社會心理學 [2, 3, 15, 35, 77, 80, 138]、語言學 [76, 87, 118, 122, 139]、倫理學 [91, 111, 112] 以及行為經濟學 [8, 27, 86, 123]。這類模型經常被用于現實世界系統的工程實踐,如機器人技術 [45, 50, 101]、教育 [29, 113, 120]、人機交互 [31, 38]、程序綜合 [1, 106, 130] 和計算機圖形學 [28, 33] 等領域。

有趣的是,跨學科的心理理論模型往往比它們表面上看起來更為相似。它們共同的核心理念包括貝葉斯推理(因為心智持有不確定條件下的信念)、決策理論(因為心智會理性地追求目標)以及遞歸性(因為心智會思考其他心智)。來自不同學科的教科書也以類似的方式介紹這些理念如何在建模心智時浮現并運作 [47, 67, 69, 90, 96, 118]。我們推測,這里隱藏著一種完整的編程范式——一種概率編程范式,我們稱之為“遞歸理性”(Recursive Rationality,RR)范式。

RR 模型可以通過使用嵌套推理查詢來優雅地實現遞歸貝葉斯推理 [125]。然而,根據我們多年與實踐者的合作得出的結論,即使使用當今最好的概率編程語言(PPLs),在 RR 范式下編程仍然極具挑戰性。正如編程領域常見的那樣,這些挑戰主要體現在兩個方面:正確性 (correctness)和效率 (efficiency)。

關于正確性的難題在于抽象層面。心理理論擁有一套豐富的概念詞匯(例如表示心理狀態的動詞,如 believe、think、see、do、want、imagine),但大多數 PPL 只提供少量的基本操作(動詞,如 sample、infer、condition)。程序員必須將前者翻譯成后者,但由于無法檢查語義是否在翻譯過程中保持一致,他們常常會遭遇細微的 bug,比如不小心讓一個智能體“讀取”了另一個智能體的思想,混淆了屬于不同心智的變量。

關于效率的問題則源于“思維中的思維”會導致可能世界狀態的組合爆炸(不僅在一個心智內部,還包括其他心智所想象的心智狀態……),從而導致推理過程極其緩慢。

我們認為這兩個問題是阻礙科學進步的重大障礙:在各個學科中,科學家通常需要數周的實現工作和數天的計算時間來驗證他們的想法。

在本文中,我們提出了一種新的、面向 RR 范式的領域專用概率編程語言——memo(意為“心智模型”)。具體來說,我們做出了以下貢獻:

(1) 我們識別出 RR 實踐者常遇到的一類獨特 bug(§1.1.1),并設計了一種語言,其語法和語義能夠保護用戶免受此類 bug 的困擾(§3.1)。

(2) 我們分析了 RR 實踐者在實際應用中面臨的可擴展性挑戰(§1.1.2),并通過觀察發現 RR 模型特別適合現代硬件加速(§1.2.2)。因此,我們在推理方法上采取了獨特的策略:我們將模型轉換為數組程序,進而編譯為高效的并行代碼(§3.2)。我們的推理算法是端到端可微分的,支持通過梯度下降快速擬合參數。

(3) 通過對幾個經典 RR 模型的案例研究,我們展示了 memo 的設計決策使實踐者能夠用比現有通用 PPL 中專家編寫實現少得多的代碼寫出運行速度顯著提升的模型(§4.1)。

(4) 我們使得一些新型、復雜的模型成為可能,這些模型正是 RR 實踐者日益關注的方向:高效整合進整個深度學習生態系統的模型(§4.3.1),以及能夠反思執行推理所需計算成本的模型(§4.3.2)。

(5) 我們將 memo 作為開源軟件發布(https://github.com/kach/memo )。memo 已經被多個研究團隊采用,帶來了數量級級別的性能提升,并使他們的模型得以進行雄心勃勃的新拓展(§4.2)。

在本引言的其余部分,我們將討論促使我們設計 memo 的兩個關鍵挑戰(§1.1),并預覽 memo 設計背后的兩個核心洞察(§1.2)。隨后,我們將通過示例介紹 memo(§2),探討其實現機制(§3),并通過一系列案例研究對其進行評估(§4)。


1.1 推動 memo 誕生的兩個挑戰 1.1.1 正確性(Correctness)

正確實現 RR(遞歸理性)模型之所以困難,原因有很多。最明顯的一點是,涉及多個智能體和遞歸層次的情境很容易變得混亂和令人困惑(例如可以看看這部來自情景喜劇《老友記》的片段:youtube.com/watch?v=a4CS2tCjAgk)。即使對于研究人員完全理解的簡單模型,在代碼實現上也可能非常棘手且容易出錯。

一類常見的簡單錯誤來源于貝葉斯計算實現中的錯誤:許多研究者在 R 或 MATLAB 中手動實現推理過程,很容易忘記對概率分布進行歸一化等操作。這類問題可以通過使用概率編程語言(PPLs)來自動執行嵌套推理加以解決 [125],因此我們在此不再贅述。

更有趣的一類錯誤則即使在使用 PPLs 的情況下也依然存在。雖然現有的 PPLs 可以保證概率計算在數學上的正確性(根據該 PPL 的語義),但它們并不能保證這些計算對于我們關于“心智能動性”(agency)的直觀理解是有意義的。正如我們之前所討論的那樣,在使用 PPL 編寫 RR 模型時,我們需要將我們對心智行為的直覺表達(如 believe、think、see、do、want、imagine 等動詞)翻譯成概率編程語言的基本操作(如 sample、condition、infer 等)。這種翻譯過程中可能會引入一些細微的 bug,導致模型違背我們對心智行為的基本直覺。

讓我們來看一個具有代表性的例子。在 RR 模型中一種常見的模式是:一個智能體根據某個效用函數(utility function)做出選擇。具體來說,假設某天早上 Alice 根據一家餐廳的食物質量和價格權衡后決定預訂哪家餐館。傳統上,這類決策理論情境在 PPL 中通常通過隨機均勻采樣一個選項,然后根據智能體的效用函數對其施加因子(factor)來進行編碼 [47]。例如,在 WebPPL [66] 中,我們可以這樣寫:


這里的 factor 語句會讓推理機制更傾向于高價值的選擇路徑(體現了“以推理為規劃”的理念 [25])。因此,推斷出的 r上的分布就可以預測 Alice 的行為:她偏好質量更好、價格更低的餐廳,并在相似選項之間保持中立。

然而,這種 samplefactor 之間的“遠程作用”(spooky action at a distance)可能導致微妙的 bug。舉個例子,假設 Alice 略微偏好戶外餐廳而非室內餐廳(比如質量評分為 11 對比 10),但如果當晚可能有暴風雨,她在戶外會面臨極高的代價(比如懲罰值為 ?100)。我們可能會期望通過引入一個新的隨機變量 s 來表示暴風雨的發生,并將其納入因子中來表達這個額外的需求:


然而,這種看似無害的編碼方式實際上是錯誤的。它無意中將環境中的隨機性“控制權”賦予了 Alice,從而錯誤地預測:Alice 會在一種她能影響天氣的幻覺下做出高風險、過于自信的預訂決定!在這個例子中,盡管我們的直覺告訴我們 Alice 應該采取保守策略選擇室內餐廳,而且選擇戶外餐廳的預期效用也顯著更低(?39 ? 10),但 WebPPL 的推理卻預測出 Alice 有 58% 的概率會選擇戶外餐廳。(關于這一問題在強化學習背景下的更多討論,請參見 Levine [92, §2.3]。)

類比自動微分中的“擾動混淆”(perturbation confusion)[121],我們可以將這類 bug 稱為“作惡者混淆”(perpetration confusion):即搞混了哪一個智能體應該對哪一項決策負責。

正如 Siskind 和 Pearlmutter 解決擾動混淆的方法一樣,我們提出的解決方案也是類似的:通過給每個選擇打上“智能體標簽”來區分不同智能體的責任。我們將在第 4.1.2 節中展示一個現實世界中的 perpetration confusion 示例,以及 memo 是如何解決這個問題的。


1.1.2 效率(Efficiency)

RR 模型以運行速度慢而聞名,主要原因在于不同智能體的心智模型中可能出現的世界狀態呈組合式爆炸增長(包括它們彼此之間的心智模型!)。這嚴重限制了研究人員所能探討的問題范圍和規模。

嵌套推理本身也帶來了額外的挑戰。當嵌套使用近似推理方法時,“內部”推理算法必須產生足夠精確的結果,供“外部”推理算法使用。通常這意味著要增加采樣數量,而這會極大地拖慢關鍵的內層循環(參見 §4.2.1 中的一個真實案例)。為每一層遞歸選擇合適的推理算法也給程序員帶來了沉重負擔,尤其是隨著需要調整的超參數數量的增加。

最后,在實際研究中,經驗科學家不僅運行模型,還需要將模型的自由參數擬合到實驗收集的數據上。這通常是通過網格搜索完成的,即使是極其簡單的模型也可能需要數百萬次模型評估(參數數量的指數級增長)。研究人員可能還希望為多個不同的實驗條件(“處理組”)分別擬合模型、對模型進行多種不同的消融實驗,并通過對數據的不同子集獨立擬合來交叉驗證結果。這些需求會極大放大單次模型評估的成本,使得即便是相對簡單的模型也變得非常昂貴。

我們采訪的研究人員經常提到,僅推理過程就需要幾分鐘到幾十分鐘不等,而模型擬合與交叉驗證則往往需要花費多達數天的計算時間

這些問題使得效率成為影響研究生產力和進展的根本性瓶頸:模型擬合的高昂成本使得研究人員難以對模型進行調試、驗證直覺以及迭代改進想法。同時,它也迫使研究人員不得不縮小模型規模,或進行比他們期望中更不徹底的超參數調優。

當然,網格搜索和交叉驗證屬于“極易并行化”(embarrassingly parallelizable)的任務,在現代硬件上可以實現顯著加速。但認知科學家通常缺乏必要的專業知識,無法識別甚至利用那些非常容易實現的性能優化機會。

同樣地,基于梯度的優化方法無疑會比網格搜索更加高效,但目前只有極少數概率編程語言(PPL)支持在推理過程中自動微分(automatic differentiation)。

除了這些實際問題之外,還有一個重要的科學問題懸而未決。盡管 RR 模型可能非常準確地預測人類的直覺反應,但它們有時也因計算開銷過大而受到批評,被認為不太可能是人類大腦產生這些直覺的合理機制 [97, 134]。而實現更快的模型執行方式,為科學家提供了一種解決這一矛盾的途徑。

1.2 memo 的設計:兩個核心洞察 1.2.1 關于正確性:“尊重我們對心智的元理論”

如前所述,我們在正確性 方面的核心洞察是:提供專門的語法結構,將隨機選擇與智能體(agent)明確關聯。

在 memo 中,我們會這樣實現餐館選擇問題:由 Alice 來選擇餐館,而世界(環境)來決定天氣 (完整實現請參見補充材料)。這種專用語法使我們能夠靜態地捕捉并防止諸如“作惡者混淆”(perpetration confusion)之類的錯誤。

更一般地,通過在語言的語法和語義中顯式表達“心智能動性”(agency),memo 能夠靜態強制執行我們關于心智直覺的多種基本條件,確保模型與智能體行為的基本原則保持一致。例如,memo 可以防止模型中出現無意的“心靈控制”或“讀心術”。

我們將在第 3.1 節中詳細討論 memo 的靜態語義機制,以及它是如何體現智能體行為的關鍵原則的。

1.2.2 關于效率:“PPL 遇見 APL”

我們在效率 方面的核心洞察是:大多數現實中的 RR 模型都適合進行精確枚舉推理 (exact enumerative inference):從結構上看,它們只需要從基數不大的離散分布中進行有限且靜態可知的一系列采樣。

幸運的是,近期研究表明,在這類模型中,精確枚舉推理往往可以被編譯為高效的數組程序(array programs),其中數組表示離散域上的聯合分布 [103, 104]。這表明我們有機會大幅加速 RR 模型的運行。

我們可以通過研究人員描述 RR 模型的方式看出這一方向的正確性。許多經典模型在文獻中通常有兩種互補的描述方式:一種是使用遞歸樹的語言,另一種是使用數組的語言。

例如,著名的值迭代算法(value iteration)有時被描述為帶記憶化的圖搜索 [16],有時則被描述為對價值表(value table)的迭代操作 [19]。同樣,“理性言語行為模型”(Rational Speech Acts model,詳見下文)有時被描述為嵌套推理 [52],有時則被描述為對“真值表”(truth table)的操作 [106]。經濟學家也常常同時使用“博弈樹”(game trees)和“收益矩陣”(payoff matrices)來進行建模。

基于這一點,memo 被設計為能將嵌套的枚舉推理編譯為數組程序。這種方式為用戶帶來了諸多直接優勢:

  1. 推理是精確的

    ,而且沒有超參數;

  2. 數組程序具有簡單的循環結構, 易于編譯為高效優化的代碼

  3. 推理可以 天然地并行化 ,無論是單次評估內部(在可能的世界狀態之間),還是在參數擬合過程中(在數據批次之間);

  4. 現有的數組程序編譯器可以在 GPU 和其他硬件平臺上 加速推理過程

  5. 推理支持 原生自動微分 (automatic differentiation),從而極大地加快了參數擬合速度;

  6. 模型可以無縫接入宿主數組語言的庫生態系統,包括深度學習、數據可視化等多個工具包。

我們將在第 3.2 節中詳細討論 memo 是如何將模型編譯為數組程序的。

2 memo 的演示

我們將通過 RR(遞歸理性)范式中的“果蠅”或“Hello, World”來介紹 memo:來自認知語言學中極具影響力的理性言語行為 (Rational Speech Acts,RSA)框架 [43, 52, 54, 64]。RSA 模型描述了人們如何做出超越語言字面語義的語用推理 (pragmatic inferences)。

我們將考慮一個展示這種推理的經典實驗,并使用 RSA 來建模其實驗結果。(需要說明的是,我們的目標并不是要推廣 RSA 而貶低其他理論——RSA 本身也有批評者 [55, 58, 140]。在這里,我們只是將其作為一個典范性例子來引入 memo。)

2.1 理性言語行為框架:我們的示例

考慮以下由哲學家 Lewis [93] 首次提出的經典游戲。想象有三個物體:一個綠色正方形 ?,一個綠色圓形 ●,以及一個粉色圓形 ○。你的朋友被要求讓你從中選擇一個,但他只能使用“green(綠色)”、“pink(粉色)”、“square(正方形)”或“round(圓形)”這些詞。假設你的朋友說“pink(粉色)”,你會選擇哪個?大多數人會選擇粉色圓形 ○。

同樣地,如果他說“square(正方形)”,大多數人會選擇綠色正方形 ?。到目前為止,這都很直觀。但現在,假設你的朋友說“green(綠色)”。這更復雜了,因為綠色正方形 ? 和綠色圓形 ● 都符合“green”的字面意義。然而,認知語言學中一個令人驚訝且可復現的發現是:大多數人會在語用層面偏好綠色圓形 ● 而非綠色正方形 ? ——例如,在一項研究中,有 64% 的人選擇了前者 [109]。這是怎么回事呢?

似乎人們推理如下:如果朋友想讓你選綠色正方形 ?,他本可以明確地說“square”(無歧義),而不是使用模糊的“green”。因此,既然他選擇了風險更大、含義模糊的“green”,很可能他是想區分兩個圓形 ● 和 ○。

RSA 框架試圖以精確的計算方式形式化這一直覺。它將此類情境建模為說話者(S)和聽者(L)在不確定性下的相互遞歸推理。我們假設,最初聽者對說話者所指的對象有一個先驗信念,其中 r 表示“指稱對象”(referent,即說話者想要指代的物體)。給定說話者的言語 u,聽者可以通過貝葉斯定理推斷出后驗概率:


其中 pS(u∣r) 是說話者為了表達對象 r 而選擇說出 u 的可能性。

關鍵在于:聽者可能會認為,一個理性、策略性的說話者會選擇最有可能讓聽者正確理解自己意圖的詞語 u。因此,pS本身可能遞歸地依賴于 pL。(這就是“遞歸理性”范式的本質所在。)



2.2 初識 memo:在 memo 中表達“基礎情形”的天真聽者模型

要在 memo 中表達這個模型,我們首先從實現一個天真聽者 (na?ve listener)的“基礎情形”開始。這個聽者認為說話者只是隨機選擇一個真實的言語表達









對于無歧義的言語表達 (如 “pink” 和 “square”),模型正確地分別選擇了 ○ 和 ?;

而對于有歧義的言語表達 (如 “green” 和 “round”),模型在兩個語義上都成立的選項之間沒有偏好

這與我們的直覺相悖,也與 Qing 和 Franke 的實驗數據不符 [109],說明我們還需要進一步完善模型……

程,如圖2所示。




2.4 使用我們的模型:一窺科學家的工作流程

正如我們在第 1.1.2 節中所討論的那樣,一個 RR(遞歸理性)模型研究者的任務并不僅僅止于表達模型:他們通常還需要將模型擬合到實驗數據 上,并對其進行驗證 。下面我們來看看在 memo 中是如何完成這一過程的。

2.3 完善模型:加入遞歸推理

現在,我們來看看如果聽者認為說話者也在思考聽者 (而聽者可能又在思考說話者,以此類推)時會發生什么。我們將通過三個步驟擴展我們的代碼來建模這一過

圖 3 展示了通過網格搜索(耗時約 70 毫秒)和梯度下降(耗時約 250 毫秒)將 β 擬合到 Qing 和 Franke 的數據的過程,并展示了在 ?=1 和 ?=0 時,模型與人類數據的擬合情況。

顯然,當 ?=1 時,模型能夠很好地預測人類的行為;而當 ?=0 時,模型的預測結果與人類行為存在顯著差異。雖然還需要進行更多的統計分析,但這類結果可以用來論證:人們是在 ?=1 的層級上進行推理,而不是 ?=0。


2.5 語言的其余部分

至此,我們對 memo 的介紹也接近尾聲。圖4中給出了該語言的完整抽象語法,其中只包含幾個我們尚未介紹的語言結構,下面我們將重點說明它們。


2.5.1 以虛擬語氣進行編程(Programming in the subjunctive mood)

智能體常常通過假設和反事實來推理,提出“如果……會怎樣?”(what if?)之類的問題,以此指導他們的行為。有大量證據表明,人類在做決策時確實會進行這類模擬 [17, 62, 145]。

為了在 memo 中建模此類推理,我們引入了 imagine 表達式,它允許在一個臨時的作用域中想象一個事件 ,然后在那個假設的世界中求值一個表達式。(imagine 類似于 JavaScript 中的 IIFE(立即調用函數表達式),它可以被“解糖”為對一個新生成的模型的調用。)

2.5.2 對“不思考”的思考(Thinking about not thinking)

認知科學中的最新研究探討了智能體如何考慮“思考本身”的成本 [94, 133]。例如,當某種近似已經足夠好時,繼續深入思考(在時間、能量、記憶等方面的額外開銷)可能就不值得了。

對這種“資源理性”(resource-rationality)的建模一直具有挑戰性,因為在傳統的概率編程語言中很難反思推理過程的計算成本。

memo 提供了一種機制來反映計算成本:它利用 JAX 的編譯時分析提取所需的浮點運算次數(FLOPs)。memo 模型可以使用這些信息,讓智能體基于資源考量做出選擇。

我們在第 4.3.2 節中展示了這一功能的使用示例。

3 設計與實現

我們的目標是創建一種語言,幫助科學家編寫正確且高效的 RR 模型 (遞歸理性模型)。在本節中,我們將展示 memo 是如何被設計來達成這些目標的。

我們首先介紹 memo 的前端設計 ,解釋其靜態語義是如何確保模型符合我們對“智能體行為”(agency)的直覺理解,從而保障正確性 (§3.1);

接著,我們描述 memo 模型是如何被編譯為數組程序 ,以實現高效推理 (§3.2);

最后,我們討論支持 RR 研究者的實際考量因素 ,以及它們如何影響了我們的設計決策(§3.3)。

在這里,我們專注于提供具體而直觀的解釋。有關 memo 靜態語義和指稱語義的形式化定義,請參見同步進行的研究工作 [5, 匿名引用],該研究建立在 Zhang 和 Amin [143] 對嵌套推理形式化基礎上的工作成果之上。

3.1 前端:追蹤“心智框架”(frames of mind)

正如我們在第 1.2.1 節中所討論的,memo 的設計目標是確保模型與我們對現實世界中“智能體行為”(agency)的直覺保持一致。在本節中,我們將通過概述 memo 的靜態語義 來說明它是如何實現這一目標的。

在此過程中,我們會強調關于“智能體行為”的四個基本原則(標記為 ① 至 ④),并解釋這些原則是如何在 memo 的設計中被具體體現出來的。

“心智框架”(frame of mind):memo 編譯器的核心數據結構

memo 編譯器的核心數據結構是“心智框架”(frame of mind),它用于跟蹤一個智能體的信念(beliefs),以及該智能體對其他智能體信念的信念。

為了引入“心智框架”的概念,我們將繼續使用第 2 節中的 RSA 示例,并逐步展示在編譯過程中“心智框架”是如何演化的。

如圖5所示,一個“心智框架”包含:


  • 一組智能體(包括自身),

  • 這些智能體所做的選擇(choices),

  • 指向這些智能體各自心智框架的指針(從而形成嵌套的框架樹)。

在一個智能體的框架中,其做出的選擇可以是已知的 不確定的 (即隨機變量)。

面板 A:初始“根框架”

每個 memo 模型都從一個初始的“根框架”開始,我們稱之為觀察者框架 (observer’s frame)。

在這個框架中,只有兩個變量 r 和 u,它們由模型頂層定義中的維度聲明綁定(例如 def L[r: R, u: U]...)。這兩個變量對觀察者來說是已知的 ,也就是說,它們的值沒有不確定性。

面板 B:建立聽者對說話者的心理建模

當我們初始化聽者對說話者的心理建模(如 listener: thinks[speaker: chooses(...)])時,memo 會為聽者創建一個新的心智框架,并為其想象中的說話者再創建一個新的心智框架。

觀察者的框架中包含一個指向聽者框架的指針,而聽者的框架又包含一個指向其所想象的說話者框架的指針。

此時,在說話者的框架中包含了兩個變量,這兩個變量對說話者而言是已知的 ,因為它們是由說話者自己選擇的。

然而,在聽者的框架中,這兩個變量則是不確定的 ,即被視為隨機變量。

這引出了 memo 所體現的第一個關于“智能體行為”的基本原理:

① 不允許“讀心術” (No Mind Reading) 智能體總是知道自己做出的選擇,但默認情況下并不知道其他智能體的選擇,后者對其來說是不確定的。

這一原則體現在語言設計中:不同心智框架之間的變量不能隨意共享;只有通過明確的推理機制才能訪問他人心智中的信息。

面板 C:聽者觀察到說話者的言語

面板 C 展示了當聽者觀察到說話者發出的言語 usaid 等于 u時的情況。這個語句產生了兩個效果:

  1. 在聽者的框架中, speaker.u_said 的狀態從“不確定”變為“已知”。

  2. 在觀察者的框架中,聽者的 speaker.u_said 被綁定到變量 u (這一信息存儲在觀察者框架的一個輔助表中)。

自此之后,觀察者在建模聽者計算過程時,會將 u 替換掉 speaker.u_said。例如,從觀察者的視角來看,布爾表達式 listener[speaker.u_said == "green"] 就等價于 u == "green"

請注意,這是模型中唯一一處 將聽者的 speaker.u_said 與觀察者的 u 關聯起來的地方。我們也可以寫成 listener: observes [speaker.u_said] is w,其中 w=u。這種設計是有意為之的。

它體現了關于智能體行為的第二個基本原理:

② 智能體可以形成錯誤信念 (Agents Can Acquire False Beliefs) 觀察者知道事實,但聽者可能并不知道,并因此持有錯誤信念。

例如,我們可以模擬一個“中間人攻擊”場景:listener: observes [speaker.u_said] is attacker.u_fake。此時聽者會認為說話者真的說了 u_fake,而觀察者則清楚地知道聽者實際上收到了攻擊者的消息。

結果是,在觀察者的框架中,listener[speaker.u_said]attacker.u_fake 是等價的,但在聽者的框架中卻不是——聽者甚至不知道攻擊者的存在。

這體現了第三個關于智能體行為的基本原理:

③ 信念具有指稱不透明性 (Referential Opacity of Belief)[56, 110] 同一個對象在不同智能體的信念中可能以不同的方式被表示和理解。

此外,請注意,觀察者的框架中并沒有包含對說話者的 r_trueu_said 的直接引用 。這也是有意為之的設計。

觀察者和聽者不必對說話者擁有相同的心理模型

例如,觀察者可能認為現實中說話者只是隨機胡言亂語,根本沒有 r_true 影響其言語;而聽者卻可能錯誤地將說話者的言語解釋為有目的的行為,并賦予其一個 r_true 的含義(參見 [44, 74])。因此,r_true 應該只出現在聽者的框架中,而不是觀察者的框架中。

面板 D:聽者做出選擇

面板 D 展示了當聽者做出選擇 rpick 時的情形。正如我們在面板 B 中討論的那樣,r_pick 在聽者的框架中是一個已知變量 ,而在觀察者的框架中則是不確定的

借此機會,我們來看看 memo 所體現的最后一個關于智能體行為的基本原理:

在第 2.2 節中,我們強調了一個重要約束:聽者必須知道自己選擇 rpick 的概率分布

這一限制實質上體現了以下原則:

④ 不允許“心靈控制” (No Mind Control) 如果一個智能體無法理解自己為何做出某個選擇,那就仿佛是別人替他做出了這個決定。

例如,如果 Alice(秘密地)選了一個冰淇淋口味,并期望 Bob 也選同樣的口味,那么她對 Bob 的心理建模就剝奪了 Bob 的自由意志。

這類情形會導致像 perpetration confusion(作惡者混淆) (§1.1.1)這樣的 bug,更廣泛地說,還會引發哲學上的難題,如 Newcomb 悖論 [102, 135]。

memo 通過靜態跟蹤每個表達式在一個智能體框架中是否“已知”來防止此類問題的發生。

  • 如果一個表達式涉及未知的選擇,則它會被標記為“未知”(除了 E[e] 這種期望值表達式,即使 e 是未知的,它本身仍被視為“已知”);

  • memo 強制要求: 智能體在指定自身選擇的概率時,必須知道所使用的表達式

這種方式確保了模型不會違反關于“心智自主性”的基本原則,從而避免了許多潛在的邏輯錯誤和哲學困境。

3.2 后端:將 memo 降低為數組程序

正如我們在第 1.2.2 節中所討論的那樣,RR 模型通常只需要離散枚舉推理 (discrete enumerative inference),因此非常適合被編譯為數組程序 。在本節的其余部分,我們將通過解釋 memo 是如何將我們的 RSA 模型編譯為數組程序來完成對示例的說明。

核心思想

memo 的核心思想是:為每一個“心智框架”維護一個數組 ,該數組表示該智能體當前對世界的信念。

  • 這個數組為該框架中跟蹤的每一個選擇(choice)保留一個維度;

  • 數組中的每一項表示:在已知選擇的條件下,未知選擇的聯合概率。

圖6展示了與聽者框架相關聯的數組是如何在 RSA 模型的三個語句中逐步演化的(為簡化起見,設 ? = 0)。我們重點講解聽者框架,因為它是最有趣的:觀察者和說話者沒有不確定的選擇,所以他們的數組只是填滿了 1。


聽者的初始信念數組

聽者的信念數組 初始是一個零階數組 (即無維度的標量),其值為 1:

因為此時聽者尚未建模任何不確定的選擇,因此只有一個可能的世界狀態,聽者為其賦予概率 1。


Panel B2 展示了當聽話者模擬說話者選擇“said”時,同樣的過程展開。 首先,用一個新的大小為||的維度來擴展“”,用于“said”,使其成為一個二維數組(以熱圖形式展示)。然后,memo 對每個“said”和“true”評估可能性表達式“denotes(said, true)”,并沿著“said”軸對結果進行歸一化(請注意,這兩個操作都可以在現代硬件上輕松并行化)。最后,memo 通過逐點乘以歸一化的可能性來更新“”。因此,“”的更新如下:




請注意,通過機械地遵循 memo 的編譯規則 ,我們實際上“免費”得到了 Pu 等人 [106] 所描述的 RSA 模型的高效數組實現:即對一個大小為 || × | | 的數組進行行歸一化與列歸一化的交替操作

我們將在第 4.1.3 節中看到,memo 也以同樣的方式自然地還原了經典的表格型值迭代算法(tabular value iteration)。

利用數組 ,我們可以從聽者的視角出發,執行多種有趣的計算。例如,假設我們想了解聽者對“true 是綠色形狀”的信心程度,也就是在聽者觀察到 usaid 后,在其心智框架中求表達式 Pr[green(true)] 的值。

表達式 Pr[] 在去糖化后等價于 E[],因為伯努利隨機變量的期望值就是它的發生概率。

因此我們的目標是計算:


我們可以將這一計算表示為張量收縮 (tensor contraction)來實現:

  1. 首先,在每一個可能的世界狀態中計算 green(r_true) 的值,并將結果組裝成一個數組 e ;

  2. 然后,將 e 與數組 沿著代表不確定變量的維度進行張量收縮。

在這個例子中,只有一個不確定的維度(即 rtrue),因此我們可以將這個張量收縮寫成矩陣乘法的形式:


這樣,我們就能夠高效地從聽者的信念數組中提取出關于世界屬性的概率性推理結果。這種基于數組的操作不僅結構清晰,而且可以充分利用現代硬件的并行計算能力,從而實現高效的推理過程。


這表明,對聽者來說,Pr[green(r_true)] 的值取決于所觀察到的 usaid:

  • 如果他們聽到的是 “green”,則認為概率為 1(當然如此!);

  • 如果聽到的是 “pink”,則概率為 0;

  • 如果聽到的是 “square”,概率也為 1(因為唯一的正方形是綠色的);

  • 如果聽到的是 “round”,概率為 1/2(因為兩個圓形中只有一個為綠色)。

小結

從前面兩節中我們可以總結出幾個關鍵點:

  • 靜態層面

    上,memo 維護一棵“心智框架樹”(tree of frames),用于追蹤智能體、它們的選擇,以及它們對其他智能體選擇的 知識或不確定性

  • chooses

    創建一個選擇:對該選擇者來說是 已知的 ,但對建模該選擇者的智能體來說是 不確定的

  • observes

    讓一個原本不確定的選擇對觀察者來說變得 已知

這種機制確保了模型在語法和語義層面都能正確表達智能體之間的信念與推理關系,從而避免諸如“讀心術”或“心靈控制”等邏輯錯誤。

智能體必須知道自己做出選擇的概率分布。這些規則確保了 memo 模型與我們對“心智能動性”(agency)的直覺保持一致。

在運行時層面 ,memo 為每一個心智框架維護一個數組,該數組表示該智能體在已知選擇條件下對不確定選擇的聯合概率分布。

  • 數組的每個維度對應框架中跟蹤的一個選擇;

  • chooses

    會引入新的維度;

  • observes

    會對特定維度進行歸一化;

  • E[e]

    則通過張量收縮來計算。

這些操作都可以在現代硬件上輕松實現并行化,從而使得推理過程高效運行。

3.3 實現細節

在設計 memo 時,一個關鍵考量是:與科學家們偏好的工作流保持良好的互操作性

研究人員常常面臨的一個痛點是:需要在用于建模的概率編程語言(如 WebPPL)和用于數據分析的腳本語言(通常是 Python、R 或 MATLAB)之間來回傳遞數據。事實上,我們的許多同事都曾報告說他們手動復制粘貼輸入輸出內容,或者編寫脆弱的 shell 腳本來生成和解析日志文件。

因此,我們選擇將 memo 嵌入 Python 中實現 ,并基于 JAX 數組編程庫進行構建。這一決定帶來了額外的好處:

  • 使 memo 立即兼容現有的 Python 工具鏈(IDE、Notebook 等);

  • 無縫接入以數組編程為核心的科學計算 Python 生態系統(包括廣泛使用的數據分析與可視化包);

  • 并能夠利用快速發展的 JAX 生態(包括深度學習、物理仿真和強化學習相關包)。

為了在 Python 中嵌入 memo,我們提供了 @memo 裝飾器,它會:

  1. 解析模型定義的源代碼;

  2. 將其對應的 Python 抽象語法樹(AST)翻譯成 memo 的抽象語法樹;

  3. 然后將其發送給 memo 編譯器處理。

接著,我們將 memo AST 編譯為一個調用 JAX API 的 Python 程序。

當調用一個 memo 模型時,JAX 的即時編譯器(JIT)會追蹤生成的 Python 程序,并將其編譯為原生代碼,從而實現高效的執行性能。

4 應用與評估

本節首先介紹來自 RR(遞歸理性)范式的四個經典模型,并將它們作為案例研究來評估 memo 的表現(§4.1)。對于每個模型,我們將 memo 的實現與傳統概率編程語言(PPL)中由專家編寫實現進行比較。我們展示了 memo 在通常情況下不僅運行速度更快 ,而且代碼量更少

接下來,我們簡要介紹了目前有四個認知科學研究項目正在使用 memo,并強調 memo 是如何以不同方式影響這些正在進行的研究工作的(§4.2)。

最后,我們展示了兩個高級使用示例,構建了一些在其他 PPL 中實現起來特別困難的模型,以展示 memo 的強大表達能力(§4.3)。

我們在表1中總結了所有這些模型的實驗結果。根據我們在第 1.1.2 節中的分析,我們測量了計算每個模型所有相關條件所需的總時間——這是研究人員日常工作中最相關的負載指標。我們排除了 JIT 編譯器預熱所需的時間 ,因為這個固定成本遠小于模型擬合和交叉驗證所帶來的可變成本。


除非另有說明,所有模型都在 Apple M2 處理器上進行了計時測試。我們也報告了每個模型所需的代碼行數 (Lines of Code, LOC),以大致衡量實現一個模型所需的開發工作量、潛在 bug 的數量,以及 memo 所提供的領域抽象帶來的效率提升。


4.1 案例研究

我們從 RR 范式中的四個經典模型開始研究:

  1. 理性溝通

    (Rational Communication)

  2. 雙人博弈

    (Two-player Games)

  3. 順序規劃

    (Sequential Planning)

  4. 信念空間推理

    (Belief-space Reasoning)

我們將這些模型現有的實現(來源于教材、文檔等)與使用 memo 重新實現的版本進行了對比。通過這些案例,我們展示了 memo 在建模復雜遞歸理性行為方面的優勢。

4.1.1 標量蘊含(Scalar Implicature)

標量蘊含是一種語言現象:當說話者說出一個較弱的陳述時,聽者會將其理解為較強的陳述并不成立 [79]。一個經典例子是:“some(一些)”常常意味著“not all(不是所有)”。

例如,如果一個人說:“我今年有些 PLDI 投稿被接收了”,聽者通常會推斷出“并不是全部都被接收”。盡管從技術上講,即使所有投稿都被接收 ,說“some”(即數量 > 0)也并非錯誤。

理性言語行為框架 (RSA)很好地預測了這一現象 [65]。我們設定:


4.1.2 謝林協調博弈(Schelling Coordination Games)

經濟學家謝林(Schelling)[116] 研究了一種情境:兩個參與者在無法溝通的情況下被迫達成協調 。在一個如今著名的實驗中,他讓36名學生設想自己需要在紐約市與一個陌生人會面,但事先并未約定具體的時間和地點。大多數人表示他們會嘗試在中午時分前往中央車站 (Grand Central Terminal)。這種“謝林點”(Schelling point)是通過遞歸推理產生的:人們會思考他人最可能去的地方,從而使得某個顯著的地點自發地成為共識。

Stuhlmüller 和 Goodman [125] 用一對相互遞歸的概率程序(“Alice” 和 “Bob”)對這種推理進行了建模。他們研究了一個簡化的情境:一座小鎮上有兩家酒吧,其中一家略微更受歡迎。他們發現,只需幾層遞歸推理,理性智能體就會幾乎一致地選擇那家更受歡迎的酒吧。

我們在 memo 中實現了這個模型,并將其與 Evans 等人 [47] 教材中的 WebPPL 實現進行了對比(見圖7)。為了測試運行時間,我們將場景擴展為 100 家酒吧 ,并考慮了 100 層遞歸推理


如表1所示:

  • memo 實現僅需 15 行代碼

    ,而 WebPPL 實現則有 25 行;

  • 運行速度方面,memo 僅需 5.8 毫秒 ,而 WebPPL 需要 1.1 秒

傳統 PPL 中的“作惡者混淆”風險

這個例子很有趣,因為它突顯了傳統 PPL 中常見的“作惡者混淆”(perpetration confusion)問題(見 §1.1.1)。

在這個特定案例中,教材中的 WebPPL 實現恰好得出了正確的結果,但只要稍作改動,就可能導致錯誤。例如,如果我們想預測 Alice 對她能成功與 Bob 會面的信心程度,可能會傾向于寫一個新的模型 alice',直接推斷 a == b 的概率,而不是推斷 a 的概率。然而,這樣做的結果會錯誤地返回 100% 的信心 ,仿佛 Bob 總是會選擇與 Alice 相同的酒吧——這顯然是不合理的樂觀假設。

相比之下,memo 強制我們明確表達我們想要計算的內容 ,從而避免此類錯誤。在 memo 中,我們需要寫出:


即:觀察者對 Alice 所賦予的“成功會面”概率的期望值。

為什么這里必須使用觀察者的期望呢?這是因為在觀察者看來,Alice 自己選擇哪家酒吧是不確定的(這會影響她的信心)。很容易忽略這一細節,但如果遺漏了外層的 E[...],memo 就會在編譯時靜態報錯。這正是 memo 幫助程序員發現模型中隱藏假設的一種方式。

觀察者視角 vs. Alice 的主觀視角

值得注意的是,Alice 對自己成功的信心,與觀察者對她是否能成功會面的信心是不同的。

如果我們要在 memo 中建模后者,可以定義一個觀察者來模擬 Alice 和 Bob 分別選擇 ab,然后計算:


有趣的是,我們發現:觀察者對 Alice 成功的信心略高于 Alice 自己的信心

這是因為:

  • Alice 在第 d 層建模的是 Bob 在第 d?1 層的行為;

  • 而觀察者在第 d 層同時建模了 Alice 和 Bob 都在第 d 層的行為。

因此,觀察者擁有更完整的全局視角,從而得出更高的成功概率估計值。

這一現象再次體現了 memo 在建模復雜心智交互時的清晰性、安全性與表達能力。

4.1.3 通過值迭代進行馬爾可夫決策過程(MDP)規劃

馬爾可夫決策過程 (Markov Decision Process, MDP)是用于建模序貫決策 (sequential decision-making)的基礎形式化工具 [19]。

抽象地講,一個 MDP 描述了:


我們可以在 memo 中實現一個 MDP,方法是將智能體建模為對其未來的自己進行遞歸推理 。這樣編譯出的數組程序本質上就是一種策略迭代 (policy iteration)的實現。

更具體地說,在 memo 中我們可以自然地表達如下邏輯:


我們將 memo 實現與 WebPPL 中的實現進行了比較,使用了一個迷宮導航 MDP (這是測試 RR 模型的常見設置)。

我們讓一個智能體在一個 9×9 的迷宮中進行決策:

  • 狀態空間 S :81 個格子;

  • 動作空間 A :四個基本方向(上下左右);

  • 轉移函數 T :表示合法移動;

  • 獎勵函數 R :獎勵智能體盡快到達目標格子。

為了在這個迷宮中規劃路徑,我們運行了 1000 輪策略迭代 (policy iteration)。

如表1所示:

  • WebPPL 和 memo 的代碼行數相近(75 行 vs. 60 行),

  • 但 memo 的運行速度要快 40 倍 (10.3 秒 vs. 0.27 秒)。

當我們擴展到一個 21×21 的網格 時:

  • WebPPL 需要 79 秒 (我們甚至不得不繞過其內部超時限制);

  • 而 memo 只需 6.9 秒

這正是本文中最慢的模型之一,因此也是展示 memo 中GPU 加速價值 的好機會。

在 NVIDIA GeForce RTX 4070 上,同樣的計算只需 0.377 秒 ,而且無需編寫任何新代碼

圖8(a-b) 展示了在一個 21×21 的“memo 主題”迷宮中計算出的價值函數(value function),該迷宮有兩個可能的目標位置:西北角(NW)和東南角(SE)。正如預期的那樣,價值函數對應于從每個狀態到目標的最短路徑長度。


借助這個模型,我們可以重現計算社會認知領域最具影響力的模型之一:“逆向規劃 ”(inverse planning)[13]。它模擬了人們理解彼此行為的能力。

從貝葉斯視角來看,如果我們假設一個智能體是理性地行動 [61, 83, 84],那么我們就可以根據其觀察到的行為 來推斷其未知的目標

圖8(c-d) 展示了在 memo 中進行的此類推斷(僅需額外 10 行代碼,推理耗時 9.8 毫秒):

  • 例如,如果智能體位于 “O” 下方,并向西移動了一步,則我們會強烈推測它正前往西北角(圖c);

  • 但如果智能體位于下方的 “M” 處,并向西移動,則我們對其意圖會感到不確定,因為從那個位置出發,無論是去哪個目標(NW 或 SE),向西都是合理的動作(圖d)。

這一示例再次展示了 memo 在建模復雜心智推理任務中的強大表達能力、高效性以及可讀性。

4.1.4 在信念空間中進行 POMDP 規劃

部分可觀馬爾可夫決策過程 (Partially-Observable Markov Decision Process, POMDP)將 MDP 形式化擴展為描述那些無法確定自身當前狀態的智能體 [7, 85]。


在 POMDP 中,智能體常常表現出“探索-利用”(explore-exploit)行為:它們首先采取一些具有認知價值的動作(epistemic actions),獲取有信息量的觀測,然后利用這些積累的知識高效地追求獎勵。

一種常見的 POMDP 規劃方法是信念空間規劃 (belief-space planning):我們可以將任意 POMDP 轉換為一個擴展的標準 MDP,其中:

  • 智能體對真實狀態的當前信念(belief)本身被視為一種“信念狀態”(belief state);

  • 信念狀態之間的轉移遵循貝葉斯信念更新規則 [24]。

在這里,我們考慮了一個經典的“Hello World”級 POMDP 示例:“啼哭嬰兒問題 ”(crying baby problem)[90]。

在這個問題中:

  • 嬰兒可能處于兩個狀態之一: S={sated,hungry}

  • 父母每一步可以采取三種動作之一: A={feed,sing,ignore}

  • 盡管無法直接知道嬰兒的真實狀態,但父母每一步都會觀察到嬰兒是否在啼哭: o∈Ω={crying,quiet}

我們使用了 Kochenderfer 等人 [90] 提供的狀態轉移函數 T 和觀測函數 O 來建模。

從抽象層面來看,這個 POMDP 的最優策略是:

如果父母確信嬰兒餓了,就去喂食;否則就忽略嬰兒(絕不唱歌! )

通過 memo,我們可以自然地建模這種基于信念的遞歸推理過程。智能體可以在其心智模型中模擬自己未來的信念狀態,并據此做出最優決策。

這一示例進一步展示了 memo 在處理現實世界中不確定性更強、推理更復雜的任務時的強大建模能力與效率優勢。

我們采用了一個現有的“啼哭嬰兒”POMDP 實現 [46],并使用一個由專家直接在 Julia 中手動編寫并優化的 、現成的 POMDP 求解器對其進行求解(即不是通過概率編程語言中的自動推理實現)[6]。我們將該實現與 memo 中的實現進行了對比。

在這兩種實現中,我們都對父母關于嬰兒是否饑餓的信念進行了離散化處理:將區間 [0, 1] 均勻劃分為 50 個可能的信念狀態。

如表1所示:

  • Julia 版本

    需要 43 行代碼 來實現模型,另外還需要 199 行代碼 實現一個 POMDP 求解器;

  • memo 版本

    則只需 30 行代碼 實現模型, 61 行代碼 實現 POMDP 求解器。(這個求解器的一個通用版本已經作為工具內置在 memo 中。)

兩者的性能相當(25ms vs. 26ms)。

圖9 展示了 memo 計算出的信念空間價值函數 ,成功復現了 Kochenderfer 等人 [90] 的結果(見其書中的圖 F.10)。



這一案例進一步表明,memo 不僅在代碼簡潔性和建模效率上優于傳統方法,還能保持與專業手工優化代碼相當的運行性能,展示了其在復雜不確定性建模任務中的實用性和高效性。

4.2 memo 在實際研究中的應用

接下來,我們簡要介紹目前有四個真實世界的研究項目 正在使用 memo。我們感謝這些同事允許我們在本文中描述他們正在進行的、尚處于早期階段的研究工作。

4.2.1 撒謊行為建模(Lie Production)

Yi 等人 [138] 正在開發一種關于“撒謊”的理論。他們設計了一個簡單的實驗:兩個角色(“說謊者”和“審判者”)各自對世界的了解都是不完整的。“說謊者”需要回答“審判者”的問題,并被激勵去撒謊——但又必須小心不要被識破。

這是一個非常復雜的模型,因為其中涉及許多不同層次的心理狀態及其對心理狀態的推理。例如:

  • 說謊者必須思考:審判者可能知道什么?

  • 審判者認為說謊者知道什么?

  • 審判者會根據說謊者的陳述推斷出什么?

Yi 等人最初在 Gen PPL [40] 中實現了他們的模型。我們與他們合作,將該模型重新用 memo 實現。

如表1所示:

  • 模型代碼從 220 行 縮短到了 50 行

  • 推理速度提升了約 2,000,000 倍

也許更重要的是,memo 讓研究人員更容易擴展他們的模型。他們早就想建立一個“識別謊言”的模型(“call B.S.”),通過對自己所構建的“產生謊言”模型進行推理來實現。他們此前預計這類模型需要數周時間才能實現,但在 memo 的幫助下,他們僅用一個小時就完成了實現,并驗證了它能夠預測他們希望捕捉的現象。

4.2.2 風險性唾液共享(Risky Saliva Sharing)

Hung 等人 [81] 想要建立一個計算模型,用于解釋人們如何通過觀察他人的行為來直覺地判斷彼此的社會關系。例如:

  • 如果看到兩個人共用一杯飲料,我們會根據他們是共用一根吸管、各用一根吸管,還是將飲料倒入兩個杯子來判斷他們關系的親密程度。

  • 更令人驚訝的是,即使是年幼的兒童也能從“風險性唾液共享”中做出這種推理 [49, 126]。

在他們的模型中:

  • 兩個智能體基于親密程度和風險感知選擇是否共享唾液;

  • 第三個智能體則根據觀察到的行為來推斷這兩個智能體之間的親密程度。

Hung 等人最初是在 R 編程語言中開發這個模型的 [82]。我們協助他們將其改寫為 memo 版本。

如表1所示:

  • 代碼行數從 125 行 減少到 38 行

  • 推理速度提升了約 3000 倍

這使得統計分析(包括模型擬合和交叉驗證)的時間從原來的 6 小時 縮短到了 6 秒鐘 ,極大地提升了研究人員迭代和探索新想法的能力,這是以前無法想象的。

4.2.3 同理心式解釋(Empathetic Explanation)

Chandra 等人 [30] 關注情緒在醫患互動中的作用。例如,醫生如何向病人解釋其絕癥成因,以最小化病人對其人生選擇的后悔感。

研究人員假設:人們期望醫生在溝通中考慮情緒因素,并為此收集了實證數據來檢驗這一假設。他們隨后結合以下模型構建了一個“同理心解釋”模型:

  • 最新的解釋模型 [29];

  • 情緒預測模型 [80];

  • 干預模型 [35]。

如表1所示:

  • 該模型用 memo 編寫了 120 行代碼

  • 每次運行只需 92 微秒

他們使用現成的 Adam 優化器 [42] 來擬合參數。研究人員報告稱,在建模因果性和后悔感的反事實推理過程中,memo 幫助他們發現了細微的問題。

4.2.4 撫養行為建模(Caregiving)

Kleiman-Weiner [88] 致力于研究父母如何照顧孩子。他們設想了一個簡單模型:父母可以選擇讓孩子自己解決問題,或者“接管”任務替孩子完成——但這樣做的風險是可能會讓孩子覺得自己不被信任。

在最初的 Python 實現中,出于可擴展性的考慮,他們只能使用一個高度受限、可解析求解的子模型 來表示孩子的行為。

而 memo 允許他們擺脫這一限制,轉而使用更加靈活的孩子行為模型。該模型利用了 memo 內置的 POMDP 庫(見 §4.1.4)。

4.3 擴展功能:新類型模型的實現

最后,我們通過兩個演示展示 memo 所使得一些以前難以實現、現在變得可行的新類型模型。

4.3.1 字體設計(Font Design)

七段顯示器 (Seven-segment display)是一種簡單的電子元件,常用于計算器、微波爐等設備上顯示字母和數字。它由七個可獨立開關的段組成,共有 種可能的顯示配置。

在設計這類顯示器的“字體”時,設計師必須確保所使用的字體是無歧義的 。例如:

  • 如果設計師將字母 “g” 映射為某個特定的七段組合(比如:點亮某些段),這個圖案可能會被誤認為是數字 “9”;

  • 在這種情況下,也許更好的做法是用這一組合作為大寫字母 “G” 的表示——盡管這又可能與數字 “6” 產生混淆!

我們可以使用 RSA 來為這種顯示器設計“字體”,將 U 設為 128 種顯示配置(即所有可能的七段組合),并將 R設為需要顯示的一組字符(例如英語中不區分大小寫的 36 個字母數字字符)。

核心思想是從說話者 (設計師)的角度出發應用 RSA,其中“聽者”是一個基于計算機視覺的光學字符識別模型(? = 0 的天真聽者)。

由于 memo 建立在 JAX 之上,我們可以利用其現有的深度學習生態系統,將 RSA 與深度學習無縫結合。在這個示例中,我們使用了 Flax [73] 庫訓練了一個 ResNet [72] 網絡,用于對 EMNIST 數據集 [37] 中的字母數字字符進行分類。

一種表示字符 的天真策略是:選擇一個顯示配置 ,使得當輸入該配置渲染出的圖像時,神經網絡對字符 的激活值最大。然而,這種策略會導致字體產生歧義,如圖 10 所示。

如果我們轉而使用神經網絡來建模 RSA 中的基礎“聽者”,那么說話者就能有效地區分那些容易混淆的字符對。

這個模型運行效率很高(僅需 124 毫秒),因為 memo 在內部并行化了圖像渲染,并批量調用了神經網絡。

這種深度集成在傳統概率編程語言(PPL)中很難實現,因為在那些系統中,外部函數必須串行調用(甚至可能需要從頭重新實現)。雖然這個例子本身相對簡單,但認知科學界越來越關注那些能推理其他智能體感知和認知的 RR 模型——這些模型會將計算機視覺、圖形引擎、物理模擬器和語言模型納入推理循環中 [20, 28, 32, 39, 98, 144]。因此,我們需要能夠支持高效實現的新型 PPL,而 memo 正是朝著這一方向邁出的重要一步。

4.3.2 “Takeaway” 游戲

人們有時會根據他人思考的程度 來對彼此做出推斷。例如:

  • 如果你向朋友提出一個難題,而他立刻給出了正確答案,你可能會推測他其實早就知道答案。

認知科學領域的最新研究試圖建模人們如何將思考過程的時間動態 納入推理之中 [21, 22, 129]。正如我們在 §2.5.2 中所討論的那樣,memo 的設計正是為了支持這類模型的構建。

在這里,我們將展示一個用于進行此類推理的簡化模型。

我們考慮一個名為 “1-2 Takeaway” 的游戲,它是尼姆博弈(Nim)的一個簡化變種 [63]。規則如下:

  • 桌上有 n 根火柴;

  • 玩家輪流移除 1 或 2 根火柴;

  • 最后拿走最后一根火柴的玩家獲勝。

我們可以很容易地在 memo 中建模這個游戲,并為每個 n 恢復出最優策略。

通過歸納法可以很容易看出(也容易證明),最優策略是:每次留下火柴數為 3 的倍數 。如果當前 n 已經是 3 的倍數,則不存在必勝策略。

知道這個“技巧”的玩家即使面對很大的 n,也能輕松計算出最佳動作;而不知道這個技巧的玩家則必須遍歷指數級增長的游戲樹來尋找答案。

設想這樣一個場景:

你看到某人坐下來快速玩了一輪 Takeaway。他數了數桌上的火柴數量 n,然后立刻做出了一個最優動作。那么,他是否知道那個“技巧”呢?我們如何從他的行為中推斷這一點?

我們的直覺是這樣的:

  • 對于較小的 n (例如 1 或 2),很難判斷——因為即便不知道技巧,也很容易算出正確動作;

  • 如果 n 是 3 的倍數(即處于劣勢位置),也很難判斷——因為即便知道技巧,玩家也只能隨機選擇動作;

  • 但如果 n?1 且不是 3 的倍數,我們就傾向于懷疑他知道這個技巧:因為在這么短的時間內完成完整博弈論計算并得出正確動作的可能性很低。

    • 如果我們觀察到他連續做出多個正確動作,這種懷疑就會進一步增強。

我們將通過以下假設來建模這一推理過程:

假設該玩家要么是知道技巧的 (cognizant),要么是不知道技巧的 (oblivious):

  • 如果玩家是 知道技巧的 ,他們會 始終采取最優動作

  • 如果玩家是 不知道技巧的 ,他們會基于真實效用值,以 softmax 的方式選擇動作;

    • 其中 softmax 的“溫度”(temperature)取決于所需的計算量;

    • 所需計算越多,動作選擇越“嘈雜”(noisy)。

觀察者(observer)的任務就是根據所觀察到的動作來推斷:該玩家是知道技巧,還是不知道技巧。

關鍵的一行代碼如下(即觀察者如何進行推理):


在這里,cost @ π(t) 表示玩家在時間范圍 t 內計算其最優策略 π 所需的浮點運算次數(FLOPs),而 α 是一個比例因子,用于將 FLOPs 轉換為“心理努力”的單位。

正如圖11所示,這種建模方式確實得出了我們預期的結果:


  • 當 n 很小或 n≡0(mod3) 時,觀察者對玩家是否知道技巧 不確定

  • 但隨著 n→∞ 且 n≡0(mod3) ,觀察者越來越傾向于認為玩家是“知道技巧”的。

這類模型在過去實現起來極具挑戰性,但在 memo 中,這個模型僅需 32 行代碼 ,運行時間僅為 116 毫秒

小結

memo 具有高度表達能力,能夠編碼以下各類模型:

  • 各種經典的 RR 模型;

  • 最新的現實世界模型;

  • 以及一些在傳統概率編程語言中難以實現的新型復雜模型。

與傳統 PPL 相比,memo 的代碼通常更短、更容易理解和推理。
在我們考察的所有經典模型中,memo 的運行速度都快于傳統 PPL 中專家編寫的實現(在 §4.1.4 中甚至與手工優化的求解器相當)。
而在最新的現實世界模型中,memo 的加速效果更加顯著,比研究人員之前實現的版本快了多個數量級

雖然我們在本文中沒有討論他們的工作,但已有其他研究人員使用 memo 來研究諸如相互凝視 (mutual gaze)、多模態推理 (multimodal inference)和懲罰行為 (punishment)等現象。一所大學(與作者無關聯)甚至開設了一門以 memo 為教學語言的社會認知春季課程。

最后,補充材料中還包含了大量額外的示例,包括:

  • 常見模式:如“賦能”(empowerment)[89] 和“期望信息增益”(expected information gain)[114];

  • 經典經濟博弈:如“最后通牒博弈”(Ultimatum)[100]、“貝葉斯說服”(Bayesian Persuasion)[86] 和 “三分之二猜謎游戲”(Guess 2/3 of the Mean)[70];

  • 以及各種邏輯謎題:如“蒙提霍爾問題”(Monty Hall)[119]、“謝麗爾生日問題”(Cheryl’s Birthday)[131]、“共餐密碼客”(Dining Cryptographers)[34] 和“紐康悖論”(Newcomb’s Paradox)[135]。

這些案例進一步證明了 memo 在建模心智遞歸推理方面的強大能力與廣泛適用性。

5 局限性與未來工作

memo 的大多數局限性來源于其基于數組的后端設計 。由于聯合分布被表示為數組,memo 不支持連續隨機變量 (除非離散化),也僅支持靜態已知選擇序列 (即數組軸)的控制流。

對于典型的現實世界 RR 模型來說,這些限制很少成為問題。盡管如此,我們仍對探索支持這些功能的替代(或混合)推理后端感興趣。

除了改進 memo 本身,我們也希望利用它來研究一些關于語言和心理理論的長期科學問題。例如:

  • 來自聾童使用手語的研究證據表明:學習用于心理理論的語言可能是理解虛假信念的關鍵 [41, 99, 107, 108, 117]。

  • 那么,分析 memo 所提供的領域抽象是否能幫助我們理解“專門語言”在心理理論中所起的作用?

此外,目前學界熱烈討論的一個問題是:大語言模型 (LLMs)是否具備類似人類的心理理論能力 [127]。如果我們把 memo 視作一種“思維語言”[51],是否能夠提升 LLM 的心智建模能力?就像讓 LLM 接觸代碼、定理證明器和概率編程語言可以提升其他類型的推理能力一樣 [105, 136, 142]?


6 相關工作補充

我們在第1節中已經討論了主要的相關工作。除此之外,memo 還與以下兩個方向的工作密切相關。

第一類相關工作 是近期對精確離散推理擴展性 的研究。例如:

  • Dice [78]

  • SPPL [115]

  • Genfer [141]

其中一些系統甚至將連續變量“位爆破”(bit-blast)為離散變量(如 HyBit [57])。
FSPN [124] 和 PERPL [36] 支持在存在遞歸的情況下進行精確推理。

這些語言通過巧妙地分解問題結構,試圖擴展到任意概率程序。而 memo 的一個關鍵洞察在于:在現實世界的 RR 模型這一特定領域中,我們可以通過在現代并行硬件上高效運行相對簡單的算法來實現擴展性 (見 §1.2.2)。

第二類相關工作 認知邏輯 (epistemic logics)[14, 48, 71, 75, 132] 和信念-欲望-意圖邏輯 (Belief-Desire-Intention logics)[59, 60, 137]。這些形式化方法長期以來被應用于經濟學 [9–11] 和計算機安全 [18, 26] 等領域,用于建模智能體的知識與信念。

memo 受這些邏輯的啟發,但建立在用概率建模信念強度的貝葉斯傳統之上。

  • 認知邏輯主要用于 證明關于知識本質的一般性陳述

  • 而 memo 則專注于 計算具體情境下人類行為的數值預測

最后,為了透明起見,我們指出:本文的兩頁擴展摘要正同時提交給一個非歸檔性質的工作坊進行評審 [4, 匿...

特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關推薦
熱點推薦
熬出頭了!跳水總教練定了,農民出身的全紅嬋,不用再卑微求出路

熬出頭了!跳水總教練定了,農民出身的全紅嬋,不用再卑微求出路

老吳教育課堂
2025-06-24 15:03:40
撒貝寧再見章子怡,章子怡說我覺得有點夢幻,撒貝寧說我很憂傷

撒貝寧再見章子怡,章子怡說我覺得有點夢幻,撒貝寧說我很憂傷

情感大頭說說
2025-06-25 12:38:00
上海這條高速早不擴晚不擴,偏要在上海松江站發展黃金期改擴建!

上海這條高速早不擴晚不擴,偏要在上海松江站發展黃金期改擴建!

西莫的藝術宮殿
2025-06-25 12:38:50
拉夫羅夫:西方國家試圖讓烏克蘭“無條件停火”

拉夫羅夫:西方國家試圖讓烏克蘭“無條件停火”

參考消息
2025-06-25 14:51:23
代言人奇跡生還,五天沒露面的哈梅內伊,卻開始安排自己的身后事

代言人奇跡生還,五天沒露面的哈梅內伊,卻開始安排自己的身后事

成視Talk
2025-06-25 13:45:00
2025最新高考分數線出爐,黑龍江考生最幸福,江蘇成最卷省份

2025最新高考分數線出爐,黑龍江考生最幸福,江蘇成最卷省份

阿柒體訊
2025-06-25 12:53:55
裝逼一時爽,牢飯吃個飽!臨沂23人持械打砸一輛寶馬車和車主…

裝逼一時爽,牢飯吃個飽!臨沂23人持械打砸一輛寶馬車和車主…

火山詩話
2025-06-24 05:47:18
人到中年,家里達到四個以上條件,你已經超越90%的家庭了

人到中年,家里達到四個以上條件,你已經超越90%的家庭了

小嵩
2025-06-24 16:25:58
退休人員速看!國家直接打錢到個人賬戶,這些補貼你能領嗎?

退休人員速看!國家直接打錢到個人賬戶,這些補貼你能領嗎?

南南說娛
2025-06-19 09:20:27
瓜達爾港投資了多少,建設了多少年,建成后為什么幾乎沒有輪船停靠?

瓜達爾港投資了多少,建設了多少年,建成后為什么幾乎沒有輪船停靠?

高博新視野
2025-06-23 16:19:10
小獵豹遭妻子套路又懷四胎,這是要組足球隊?

小獵豹遭妻子套路又懷四胎,這是要組足球隊?

毒舌八卦
2025-05-20 00:52:28
特朗普希望中國,能夠成為韓國一樣的國家

特朗普希望中國,能夠成為韓國一樣的國家

慢看世界
2025-06-24 10:29:38
江毅與湖北省委書記王忠林舉行會談

江毅與湖北省委書記王忠林舉行會談

人民產經觀察
2025-06-25 10:55:51
國家體育總局是正部級單位,機關部門數量有限,但直屬單位卻很多

國家體育總局是正部級單位,機關部門數量有限,但直屬單位卻很多

小圣雜談原創
2025-06-24 21:17:00
震驚!湖南一個古鎮花費50億,卻淪為“空城”,幾乎沒有游客!

震驚!湖南一個古鎮花費50億,卻淪為“空城”,幾乎沒有游客!

青眼財經
2025-06-07 10:32:14
肋骨紋身真的不疼嗎?以前沒發現周冬雨有紋身,而且面積還挺大

肋骨紋身真的不疼嗎?以前沒發現周冬雨有紋身,而且面積還挺大

小嵩
2025-06-07 08:51:34
北京今年計劃開通兩段地鐵,多座地鐵站將新增出入口

北京今年計劃開通兩段地鐵,多座地鐵站將新增出入口

新京報
2025-06-25 10:25:07
5億年前,有只三葉蟲被踩了一腳,科學家疑惑:人穿鞋去海底干啥

5億年前,有只三葉蟲被踩了一腳,科學家疑惑:人穿鞋去海底干啥

兔斯基聊科學
2023-07-17 20:28:58
事關醫護薪酬!官方出手:醫院回款大提速

事關醫護薪酬!官方出手:醫院回款大提速

醫學界
2025-06-25 09:30:20
特朗普騎虎難下,美債被大量拋售

特朗普騎虎難下,美債被大量拋售

傲骨真新
2025-06-25 13:20:41
2025-06-25 15:35:00
CreateAMind incentive-icons
CreateAMind
CreateAMind.agi.top
639文章數 11關注度
往期回顧 全部

科技要聞

小米YU7已下線500輛展車 26日前運往全國

頭條要聞

媒體:被洪森叔叔上了堂"現實的政治課" 佩通坦很受傷

頭條要聞

媒體:被洪森叔叔上了堂"現實的政治課" 佩通坦很受傷

體育要聞

山西太原大媽,在NBA闖出一片天

娛樂要聞

林志穎15歲兒子眉眼間神似易烊千璽!

財經要聞

3000億的泡泡瑪特,漲不動了?

汽車要聞

樂高樂園x比亞迪官配曝光!兒童駕駛學校來了

態度原創

教育
本地
數碼
親子
游戲

教育要聞

2025,多少分能上長沙師范學院??

本地新聞

被貴妃帶火的“唐代頂流”,如今怎么不火了

數碼要聞

安全、流暢、智能獲認可!鴻蒙電腦成夏季達沃斯中方辦公支持電腦

親子要聞

湖南某幼兒園監控下最觸目驚心的一幕:病態群體,早該曝光了

國服暴雪游戲登陸方式即日切換!戰網退出強綁網易

無障礙瀏覽 進入關懷版 主站蜘蛛池模板: 全州县| 清水县| 平潭县| 朝阳市| 青冈县| 泗洪县| 宁强县| 苏州市| 南靖县| 长葛市| 德令哈市| 内丘县| 黄山市| 丰原市| 静安区| 阿城市| 博白县| 青海省| 砀山县| 青浦区| 竹北市| 兴国县| 塔河县| 云林县| 永善县| 苍溪县| 松江区| 久治县| 康定县| 陆川县| 葫芦岛市| 深水埗区| 延川县| 阳江市| 莲花县| 芜湖市| 达拉特旗| 沅江市| 清流县| 金沙县| 文登市|