姚 路,康劍山,曾 斌
(海軍工程大學(xué),武漢 430033)
神經(jīng)規(guī)則與案例融合的專家系統(tǒng)知識表示和推理*
姚 路,康劍山,曾 斌
(海軍工程大學(xué),武漢 430033)
為了對專家系統(tǒng)中的知識進(jìn)行表示,并使得推理變得更加準(zhǔn)確高效,介紹了一種結(jié)合符號規(guī)則、神經(jīng)網(wǎng)絡(luò)和案例的方法。該方法是把一種混合規(guī)則,即神經(jīng)規(guī)則和案例結(jié)合在一起。它與傳統(tǒng)的基于符號規(guī)則推理不同的是,即使有一些未知的輸入,也可以執(zhí)行基于神經(jīng)規(guī)則的推理。實(shí)驗(yàn)證明,與傳統(tǒng)的專家系統(tǒng)比較,混合推理可以提高故障診斷的效率和精確度。
神經(jīng)規(guī)則,案例檢索,混合推理,故障診斷
目前故障診斷方法主要有以下幾種:[1]基于故障樹的方法、基于案例推理的方法、基于模型的方法、基于專家系統(tǒng)的方法、基于神經(jīng)網(wǎng)絡(luò)的方法等。以上方法各有其優(yōu)缺點(diǎn),為了提高推理系統(tǒng)的精度和效率,研究者往往希望整合兩種以上的推理方法以提高混合形式的積極影響,同時(shí)減少它們的消極影響。在此文中介紹了一種有效的方式——神經(jīng)規(guī)則,整合了3種推理計(jì)算方案,即基于規(guī)則推理,神經(jīng)計(jì)算和案例推理,并將神經(jīng)規(guī)則與案例結(jié)合起來。基于神經(jīng)規(guī)則推理的應(yīng)用領(lǐng)域大多在醫(yī)學(xué)方面,而在裝備故障診斷方面應(yīng)用較少[2]。
基于神經(jīng)規(guī)則和案例推理方法的混合系統(tǒng)構(gòu)架如圖1所示。該系統(tǒng)(虛線框部分)由以下幾個(gè)模塊組成:工作存儲器,混合推理機(jī)制,混合解釋機(jī)制,神經(jīng)規(guī)則庫和檢索案例庫。神經(jīng)規(guī)則庫含有代表一般領(lǐng)域知識的神經(jīng)規(guī)則。這些神經(jīng)規(guī)則既可以通過規(guī)則-神經(jīng)規(guī)則模塊從現(xiàn)存符號規(guī)則庫產(chǎn)生。也可以通過模式-神經(jīng)規(guī)則模塊從現(xiàn)存的經(jīng)驗(yàn)數(shù)據(jù)中產(chǎn)生。
圖1 混合系統(tǒng)構(gòu)架
使用神經(jīng)規(guī)則庫來檢索某個(gè)案例庫從而導(dǎo)出檢索案例庫。檢索案例庫中的這些案例是作為神經(jīng)規(guī)則的異常案例。每個(gè)案例都需要將其形式化為一組屬性-值對。對于某一案例,需要把它的輸入屬性和輸出屬性區(qū)分開來:輸出屬性代表觀測的結(jié)果或做出的決定,并與其相關(guān)聯(lián)的神經(jīng)規(guī)則結(jié)論變量相匹配。其余屬性是輸入屬性。案例一般可由以下形式的元組表示:
其中ij(j=1,m)表示輸入屬性的值,O表示案例輸出屬性值。
神經(jīng)規(guī)則是一種混合規(guī)則。該方法利用神經(jīng)計(jì)算在符號體系中以改善符號規(guī)則的性能[3]。與其他的混合方法[4]不同,利用這種方法構(gòu)建的知識庫保留了規(guī)則模塊化,在很大程度上保留了自然性。而對于結(jié)論的解釋[5]通過產(chǎn)生式規(guī)則給出。
2.1 語義和語法
神經(jīng)規(guī)則的形式見圖2(a)。其中Ci代表神經(jīng)規(guī)則的前提,sfi是Ci的重要因子。sf0是規(guī)則的偏差因子。神經(jīng)規(guī)則也可以看作是自適應(yīng)神經(jīng)單元的形式(見圖2(b)),其中Ci,sfi,sf0所表示的含義與前者相同。
圖2 神經(jīng)規(guī)則形成和以自適應(yīng)單元為形成的神經(jīng)規(guī)則
在規(guī)則中輸入值從[1,0,0.5]選取值。其中,1、0、0.5分別代表前提的屬性為真、假、未知3種情況。與符號規(guī)則相比,這樣取值更有利于區(qū)分前提的屬性,特別是當(dāng)前提為假或未知時(shí)。符號D代表規(guī)則的輸出結(jié)論。
式(1)中,a是激活值,閾值函數(shù)f(x)是激活函數(shù)。輸出值(“1”“-1”)分別代表規(guī)則成功或者失敗。
2.2 神經(jīng)規(guī)則庫建設(shè)
神經(jīng)規(guī)則可由生成的符號規(guī)則庫中導(dǎo)出,也可由經(jīng)驗(yàn)數(shù)據(jù)導(dǎo)出。符號規(guī)則庫中的符號規(guī)則的語法格式應(yīng)與圖2(a)中相同,但沒有重要因子和偏差因子。
①從現(xiàn)存的符號規(guī)則庫中導(dǎo)出神經(jīng)規(guī)則[3]
首先,將含有相同結(jié)論的符號規(guī)則整合為合并集,其次,為每個(gè)合并集分配一個(gè)自適應(yīng)神經(jīng)單元,每個(gè)單元通過著名的LMS算法進(jìn)行訓(xùn)練。最終得到相應(yīng)的神經(jīng)規(guī)則。
例如,在圖3中列出了一份從波音公司的CFM56-7型發(fā)動機(jī)維修中提取的知識規(guī)則(發(fā)動機(jī)部位為HPC),其中符號規(guī)則R1,R2,R3含結(jié)論相同,三者可構(gòu)成合并集,圖4給出了利用合并集產(chǎn)生的神經(jīng)規(guī)則(NR1)。如果對符號規(guī)則和神經(jīng)規(guī)則輸入相同的初始數(shù)據(jù),NR1和符號規(guī)則R1~R3將產(chǎn)生相同的結(jié)論。因此,NR1可以代替R1~R3。通過這種方式有效減小規(guī)則庫的規(guī)模。
圖3 符號規(guī)則合并集
圖4 符號規(guī)則合并集從表1產(chǎn)生的神經(jīng)規(guī)則
②從經(jīng)驗(yàn)數(shù)據(jù)中導(dǎo)出神經(jīng)規(guī)則[4]。
經(jīng)驗(yàn)數(shù)據(jù)一般是以知識模式的形式存儲。一個(gè)知識模式中含有大量變量和元組。每個(gè)變量值從一組離散值中選取。每個(gè)模式都有如下形式:
其中d代表中間變量或輸出變量值,vi(i=1,n)代表輸入變量值。例如,在針對某型艦船發(fā)動機(jī)的診斷知識進(jìn)行處理,并對變量值約簡處理[5]后得到10個(gè)知識模式(見下頁圖5),包含輸出變量“故障類型”和輸入變量(“冷卻水溫”、“空氣流量”、“燃油壓力”)。
由于知識模式可能產(chǎn)生非線性的情況,所以對于某一輸出變量值可能會產(chǎn)生多個(gè)神經(jīng)規(guī)則。
例如,從圖5的知識模式中產(chǎn)生的神經(jīng)規(guī)則如圖6所示,從表中可以看出分別只有一個(gè)神經(jīng)規(guī)則對應(yīng)“故障類型”的“正?!敝担∟P4)和“點(diǎn)火故障”值(NP1),但是有兩個(gè)神經(jīng)規(guī)則對應(yīng)“噴油器故障”值(NP2,NP3)。這是因?yàn)樵凇皣娪推鞴收稀敝敌纬傻南嚓P(guān)訓(xùn)練組是非線性組。
圖5 變量“故障類型”知識模式
圖6 從表3中產(chǎn)生的神經(jīng)規(guī)則
2.3 基于神經(jīng)規(guī)則推理
下面介紹一種啟發(fā)式算法,這種算法可以進(jìn)一步提高基于神經(jīng)規(guī)則推理的效率。首先,如果一個(gè)前提評估為“真”(例如圖6,在NP2中“燃油壓力是=3(-4.1)”),那么未評估的同名前提(含有相同變量)不計(jì)入rs,因?yàn)樗鼈冿@然為“假”,所以它們的結(jié)果為0。另外,未評估的同名前提中只有重要因子絕對值最大的前提才計(jì)入rs。例如,在NP1(圖6)中,前提“燃油壓力=3(2.8)”經(jīng)過評估后,只有前提“空氣流量=1(-2.0)”計(jì)入未評估總數(shù)。因?yàn)槠渫疤帷翱諝饬髁?2(0.90)”和“空氣流量=3(-0.70)”重要因子絕對值沒有前者大,而這3個(gè)前提不可能同時(shí)為真。同樣剩下的兩個(gè)前提也不計(jì)入未評估總數(shù),因?yàn)樗鼈円呀?jīng)確定結(jié)果為假(其同名前提“燃油壓力=3(2.8)”已被評估為真)。
為了詳細(xì)說明推理過程,假設(shè)現(xiàn)在有一個(gè)含有圖6的4個(gè)神經(jīng)規(guī)則的知識庫和一個(gè)工作存儲器,該存儲器存儲了如下事實(shí) {“冷卻水溫=1”“空氣流量=3”“燃油壓力=3”}。推理引擎按照順序開始檢查每個(gè)神經(jīng)規(guī)則以判斷某個(gè)神經(jīng)規(guī)則能否被激活。評估神經(jīng)規(guī)則的前提是按照其存儲順序進(jìn)行的。每個(gè)前提評估后,將會對每一個(gè)神經(jīng)規(guī)則的已評估總數(shù)和未評估總數(shù)進(jìn)行計(jì)算。臨界前提(括號內(nèi)已給出)評估后每個(gè)神經(jīng)規(guī)則的ks和rs值如下:
NP3成功,推理進(jìn)程終止,輸出結(jié)論是“故障類型是噴油器故障”,并把結(jié)論存放到工作存儲器中??梢钥闯觯贸鼋Y(jié)論并不需要評估所有的神經(jīng)規(guī)則前提。
實(shí)驗(yàn)結(jié)果表明,基于神經(jīng)規(guī)則推理比相應(yīng)的基于符號規(guī)則推理更有效。主要原因在于神經(jīng)規(guī)則是通過多個(gè)含有相同結(jié)論的符號規(guī)則形成的,這樣有效減少了神經(jīng)規(guī)則庫中的規(guī)則數(shù)目和前提總數(shù)。這種推理機(jī)制使得推理過程中需要評估的規(guī)則與前提數(shù)目減少。啟發(fā)式算法進(jìn)一步強(qiáng)化了這種推理方法。
與基于符號規(guī)則推理相比,基于神經(jīng)規(guī)則推理還有另外一個(gè)優(yōu)點(diǎn):即使一些前提未知(即局部輸入),仍然可以執(zhí)行基于神經(jīng)規(guī)則推理并得到正確結(jié)論[7]。而在基于符號規(guī)則推理中只有前提已知才能得出最終結(jié)論。
為了執(zhí)行基于神經(jīng)規(guī)則和案例的混合推理方法,需要利用檢索機(jī)制來組織合適的案例。在這里利用神經(jīng)規(guī)則庫中的神經(jīng)規(guī)則來檢索異常案例。
3.1 直接檢索
直接檢索的目的是為了將可用的神經(jīng)規(guī)則和可用的異常案例關(guān)聯(lián)起來,這些案例構(gòu)成神經(jīng)規(guī)則的異常。直接檢索過程如下:
對每一個(gè)案例:
①將案例的輸入屬性值作為初始數(shù)據(jù),執(zhí)行基于神經(jīng)規(guī)則推理。
②如果神經(jīng)規(guī)則能夠被激活,檢查其結(jié)論值是否與對應(yīng)的案例輸出屬性值相符合。如果不符合,那么將該案例視為神經(jīng)規(guī)則的異常案例。
圖7 神經(jīng)規(guī)則舉例
下面舉例說明如何進(jìn)行檢索過程,在這里使用圖7給出的神經(jīng)規(guī)則NR2(使用與NR1類似方法產(chǎn)生的)和圖8中的兩個(gè)案例。圖8中只列出了案例最重要的屬性。其他屬性未列出。
圖8 案例舉例
因?yàn)閗s1和ks2值均大于零,所以兩個(gè)案例基于神經(jīng)規(guī)則推理的結(jié)果都應(yīng)該是“損傷評估是嚴(yán)重超標(biāo)”。但是事實(shí)上只有第2個(gè)案例的損傷評估變量輸出值與神經(jīng)規(guī)則的結(jié)論相一致,第1個(gè)案例對應(yīng)的輸出值與結(jié)論相矛盾。因此,該案例被檢索為NR2的異常案例。
3.2 間接檢索
只有對符號規(guī)則庫關(guān)聯(lián)的異常案例才能夠使用間接檢索[8]。檢索過程如下所示:
①通過規(guī)則-神經(jīng)規(guī)則模塊將符號規(guī)則轉(zhuǎn)變?yōu)樯窠?jīng)規(guī)則。
②將產(chǎn)生的神經(jīng)規(guī)則與屬于原符號規(guī)則庫中關(guān)聯(lián)的異常案例結(jié)合起來。
例如,對于圖3中給出的3個(gè)符號規(guī)則(R1,R2,R3),圖9給出了與該規(guī)則庫相關(guān)聯(lián)的異常案例。表中“損傷評估”列的括號內(nèi)標(biāo)出了每個(gè)異常案例所對應(yīng)的符號規(guī)則。此時(shí)圖9中的案例被檢索為NR1的異常案例。
圖9 圖5中符號規(guī)則檢索的異常案例
可以看出NR1中的異常案例要比在合并集中平均每個(gè)符號規(guī)則關(guān)聯(lián)的異常案例數(shù)目多(NR1關(guān)聯(lián)4個(gè)異常案例,每個(gè)符號規(guī)則異常案例數(shù)目<2)。因此,平均來看,神經(jīng)規(guī)則有一個(gè)明顯的缺陷,即神經(jīng)規(guī)則關(guān)聯(lián)后的異常案例數(shù)目要多于產(chǎn)生該神經(jīng)規(guī)則的符號規(guī)則庫中每個(gè)符號規(guī)則關(guān)聯(lián)的異常案例數(shù)目。這對基于案例推理的過程可能造成一定的影響。但是這種缺陷可以通過基于神經(jīng)規(guī)則解釋機(jī)制來彌補(bǔ)。
為了測試方法的有效性,使用一個(gè)關(guān)于某型裝備故障診斷的符號規(guī)則庫。通過對專家訪談等方法,該符號庫共收錄了58種符號規(guī)則。這種結(jié)合了符號規(guī)則庫和檢索案例庫的方法簡稱為SRCL。符號規(guī)則可通過規(guī)則-神經(jīng)規(guī)則模塊產(chǎn)生神經(jīng)規(guī)則。過程執(zhí)行完畢后共產(chǎn)生了34個(gè)神經(jīng)規(guī)則(即規(guī)則數(shù)目減少了41%,前提數(shù)目減少了30%)。上文指出,與符號規(guī)則庫相關(guān)聯(lián)的異常案例通過產(chǎn)生的神經(jīng)規(guī)則進(jìn)行間接檢索。這種結(jié)合了神經(jīng)規(guī)則庫和檢索案例庫的方法簡稱為NRCL。
圖10 實(shí)驗(yàn)結(jié)果
SRCL和NRCL代表了兩種推理方法。運(yùn)用SRCL執(zhí)行整合了基于規(guī)則推理和基于案例推理的混合推理機(jī)制。運(yùn)用NRCL執(zhí)行整合了基于神經(jīng)規(guī)則推理和基于案例推理的混合推理機(jī)制。對于相同的初始數(shù)據(jù)運(yùn)用SCRL和NCRL推理顯然將產(chǎn)生同樣的結(jié)論。然而運(yùn)用NCRL推理與運(yùn)用SCRL推理相比要求評估的前提數(shù)目更少。
圖10給出了SCRL和NCRL推理的實(shí)驗(yàn)結(jié)果。給出的結(jié)果中含有訪問規(guī)則的數(shù)目和已評估前提的數(shù)目。該表同樣說明了結(jié)論是否由異常案例導(dǎo)出(“異常發(fā)生”列)。
從表中可以看出,在NCRL中訪問過的規(guī)則平均下降45%。而且運(yùn)用NCRL推理評估前提數(shù)目減少了25%。
本文介紹了故障診斷技術(shù)的方法及一種整合了符號規(guī)則和神經(jīng)單元的混合規(guī)則,即神經(jīng)規(guī)則,同時(shí)將神經(jīng)規(guī)則和案例結(jié)合在了一起。整合了兩種推理機(jī)制,介紹了完備的混合構(gòu)架,檢索機(jī)制等,形成了較為完備的混合推理機(jī)制。通過實(shí)驗(yàn)數(shù)據(jù)分析,證明這種方法有效提高了裝備故障診斷的效率和精度。
[1]楊 軍,馮振生,黃考利,等.裝備故障診斷技術(shù)[M].北京:國防工業(yè)出版社,2004:14-19.
[2]關(guān)惠玲,韓 捷.設(shè)備故障診斷專家系統(tǒng)原理與實(shí)踐[M].北京:機(jī)械工業(yè)出版社,2006:59-78.
[3]Hatzilygeroudis I,Prentzas J.Neurules:Improving the Performance of Symbolic Rules[J].International Journal on AI Tools,2010,9(1):113-130.
[4]Hatzilygeroudis I,Prentzas J.Constructing Modular Hybrid Knowledge Bases for Expert Systems[J].International Journal on Artificial Intelligence Tools,2011,10(2):87-105.
[5]楊 廣,吳曉平.艦船裝備故障診斷特征知識獲取方法研究[J].船舶工程,2009,31(2):52-54.
[6]Gonzalez A,Dankel D.The Engineering of Knowledge Based Systems Theory and Practice[J].Englewood Cliffs,2003,15(1):26-67.
[7]Hatzilygeroudis I,Prentzas J.An Efficient Hybrid Rule-based Inference Engine With Explanation Capability[C]//Proceedings of the 14th International FLAIRS Conference,Menlo Park,CA:AAAI Press,2001:27-231.
[8]Gallant S I.Neural Network Learning and Expert Systems[M].Cambridge,MA:MIT Press,2004.
The Knowledge Representation and Reasoning of Expert System Used Neurule and Case Fusion
YAO Lu,KANG Jian-shan,ZENG Bin
(Naval University of Engineering,Wuhan 430033,China)
To express the knowledge of expert system,and makes the reasoning become more accurate and efficient,this paper introduces an approach that integrates symbolic rules,neural networks and cases.The method is to mix a rule that neural rules and case together.The difference between this method and the traditional rules of reasoning based on symbol,even if there are some unknown input,it can also perform reasoning based on neural rules.Experiments show that,compared with the traditional expert system,hybrid reasoning can improve the efficiency and accuracy of fault diagnosis.
neurule,case indexing,hybrid reasoning,fault diagnosis
TM344.1
A
1002-0640(2014)10-0117-04
2013-07-09
2013-09-07
國家自然科學(xué)基金(71201172);湖北省科技計(jì)劃自然科學(xué)基金資助項(xiàng)目(ZRY0145)
姚 路(1979- ),男,湖北利川人,碩士,副教授。研究方向:裝備管理、信息管理。