第六章 智慧型可適性計算平台建置
6.3 智慧型可適性計算平台系統架構及開發流程說明
前述第二章之系統概念架構中,人工智慧建將於本小節實作,智慧 型可適性計算平台架構如圖6.2 所示,共分為可適性計算平台、主控 協調層及人工智慧子系統三個部份。人工智慧子系統包括專家系統模 組與類神經網路模組,專家系統模組在本研究中乃用於製作「計算元 計算狀態分析模組」,而類神經網路模組則可應用於可適性計算平台 之應用子系統中,建置各應用模組之方程式,詳細建置過程將於6.3.1 節說明。前述「計算元計算狀態分析模組」,其主要職責為由各計算 元之模擬結果分析計算元本身及周遭之狀態,再決定各計算元須計算 之方程式集合並依計算順序儲存於各計算元之「方程式計算順序與設 定儲存容器」,而第三章所建立之可適性計算平台,只能將「方程式 集合分析模組」所分析應用模組之結果儲存於「方程式計算順序與設 定儲存容器」,各計算元需計算所有應用模組,無法因應計算元周遭 及自身之狀態變化自動調整計算元之所需計算之方程式集合,減少計 算量。
155 Voronoi Diagram
空間離散模組
156
6.3.1 人工智慧子系統
人工智慧子系統包括專家系統模組及類神經網路模組,專家系統模 組將於6.3.1-1 節說明,類神經網路模組於 6.3.2 節說明。
6.3.1-1 專家系統模組
本小節將簡介專家系統、專家系統軟體 CLIPS 以及如何建立專家 系統模組。
I 專家系統簡介
程序性之程式語言,如 C 或 Fortran 語言,一般皆作為資料處理之 用(如數字或陣列之處理)。然而人類常使用抽象及象徵性的方法處理 複雜的問題,這種抽象及象徵性的方法往往不適用於程序性之程式語 言。雖然抽象的資訊仍可用程序性之程式語言撰寫,但必須耗費大量 的時間進行程式編撰才足以描述這些抽象資訊,以轉換這些抽象資訊 成為可以使用的格式。
近年來人工智慧領域的研究結果已經發展出可具體化抽象資訊的 技術,這項技術可讓程式表達得更接近人類邏輯,且更利於程式的發 展與日後之維護。專家系統即為上述的電腦程式之ㄧ,其具有能夠模 仿人類專家解決複雜問題的能力。
Edward Feigenbaum 教授將專家系統定義為一個使用知識及推理過
157
程解決問題的智慧型電腦程式,且這樣的問題是需要大量專家知識才 得以解決的問題。也就是說,專家系統是一個模仿具有決策能力之人 類專家的電腦系統。
專家系統係由知識庫(Knowledge Base)及推理引擎(Inference Engine) 等兩個主要元件所組成。專家系統依其知識表示法可分為許多種類,
其中以法則(rules)的方式表示知識之專家系統稱為法則式專家系統 (Rule-based Expert System),為最常見的專家系統之一。法則式專家 系統之法則儲存於知識庫,用來表示數組相對於給定情況的反應。每 條法則皆由條件部分(conditional element)和動作部分(action element) 所組成。條件部分為一系列的條件敘述,若這部份的敘述和事實(facts) 相符,則執行(fire)此法則之動作部分。推理引擎會配對這些敘述與事 實是否相符合,此過程稱為 patterns matching,每當法則的動作部分 改變事實(facts)後,推理機便會再次執行 patterns matching 的動作,
判斷哪些法則是可執行的,直到沒有任何條件部分的敘述符合事實為 止。
專家系統相較於程序性程式(如:C 或 Fortran 等)語言有很大的差異,
首先專家系統解題的知識與推論機制是分開的,而程序性程式設計則 通常會將資料與演算法交織在一起;此外在資料處理方面,專家系統 偏向高度交談式處理,且其處理對象為知識,而程序性程式設計則為
158
批次順序處理,處理對象為資料;因此專家系統可以因知識抽換而改 變系統功能及行為或是強化解題模式與能力,而程序性程式設計則需 頻繁修改程式,相較之下專家系統適於應用在特定領域且維護和擴充 會較為方便。另外專家系統相較程序性程式語言,具有提供解釋推論 過程之能力,讓使用者可由推論過程理解求得答案之邏輯。
II
CLIPS 簡介
CLIPS 是 C Language Integrated Production System 的縮寫,係由 NASA/Johnson Space Center 使用 C 程式語言所開發的專家系統開發 工具(Expert system shell),為 NASA 所開放的免費軟體。以 CLIPS 建 置專家系統的主要步驟為將法則(rules)輸入知識庫(Knowledge Base),
另外因本研究將 CLIPS 嵌入智慧型計算平台中,因此對於 CLIPS 與 計算平台間之資料交換須再作處理。
CLIPS 支援了三種不同的程式編撰方法,分別為以法則為基礎 (Rule-based)、物件導向(Object-oriented)及程序導向(Procedural),說明 如下:
(1) 以法則為基礎(Rule-based):此種程式編撰方式允許了知識可以表 示成啟發式的敘述,以指定對特定的情況做出動作。
(2) 物件導向(Object-oriented):此種程式編撰方式允許複雜的系統可 以被拆解並模組化成數個元件,這些元件可以再用於建立其他的
159
系統或是其他元件,本研究即採取此種程式編撰方式。
(3) 程序導向(Procedural):此種程式編撰方式則是類似程序性程式語 言,如C、Java 及 FORTRAN 等。
CLIPS 之推理鏈結法屬前式鏈結法(Forward chaining),另外,CLIPS 亦可嵌入至別的程式語言,或是被當作子程式呼叫,因此易於與 其他程式語言進行整合。
III 專家系統模組說明
CLIPS 對於嵌入 C 程式語言已有完備之溝通介面(I\O interface),惟 其溝通介面較為繁雜。本研究為了達到程式開發後之高度可重複利用 性,在系統發展上乃以物件導向方式撰寫,因此為了與本研究開發系 統之概念一致,以及簡化 CLIPS 之溝通介面,本研究將 CLIPS 製作 為類別(Class),對 CLIPS 進行封裝(Encapsulation),並將其溝通介面 (I/O interface)重新包裝,簡化為較簡單的函式,如此一來將能大幅簡 化應用 CLIPS 之複雜度及提升程式開發之效率。因為本研究已完成 將 CLIPS 封裝,在後續應用上僅需將 CLIPS 宣告為一成員物件,即 可應用 CLIPS 建置專家系統。另外,在建立專家系統時,最重要的 部份為建立法則,此部分乃由使用者自行建立,並儲存於 CLIPS 的 輸入檔(或稱法則庫),之後透過封裝後之 CLIPS 溝通介面讀入輸入檔 即可使用該專家系統。而在撰寫專家系統之語法上,本研究採用
160
CLIPS 所提供之物件導向(Object-oriented) 語法撰寫專家系統,以便 後續研究開發專家系統時可重複利用本研究所建立之專家系統。
因本研究以專家系統建置「計算元狀態分析模組」,故在此說明計 算元與專家系統間之溝通過程,至於建立該模組之專家系統所需推論 邏輯,將於6.4 節說明。圖 6.3 為專家系統與計算元之溝通示意圖,
對於專家系統而言,計算元之相關資訊為輸入(Input),例如計算元求 解問題之狀態變數,此部份資訊乃透過可適性計算平台之輸出介面所 取得,之後再透過封裝後之專家系統輸入介面將資訊傳給專家系統。
在專家系統針對該節點狀態完成推論分析後,專家系統透過輸出介面 將資訊傳出,再透過可適性計算平台之輸入介面將資訊傳送給計算元,
其中專家系統之傳出資訊為該計算元須計算之方程式集合。
圖6.3 專家系統與計算元溝通示意圖
161
6.3.1-2 類神經網路
本小節將簡介類神經網路、類神經網路 FANN(Fast Artificial Neural Network)以及如何建立類神經網路模組。
I 類神經網路簡介
傳統上常用統計學上的方法做為迴歸(Regression)之依據,這些方法 頗具成效,然在面對許多複雜問題時,這些方法仍有所不足,主要是 因為傳統統計學方法對於非線性系統及變數間有交互作用之系統較 難適用。近年來類神經網路(Artificial neural network,ANN)已被視為 非常有效之非線性模型建構工具。
類神經網路(Artificial Neural Network)是指模仿生物神經網路的資 訊處理系統,其定義為:「類神經網路是一種計算系統,包括軟體與 硬體,它使用大量簡單的相連人工神經元來模仿生物神經網路的能力。
人工神經元是生物神經元的簡單模擬,它從外界環境或者其他人工神 經元取得資訊,加以簡單的運算,再輸出其結果到外界環境或者其他 人工神經元。」。
類神經網路是由許多個人工神經元與連結所組成,並可以組成各種 網路模式,其中又以倒傳遞網路(Back-Propagation network,BPN)為 應用最廣者,其屬於監督式學習網路(Supervised learning)的一種,主 要為利用一組已知輸入值及輸出值來訓練網路,直到網路能找出近似
162
輸入及輸出值之轉換函數。一個 BPN 包含許多層,如輸入層(Input layer)、隱藏層(Hidden layer)及輸出層(Output layer)。輸入層之處理單 元用以輸入外在的環境訊息,輸出層處理單元用以輸出訊息給外在環
163
164
(2)誤差函數最小化:因為類神經網路是非線性系統,無法同迴歸分 析一樣用極值定理最小化誤差函數,進而推導出一組線性聯立方程式 求 解 迴 歸 係 數 , 而 是 使 用 優 選 法 如 最 陡 坡 降 法(Steepest Descent Method)等,以迭代的方式將誤差函數予以最小化,而解得連結加權 值與閥值。
II FANN 簡介
本 研 究 選 用 之 類 神 經 網 路 工 具 FANN(Fast Artificial Neural Network),屬於監督式(Supervised learning)學習神經網路,其學習演 算法為倒傳遞(Back-Propagation)演算法,此工具之取得來源為 Fast Artificial Neural Network Library 之官方網站, 為一免費軟體(Free open source software),另外,該軟體以 C 語言撰寫而成,因此可容易 的嵌入本研究所開發之系統中。
III 類神經網路模組說明
本研究採用之類神經網路軟體 FANN 乃由 C 語言撰寫而成,且其 溝通介面(I/O interface)不但相較於前述專家系統 CLIPS 之溝通介面 精簡許多,且其建置與執行步驟亦相當簡要,故本研究直接應用該軟 體之溝通介面建置方程式,並將此軟體內嵌於可適性計算平台之應用 模組中。
圖 6.5 說明以神經網路 FANN 建置方程式之概念,在使用 FANN
165
的介面建置方程式時,首先需完成神經網路的訓練,訓練完成之神經 網路可視為一輸入檔,當需要使用此神經網路時再讀入即可,故此步
的介面建置方程式時,首先需完成神經網路的訓練,訓練完成之神經 網路可視為一輸入檔,當需要使用此神經網路時再讀入即可,故此步