?

基于BDI邏輯的多Agent系統的學習機制

2023-03-05 04:16
貴州工程應用技術學院學報 2023年6期
關鍵詞:體系結構實例意圖

周 正

(北京師范大學哲學學院,北京 100875)

國外關于理性Agent的信念-愿望-意圖(Belief-Desire-Intention,簡稱BDI)模型及其哲學解釋的文獻豐碩[1]。例如,丹尼特(Dennett)探討了理性Agent意圖的哲學基礎[2];布拉特曼(Bratman)研究了其實踐推理[3];拉奧(Rao)和喬治夫(Georgeff)給出了其簡潔而抽象的邏輯語義[4];喬治夫(Georgeff)和蘭斯基(Lansky)給出的過程推理系統PRS[5],是對理性Agent的BDI模型的實現。

雖然理性Agent的BDI模型在多個領域都有著諸多成功的應用實例,如:航天飛機的診斷、工廠的過程控制、商業過程管理,仿人機器人,等等[6]。但是BDI模型卻有兩個弱點:一是缺少學習能力;二是缺少顯著的多Agent功能[7]。本文將在埃爾南德斯(Hernández)等工作的基礎上[8],探討多BDI-Agent系統中的學習機制。

本文在艾維諾(Inverno)等分布式多Agent推理系統dMARS說明的基礎上[9],從多Agent 系統學習的視角,揭示了如何把一個BDI 結構擴展成帶有學習機制的BDI 結構。為此,需要運用歸納邏輯編程方法[10]和邏輯決策樹歸納[11],讓Agent 學習規劃何時可以執行,因為Agent 的學習行為可以由規劃背景來表示,即由實踐推理選擇的BDI模型的組成部分來表示。

一、BDI-Agent的體系結構

Agent 的BDI 模型可以通過意圖系統和實踐推理理論這兩個與意圖性有關的理論,實現自主行為。丹尼特把意圖系統定義成具有愿望和其他命題態度的實體[2]。布拉特曼的實踐推理理論認為[3]:Agent可以理解自己和他人,該理解的基礎是信念、愿望和意圖,而且意圖被看作是規劃的一部分。利用這些與意圖相關的概念,可以對Agent行為進行形式化的描述,即根據信念、愿望和意圖(BDI),得到Agent 的意圖,并用這種意圖描述,以一種相容的方式設計Agent,這種Agent 就是一個實踐推理系統。BDI邏輯可以對意圖和實踐推理的不同方面進行形式化的研究[4]。

本文將利用如下圖1中的場景,描繪帶有學習能力的多BDI-Agent結構。在此場景中,有一個雙手機器人(即agent r1)、一個木板(board)、一個打磨機(sander)、一個繪畫噴漆器(paint sprayer)和一個鉗子(vise)。給機器人設定不同的目標,如打磨木板或給自己畫像。這兩個目標是不相容的,因為當機器人成為被繪畫的對象時,它就有一段時間不能操作了(它的狀態從ok 變成painted)。機器人有不同選擇(即規劃)去達成目標。有可能在環境中引入其他機器人(例如agent r2)進行社會交互實驗,如共享目標、資源競爭等[8]220。

圖1 簡單的實例場景及其簡化的BDI規劃

(一)BDI模型

一般來說,一個BDI-Agent模型的體系結構,可以根據信念、愿望、事件隊列、規劃和意圖這五個方面的數據結構加以說明[8]220-223。

信念:信念表示有關世界的信息。每個信念都表示成一階邏輯的基本表達式。非基本表達式用來定義規劃。通過環境感知和執行意圖可以更新信念。例如,圖1 展現的場景可以表示成如下信念:(p-state r1 ok)、(p-at sander free)、(p-at board free)、(p-handfree r1 left)、(p-handfree r1 right)、(p-at sprayer free),其中free是一個常元,表示物體沒有被鉗住或被Agent占用,其他基本表達式就是字面意思。

