邏輯、概率編程以及因果法則
Logic + probabilistic programming + causal laws
https://royalsocietypublishing.org/doi/pdf/10.1098/rsos.230785
![]()
摘要
概率規劃旨在將隨機模型直接融入規劃過程,該過程的目標是為一個假設的智能體合成一系列動作,以實現某種目標。概率編程已迅速發展成為一種關鍵范式,它將概率概念與編程語言相結合,使人們能夠使用遞歸和循環等編程原語來指定復雜的概率模型。概率邏輯編程則進一步旨在利用一階邏輯構件,簡化結構化概率分布的描述。本文簡要討論了通過概率(邏輯)編程的視角對概率規劃進行建模的問題。盡管此類集成存在多種可能的形式,我們重點關注兩個代表性示例:第一個是對流行的概率邏輯編程語言PROBLOG的擴展,允許在Horn子句(即Prolog程序)上標注概率;第二個是對流行的智能體編程語言GOLOG的擴展,允許通過動作、效果和觀測對動態系統進行邏輯描述。這兩種概率擴展分別突出了概率編程在解決概率規劃中提出的非平凡建模問題時所具有的不同優勢。具體而言,人們可以在一階設定下實例化具有不斷增長或縮小狀態空間、離散與連續概率分布以及非唯一先驗分布的規劃問題。
關鍵詞:統計關系學習,一階邏輯,概率編程
引言
自動規劃是人工智能領域的一個重要研究課題,擁有悠久而輝煌的歷史 [1]。經典范式假設存在一個特定的初始狀態,該狀態由一組事實構成,并在一組能夠以某種方式改變該狀態的動作上進行定義。動作進一步通過其適用條件(即智能體執行該動作前必須為真的條件)和效果(即程序上相當于向狀態中添加新事實并移除其他事實)來刻畫。科學目標則是設計算法,合成一個動作序列,使智能體從初始狀態達到期望的目標狀態。
自早期起,自動規劃便受到機器人應用的驅動。但人們發現,現實世界——更準確地說,機器人對世界的認知——幾乎從來不是簡單的一組真實事實,且智能體打算執行的動作也從未完全按照預期的方式運作。理解這種復雜性的一種方法是將“高層推理”(在此例中即規劃器的搜索空間)與底層的感知-運動細節分離開來。從積極的一面看,這種分離使得計劃表示可以保持有限、離散且簡潔;但從消極的一面看,實現這種關注點分離需要投入大量專家知識,可能因此犧牲了對系統整體行為清晰性的把握。
順便提及,通過在受控環境中反復測試機器人的執行器,人們可以用概率分布近似描述某個動作的不確定效果。類似地,基于對環境的最小化假設(表達為概率先驗),通過重復采樣,機器人可更新其先驗,收斂到一個合理后驗,從而近似環境的真實狀態 [2]。為此,概率規劃試圖直接將此類模型融入規劃過程。迄今為止,已有多種用于概率規劃的語言和算法框架,例如 [3–6]。
本文簡要討論通過概率(邏輯)編程視角對概率規劃進行建模的問題。概率編程已迅速發展成為一種關鍵范式,旨在將概率概念與編程語言相結合,使人們能夠使用遞歸、循環等編程原語指定復雜的概率模型 [7]。概率邏輯編程則進一步旨在利用一階邏輯構件,簡化結構化概率分布的描述。
總體而言,概率編程語言的發展旨在支持概率機器學習應用中的模塊化與重用。其原子構建塊包含隨機原語,其形式化表示也允許組合性 [7,8]。
盡管此類集成有多種可能的形式,我們重點關注兩個代表性示例:第一個是對流行的概率邏輯編程語言 PROBLOG 的擴展,允許在 Horn 子句(即 Prolog 程序)上標注概率;第二個是對流行的智能體編程語言 GOLOG 的擴展,允許通過動作、效果和觀測對動態系統進行邏輯描述。這兩種概率擴展分別突出了概率編程在解決概率規劃中提出的非平凡建模問題時所具有的不同優勢。具體而言,人們可以在一階設定下實例化具有不斷增長或縮小狀態空間、離散與連續概率分布以及非唯一先驗分布的規劃問題。更精確地說,我們將概述兩個系統的特性:
— HYPE [9]:一個基于分布子句 [10] 的規劃框架; — ALLEGRO [11]:一個擴展 GOLOG [12] 的高級控制編程框架。
這兩個系統強調了概率編程的不同優勢,我們認為這些優勢對于概率規劃中提出的復雜建模問題尤其有用。HYPE 能夠輕松描述由于對象存在性不確定性導致的狀態空間增長與收縮,因而與 BLOG 模型 [13,14] 密切相關。由于 HYPE 是 PROBLOG [15] 的擴展,它可受益于 PROBLOG 所探索的廣泛應用和機器學習模型。1 該領域的動態特性通過將時間作為謂詞參數予以實例化,因此可能最適合處理有限時域的規劃問題。
ALLEGRO 將動作視為頭等公民,建立在一個豐富的動力學和主觀概率模型基礎上,使其能夠處理情境敏感的效果公理,以及施加于一階公式上的非唯一概率測度。GOLOG 也被廣泛應用于各類需在動態場景中運用結構化知識(如本體)的應用 [16],而 ALLEGRO 可繼承這些發展成果。此外,GOLOG 已被證明可用于結構化大規模規劃空間的搜索 [17]。最后,由于其包含迭代和循環構造,這類程序最適用于建模非終止行為 [18]。
接下來,我們將介紹這兩個系統的核心形式化和算法貢獻,最后討論開放的計算問題。顯然,這兩個系統并非僅有的融合邏輯與概率元素用于規劃的語言:關系型馬爾可夫決策過程(MDP)[19]、一階部分可觀測馬爾可夫決策過程(POMDP)[20],以及程度較輕的基于動作模型的動態貝葉斯網絡 [21] 均屬于更大范疇的一部分。然而,這些系統建立在強大且通用的邏輯基礎之上:HYPE 是 PROBLOG 的擴展,因而允許使用邏輯編程指定概率斷言;而 ALLEGRO 是 GOLOG 的擴展,后者是一種帶有一些二階邏輯特性的一階邏輯方言。因此,它們展示了當概率與一階邏輯在動態環境中統一時所能實現的可能性。這使我們的研究議程區別于 BLOG 及其動態版本 [13,14] 等提案——后者雖支持某些一階特征,但不允許任意邏輯連接詞和量詞。
為準備后續討論,讓我們簡要反思為何概率邏輯編程是一種強大的范式。
為何將概率編程與邏輯結合?
概率編程是一個不斷發展的領域,其核心是將概率模型表示為可執行代碼 [8,13,22–25]。這一方法使研究人員能夠形式化、自動化并擴展建模與推理的諸多方面,使其更易于被更廣泛的開發者和領域專家所理解和應用。通過整合來自多個領域的建模與推理方法,該技術還推動了新型可編程人工智能系統的發展。概率編程被廣泛用于統計學和數據分析領域的問題建模與求解。諸如 STAN 和 BUGS [26] 等隨機編程語言提供了一種形式化語言,能夠以簡潔、統一且可復用的方式描述廣泛范圍內的模型,并支持通用推理技術。Pyro 是一種基于 Python 編寫并由 PyTorch 支持的概率編程語言,它支持靈活而富有表現力的深度概率建模,實現了深度學習與貝葉斯建模的統一 [27]。
當前主流討論大致分為兩類陣營。第一類聚焦于“傳統”編程語言(如 Python),其努力集中在如何在程序代碼中封裝神經計算,例如 Pyro(以及一定程度上的 STAN)。另一極端則關注函數式編程和高階編程語言的支持,以及如何為這類語言中的操作構造賦予指稱語義——尤其是像“從正態分布中采樣”這樣的構造 [28]。對于程序代碼而言,正確的采樣策略(尤其涉及循環和高階函數時),以及這些樣本如何收斂以實現穩健推理,仍然是一個極具挑戰性的問題 [24]。
在這一背景下,概率邏輯編程(PLP)[10,29–35] 成為一個引人注目的新方向。該概念涉及將概率融入邏輯程序的規則之中。(盡管本文主要聚焦于 PROBLOG,但歷史上已有許多有趣提案嘗試結合邏輯編程與概率,如上文所暗示;參見 [36]。)最初,其思路是為每個隨機選擇生成所有可能的證明,并確定這些“世界”的概率 [15]。然而,近期進展已催生出將程序編碼為模型計數任務的策略 [37]。有趣的是,這一問題任務也可應用于其他多種表示形式,包括因子圖、關系型貝葉斯網絡和馬爾可夫邏輯網絡 [38]。所有這些共同構建了一個極其強大的管道,可提供精確推理能力。
我們認為,概率邏輯編程區別于其他概率編程技術的四個關鍵特征如下:
首先,概率邏輯編程具有擴展容忍性(elaboration tolerance),意味著它能輕松融入新知識,而無需修改整個程序。
其次,它允許納入關系性知識,從而能夠對隨機對象及其屬性進行建模。
第三,它能夠處理約束條件,這使其適用于解決優化問題。
最后,它支持模塊化的非概率計算,使得開發更大、更復雜的系統更為容易。
我們并非意在聲稱 PLP 能夠解決經典概率程序(PPs)所面臨的問題或表征挑戰。在很大程度上,經典概率編程的關注點和應用場景與 PLP 并不重疊。雖然可以將一些簡單的 PPs 示例重構為 PLPs,但顯然需要更深入的研究。此外,盡管已有工作探索將邏輯編程與高階編程相結合 [39],但在 PLP 框架下整合函數式構件和高階編程仍需進一步研究。
讓我們通過幾個例子具體說明上述特征。回顧一下,聲明式編程是一種編程范式,它表達計算的邏輯而不顯式定義各步驟應如何執行。我們描述的是程序的“做什么”,而非“如何完成”。那么,在概率語境下,這種范式意味著什么?我們認為這意味著:(i) 決策的指令和邏輯是固定的,但 (ii) 概率本身(無論如何都是從數據中學習得到的)可以在無需修改邏輯指令的情況下進行更新;此外,(iii) 利用這些概率進行計算時無需用戶輸入。正如我們將展示的,像 PROBLOG 這樣的語言(以及其他概率邏輯語言)能夠輕松實現這一點。
假設有一種傳染病正在人群中傳播。若兩人經常接觸,且其中一人已被感染,則另一人被感染的概率為 0.6。目標是在給定一組初始感染者和人群內個體間聯系圖的前提下,預測疾病傳播情況。我們可以使用以下程序:
![]()
該語句表明,隨機選擇的一個人有 0.1 的概率已被感染。兩個隨機選擇的人之間有 0.1 的概率存在接觸。最后,給定一個隨機選擇的感染者以及另一個與該感染者有接觸的人,第二個人被感染的概率為 0.6。
顯然,如果我們需要更新這些概率或將其中某些概率改為確定性值,邏輯規則本身不會受到影響。我們只需更新數值即可。例如,若要使傳播過程變為確定性的,我們可以將上述第五行替換為:
事實上,麥卡錫(McCarthy)提出的“擴展容忍性”概念,被定義為一種形式化體系所具備的特性:它能方便地修改一組事實,以適應新現象或變化的環境。這意味著該形式化體系能夠輕松融入新知識,而無需改動整個程序。他設想存在不同類型的擴展,其中最簡單的一種是添加新的公式,他稱之為“加法式擴展”。此外,第二種擴展類型是更改參數的取值。盡管他最終使用另一組示例探討了這些概念,但不難看出,在非常具體的層面上,概率邏輯編程(PLPs)確實支持擴展容忍性。更新概率值,甚至將概率斷言改為確定性斷言,都可輕松實現,如下所示(示例改編自 [40,41]):
![]()
該程序現在還額外說明:易感人群感染疾病的可能性更高。
值得注意的是,此類語言可作為其他人工智能系統的接口,包括自然語言交互以及深度學習模型。例如,在文獻 [42] 中,以下類型的問題可以被解析為 PROBLOG 程序:
2.1 你擲一枚公平的六面骰子兩次。第一次擲出五、第二次擲出六的概率是多少?
此處,粗體文字顯然代表一個概率模型,其余部分則是一個查詢。相應地,文本將被解析并分詞為如下形式的 PROBLOG 程序(包含一些用于概率和組合構造的附加語法,例如“有放回抽取”):
![]()
運行該程序即可返回問題的答案。
相反,在文獻 [30,43] 中,邏輯推理被用來引導深度學習模型學習符合約束條件的概率分布。這些模型背后所依賴的是一種極其簡單但普遍存在的計算任務——加權模型計數(weighted model counting)[44]。近年來,針對連續模型對該任務的擴展 [45] 已使基于邏輯的求解策略能夠應用于一系列“非邏輯”(即經典)的概率編程語言 [46–48]。
HYPE
PROBLOG 旨在統一邏輯編程與概率規范,其含義是提供一種語言,既能指定概率分布,又能查詢事件發生的概率。作為一個非常簡單的例子,若要表達“物體 c 以某一概率位于桌子上”,以及“所有在桌子上的物體也都在房間內”,我們可以寫作(自由變量默認為全稱量化):
![]()
這句話表明,在時間點 t 移除物體 x 時,我們可以假定在 x 的后方存在一些物體——通常是一個這樣的物體。這類程序可用于目標跟蹤應用中,對被遮擋的物體進行推理。
在許多機器人應用 [2] 中,一個常見的設定是為動作和傳感器定義帶有誤差分布的模型,例如高斯噪聲模型。這些模型可以在 HYPE 中通過以下方式實例化:
![]()
第一條規則表明,當執行移動動作時,物體 x 的新位置是從一個正態分布中抽取的,該分布的均值為 x 當前位置加 1。第二條規則則說明,對 x 當前位置的觀測會受到加性高斯噪聲的影響。
作為一個自動規劃系統,HYPE 實例化了一個馬爾可夫決策過程(MDP)[49]。回顧可知,MDP 是由狀態、動作、隨機轉移和獎勵函數定義的,這些要素可以通過上述語法中的規則來實現,例如:
![]()
為了計算策略(即從狀態和時間點映射到動作的函數),HYPE 結合了重要性采樣(importance sampling)與 SLD 歸結(SLD resolution),從而有效地彌合了高層符號化規范與編程模型中概率組件之間的鴻溝。HYPE 允許狀態和動作既可以是離散的,也可以是連續的,從而構建出一個通用的規劃系統。相關實證評估見文獻 [9,51]。
總之,HYPE 繼承了 PROBLOG 所展現的所有優勢和建模能力。但如前所述,它并未提供專門的動作語言,或除用時間變量索引的常量外表示動作的便捷方式。而情況演算(situation calculus)則略有不同,它直接對動態世界進行建模,從而支持更靈活的語言來描述動作及其效果——下文將對此展開討論。
ALLEGRO
GOLOG 語言已成功應用于涉及控制與規劃的廣泛領域 [16],其基礎是一個簡單的本體論:所有變化均源于命名的動作。它是一種建立在“情況演算”(situation calculus)之上的高層智能體編程語言 [12]——情況演算是帶有(部分)二階邏輯特性的一階邏輯方言。初始狀態描述了各屬性的真值,而動作可以以非平凡且情境敏感的方式影響這些真值。特別地,GOLOG 是一種程序模型,其中執行動作是程序中最基本的指令,更復雜的迭代和循環構造則在此基礎上定義。例如,一個用于清空包含未知數量積木的桌子的程序如下:
![]()
為了建模高斯誤差模型,ALLEGRO 對具有不確定效果的動作給出了通用處理方式。一方面,動作的效果通過“后繼狀態公理”(successor state axioms)進行公理化,該公理整合了 Reiter 對框架問題(frame problem)的解決方案 [12]。因此,例如,使用移動動作改變物體位置可表達為:
![]()
這句話的意思是:如果執行了移動物體 x 的動作,那么它的位置(沿直線方向)會減少 y 個單位;而對于所有其他動作,其位置保持不變。為了處理不確定的效果,我們將區分智能體的意圖與實際發生的結果。也就是說,令 move(x, y, z) 為一種新的動作類型,其中 y 是智能體期望實現的效果,z 是實際發生的結果。那么,后繼狀態公理可重寫如下:
![]()
![]()
如上文所暗示的,作為對 GOLOG 的擴展,ALLEGRO 的語法旨在以簡潔通用的方式表示完整或部分的計劃與策略。此前的研究表明,GOLOG 程序能夠控制規劃搜索空間 [17],而近期工作則表明,概率動作程序是表示遞歸策略的一種更緊湊的方式。在程序終止時,ALLEGRO 程序可以用于檢驗目標被相信成立的(主觀)概率。
例如,假設你希望讓一個帶有噪聲傳感器和執行器的機器人靠近一面墻。機器人會移動一段距離,但由于動作本身存在噪聲,它需要反復感知以確保自己確實靠近了墻壁。這種“感知-行動”循環將重復執行,直到機器人以高概率確信自己已真正靠近墻壁為止。此類協議對應的 ALLEGRO 程序可能如下所示:
![]()
![]()
上述程序完整指定了行為,但同時它捕捉的是一個非常簡單的例子。更復雜的問題場景可能涉及未指定的子程序(可能包含規劃),如文獻 [16] 所討論;或者,部分指定的程序可用于定義和約束搜索空間,如文獻 [17] 所示。
定性比較
在結束本文之前,簡要比較這兩種形式化方法的特性與屬性是一個有趣的練習。當然,讀者可能會認為,若能通過實證評估——例如,在一組特定領域內對兩種形式化方法進行基準測試以比較其計算性能——這樣的比較會更加豐富。盡管這在特定問題空間中是可行的(并值得在未來考慮),但正如下文將展示的,這兩種語言并非完全可比。
5.1 靜態建模
我們在此所指的“靜態建模”,意為捕捉有限組隨機變量上的概率分布。假設在一個命題語言中有若干原子命題(為簡化起見),這些原子被賦予概率,并與非概率性的確定性子句(形式為 h ← b?, ..., b?)結合使用。例如,以下是用 PROBLOG 編寫的、基于 Pearl [56] 提出的“入室盜竊-地震-警報”貝葉斯網絡示例的程序:
![]()
讀者現在可以構建一組可能世界,以計算邊緣概率。對于三個命題,原則上我們有八個可能世界。然而,在 PROBLOG 中如何解讀這些原子和規則時存在一些需要注意的地方。我們賦予了概率的原子被稱為“概率事實”(probabilistic facts),應與規則的頭部區別對待。實際上,規則會與每個可能世界(僅由概率原子定義)結合使用,以判斷規則頭部是否可被推導出來。基于此,規則頭部的成功概率即可被計算。
綜合來看,我們有四個關于概率事實 b 和 e 的世界。這些世界的概率是通過將由 b 和 e 構成的文字的概率相乘而得到的,并且需理解任何命題 p 及其否定的概率之和必須等于 1。例如,在一個 b 為真而 e 為假的世界中,我們得到的概率是 0.1 × (1 - 0.2),即 0.08。依此類推,我們有:
世界 b ∧ ?e,其概率為 0.08(如上所述);
世界 b ∧ e,其概率為 0.1 × 0.2 = 0.02;
世界 ?b ∧ e,其概率為 (1 - 0.1) × 0.2 = 0.18;以及
最后,世界 ?b ∧ ?e,其概率為 (1 - 0.1) × (1 - 0.2) = 0.72。
現在,為了計算觸發警報 a 的概率,我們考察每一個可能世界,并結合非概率性規則,查看 a 是否被蘊含。很容易看出,這僅在前三個世界中發生:在這里,要么入室盜竊為真,要么警報為真,因此立即可推出 a 成立。因此,觸發警報的概率為 0.28。完整的語義處理請參見 [37]。
因此,邏輯程序的語義似乎特別適合于建模貝葉斯網絡 [44]。相比之下,ALLEGRO 的語義基于一階結構上的概率。因此,復制該網絡所需的公式集并不完全相同,我們需要稍作調整。一方面,語義本身并未暗示某些原子不應具有概率——這在 PROBLOG 程序的語義中是隱含假設的。因此,例如,我們可以使用以下公式在 ALLEGRO 中表示該網絡:
![]()
![]()
因此,在 ALLEGRO 中,由于存在三個命題,原則上我們確實有八個可能世界。然而,最后一個公式確保了“b 和 e 為假但 a 為真”的世界是不可能存在的。
現在,若將此與 PROBLOG 的四個可能世界進行對比,我們可以看到,對于計算 a 的概率而言,確實考慮的是 b 和 e 相同的真值設定(即前三個世界)。第四個世界 ?b ∧ ?e 不可能是 a 為真的世界,這一點已明確建立。然而,世界概率的計算方式有所不同,但最終得出的規范是等價的。例如,這些公式表明:所有 b 為真的世界總概率必須為 0.1。這本質上意味著上述第一和第二個世界(即 (1) 和 (2))的概率之和應為 0.1。同樣,所有 e 為真的世界總概率必須為 0.2,因此第二和第三個世界(即 (2) 和 (3))的概率之和應為 0.2。通過求解這些約束條件,可以證明警報被觸發的概率仍為 0.28。
乍看之下,公式在兩種形式化方法之間需要如此映射似乎有些奇怪,但這并不令人意外。將 PROBLOG 程序翻譯為概率命題理論 [37] 正是依賴于這類步驟來為命題世界分配概率——正如我們剛剛確立的,這需要考慮語言中的所有命題。
當然,期望建模語言能根據具體問題的需求提供合適的表達能力是完全合理的。顯然,當用于刻畫貝葉斯網絡及其他相關類型的圖模型時,PROBLOG 和 HYPE 比指定一階公式上的概率要直接得多。對于后者,我們需要隱式地確定這些概率如何對應到貝葉斯網絡或某種其他因子化表示 [57]。
然而,既然 PROBLOG 程序最終會被翻譯成概率命題理論,人們可以設想,對于偏好圖模型的用戶而言,可能存在一種更自然的建模語言。然后,可以通過一個中間步驟將其翻譯為 ALLEGRO 模型,以便將初始知識與豐富的動作理論結合使用。此外,有一種情況是,這兩種形式化方法之間的靜態知識庫可能無需大量重寫。考慮概率數據庫 [58]:最簡單的設置是元組獨立概率數據庫,其中每個命題被賦予一個獨立的概率,并假設其與其他命題相互獨立。在這種情況下,兩種形式化方法的表示幾乎是相同的,因為每個世界的概率本質上都是顯式指定的:它由該世界中所有為真命題的概率乘積得到。
在一點上,這兩種形式化方法存在深刻差異:邏輯程序允許使用歸納定義 [59]。例如,我們可以使用以下兩個公式來捕捉圖中路徑的歸納定義:
![]()
這句話的意思是:每條邊本身就是一個路徑;如果節點 x 和 y 之間存在一條邊,且從 y 到 z 存在一條路徑,那么從 x 到 z 也存在一條路徑。
ALLEGRO 基于情況演算(situation calculus),該框架允許包含某些二階邏輯特征,例如對“情境”集合的歸納定義 [12]。然而,在實踐中,歸納定義很少作為初始知識庫的一部分被提供。(盡管文獻中確實有一些相關研究 [60]。)在此方面,如果用戶主要關注靜態知識的推理,PROLOG 和 HYPE 可能顯得更具吸引力。
5.2 觀測與動作
我們此前已討論過,這些語言確實允許對動態過程進行建模,但主要通過動態貝葉斯網絡、隱馬爾可夫模型、MDP、POMDP 及其他相關框架 [29,36] 來實現。這種建模通常通過為謂詞引入時間參數,并在特定數量的時間步長內進行推理來達成。
然而,與情況演算(situation calculus)等動態語言相比,此類方法使這些語言的功能受到更多限制。在情況演算中,不僅可以定義持續性動作(其中時間為附加參數)[61],還能直接使用命名動作來刻畫狀態的動態變化。因此,它自然地適用于表達多種規劃語言 [12]。情況演算還被擴展用于推理決策理論模型 [62] 以及 POMDP 的關系型擴展 [20]。其一階邏輯特性也使其成為處理無界數量對象和無界時間序列的理想候選。例如,可以提出如下類型的投影查詢:
— 執行動作 a? 到 a? 后,φ 是否為真? — 在整個序列的每一步中 φ 是否都為真?或者反過來,在序列開始到結束之間的任意時刻,φ 是否曾變為假? — 從當前狀態開始執行的任何序列,φ 是否都將保持為真?
因此,人們不僅能在該語言中編寫程序,還可以直接在語言內部驗證這些程序的屬性 [63]。
此外值得注意的是,動作類型本身可能比動態貝葉斯網絡等形式化方法所能提供的功能更強大 [64]。例如,在先前使用的關于警報觸發的貝葉斯網絡背景下,我們可以編寫能夠以任意方式改變節點間邊或添加新節點的動作。我們還可以推理動作的后果及其間接影響 [65]。
5.3 綜合(合成)與策略執行
正如 HYPE 的介紹所明確指出的,該語言主要用于綜合(synthesizing)一個策略。也就是說,它指定動作、效果及噪聲模型,而該形式化體系的目的正是從這些規范中計算出一個策略。我們可以從兩個方面將此與 ALLEGRO 進行對比:首先,基于信念的程序本身就是策略。因此,執行該程序等同于在適當表征前提下,執行一個 POMDP 策略 [66]。當然,這樣的策略同樣也可以被綜合出來。目前已有大量關于歸納遞歸式程序結構的研究工作 [67]。因此,情況演算提供了一個全面的框架,可用于推理不同類型的策略并驗證其屬性。
5.4 不完整與部分規范
或許上述所有不同維度本質上都在說明表達能力上的差異。雖然 PROBLOG 和 HYPE 主要提供的是用于指定概率模型的框架,情況演算(situation calculus)則提供了一種更通用的語言,用于推理概率知識及其動態變化。例如,它允許表達多個信念分布、完全或部分地指定程序,并將概率知識與非概率性的、不完整的知識相結合(這進而要求使用多個分布)[68]。
所有這些意味著,情況演算語言的表達能力要強得多,因為它無法被簡化為命題模型。回顧可知,PROBLOG 將其推理歸約為加權命題公式,而情況演算則對應于模態一階邏輯 [69]。因此,由于這種強大的表達能力,可以證明在完整語言中驗證屬性是高度不可判定的 [63]。對于 ALLEGRO 而言,驗證屬性相當于檢查可能無限多個 POMDP 的性質。
當然,無需全盤接受這種完整的表達能力。根據具體應用需求,我們可以選擇使用其某個片段,或許是一個與 PROBLOG 和 HYPE 非常相似的片段。這也是知識表示學界長期以來一直強調的觀點 [12,16]:有時,擁有一個更具表達力的語言來研究所關注問題的特性是有益的;隨后,我們會選擇一個受限的片段來構建當前領域的實際應用。
結論
自動規劃通常部署于具體應用情境中,而在高度隨機和不確定的領域,規劃模型可能源于復雜的機器學習與推理流水線,或基于具有未知因素的非平凡狀態空間定義。本文介紹了兩種概率編程系統,旨在實現此類流水線。事實上,將自動規劃與概率編程相結合,近年來正受到廣泛關注,例如 [14]。這些語言是通用的,其一階表達能力不僅能夠簡潔地編碼領域知識,還能獲得計算上的優勢。
使用概率編程和隨機規范時的一個關鍵關注點在于,大多數系統通過蒙特卡洛采樣進行推理。眾所周知,此類方法只能提供漸近保證,且處理低概率觀測值可能頗具挑戰性。在這方面,近期已出現一些邏輯方法,能夠在混合離散-連續概率空間中進行推理,并對計算結果提供緊致的邊界約束 [45,46,70]。由于 HYPE、ALLEGRO 及許多類似系統均以概率推理作為核心計算基礎,因此問題在于:上述方法能否為隨機領域的穩健規劃與編程框架提供支持?
此外,探索與傳統概率編程語言之間更深層次的聯系也可能帶來額外價值。例如,在傳統語言中進行學習的研究已取得相當多成果 [71]。同時,深度學習技術也可作為計算原語集成到此類語言中,如 Pyro 所示。值得探討的是,這些理念是否能被融入 HYPE 和 ALLEGRO 中,從而統一一階概率推理與學習。
原文鏈接:https://royalsocietypublishing.org/doi/pdf/10.1098/rsos.230785
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
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.