摘要:提出了基于可信度因子和可信度區(qū)間的不確定性推理模型,并用改進的BP神經(jīng)網(wǎng)絡(luò)實現(xiàn)其推理過程,最后利用MATLAB神經(jīng)網(wǎng)絡(luò)工具箱給出仿真示例。改進的BP神經(jīng)網(wǎng)絡(luò)在實現(xiàn)不確定性推理方面有效避免了沿用傳統(tǒng)方法所帶來的規(guī)則數(shù)激增及推理緩慢等缺陷,并提高了網(wǎng)絡(luò)的泛化能力。仿真示例表明,它不僅可以自動學(xué)習(xí)和模擬專家的典型經(jīng)驗,而且還可以將專家的典型經(jīng)驗推廣應(yīng)用到一般情形。
關(guān)鍵詞:神經(jīng)網(wǎng)絡(luò); 專家系統(tǒng); 不確定性推理 機器學(xué)習(xí)
中圖法分類號:TP311文獻標識碼:A
文章編號:1001-3695(2007)01-0241-03
現(xiàn)實世界中客觀事物或現(xiàn)象的不確定性導(dǎo)致了在各認識領(lǐng)域中的信息和知識大多是不確定的。自從1967年第一個專家系統(tǒng)MYCIN出現(xiàn)以來,對于各種不確定性的研究就已引起了人們的重視。如何表示和處理不確定性知識成為人工智能研究的重要課題之一。相關(guān)的理論和應(yīng)用層出不窮。二十世紀六七十年代出現(xiàn)了主觀Bayes方法、確定性理論、可能性理論和證據(jù)理論等;八十年代以后,又提出了灰色系統(tǒng)理論、粗糙集理論、可拓理論、集對分析等。這些理論從不同角度對不同類型的不確定性進行了研究,并應(yīng)用于各種場合。
1基于可信度因子和可信度區(qū)間的知識表示
可信度是指人們對某一事物(或事情)的某方面性質(zhì)在主觀上確信的程度。傳統(tǒng)的基于規(guī)則的知識表達方法如規(guī)則1所示。
這種表示方法雖然簡單明了,但在不確定性領(lǐng)域卻顯得捉襟見肘。為了使基于規(guī)則表示的知識更為實用,可以為規(guī)則中的帶有不確定性的概念引入標志其可信程度的可信度因子或可信度區(qū)間。
基于可信度因子的不確定性知識的表達方式可采用規(guī)則2所示。
更一般地,采用可信度區(qū)間表示推理中“七八成”、“十有八九”等不確定性概念。可信度區(qū)間由兩個可信度因子表示,這兩個可信度因子的取值分別是可信程度的下限和上限?;诳尚哦葏^(qū)間的不確定性知識的表達方式可采用如下規(guī)則:
由于對不確定性概念引入了可信度,使得原本模糊的概念定量化、清晰化,因而基于可信度的規(guī)則表示法更能反映中醫(yī)思維方式,也更具有實用性。但是這種表示方法也有顯著的缺陷:①對于可信度因子和可信度區(qū)間的取值不可能窮盡;②知識庫中的規(guī)則數(shù)隨著可信度因子和可信度區(qū)間的取值不同而成倍地增長,導(dǎo)致知識難以管理以及推理效率低下。然而,如果利用神經(jīng)網(wǎng)絡(luò)來實現(xiàn)基于可信度因子或可信度區(qū)間的不確定性推理,則可借助于神經(jīng)網(wǎng)絡(luò)良好的泛化能力和并行計算特性,有效地避免這些缺陷。
2BP神經(jīng)網(wǎng)絡(luò)及其改進
BP神經(jīng)網(wǎng)絡(luò)是一種多層前饋神經(jīng)網(wǎng)絡(luò),名字源于網(wǎng)絡(luò)連接權(quán)值和閾值的調(diào)整規(guī)則采用的是誤差反向傳播(Back Propagation)學(xué)習(xí)算法,即BP學(xué)習(xí)算法。該算法是Rumelhart等人[1]在1986年提出的。由于BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)簡單、可塑性強,以及BP學(xué)習(xí)算法數(shù)學(xué)意義明確、步驟分明,BP神經(jīng)網(wǎng)絡(luò)在函數(shù)逼近、模式識別、信息分類、數(shù)據(jù)壓縮等領(lǐng)域得到了廣泛的應(yīng)用。
BP算法是一種有監(jiān)督學(xué)習(xí)算法,即對于一組確定的訓(xùn)練樣本,給定了網(wǎng)絡(luò)的期望輸出值(目標輸出值)。當(dāng)樣本中的輸入作為網(wǎng)絡(luò)的輸入后,網(wǎng)絡(luò)將產(chǎn)生實際輸出。如果實際輸出與樣本的期望輸出有誤差,則根據(jù)BP算法,調(diào)整網(wǎng)絡(luò)的連接權(quán)值和閾值,連接權(quán)值和閾值的不斷調(diào)整過程就是使得網(wǎng)絡(luò)的實際輸出值逐步逼近期望輸出值的過程。經(jīng)過學(xué)習(xí)后的神經(jīng)網(wǎng)絡(luò)將知識分布于各連接權(quán)值和閾值上。神經(jīng)網(wǎng)絡(luò)將利用知識的過程轉(zhuǎn)換為各神經(jīng)元的并行計算過程。對于新的輸入,神經(jīng)網(wǎng)絡(luò)將利用并行計算的特性迅速地在輸出層得出響應(yīng)。
在BP網(wǎng)絡(luò)的訓(xùn)練過程中經(jīng)常會出現(xiàn)網(wǎng)絡(luò)泛化能力差的情況,即網(wǎng)絡(luò)對于訓(xùn)練樣本中的輸入可以產(chǎn)生與期望輸出誤差很小的實際輸出,但對于訓(xùn)練樣本之外的新的輸入?yún)s可能產(chǎn)生與相應(yīng)的目標輸出有較大誤差的實際輸出。
改進BP神經(jīng)網(wǎng)絡(luò)泛化能力的一種方法是規(guī)則化調(diào)整方法[2]。普通的BP神經(jīng)網(wǎng)絡(luò)都采用網(wǎng)絡(luò)誤差的均方根之和作為性能函數(shù),如下所示:
其中,ei,ti,yi分別表示第i個訓(xùn)練樣本的訓(xùn)練誤差、目標輸出和網(wǎng)絡(luò)實際輸出。而規(guī)則化調(diào)整方法采用的網(wǎng)絡(luò)性能函數(shù)如下式所示:
其中,γ是性能參數(shù),msw是網(wǎng)絡(luò)中權(quán)值和閾值的均方和,其取值為msw=1n∑nj=1(wj)2,其中n是網(wǎng)絡(luò)中權(quán)值和閾值的個數(shù)。
采用規(guī)則化調(diào)整方法的性能函數(shù)訓(xùn)練神經(jīng)網(wǎng)絡(luò)可以減少網(wǎng)絡(luò)的有效權(quán)值和閾值,并且使網(wǎng)絡(luò)的訓(xùn)練輸出更加平滑,從而增強網(wǎng)絡(luò)的泛化能力。但是性能參數(shù)γ的選擇是一個不好解決的問題,如果太大,網(wǎng)絡(luò)的泛化能力不好;如果太小,網(wǎng)絡(luò)的訓(xùn)練精度又太低。在MATLAB神經(jīng)網(wǎng)絡(luò)工具箱中,提供了自動設(shè)置最優(yōu)性能參數(shù)的函數(shù)trainbr。該函數(shù)使用了Bayesian框架結(jié)構(gòu),假設(shè)網(wǎng)絡(luò)的權(quán)值和閾值是特殊分布的隨機變量,可用統(tǒng)計學(xué)的方法估計出γ的值。
3用神經(jīng)網(wǎng)絡(luò)實現(xiàn)不確定性推理
用神經(jīng)網(wǎng)絡(luò)實現(xiàn)基于可信度因子的不確定性推理的具體算法步驟如下:
(1)獲取知識并形式化編碼。
從專家經(jīng)驗中總結(jié)出知識,并用規(guī)則表示。將規(guī)則中的前提和結(jié)論形式化編碼,用變量表征每一個前提或結(jié)論。例如:用變量Xi(i=1,2,…,n)表征各種前提,用變量Yj(j=1,2,…,m)表征各種結(jié)論,從而獲得由形如規(guī)則1的規(guī)則組成的知識庫。
(2)獲取典型的可信度組合。
依據(jù)專家經(jīng)驗對變量取值。各變量的取值即專家認為的典型的前提與結(jié)論的可信度因子或可信度區(qū)間的組合,即
從而產(chǎn)生形如規(guī)則2的規(guī)則;
②對于可信度區(qū)間的組合,取
從而產(chǎn)生形如規(guī)則3的規(guī)則;
(3)獲取訓(xùn)練樣本和測試樣本。
(4)設(shè)計神經(jīng)網(wǎng)絡(luò)。
(5)訓(xùn)練神經(jīng)網(wǎng)絡(luò)。
以訓(xùn)練樣本訓(xùn)練神經(jīng)網(wǎng)絡(luò),訓(xùn)練過程中采用規(guī)則化調(diào)整方法。
(6)測試神經(jīng)網(wǎng)絡(luò)。
以測試樣本測試神經(jīng)網(wǎng)絡(luò)。
在步驟(5)中,具體設(shè)計神經(jīng)網(wǎng)絡(luò)時,可采用基于可信度因子的方法,也可采用基于可信度區(qū)間的方法。根據(jù)結(jié)論間的關(guān)聯(lián)程度,這兩種方法又可采用以下兩種方式來設(shè)計:①每一種結(jié)論的推斷用一個神經(jīng)網(wǎng)絡(luò)來實現(xiàn)。
②具有相同或相似前提的多個結(jié)論的推斷用一個神經(jīng)網(wǎng)絡(luò)來實現(xiàn)。
對于方式①,神經(jīng)網(wǎng)絡(luò)與結(jié)論是一對一的關(guān)系,它有基于可信度因子與基于可信度區(qū)間兩種推理模型,如圖1、圖2所示。圖1是基于可信度因子的推理模型,此時每一前提的可信度因子作為輸入層的一個神經(jīng)元的輸入,輸出層的神經(jīng)元的輸出作為結(jié)論的可信度因子;圖2是基于可信度區(qū)間的推理模型,此時每一前提的可信度區(qū)間的下限和上限分別作為輸入層的兩個神經(jīng)元的輸入,輸出層的兩個神經(jīng)元的輸出分別作為結(jié)論的可信度區(qū)間的下限和上限。
對于方式②,神經(jīng)網(wǎng)絡(luò)與結(jié)論是一對多的關(guān)系,它也有基于可信度因子和基于可信度區(qū)間兩種推理模型,如圖3、圖4所示。圖3是基于可信度因子的推理模型,此時每一前提的可信度因子作為輸入層的一個神經(jīng)元的輸入,輸出層的每一個神經(jīng)元的輸出作為一種結(jié)論的可信度因子;圖4是基于可信度區(qū)間的推理模型,此時每一前提的可信度區(qū)間的下限和上限分別作為輸入層的兩個神經(jīng)元的輸入,輸出層中每兩個神經(jīng)元的輸出分別作為一種結(jié)論的可信度區(qū)間的下限和上限。
4仿真示例
利用MATLAB 7.0提供的神經(jīng)網(wǎng)絡(luò)工具箱,可以方便地進行仿真實驗。實際上,方式②是方式①的推廣,基于可信區(qū)間的模型是基于可信度因子的模型的推廣。限于篇幅,僅給出方式①的基于可信度區(qū)間的方法。
具體步驟如下:
(1)獲取知識并形式化編碼。以規(guī)則1作為示例規(guī)則。
(2)獲取典型的可信度組合。
假設(shè)根據(jù)專家經(jīng)驗獲得的前提與結(jié)論的可信度區(qū)間組合如表1所示。從表1中可以很容易人為地總結(jié)出前提與結(jié)論的可信度組合的規(guī)律。以下仿真實驗將表明:利用表1中的數(shù)據(jù)訓(xùn)練神經(jīng)網(wǎng)絡(luò),神經(jīng)網(wǎng)絡(luò)可以“學(xué)習(xí)”到前提與結(jié)論的可信度組合的規(guī)律,并能夠?qū)⒋艘?guī)律推廣應(yīng)用。
表 1前提與結(jié)論的可信度組合
BP神經(jīng)網(wǎng)絡(luò)的設(shè)計要求確定網(wǎng)絡(luò)的層數(shù)和各層中神經(jīng)元的個數(shù),以及各層神經(jīng)元的傳遞函數(shù)等參數(shù)。Hornik等人[3]已證明,三層BP網(wǎng)絡(luò)模型結(jié)構(gòu)可以很好地解決一般的函數(shù)逼近和模式識別問題。因此,這里采用三層BP網(wǎng)絡(luò)結(jié)構(gòu)。
根據(jù)圖2 所示的基于可信度區(qū)間的推理模型(一),可確定網(wǎng)絡(luò)的輸入層神經(jīng)元個數(shù)為4;網(wǎng)絡(luò)的輸出層神經(jīng)元的個數(shù)為2。隱含層神經(jīng)元個數(shù)定為20。隱含層神經(jīng)元的傳遞函數(shù)采用S型正切函數(shù)tansig;輸出層神經(jīng)元的傳遞函數(shù)采用S型對數(shù)函數(shù)logsig。最終確定的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。
圖5最終確定的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
(5)訓(xùn)練神經(jīng)網(wǎng)絡(luò)。
(6)測試神經(jīng)網(wǎng)絡(luò)。
首先以訓(xùn)練樣本的輸入向量P作為網(wǎng)絡(luò)輸入進行測試。網(wǎng)絡(luò)的實際輸出向量為
可以看出,網(wǎng)絡(luò)的實際輸出與目標輸出test_target非常接近,說明神經(jīng)網(wǎng)絡(luò)已具有一定的泛化能力,它所產(chǎn)生的輸出符合它在訓(xùn)練階段所獲得的樣本中輸入與輸出的規(guī)律。
5結(jié)束語
本文提出的基于可信度因子和可信度區(qū)間的不確定性推理反映了一種不確定性思維方式。由于繼續(xù)沿用一般的規(guī)則表示法來實現(xiàn)這種推理具有規(guī)則數(shù)激增、推理緩慢等缺陷,以及傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)具有泛化能力不強的缺點,所以采用改進的BP神經(jīng)網(wǎng)絡(luò)來實現(xiàn)這種推理。MATLAB仿真示例表明,采用改進的BP神經(jīng)網(wǎng)絡(luò)能夠?qū)崿F(xiàn)基于可信度因子和可信度區(qū)間的不確定性推理,并且可以有效避免上述缺陷;神經(jīng)網(wǎng)絡(luò)可以“學(xué)會”專家的典型經(jīng)驗,并將專家的典型經(jīng)驗進行推廣應(yīng)用,而這種推廣應(yīng)用是與專家思維規(guī)律相一致的;專家不再需要窮舉各種前提與結(jié)論的可信度組合,只需給出若干典型組合樣本即可,從而更具可操作性和實用性。此外,基于可信度因子與基于可信度區(qū)間的兩種方法還可以相互結(jié)合,如前提的不確定性用可信度因子度量,結(jié)論的不確定性用可信度區(qū)間度量;或反之。用神經(jīng)網(wǎng)絡(luò)來實現(xiàn)不確定性推理的關(guān)鍵是需要能夠正確反映前提與結(jié)論的可信度組合規(guī)律的典型樣本。只要有了足夠多的典型樣本,神經(jīng)網(wǎng)絡(luò)就可以自動學(xué)習(xí)其中的規(guī)律,并利用其良好的泛化特性,將這些規(guī)律推廣應(yīng)用到更一般的推斷情形中。
參考文獻:
[1]D E Rumelhart,G E Hinton,R J Williams.Learning Representations by BackPropagating Errors[J].Nature,1986,323:53336.
[2]聞新,周露,李翔,等.MATLAB神經(jīng)網(wǎng)絡(luò)仿真[M].北京:科學(xué)技術(shù)出版社,2003.278279.
[3]K Hornik,M Stinchcombe,H White.Multilayer Feedforward Networks Are Universal Approximators[J].Neural Networks,1989,2(5):359366.
作者簡介:
施明輝(1973),男,江西臨川人,博士研究生,主要研究方向為神經(jīng)網(wǎng)絡(luò)、模糊理論、專家系統(tǒng)、中醫(yī)智能處理;
周昌樂(1959),男,江蘇太倉人,教授,博導(dǎo),博士,主要研究方向為計算語言學(xué)、理論腦科學(xué)和認知邏輯學(xué);
吳清鋒(1977),男,福建廈門人,博士研究生,主要研究方向為圖像處理、中醫(yī)智能處理;
吳蕓(1978),女, 江西贛州人,博士研究生,主要研究方向為圖像處理、中醫(yī)智能處理;
張志楓(1959),男, 江蘇太倉人,副教授,主要研究方向為中醫(yī)四診客觀化研究。
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文