人工智能(二)--基於規則的專家系統


知識是什麼?知識是對某個主題或某個領域上的理論或實踐的理解。掌握知識的人被稱爲專家。
知識可以被表達爲產生式規則(production rule),或簡稱規則。它有兩部分組成:IF部分和THEN部分。比如:
IF 下雨
THEN 帶傘
條件部分可以用OR或AND等進行連接。

規則可以用來表達關係(Relation,IF停電THEN電視開不了)、建議(Recommendation,IF下雨THEN帶傘)、指令(Directive)、策略(Strategy)、啓發(Heuristic)。

通常情況下專家系統開發組裏的成員
1、領域專家;
2、知識工程師:設計、構建和測試專家系統。他們和專家交流來找到如何解決特定的問題;
3、程序員:用計算機能理解的形式描述知識;
4、項目經理:整個開發組的領導,控制開發進度;
5、終端用戶:可能是初級醫生或礦石堪探者等等。
通過使用專家系統外殼,可以免去程序員,同時還可能減免知識工程師的職責。對於小的專家系統,所有的角色甚至都可以是同一個人。

基於規則的專家系統的結構
1、知識庫:存放規則集;
2、數據庫:存放事實,用於IF部分;
3、推理機(inference engine):將事實和規則聯繫起來,推理出結果;
4、解釋機(explanation facilities):向用戶解釋結果是如何推理得到的;
5、用戶界面。
以上五部分是任何基於規則的專家系統的重要組成。此外,專家系統還可以擴展:
1、外部接口:使得專家系統可以和外部數據和外部程序交互。它被推理機使用。比如根據已有的數據,調用外部程序(比如C程序)計算得到新的數據,同時還可以查外部的數據庫,作爲推理時的依據;
2、開發者界面:和用戶界面類似,只不是面向的對象是知識工程師和專家。通常是簡單的文本編輯,附帶拼寫和語法檢查。此外,還可能有版本控制機制,記錄改變的數據和作出更改的人名。
3、調試器。

專家系統的特性
1、針對狹窄特定的領域
2、需要快速的執行效率
3、結果應該正確
4、具有解釋機制
5、使用符號化推理
6、可能會犯錯,因爲人類專家也會犯錯
7、知識和處理過程隔離
8、當信息不完整或模糊時,仍然可以得到某個合理的結論。傳統程序這種情況下不會有結果

正向推理鏈和逆向推理鏈
正向推理是數據驅動的。推理從已知的數據開始,依次執行每條可執行的規則,規則所產生的新的事實被加入到數據庫中,直到沒有規則可以被執行爲止。
逆向推理是目標驅動的。根據目標找到可以得到該結論的規則,將規則中的IF部分壓棧作爲新的子目標,重複上述過程,直到找不到證明當前目標的規則,或者當前目標已經作爲事實存在數據庫裏。噹噹前目標的所有條件都在數據庫裏時,這個目標也加入到數據庫裏。
當目標明確時,使用逆向推理更加高效,因爲可以避免不必要的規則的執行。否則就需要正向推理。許多專家系統外殼都結合兩種方式同時使用。儘管如此,推理機制一般都使用逆向推理,只有在新的事實加入時,正向推理才被用來最大化地使用這些數據。

衝突規則的解決方法
當兩條規則根據相同條件得到截然相反的結論時,正向推理會選擇更後的規則,因爲更後的規則所得到的事實會覆蓋前面的事實;如果是逆向推理,更前的規則會被選擇,因爲一旦找到了合適的規則,推理就結束了。
解決衝突的辦法有:
1、從最高優先級的規則開始執行;
2、從最精確的規則開始執行,比如A=>Z和A&B=>Z則選擇或者;
3、從使用最新數據的規則開始執行。
爲了提高專家系統的性能,我們需要定義元知識(metaknowledge),關於知識的知識。它們用元規則(metarule)來表示,用來決定規則選擇的策略。有些專家系統將元規則分隔,但多數專家系統都不能區別規則和元規則,而是將元規則作爲最高優先級的規則。

基於規則的專家系統的優點
1、自然化的知識表達;
2、統一形式的結構(IF-THEN);
3、知識於處理隔離;
4、處理不完整和不確定的知識,比如在給出結論時給出多個選項,並標明各選項的概率;
缺點:
1、各規則之間的關係不清晰,主要原因在於沒有對知識體系結構的表示;
2、搜索策略低效;
3、沒有學習的能力,人類專家根據經驗的積累知道何時打破現有規則。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章