王 琨
南京模擬技術研究所,江蘇 南京 210000
神經網絡的泛化能力,即訓練后的神經網絡對測試樣本或工作樣本做出的正確反應的能力,是神經網絡最重要的性能。對于不同類型的測試樣本或工作樣本,若是要訓練出一個具有廣泛適應能力的神經網絡,必然會造成部分資源的浪費,所以如何設計出滿足要求并消耗較少資源的神經網絡,是當前神經網絡領域研究的熱點之一。
Agent的概念出現于 20世紀 70年代的人工智能(AI,Artificial Intelligence)中,80年代后期才成長起來。多Agent系統(MAS,Multi-Agent Systems)是指一些 Agent通過自主協作完成某些任務或實現某些目標的大型系統。MAS作為Agent相關技術的主要發展方向,在目前的廣泛應用中受到了極大的關注和重視。MAS指的是由多個能力知識有限且狀態不同的Agent所組成的Agent系統。這些成員Agent在一個大目標的驅使下,相互合作、相互服務,共同完成一個任務。其中,每個Agent都是完全獨立自治的,不會干擾或影響其他Agent的目標及行為。
本文通過將動態聯盟的 Agent系統設計原理引入神經網絡的結構設計中,提出了基于動態聯盟的多Agent系統的神經網絡結構設計構架。該構架能夠根據任務目標需求自適應動態更新神經網絡的結構,并根據資源分配方式將神經網絡分解成一些子神經網絡,從而提高神經網絡的適應性及優化資源使用率。
單個 Agent由于本身知識和計算資源的有限性,導致其智能性受到限制。多個Agent組成的MAS是一個多Agent系統。多Agent系統成員之間通過相互協同、相互服務一起完成共同的任務,其中各 Agent系統成員的活動都具有完全的獨立性和自治性,即其自身的行為和目標不會受到系統中其它成員的影響,MAS可以通過協商等方式處理各 Agent成員在目標和行為上的沖突和矛盾[1]。多個Agent間通過形成聯盟來執行單個 Agent無法完成的任務,能夠提高任務完成的成功率和執行的效率。在基于動態聯盟的Agent系統中每一個 Agent單元都是可以通過觸發事件成為聯盟主導者的動態聯盟發起者;而當任務完成后,聯盟解散時每一個聯盟發起者又會變成一個普通的Agent單元。正是通過這種以完成任務為目的、以臨時結盟為方式的動態解決任務過程,使得系統擁有了更加有效的任務解決能力[2]。
基于聯盟式的多Agent系統結構如圖1所示,是在完全集中式與完全分布式的基礎上形成的。每個聯盟內部都是完全集中式,而聯盟彼此之間的關系為完全分布式。假設表示多Agent系統的Agent集合,每個Agent所擁有的資源為,其中k表示系統資源的種類,表示Agent所擁有的第l種資源數量。為系統中待分配的任務集,表示任務分別對 k中資源的需求。聯盟C的成員Agent所擁有的第l項資源的總和為,若對于任意滿足,則聯盟劃分滿足要求。
圖1 基于聯盟式的多Agent系統結構示意圖
動態聯盟的組成包括聯盟盟主(Head of the Coalition,HC)和聯盟盟員(Member of the Coalition,MC)兩種成員角色。通常,盟主是唯一存在的,而多個盟員與唯一盟主相連。圖 2給出了動態聯盟的組成結構,M為聯盟盟主,A、B、C、D為聯盟成員,所有聯盟成員都在盟主周圍由盟主主導對相應事件做出響應。盟主在整個聯盟中扮演著核心的角色,負責任務的分解、分配和成員的控制管理,還會對完成的任務信息進行融合和記錄。盟員只是簡單地接收任務、執行任務、提交結果。動態聯盟的生命周期長短根據事件和任務的需求而定,聯盟是由于事件或任務的出現而產生的,聯盟的解散也是在任務被完成之后。動態聯盟的生命周期包括了準備期、建立期、工作期和解散期。聯盟的建立期和工作期是整個工作流程的核心運作時期,包含了盟主與盟員之間的大量通信協作。
圖2 動態聯盟結構示意圖
多Agent系統神經網絡構架如圖3所示。在數據訓練過程中,匯聚單元會監測數據的類型,盟主選擇策略會對盟主的身份進行確定,接下來盟主會根據全局子網絡節點的配置信息選擇合適能力與數量的Agent子網絡形成相關的聯盟組織。聯盟形成后根據數據類型以及相關子網絡映射關系將相關數據發送給盟員節點,盟員節點獲取數據并完成處理后傳送給盟主節點,盟主節點在接收的各盟員節點信息后進行相關的數據融合、濾波分析、目標預測等處理最終將結果進行反饋。隨著數據類型的變化,開始的聯盟逐漸變得不再合適,這時會根據全局信息進行盟主的移位和新聯盟的確認,整個流程是一個盟主確認、聯盟組建、盟主移位、聯盟再組建的循環過程,只有達到終止條件整個過程才會結束[3]。動態的聯盟工作模式保證了子網絡資源的有效利用。
圖3 多Agent系統神經網絡構架示意圖
各子網絡作為 Agent成員,對能夠表征研究對象全部特征的訓練樣本進行訓練,通過訓練在各子網絡內配置好隱節點。對于作為匯聚單元的子網絡,根據各類訓練樣本訓練得到各種聯盟類型,從而根據輸入數據的特征對子網絡組成的聯盟形式進行調整[4]。在訓練相關子網絡時,其他不相關子網絡處于休眠狀態,從而可以減小網絡規模,提高訓練速度,增添網絡試試建模能力。動態聯盟訓練流程如圖4所示。
圖4 動態聯盟訓練流程示意圖
本文提出了基于動態聯盟的多 Agent系統神經網絡構架,該構架能夠根據任務目標需求自適應動態更新神經網絡的結構,并根據資源分配方式將神經網絡分解成一些子神經網絡,從而提高神經網絡的適應性及優化資源使用率。
[1]何炎祥.Agent和多 Agent系統的設計與應用[M].武漢:武漢大學出版社,2001.
[2]施華傳.多Agent系統中Agents聯盟問題研究[D].合肥:合肥工業大學,2003.
[3]馬巧云.基于多Agent系統的動態任務分配研究[D].武漢:華中科技大學,2006.
[4]孫家民.基于多Agent系統的網絡協同控制研究[D].沈陽:沈陽理工大學,2017.