Theories of Mind as Languages of Thought for Thought about Thought
將心智理論視為思維的思維語言:融合了貝葉斯網絡/因果文法模型和編程模式模型的優點
https://osf.io/qhc6y/download
深入:
摘要
一種“心智理論”(theory of mind)是什么樣的東西?作為認知科學家,我們如何將所研究的各種心智理論形式化?在本文中,我們認為將心智理論視為一種編程語言是有價值的:這是一種專門用于設定和推理涉及其他心智問題的語言。借鑒編程語言理論與歷史中的思想,我們展示了這種視角如何幫助我們形式化心智理論中的概念,精確闡明多個心智理論之間的差異,并推理我們如何隨時間發展自己的心智理論。
引言
我們應該如何看待心智理論?在有影響力的“理論論”(Carey, 1985;Gopnik & Meltzoff, 1997)觀點下,我們應該把心智理論確實看作是一種理論:類似于科學理論(Gopnik & Wellman, 1992)。但在這里,“理論”具體指的是什么?我們如何用精確、計算的方式表述一個給定的心智理論 θ?而且,θ 究竟是什么樣的東西——我們又該如何形式化 θ 所屬的可能心智理論空間 T?
一種能夠表示心智理論的精確數學語言具有三個關鍵價值。
首先,這樣的語言可以讓我們以明確且無歧義的方式陳述關于心智理論的想法和假設。
其次,這樣的語言使我們能夠系統地將這些想法和假設實例化為可執行的計算模型,從而進行有價值的模擬和分析——例如,Horschler 等人(2023)最近展示了如何利用一系列可執行模型來刻畫非人類靈長類動物的心智理論。
最后,對心智理論的系統性計算基礎可以被用來以原則性方式設計具備類人社會智能的真實世界人工智能系統。
因此,本文的目標是提供一種形式化 θ 和 T 的方法。我們提出,應該將心智理論 θ 視為一種編程語言(PL),在這種語言中,心智可以設定并解決涉及他人心理推理的問題。因此,心智理論的空間 T 就由可用于心理推理的潛在編程語言空間所定義。
本文從四個階段展開這一觀點。
我們首先討論兩個先前試圖形式化心智理論的工作,并說明為何新的解釋是有價值的。
接著,我們通過一個具體的編程語言示例來介紹我們的觀點,該語言體現了一種特定的心智理論。我們使用這個例子展示編程語言的設計如何具象化心智理論中的概念。
然后,我們從具體走向一般,討論我們的觀點如何幫助我們根據編程語言語法和語義的變化,形式化不同可能心智理論之間的差異。
最后,我們討論我們的觀點如何通過借鑒編程語言設計的歷史,為我們理解理論變遷過程提供洞見。
三種心智理論的形式化嘗試
我們希望從心智理論的形式化中獲得什么?在我們看來,對心智理論的正式描述至少應能解釋它們的兩個關鍵特征:(1)心智理論如何使其擁有者能夠高效地表示和推理涉及他人心理的情境;(2)這些理論的擁有者如何在面對新證據時成長、修正或完全替換其理論。
貝葉斯網絡模型早期的一種形式化嘗試(Gopnik 等人,2004;Gopnik & Wellman,2012)通過將心智理論形式化為因果貝葉斯網絡(Pearl,2000)來回應這些需求。在此模型中,諸如代理者的信念和欲望等潛在概念可以表示為貝葉斯網絡中的節點,有向邊指向該代理的行為(圖1)。預測和規劃等任務可以通過高效的概率推理算法來支持(Baker 等人,2008)。最終,理論本身也可以在新證據面前發生變化,通過在可能的貝葉斯網絡空間上進行層次推理(Goodman 等人,2006)。例如,一個孩子起初可能高度確信心靈可以用圖1(a)所示的網絡很好地建模。隨著時間推移,她可能會更偏好圖1(b)中那種不夠簡潔的網絡,因為發現它在感知受限的情況下更能準確建模心靈。
這個模型面臨兩個挑戰。首先,為每一個可能的社會情境編寫一個貝葉斯網絡實際上是不可行的。某一時刻一個代理者的信念和欲望或許可以用固定的貝葉斯網絡表示,但人類對心理的推理能力是無限的、生成性的、遞歸的:我們可以同樣輕松地推理一個代理者對他人心靈信念的信念,并隨著行為而動態變化。這表明固定貝葉斯網絡不足以勝任心智理論的表征任務,挑戰了第一個需求(1)。其次,該模型并未充分解釋一個人如何發展理論。Goodman 等人(2006)的模型考慮了在兩個預設貝葉斯網絡之間的推理,但未解釋這些假設本身的來源,挑戰了第二個需求(2)。
為應對這些挑戰,Tenenbaum 等人(2007)提出將直觀理論形式化為因果文法而非固定貝葉斯網絡,后者可以生成一系列針對特定情境的貝葉斯網絡。因果文法支持在一個領域內對無限多情境進行推理,并通過文法生成的假設進行推理來實現學習。然而,“文法”的形式體系仍然不足以表達心智理論的全部豐富性——例如,無法表達關于信念的遞歸信念(Griffiths & Tenenbaum, 2007)。
編程模式模型 另一種方法源于通用概率編程語言(PPL)的發展,如 Church(Goodman 等人,2012)和 WebPPL(Goodman & Stuhlmüller,2014)。在 PPL 中,復雜的概率模型可以通過簡單的程序生成:例如,貝葉斯網絡中重復的節點可以由循環自動產生。
基于這一思想,Goodman 等人(2015)將心智理論視為一種在通用 PPL 中的“編程模式工具箱”。例如,在這個框架下,表示一個理性、目標驅動的代理者行為就對應于“通過推理進行規劃”(planning-as-inference,Botvinick & Toussaint,2012)這一編程模式,其中代理者為了實現某個目標,會推斷出“哪些行為可能導致了該目標達成”的結果。具體而言,在 WebPPL 中,我們可能會這樣編寫代碼:
像因果文法一樣,這些編程模式使程序員能夠靈活地生成特定情境的概率模型。然而,這些模式比因果文法強大得多。例如,表示“對思考的思考”或遞歸性的社會推理,就對應于嵌套推理 (nested inference)這一模式:即在一個本身也在遞歸執行推理查詢的概率模型上運行推理查詢(Stuhlmüller & Goodman,2014;Zhang & Amin,2022)。
具體來說,如果我們想要根據觀察到的行為 observed_action
來推斷一個代理者的目標,也就是執行逆向規劃 (Inverse Planning, Baker, Saxe, & Tenenbaum, 2009),我們可能會這樣寫:
像因果文法一樣,這些編程模式使程序員能夠靈活地生成特定情境的概率模型。然而,這些模式比因果文法強大得多。例如,表示“對思考的思考”或遞歸的社會推理就對應于嵌套推理 (nested inference)這一模式:即在一個本身也在遞歸執行推理查詢的概率模型上運行推理查詢(Stuhlmüller & Goodman,2014;Zhang 等人未發表)。在實踐中,這個工具箱取得了顯著成功,并已被用于定量建模社會認知中一系列復雜的心理現象(Evans 等人,2017)。
那么我們是否終于解決了需求(1)呢?當然,我們在恢復人類思維的無限性、生成性和遞歸性方面取得了進展。但編程模式仍然不是對心智理論令人滿意的正式化,原因有兩個:
首先,正如我們將在本文后面展示的那樣,很容易寫出應用這些編程模式的模型,但其行為卻違背我們的直覺——因此,這些模式并未完全捕捉到典型心智理論中的關鍵方面。其次,更重要的是,我們現在失去了(2)理論變化的能力:并不存在一個形式化的、“可列舉”的“編程模式”結構,供我們在思考心靈時進行推理。
編程語言模型 因此,在本文中,我們提出一種新的視角,它融合了貝葉斯網絡/因果文法模型和編程模式模型的優點。在我們的觀點下,心智理論不像一組編程模式,而更像是一整門編程語言 。與 Church 和 WebPPL 一樣,它是一種概率編程語言。但不同于 Church 或 WebPPL 的是,它不是一種通用的概率編程語言,而是一種領域特定語言 (domain-specific language,簡稱 DSL),專門用于關于心靈的推理領域。
在編程語言理論這一學科中,長期以來一直有設計 DSL 來表達各個領域理論的傳統(Bentley, 1986;Bernstein & Kjolstad, 2016;Iverson, 2007),包括一些科學領域的 DSL,比如經典力學理論(Sussman & Wisdom, 2015)、光線光學(Hanrahan & Lawson, 1990)以及顏色感知(Chen, Chang, & Zhu, 2024)等。
與依賴程序員使用某些編程模式不同,DSL 的語法 直接提供了在目標領域中設定問題的概念詞匯表,而該語言的語義 則決定了這些問題是如何被解決的。于是,“理論”就被編碼在了語言的設計之中。
重要的是,任何編程語言的語法和語義都可以用數學方式形式化,甚至可以作為許多可能語法和語義集合(schema)中的成員加以機械化處理(Felleisen, Findler, & Flatt, 2009;Pierce, 2002)。因此,理論的變化 可以被形式化地建模為在可能編程語言空間上的學習過程 。
我們在這里說的 DSL 是什么樣的呢?
到目前為止,我們對 DSL 的討論還非常抽象。在繼續之前,讓我們簡要介紹一個專門用于“推理之推理”的領域特定語言(DSL)的具體例子:一種名為 “memo” (mental models 的縮寫)的真實世界語言(Chandra, Chen, Tenenbaum, & Ragan-Kelley, 2025)。memo 被開發為一種實用工具,用于構建社會認知的高效計算模型。
在我們的討論中,我們將使用 memo(以及之后的一些假設變體)來舉例說明問題,就像 Goodman 等人(2015)在討論“概率化思維語言假說”時使用真實世界語言 Church 來舉例一樣。
讓我們先快速了解一下 memo。在 memo 中,模型的核心是代理者做出選擇 的過程。例如,假設 Ali 在某天下班后選擇了一家酒吧 b 去喝酒。因為他是一個理性代理者,所以他更有可能選擇離工作地點較近的酒吧。在 memo 中,我們可以使用 chooses
表達式來建模這個選擇行為,表達 Ali 從所有酒吧集合 Bars 中選擇一家酒吧 b,其概率與(wpp,即 “with probability proportional to”)從工作地點到 b 的距離的某個遞減函數成正比:
為何要使用 DSL?“少”如何能“多”?
memo 中的語句,如 chooses
、observes
和 thinks
,大致上對應于通用概率編程語言(PPL)中的采樣(sampling)、條件化(conditioning)和遞歸查詢(recursive querying)。那么,我們從在 memo 中編寫這些模型中到底獲得了什么好處呢?事實上,我們難道不是因為使用了一種專用語言而犧牲了表達能力嗎?這種語言可能并不適合表達其他類型的程序?
來自幾十年編程語言領域研究的一個重要教訓是:通用性是有代價的——那就是權力帶來的負擔 。讓一種語言更具表達力,可能會導致程序員無意中表達出他們本不想表達的內容,進而增加了程序員確保其程序正確性的負擔。因此,編程語言先驅 Hudak(1996)曾寫道:解決問題的理想抽象,是一種恰好匹配研究領域 的編程語言——“不多也不少”。
Church 和 WebPPL 本身正是這一原則的體現。理論上,根據圖靈完備性的邏輯,任何 WebPPL 程序的概率計算都可以手動用普通的(非概率性)編程語言實現——事實上,WebPPL 程序就是通過自動翻譯成 JavaScript 來執行的(Goodman & Stuhlmüller,2014)。WebPPL 相比 JavaScript 所增加的價值在于它保證了概率計算總是正確的——例如,通過確保分布始終被正確歸一化。WebPPL 通過限制用戶只能進行正確的概率推理,從而賦予他們構建復雜概率模型的能力。
同理,memo 相較于 WebPPL 的價值也在于它的限制性 :memo 通過限制用戶只能進行正確的關于代理者的推理,從而賦予他們構建復雜心智理論模型的能力。
讓我們用一個例子來說明這一點。考慮我們如何在 WebPPL 中實現 Ali-Zoe 場景。Ali 選擇一家附近的酒吧(示例1)可以通過應用“通過推理進行規劃”(planning-as-inference)模式來建模(這里我們不用 condition
,而是使用它的變體 factor
來建模有梯度的概率選擇):
當我們運行這個程序時,發現模型錯誤地預測他們相遇的概率為 0%。啊,當然會這樣!因為我們是在 zoe_b != ali_b
的條件下進行推理的,所以推斷結果從未滿足“他們相遇”的條件也就不足為奇了。
這里到底出了什么問題?問題是 WebPPL 在語言層面沒有對“代理者”概念的支持 ——它只支持“隨機選擇”的概念。Zoe 對 zoe_b
的選擇與 Ali 對 ali_b
的選擇在概念上是無法區分的。因此,當我們應用“通過推理進行規劃”這一模式時,WebPPL 所產生的推理就好像 Zoe 不僅可以選擇自己去哪家酒吧,還可以選擇 Ali 去哪家酒吧——也就是說,就好像 Zoe 的“一廂情愿”賦予了她對 Ali 的“心靈控制”。Chandra、Chen 等人(2025)將這類 bug 稱為“行為歸屬混淆”(perpetration confusion):即混淆了哪些代理者對哪些隨機選擇具有控制權的問題。
即使是經驗豐富的程序員,在實踐中也很容易遇到這種 bug(Levine, 2018)。
這個例子說明的是,盡管在通用概率編程語言中使用編程模式為我們提供了表達大量符合心智理論的計算的“積木塊”,但這些相同的“積木塊”也可以被組合起來表達一些違背我們心智理論 的計算——例如,表示一個代理者對另一個代理者擁有“心靈控制”的計算。而像 memo 這樣的 DSL 則通過提供恰好且僅限于 心理推理所需的結構來解決這個問題:例如,通過在語言層面上提供用于推理代理者的語法和語義,從設計之初就防止了“心靈控制”之類的問題。
在下一節中,我們將研究像 memo 這樣的 DSL 是如何通過其設計具體體現一種心智理論的。
DSL 如何體現一種心智理論?
一種編程語言最終是通過兩個形式結構來定義的:它的語法 (syntax)和它的語義 (semantics)。在本節中,我們將通過兩個案例研究來討論 memo 的語法與語義是如何具體體現心智理論中的原則的。
在此過程中,我們會展示如何通過對 memo 語法和語義的變化,生成我們可能希望形式化的不同版本的心智理論 。
心智理論的研究不僅旨在刻畫神經正常成年人所持有的理論,也包括兒童、老年個體以及非人類靈長類動物所持有的心智理論。此外,它還試圖刻畫這些心智對“非典型”心靈的理論,例如全知存在(如神明)和機器(Brink & Wellman, 2020);同時,它也試圖理解個體在觀察到世界中的某個代理者時,是如何決定將哪種理論歸因于該代理者的(Burger & Jara-Ettinger, 2020;Gray, Young, & Waytz, 2012)。像 memo 這樣的 DSL 的各種變體,可以作為這些理論的形式化表達工具。
一個關于語法的案例研究:錯誤信念
在 memo 中,thinks
語句用于表示代理者的信念 。我們已經看到如何使用 thinks
來表達代理者的真實信念和不確定性。但這個結構也可以用來表達代理者的錯誤信念 。例如,要建模“Zoe 認為 Ali 會選擇一家價格便宜的酒吧”,而實際上 Ali 選擇了一家離工作地點近的酒吧,我們可以這樣寫:
當然,這種表述的完整通用性在實際中通常是不必要的。大多數情況下,memo 的程序員只需表達一個代理者 正確地知道 另一個代理者的決定。假設 Zoe 提前就知道 Ali 的去向,也許是因為他在社交媒體上發布了動態。原則上,我們可以這樣建模:Zoe 認為 Ali 選擇了一家酒吧(服從任意分布),然后她 正確地觀察到了 他實際去了哪里:
當然,這種表述的完整通用性在實際中通常是不必要的。大多數情況下,memo 的程序員只需表達一個代理者正確地知道 另一個代理者的決定。假設 Zoe 提前就知道 Ali 的去向,也許是因為他在社交媒體上發布了動態。原則上,我們可以這樣建模:Zoe 認為 Ali 選擇了一家酒吧(服從任意分布),然后她正確地觀察到了 他實際去了哪里:
然而,這樣的寫法并不令人滿意:它顯得冗長,并且需要在 thinks
中選擇一個“虛擬”的先驗分布,而這個分布實際上從未被用于計算。
由于這類情況在日常建模中非常常見,memo 提供了一種高效、輕量級的簡寫方式來解決這些問題:knows
語句。
memo 中的 knows
語句與 Phillips 等人(2021)提出的“先知后信”(knowledge before belief)概念相一致:在許多方面,knows
比 thinks
/ observes
更為基礎。它的語法比 thinks
所具有的復合、遞歸結構更簡單(見圖2),在實踐中被使用的頻率也高于 thinks
或 observes
,而且在 memo 編譯器中實現所需的代碼行數也更少。
假設我們創建了一種新的“簡化版”memo,去掉了復雜的 thinks
和 observes
語句,只保留較簡單的 knows
語句。那么我們會失去什么?這種我們或可稱之為 “memo-junior” 的編程語言,仍然可以用于建模多種場景,例如前面“快速入門”部分中的示例1和示例2。然而,“memo-junior” 將無法表達這樣的情境:代理者擁有與現實世界真實狀態不同的自身信念 。通過這種方式,我們可以開始用 memo-junior 來形式化一個關于三歲兒童心智理論的候選假設。
語義的一個案例研究:全知性
考慮以下對示例3的實現嘗試:
這個模型在 memo 中會引發一個錯誤——問題在于 Zoe 在她的心理模型中并不知道 Ali 的選擇 b 。Zoe 根據 Ali 的 b 的某個函數來選擇酒吧是沒有意義的 ;事實上,她根本就不應該能夠計算這樣的函數 !如果 Zoe 能夠以這種方式選擇酒吧,那就意味著她對 Ali 有某種“讀心術”的能力。因此,memo 禁止這樣的語句。
但在這里,“禁止”到底在形式上意味著什么?
這一限制性規則可以在 memo 的形式化語義中找到(Chandra, Amin, & Zhang, 2025),它是一個推導 chooses
語句是否類型良好的前提條件(見圖3):如果一個代理者 a 使用某個表達式 e 來定義其做決策的概率分布,則 a 必須知道 e 的值 。
在實踐中,這個前提條件會在 memo 編譯器中被檢查,每當遇到一個 chooses
語句時都會執行一次檢查。如果檢查失敗,系統會提示程序員像我們在示例3中那樣進行修正:明確寫出 Zoe 對 Ali 選擇酒吧的心理模型 ,根據需要使用 knows
或 thinks
語句。
通過這種方式,memo 的語義中的前置條件與后置條件 捕捉了關于“能動性”(agency)的基本原則,例如“無法讀心”這一限制。memo 的設計者明確列舉了他們希望語義所體現的原則,并詳細解釋了 memo 的語義是如何將這些原則具體化的(Chandra, Chen 等人,2025,參見第3.1節)。但這些原則是由 memo 的設計者基于他們的直覺選定的——它們也可以被修改,以適應其他不同的直覺。
例如,如果我們放寬上面討論的那個前提條件,我們就可以開始形式化一種包含“全知代理者”可能性的心智理論——這正是兒童在描述父母時常常表現出的一種心理理論特征(Barrett, Richert, & Driesenga, 2001)。
理論——或者說 DSL——是如何隨時間變化的?
Gopnik 和 Meltzoff(1997)將理論變遷的動態類比為科學理論的變遷 (Kuhn, 1962;Lakatos, 1970)。但我們如何形式化地建模這一過程呢?將心智理論視為 DSL 的這種視角,提示我們可以把理論構建 看作是編程語言設計 。在本節中,我們將討論這一隱喻如何支持對理論變遷的三種視角。
理性視角
回到 Goodman 等人(2006)關于理論變遷是對貝葉斯網絡空間的層次推理 的觀點,我們現在可以說:理論變遷是由對可能編程語言的語法與語義的層次推理 所驅動的。我們朝著“有用性”的方向發展我們的理論——即更強的表達效率和預測能力。畢竟,現實世界中的編程語言也往往是這樣發展的:不是來自“象牙塔”式的創新,而是來自于在解決實際問題中體現出的實用性(Meijer, 2007;Meyerovich & Rabkin, 2012;Stroustrup, 2020)。
我們如何形式化這一想法?Ellis 等人(2021)描述了一個系統,它通過識別有用的模式并將它們形式化為可重用的抽象來“生長”DSL。如果我們把心智理論看作是 DSL,我們就可以想象用這樣的系統,以同樣的方式來形式化心智理論的成長過程。
文化視角
大量證據表明,學習用于心智理論的自然語言有助于兒童獲得表達錯誤信念的能力(De Villiers & de Villiers, 2014;De Villiers & Pyers, 2002;Morgan & Kegl, 2006;Pyers, 2020;Pyers & Senghas, 2009;Schick, De Villiers, De Villiers, & Hoffmeister, 2007)。例如,Pyers 和 Senghas(2009)寫道:“句子‘Mary thought she saw a ghost’中有一個主句是真實的(‘Mary thought’),而一個從句是虛假的(‘she saw a ghost’)。這樣的句法可能為學習者提供了理解他人錯誤信念所需的邏輯工具?!?/p>
DSL 的視角為形式化這一假設提供了一種方式。正如我們之前所討論的那樣,我們可以將三歲兒童的心智理論建模為一種缺乏復合 thinks
表達式的“memo-junior”。當兒童在他人信念的情境中接觸到“thinks”這個詞時,這可能會向兒童提供 thinks
所獨有的遞歸句法結構,從而幫助他們最終發明 thinks
的語義,并因此具備表達錯誤信念的能力。
實用主義視角
理論變遷是一個混亂的過程。Gopnik 和 Meltzoff(1997)描述了這樣一個過渡時期:一個新的理論被謹慎地考慮,但舊的理論尚未被完全放棄。事實上,Amsterlaw 和 Wellman(2006)發現,一個孩子在某一天的不同任務中,可能會表現出使用兩到三種不同心智理論的跡象。
有趣的是,編程語言的設計也遵循同樣的模式:編程語言的發展本身也是一個混亂的過程 (Steele Jr, 1998)。以 Python 編程語言為例,在2000年代初,Python 用戶越來越清楚地意識到,處理文本(“字符串”)的抽象存在根本性缺陷——該語言未能區分字符序列與代表這些字符的字節序列。這使得處理非拉丁字母的文本輸入變得困難,對于日益全球化的程序員群體來說,這是一個嚴重的問題。
因此,語言的設計者在下一個主要版本 Python 3 中徹底重新設計了這些抽象,并于2008年發布(van Rossum, 2008)。我們可以將這個新版本視為一種“范式轉變”。
但是——就像科學中的范式轉變一樣——這個過渡過程并非一蹴而就(Coghlan, 2012)。舊版本 Python 2 在接下來的十二年里仍然被廣泛使用,并直到2020年才正式被淘汰。在這期間,許多程序員遲遲不愿轉向 Python 3,原因多種多樣:有些人不想將現有的 Python 2 代碼重寫成 Python 3,還有一些人依賴的庫僅存在于 Python 2 中。
因此,在多年的時間里,選擇 Python 2 還是 Python 3 成為了一個實用問題:啟動新項目、或確實需要 Python 3 特性的程序員通常會選擇新版本,而維護大型現有代碼庫的程序員則盡可能繼續使用 Python 2。甚至有不少程序員會小心翼翼地編寫兼容兩個版本的代碼(Malloy & Power, 2019)。
我們可以預期,兒童采納新心智理論的過程也會呈現出類似的動態。盡管一種新的理論可能更具說服力,但保留一個舊的、經過檢驗的理論可能具有實用價值——也許是為了繼續利用那些僅與舊理論兼容的模型和計算方式。因此,一個孩子可能會表現出一些行為模式,對于觀察者來說,這些模式似乎與任何一種特定的心智理論都不完全一致。
討論與未來工作
在本文中,我們提出將心智理論視為一種領域特定的編程語言是有價值的:這種語言可以用來設定和推理涉及其他心靈的問題。以 memo 概率編程語言為例,我們討論了編程語言如何編碼一種心智理論、編程語言的不同變體如何編碼不同的心智理論,以及“編程語言”這一隱喻如何幫助我們理解心智理論的發展過程。
最后,我們反思一些 PL(編程語言)理論可能為我們提供工具來解答的更進一步問題:
組合直覺理論
要解決現實世界中的問題,我們的心智理論必須能夠與其他領域的直覺理論進行交互,例如我們對物理世界的直覺理論(Liu, Outa, & Akbiyik, 2024)。我們該如何組合這些直覺理論,以便執行跨越多個知識系統的計算?
如果我們把直覺理論看作 DSL(領域特定語言),那么我們可以開始從“DSL 組合”的角度來思考這個問題。事實上,PL 社區長期以來一直在研究如何設計 DSL,使它們能夠模塊化地彼此交互(參見 Felleisen 等人,2018)。
具有精心設計的“應用程序接口”(API)的 DSL 允許程序員編寫多語言程序,結合多個 DSL 的優勢。例如,為了制作一個網站,程序員可能會使用 HTML 來定義頁面結構,CSS 來定義排版樣式,JavaScript 來定義動畫效果。HTML、CSS 和 JavaScript 是三種非常不同的語言,分別專門用于網頁設計的不同領域(結構、樣式和腳本)。然而,由于這三種 DSL 都配備了精心設計的 API,程序員可以輕松地在它們之間編寫可交互的程序。
我們可以想象,用于心理推理的 DSL 和用于物理推理的 DSL 同樣配備合適的 API,從而可以組合起來,用于推理日常生活中的社會-物理情境(參見示例說明)。
比較直覺理論
直觀上,成年的人類擁有比三歲兒童或非人類靈長類動物更“豐富”的心智理論。但我們如何形式化關于一個心智理論有多“豐富”或多“有表達力”的說法?我們是否可以量化并測量理論的豐富性或表達力?
如果我們將心智理論視為 DSL,那么我們就可以考慮應用編程語言領域中關于“表達力”(expressivity)的形式定義,比如 Felleisen(1991)提出的定義,來形式化該 DSL 所代表的心智理論的表達能力。
通過使用這個定義作為衡量某種心智理論表達力的標準,我們可以檢驗一個假設:即心智理論在進化和發展的過程中趨向于更高的表達力。
心智定理
人們不僅能夠推理具體的情境,還能夠推理關于他人的普遍命題。例如,我們可能會同意:在任何情況下,如果一個代理者忘記了變量 x 的值,那么他們之前一定曾對 x 有過信念。
這些普遍直覺是從哪里來的呢?如果我們把心智理論看作是 DSL,那么我們就可以應用關于編程語言的通用定理陳述與證明技術,來形式化并研究這些“心智定理”。
例如,Chandra、Amin 和 Zhang(2025)展示了如何形式化這樣一個性質:在任意一個 memo 模型中,如果一個代理者知道變量 x 的值,那么他對 x 必然是確定無疑的(即,在他的視角下,H(x) = 0)。但反過來并不成立,因為一個代理者可能對一個錯誤信念也堅信不疑。
因此,我們可以從第一原理出發推導出一條“心智定理”:知識意味著確定性,但確定性并不意味著知識。
memo:
框架問題
我們對他人心靈的完整理論是非常龐大的,它不僅包括信念和欲望,還包括情緒、記憶、注意力、感知等多個方面。當面對一個具體情境時,我們如何解決“框架問題”(McCarthy & Hayes, 1981)——也就是如何高效地只調用相關部分的理論?
在這方面,PL 中的“程序切片”(program slicing,Weiser, 1984)概念可能是有價值的:程序(或編程語言)的一個“切片”是指去除無關部分后保留的相關子集。
我們可以設想,一個豐富而通用的心智理論可以被“切片”為一個定制的情境專用心智理論,去掉不必要的語法和語義,以提升效率。
原文鏈接:https://osf.io/qhc6y/download
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
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.