愿望:愿望有時被稱為目標,與分配給Agent的任務對應。通常認為各種愿望之間在邏輯上是一致的。愿望包括信念達成和情境測試,情境測試用情境公式來表示,一個情境公式就是一個信念公式或信念公式的合取或析取,例如(test(and(p-state r1 ok)(p-freehand r1?x)))。所有以“?”開頭的字符串都是變元,而所有以“p-”開頭的字符串都是謂詞符號。

事件隊列:Agent 的感知被映射到儲存在隊列中的事件。事件包含獲取或刪除信念(如(add-bel(p-sand board)))、接收信息(如(told r2(achieve(p-sand board))))和獲取新目標。這些實例都得到了簡化,而且事件得以實現時的結構保存了歷史信息蹤跡;顯示的內容對應于觸發器,該觸發器是事件的組成部分,可以用來識別這些結構。信息的接收和發出可以實現多BDI-Agent系統的能力。

規劃:BDI-Agent 通常有一個預定義的規劃庫。每個規劃都包含幾個部分,如圖1 的簡化規劃就是如此。在圖1 中plan-id 用來識別規劃庫中的規劃。圖1 場景中的規劃就是p007。觸發器相當于規劃的調用條件,說明規劃需要處理的事件。規劃p007 由形式為(achieve(p-sanded?obj))的事件觸發。在該實例中允許使用變元。如果Agent 在事件隊列中登記一個形式為(achieve(p-sand board))的事件,那么該Agent 會認為p007 是處理此事件的相關規劃。被表示成一個情境公式的背景可以詳細說明執行規劃的環境。

如果Agent 有一只手是自由的,且待打磨的物體也是自由的,那么規劃p007就是可執行的。規劃體表示行動的可能方案。規劃體是樹形結構,其節點相當于狀態,其弧線相當于Agent的行動或目標。p007的規劃體從一個外部行動開始,由“*”開頭的符號(*pickup?x)進行標識。外部行動類似于Agent能直接執行的過程。之后規劃體還有兩個目標。當規劃執行時,給事件隊列通告目標,然后考慮其他能執行該事件的規劃,等等。另外,規劃有一些維持條件,用于描述繼續執行該規劃必須保留的環境,規劃的成功和失敗由一個內在行動集加以說明。一些BDI結構還包含該規劃效用的一些標準。

意圖:意圖是Agent 承諾執行的行動方案。每個意圖作為一個規劃實例棧加以實現。在圖1的場景中,規劃p007與響應事件(achieve(p-sanded board))相關。如果一個規劃背景是Agent信念的結果,那么該規劃就是可執行的。一個規劃實例由一個在規劃庫中定義的規劃以及與該規劃相關的適當替換組成,如(board/?obj,left/?hand,r1/?ag)。如果觸發規劃的事件是外部事件,即沒有規劃促使該事件發生,那么就創建一個空棧,并把該規劃壓入到此空棧中。如果該事件是內部事件,即該事件是由一個規劃促成的,那么該規劃實例就壓入到一個已存在的棧中,而且該棧包含促成該事件的規劃。例如,在圖1 的場景中,設想在執行p007 時,產生了一個處理事件(achieve(p-at(board,vise))的規劃實例p005,那么該規劃實例就會壓入到包含p007的棧中,得到結果(p005 p007)。

這些結構與一個解釋器相互作用(如圖2所示),而且該解釋器可能有不同的算法,最簡單的算法包括如下5個步驟[8]222:

圖2 受“dMARS說明”啟發的BDI結構

(1)通過感知和內部行動來更新事件隊列,反映已觀察到的事件;

(2)選擇一個事件,通常是隊列里面的第一個事件,通過找出“規劃庫中與所選事件相關的”規劃集來得到新的可能愿望,即得到“觸發條件與所選事件匹配的”那些規劃;

(3)從相關規劃集中選擇一個可執行的規劃,即“其背景是Agent信念的邏輯后承的”規劃,并為該規劃創建一個規劃實例;

(4)如前文解釋的那樣,將該規劃實例壓入到一個已存在或新的意圖棧中;

(5)若事件隊列為空,則選擇一個意圖棧,提取最上面的規劃,執行該規劃的當前步驟。如果這一當前步驟是行動,那么就執行該行動;如果這一當前步驟是一個子目標,將這一當前步驟加入事件隊列。

(二)關于BDI結構的實現問題

BDI結構可以使用符號編程語言加以實現,即通過使用表處理語言Lisp加以實現,而且在對其解釋器進行實現時,可以借鑒類似過程推理系統PRS的Jam![8]223。因為分布式多Agent推理系統dMARS中使用的結構和步驟,非常適合表處理語言Lisp的“數據表示的統一性特征”,即把步驟表示成列表,數據表示成步驟抽象,等等。

圖2給出的Agent體系結構具有如下標準的BDI特征:可以為系統中的Agent定義“可用的初始行動功能”,而且可以定義使用這些初始行動的規劃;根據規劃庫,為Agent定義和指派不同的能力;根據初始事件為每個Agent設定目標;在不同承諾策略下對Agent行為進行處理。如果BDI公式是信念集的邏輯后承,那么定義Agent的BDI語言是句法驗證工具,而且內置測試函數也具有標準的BDI特征。圖2給出的體系結構與OS的接口可以由表處理語言Lisp提供。

圖2 給出的Agent 體系結構具有如下非標準BDI 特征:包含模擬多Agent 系統中的Agent 函數集,將其視為在同一個表處理語言Lisp 圖像中運行的并行程序;一個使用DTP 定理證明器(杰迪斯[11])的接口。當Agent需要處理“內置邏輯能力無法處理的”更為復雜的認知推理時,就需要這種接口。DTP定理證明器使用模型消除算法和論域獨立推理,在一階謂詞演算中,就可以處理來自數據庫的查詢證明,從而進行駁斥或證偽。使用帶有模型消除化歸的子目標推理,就可以使得DTP 推理具有可靠性和完全性[8]223。

二、BDI學習Agent

拉維爾(Russell)和諾維格(Norvig)把泛型學習Agent結構分為以下四個部分[12]:(1)學習部分,通過執行學習算法負責自我改進;(2)執行部分,負責采取行動;(3)評判部分,負責提供反饋;(4)問題生成部分,負責建議“能提供信息的”行動。本文適合dMARS說明的BDI結構[7],對應于BDI學習Agent結構的執行部分。

(一)影響學習方法選擇及其設計的因素

BDI-Agent學習部分的設計,以及具體學習方法的選擇,通常受到如下五個主要問題的影響[8]224-225。

1.執行部分的哪些子部分可以通過學習加以改進

BDI-Agent是直接面向行動的推理,而無Agent的人工智能系統,是直接面向信念的認知推理。從實踐推理理論中的信念作用看,即使信念能夠解釋Agent行為的合法性,這些信念也僅僅是背景框架的一部分,這些信念和先驗意圖都會限制新意圖的采納。因此,可以把規劃背景視為以某種方式對實踐推理行動的編碼。對BDI體系結構進行擴展,即,在使Agent能夠了解他們的規劃的背景,即規劃何時是可執行的。準確地說,本文的BDI-Agent不學習規劃,而是學習何時使用規劃。

2.如何表示“通過學習可以改進的”性能子部分

BDI 體系結構由信念公式和情境公式這兩類一階公式來表示,這類似于Prolog 事實的表示方法。信念公式用來定義規劃,每個信念公式也是一個情境公式,但是情境公式還包括信念公式的合取或析取。規劃背景表示成情境公式。當考慮候選的學習方法時,這些表示方式存在如下兩個問題:第一,給定信念公式和情境公式的表示方式,就需要拋棄命題學習方法;第二,把規劃背景表示成情境公式,就要求學習方法的目標表示必須使得析取假設可用,如要求判定樹可用。

3.哪些反饋可以用于學習

BDI體系結構幾乎都可以直接得到反饋,因為該結構能夠“對規劃實例成功或失敗執行”進行檢測和處理。這可以通過執行一組內在行動來做到這一點,迄今為止的這些內在行動是指添加或刪除信念。對于規劃庫中的每個規劃,這些內在行動是預定義的。使用具體的內在行動就可以對這種BDI體系結構進行擴展,從而生成學習任務訓練實例的日志文件;建立這些實例的條目包括:表征規劃選擇時的信念、執行該規劃和plan-id后的成功或失敗標簽。

4.哪些先驗信息可以用于學習

先驗信息有如下兩種來源:第一,可以把Agent的規劃庫視為一種先驗信息;從Agent角度看,在該環境中必須出現所期望的規劃狀態,即:如果執行了規劃p,事件e就會得到滿足;并且如果p的背景就是Agent信念的邏輯后承,情況也是如此。第二,本文的BDI體系結構可以追溯謂詞、函數及其簽名的蹤跡,用于定義每個Agent規劃庫中的規劃,而且這些元素能夠描述“學習過程中目標概念”語言。

5.是集中式學習還是分布式學習

意識似乎能夠表示“復雜性遞增的學習多Agent系統的”層級,這種學習環境層級以某種方式對應于丹尼特[2]的意圖性等級。本文將探討其中第一層級和第二層級的學習。第零層級的學習是指其環境中只有一個Agent,是真正的孤立學習狀況,可以視為第一層級的特例。

第一層級的學習:此層級中,Agent通過與環境的直接交互來行動和學習,在多Agent系統中,沒有明確意識到其他Agent。但是,學習Agent能感知到其他Agent對環境的改變?,F在再次考慮有兩個機器人的場景:一個專心繪畫,另一個打磨物體??梢詾槔L畫機器人編制程序,而不用意識到環境中的其他Agent,繪畫機器人只需要知道的是,一旦物體打磨好后,就可以在該物體上面繪畫。

第二層級的學習:此層級中,Agent的行動和學習與其他Agent,可以通過信息交換直接進行交互。在圖1的場景實例中,打磨機器人可以通知繪畫機器人“一個物體已經打磨好了”;而且繪畫機器人可以向打磨機器人詢問此信息。在該層級中,可以考慮學習過程中訓練實例的交換。

第三層級的學習:此層級中,Agent的學習來自對系統中其他Agent行動的觀察。這會涉及不同于第二層級的意識種類。學習Agent不僅能夠意識到其他Agent的存在,還能夠意識到它們的能力,因此繪畫機器人能感知到打磨機器人即將打磨的木板。

(二)邏輯決策樹自頂向下的歸納

如前文所述,從規劃背景的表示方式角度來看,可以使用判定樹表示目標。判定樹自頂向下的歸納(TDIDT)是一個應用廣泛且有效的機器學習技術。把學習函數表示成樹,這些函數對應于本文實例屬性值上約束合取的析取。從判定樹根節點到葉節點的每條路徑,對應于一個屬性測試的合取,而樹本身就是這些合取的析取,即所需要的規劃背景的表示方式。使用從解釋中學習的ILP范式[13],邏輯決策樹就可以把屬性-值表示升級成一階表示。這時,每個訓練實例e由“編碼了e的所有性質的”一組事實來表示,而背景知識以Prolog程序B的形式給出。表示實例e的解釋是一個“由e∧B蘊涵的所有基本事實構成的”集合,即,它的最小Herbrand模型。

現在給出“從解釋中學習”的定義。如果給定:(1)一個目標變元Y;(2)一個加標實例集E;在論域Y中,每個實例由值y加標的明確子句集e組成;(3)一個語言L;(4)一個背景理論B;加標的實例,就存在一個假設H∈L使得:H∧e∧B?label(y)且?y′≠y:H∧e∧B?/label(y′)。

從解釋中學習利用了局部假定,即,所有與單個實例相關的信息,可以以兩種方式進行局部化,而實例中包含的信息與背景知識中的信息是分離的,一個實例中的信息與其他實例中的信息也是分離的。從解釋中學習的場景介于“屬性-值”與“從蘊涵中學習”的場景之間[10]。把屬性-值表示“朝著歸納邏輯編程ILP方向擴展”,不會降低學習效率[8]226。

布洛克爾(Blockeel)等[14]提出ACE系統就是一個從解釋中學習的系統,該系統構建了邏輯決策樹,即,“其每個內部節點都是表達式的一階合取”的決策樹。下文將說明:在本文BDI 擴展體系結構中,Agent 在自主性和意圖性驅動下,如何判斷Agent 在什么時候應該學習、何時配置學習集、何時執行ACE。

三、第一層級的學習——集中化學習

假定圖1 中的agent r1 已經選擇規劃p007 處理事件(achieve(p-sanded board))。在解釋器的執行階段,這個規劃要么成功要么失敗。如果規劃失敗,我們期望Agent 嘗試學習為什么規劃會失敗,假定Agent已經進行了實踐推理以適應其意圖,該推理表征在規劃背景中,那么有了經驗之后,Agent應該對“表示規劃背景的”情境公式進行再思考。為了執行學習過程,Agent 需要生成如下三個文件:訓練實例、背景理論和ACE參數,這些參數包含目標語言L的說明、期望的格式輸出等等。plan-id用來識別這些文件,這些文件包括:(1)“由擴展名.kb標記的”知識庫,包括知識所屬類別標簽的實例;(2)“由擴展名.bg標記的”背景理論;(3)“由擴展名.s標記的”語言偏倚。

這些文件由Agent自動生成,其生成過程如下[8]227-229:

當偵測到意圖成功或失敗時,agent r1在標記了p007.kb的日志文件中追蹤執行過程,向ACE標示它包含與此規劃相關的實例。每個模型從一個標示了規劃success或failure執行的標簽開始;然后添加一個謂詞plan構建一個模型,該模型就是一個具體Agent執行一個具體規劃的實例。當被選規劃創建規劃實例時,模型就包含了Agent 信念。當被選規劃是相關且可用的規劃時,Agent 會記住部分模型。在執行階段,會加入標簽。該實例的知識庫儲存在文件p007.kb中。

背景理論包含被學習規劃的信息,變元和常元符號來自規劃定義。在圖1的BDI-Agent系統中,一個函數會把規劃p007的初始定義翻譯成如下這種格式,該格式對p007的規劃背景進行編碼:plan_context(Ag,p007):-p_handfree(Ag,Hand),p_at(Obj,free)。

然后生成配置文件。在圖1的實例中,配置信息儲存在文件p007.s中。該文件的第一部分與所有配置文件相同,用于說明在學習時:ACE打印的信息、學習案例的最低數目、輸出的格式(要么是一個邏輯決策樹,要么是一個邏輯程序)、目標概念所使用的類(即要么成功要么失?。?。

在為樹節點生成測試時,配置文件的第二部分將說明需要考慮的謂詞。Agent生成配置文件的方式依賴Agent 定義。在對規劃定義的每個時刻,解釋器都會追蹤定義該規劃的謂詞及其簽名。在圖1的實例中,定義Agent可以使用三個謂詞:(p_state/2,p_freehand/2,p_at/2)。所以,Agent要求學習算法把帶有變元的這些謂詞作為論元:

rmode(p_state(Ag,State));

rmode(p_freehand(Ag,Hand));

rmode(p_at(Obj,Place))。

在該實例后,Agent要求學習算法對這些帶有論元的謂詞進行實例化。

rmode(p_state(+Ag,#));

rmode(p_freehand(+Ag,#));

rmode(p_at(+Obj,#))。

在背景理論中,也需要考慮使用的謂詞。所有配置都至少有如下兩種形式:

rmode(plan_context(Ag,Plan));

rmode(plan_context(+Ag,#))。

ACE使用rmode命令對語言偏倚L加以限定??梢园逊枴?”看成是變元占位符,從知識庫的實例中可以得到其常值。前綴“+”表示在實例之后,知識庫中必須進行實例化的變元。

一旦實例數量大于某個閾值(如閾值是5時),Agent執行一個修改過且非交互版本的ACE,并且建議用戶查看p007.out文件,該文件包含學習過程的結果,并相應修改規劃的定義。Agent也有可能自己修改規劃的定義。為了整合學習結果而采取的策略取決于應用領域,即,有時最好由用戶加以監督。

四、第二層級的學習——多Agent系統中的BDI學習Agent

前面的實例對應學習多Agent系統層級中的第一層級。在第二層級中,假設Agent學習時能夠意識到其他Agent。通信對于多Agent系統中的學習非常重要。一個BDI-Agent在學習時,應該考慮通信的情境有如下兩種:第一,Agent不能開始學習過程的執行,即,它沒有足夠的實例以運行ACE。這種情況下Agent可以向多Agent系統中的其他Agent索取訓練實例。第二,Agent無法為相關規劃的失敗找到假設來解釋,即,執行學習過程后,ACE生成的樹結構只有[failure]節點,或者找到的假設是正在學習的初始規劃背景。這意味著BDI-Agent用來學習的實例,不足以找出規劃失敗的原因。這種情況下,在再次執行ACE之前,Agent可以向多Agent系統中其他Agent索取更多證據[8]229-230。

多Agent系統中的Agent可以共享學習過程的結果,這受益于BDI體系結構定義學習過程的方式。如果Agent能夠找到導致規劃失敗的假設,它會把結果通知給用戶,請求根據找到的決策樹對規劃定義進行修改。如果用戶修改規劃定義,這種修改會自動影響知識庫中擁有該規劃的所有Agent。但這并不意味著這些Agent 會共享所有規劃,因此在本文的體系結構中,允許多Agent 系統是異構的,即:多Agent系統的Agent的種類可以不同。

用來處理通信的是“權限”概念,這里的“權限”被定義為:Agent能夠處理的所有觸發事件的集合,即Agent規劃庫中所有觸發器構成的集合。發送消息的方式有兩種:(1)Agent廣播消息,包括觸發器和被學習規劃的plan-id 方面的消息,如果觸發事件在其他Agent 權限范圍內,它們就接受并處理消息;(2)用“權限”為每個Agent建立一個目錄,其中一個Agent權限范圍內的每個觸發事件,與系統中“處理相同觸發事件的”其他Agent的id有關[8]230。

權限與規劃決定通信內容。如果兩個Agent對同一事件有相同規劃,那么它們就能夠參與分布式數據的收集過程,即,它們能共享雙方收集的訓練實例。這種情況下,Agent就會參與數據收集,但是每個Agent都在本地學習。

五、結論與未來的工作

在埃爾南德斯等工作的基礎上,本文展示了如何用歸納邏輯編程方法(尤其是邏輯決策樹的歸納),把BDI體系結構擴展成“Agent擁有學習技能的結構”。這些技能的設計與BDI-Agent行為背后的實踐理性是相容的。研究表明:(1)BDI學習Agent 結構可以用表處理語言Lisp加以實現;該結構還包括兩個非標準的BDI 特征、幾個多Agent 系統模擬選項、一個DTP 定理證明器接口;(2)如果多Agent系統中的BDI-Agent 能夠共享訓練實例,那么就可以增加它們的學習機會;(3)從多Agent 系統學習視角看,對理性Agent-BDI 模型進行了擴展,并克服了“這些Agent 沒有學習能力和多Agent 系統功能的”缺點。

未來的研究可以考慮:如何理解基于案例的推理和實踐推理理論之間的關系?如何實現多BDI-Agent系統結構中更多的多Agent系統特征?是否有可能為更復雜情境中的學習集設計出信息共享協議?例如,有相同權限但具有不同規劃的Agent。如果把ACE修改成“以遞增方式學習它接收的每個實例”,共享協議就顯得尤為重要。學習與意圖Agent的多模態邏輯理論之間的關系如何?

猜你喜歡
體系結構實例意圖
原始意圖、對抗主義和非解釋主義
陸游詩寫意圖(國畫)
制定法解釋與立法意圖的反事實檢驗
基于粒計算的武器裝備體系結構超網絡模型
作戰體系結構穩定性突變分析
基于DODAF的裝備體系結構設計
基于云計算的航天器控制系統自組織體系結構
完形填空Ⅱ
完形填空Ⅰ
燕山秋意圖
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合