雷 宇,李孝安
(西北工業(yè)大學 計算機學院,陜西 西安 710129)
專家系統[1]主要由“知識庫”和“推理機”組成。知識庫是特定領域專家的經驗知識在計算機中的表示,推理機是專家系統依據計算機中存放的知識(包括實例和規(guī)則)得到結果的模型和方法。基本的推理機制主要有3 種:基于規(guī)則的推理機制(RBR),基于實例的推理機制(CBR),基于模型的推理機制(MBR)。經典的RBR 存在知識獲取瓶頸、知識系統維護復雜、不具備自學習能力等局限。人工神經網絡(ANN)[2]通過模擬生物體中神經網絡的結構與功能來解決目前計算機系統不能解決好的問題,具有自組織、自適應、自學習、容錯性好等特點。因而把神經網絡用于專家系統,能很好的彌補傳統專家系統的不足。
有關神經網絡研究多注重應用模型解決問題能力的研究,對神經網絡推理能力的研究較少。本文通過將遺傳算法(Genetic Algorithm,GA)與BP 神經網絡學習算法相結合獲取神經網絡模型[3],對神經網絡推理機制進行研究,得到了有意義的研究結論。
基于神經網絡模型的專家系統與傳統專家系統區(qū)別很大[4]:首先,知識由顯式轉變?yōu)殡[式;其次,知識不是由“專家”給出,而是通過學習訓練取得;最后,推理機不是傳統的邏輯推理,而是逐層并行的神經計算。建立知識庫就是確定神經網絡的連接結構,神經元閾值和神經元相互之間連接權值。因而,知識庫的建立過程實際上就是神經網絡的學習與組織過程,包括知識的獲取及知識存儲兩個過程。
基于神經網絡推理[5]的具體過程如圖1 所示。首先,是神經網絡專家系統獲得的過程。依據所給樣本,對樣本進行前期處理,包括數值化、歸一化等;依據處理后的樣本,構建網絡,包括各層節(jié)點數和連接方式等;根據事先確定的精度要求,學習算法,訓練次數,采用合適的激勵信號,進行訓練,直到網絡達到要求。之后,把通過訓練與泛化所得到的學習好的神經網絡的結構和參數作為知識存進知識庫。在此基礎上,根據用戶提供待解決問題完成神經網絡專家系統的推理。即:用戶輸入待解決問題,由系統進行前期的處理,然后載入已經訓練好的網絡(知識),進行推理(神經計算),得到推理機輸出結果,最后把神經網絡推理輸出的結果數據做進一步解釋,得到用戶能夠理解的解答。
BP 網絡是人工神經網絡研究中最為成熟的多層前向網絡模型,其結構、處理過程及學習機理如圖2 所示。采用BP學習算法可以實現網絡連接權的學習;經過訓練而學習好的神經網絡就可以具有所需要的推理能力。

圖1 基于神經網絡推理的流程Fig.1 Reasoning process based on neural network

圖2 BP 網絡Fig.2 Back propagation network
BP 算法是基于梯度下降的方法,存在容易陷入局部極小、收斂速度慢等一些缺點。因此,實際研究中,BP 學習算法的實現有多種改進版,如附加勢態(tài)項方法,自適應學習法,彈性BP 算法等,這里不再詳述。
遺傳算法(GA)本身具有強大的宏觀搜索能力,能以高概率找到全局最優(yōu)解,但在精確尋優(yōu)速度方面又有其缺陷。因此,將GA 與BP 相結合是解決二者各自學習性能缺陷的重要思路[3]。
用遺傳算法優(yōu)化神經網絡的權值和閾值,有兩種優(yōu)化方案。1)直接用遺傳算法取代傳統的學習算法,進行訓練,得到最優(yōu)解,作為神經網絡的權值和閾值。2)基于GA 的BP網絡模型,即:用遺傳算法進行優(yōu)化得到一組較好的權值和閾值,作為中間值,BP 網絡以此中間值為基礎,再用傳統BP算法進行訓練,得到學習好的目標網絡。這里,重點對后者進行研究。
對于BP 網絡學習,基于GA 實現BP 網絡學習包括如下過程:首先,選擇確定個體的編碼——將BP 網絡連接權編碼為個體表示,確定個體的適應度函數——可以由BP 算法中定義的網絡誤差函數轉換獲得;然后,就可以運用GA 算法進行BP 網絡的訓練;最后,將學得的種群中具有最好適應值的個體對應的網絡作為學習好的BP 網絡。這里,GA 算法過程略。
由于遺傳算法的局部搜索能力較差,僅僅用遺傳算法訓練網絡比較費時,并且在進化到一定代數后,搜索效率會變得很低,此后適應度值基本沒什么變化。因此,在這種情況下及早結束基于GA 的神將網絡的進一步學習,以此時得到的最好學習結果為基礎,再進入BP 學習過程,即可實現GA 和BP 學習算法的有機結合,得到GA-BP 方法來進行網絡的訓練。
GA-BP 算法過程包括兩個階段:第一階段是基于GA 的神經網絡學習,按照上述2.1 部分所述步驟訓練網絡的權值和閾值,但其中訓練代數和適應度函數相應的取較小值;第二階段是在第一階段得到的學習網絡的基礎上,再用BP 算法進行網絡的進一步學習訓練,直到滿足精度要求或者達到最大訓練次數[6]。
為了對比基于神經網絡模型的MBR 推理和基于RBR、CBR 的推理,文中用UCI 標準數據集在weka 環(huán)境下進行多次仿真實驗,在MATLAB 環(huán)境下對BP、GA 和GA-BP 3 種網絡模型的學習進行對比實驗。
文中引用UCI 機器學習數據庫[1],選取鳶尾花(Iris)數據集作為實驗數據。Iris 數據集中共150 組數據,把數據進行歸一化,結果如表1 所示。4個屬性的歸一化采用常用算式:,其中為歸一化后的值,為歸一化前的值,max 是屬性向量空間中最大值,min為屬性向量空間中的最小值。對于3個類別則分別用100、010、001 表示。總體數據共150 組,三類Iris 各有50 組,按原始順序編號(1~150),把其中結尾為0 和5 的抽取出來作為抽出集,三類Iris 各抽取10 組。剩余的120 組數據作為樣本集,每類Iris 各有40 組。從表1 中可以看出樣本集對總數據集有較好的覆蓋。
利用MATLAB(2008A)工具箱提供的自適應BP 算法進行神經網絡仿真實驗。實驗過程:Iris 有4個屬性,3 種類別,依據經驗和多次實驗得到[4,8,3]結構的三層BP 網絡。BP 算法中的學習因子初始值為0.1;采用遺傳算法訓練BP 網絡,種群規(guī)模30,代數800;采用GA-BP 算法訓練網絡,種群30,代數100,學習因子0.1。從實驗所得學習誤差曲線,我們發(fā)現:GA-BP 比GA 的代數要小很多,GA-BP 比自適應BP 的步數要少很多,GA-BP 的時間只有自適應BP 的69.46%,是GA 的78.30%。
為了進一步對比,文中對數據集進行多次劃分實驗,分別選取編號末位為(1,6)、(2,7)、(3,8)、(4,9)作為測試集,類比表1 得到相應的樣本集。加上表1 中編號末位是(0,5)的數據,共五組數據,對網絡進行訓練得到五組實驗結果如表2 所示。從表2 中明顯看出,在相同精度要求下,采用GA-BP 方法訓練網絡比自適應BP 算法訓練網絡訓練時間更少,訓練步數更少。
在weka(weka-3-6-8)工具進行對比試驗。使用CBR 中常見算法,最近鄰法(IBK)和決策樹法(J48);使用RBR 中可以用來規(guī)則提取的JRIP 算法和能產生決策規(guī)則的PART 算法。把J48 、IBK、JRip、PART 和GA-BP 網絡5 種方法進行對比實驗[8]。實驗過程中參數都取weka 默認參數。

表1 Iris數據集Tab.1 Iris data set

表2 自適應BP 和GA-BP 學習對比Fig.2 BP and GA-BP learning contrast
1)利用上文3.2 中的5 組樣本,作為訓練集。使用這5 組訓練集,對每一訓練集都進行針對J48、IBK,JRip、PART,GABP 5 種方法的建模和推理測試。為了對比推理時間,進行15 000 次測試,相當于在基于這5 種方法學習到知識后,專家系統進行15 000 次問題求解,也即推理機進行了15 000次推理。5 組實驗采用同一組測試集,對推理時間、報錯次數、正確率4個要素5 組進行分析。對5 種方法,5 組實驗得到結果取均值,如表3 所示。

表3 5種推理方法比較Tab.3 Comparison of the five reasoning algorithm
2)為了進一步證明基于GA-BP 網絡模型推理在將解決分類問題時的優(yōu)勢,選取UCI 下wine 和car evaluation 兩組數據集進行仿真。分別進行10 組實驗,每組實驗中Wine 進行17 800 次推理,car evaluation 進行17 280 次推理,對得到結果取均值,如表4 和表5 所示。
從表3、表4 和表5 可以看出,基于GA-BP 的神經網絡模型推理和基于IBK 的推理正確率最高,但是基于IBK 的推理時間遠多于基于GA-BP 的神經網絡模型推理;基于神經網絡推理的時間比其他3 種推理稍多,但正確率比它們都高出不少。

表4 Wine 實驗結果Tab.4 Wine experimental results

表5 Car evaluation 實驗結果Tab.5 Car evaluation experimental results
文中給出了一種基于GA-BP 學習的神經網絡推理模型及實現算法。針對分類問題研究的標準數據集,通過與基于RBR 和CBR 的4 種方法進行對比實驗研究,結果表明:使用基于GA-BP 神經網絡推理模型,在準確性要求較高的情況下,推理實時性最好;在實時性相當的情況下,推理精確性最高。綜合考慮實時性和準確性,基于GA-BP 網絡模型的推理具有較好性能。
[1]Liao S H.Expert system methodologies and applications—A decade review from 1995 to 2004 [J].Expert Systems with Applications,2005,28(1):93-103.
[2]高雋.人工神經網絡原理[M].北京:機械工業(yè)出版社,2005:1-6.
[3]李孝安.進化神經網絡理論與方法研究[D].西安:西北工業(yè)大學,2000.
[4]張煜東,吳樂南,韋耿.神經網絡泛化增強技術研究[J].科學技術與工程,2009,9(17):4997-5002.ZHANG Yu-dong,WU Le-nan,WEI Geng.Investigationon improving generalization of neural network[J].Science Techno logy and Engineering,2009,9(17):4997-5002.
[5]陶鵬,孫曉明,張超.基于神經網絡推理策略的電梯故障診斷法[J].武漢理工大學學報·信息與管理工程版,2009,31(6):950-953.TAO Peng,SUN Xiao-ming,ZHANG Chao.Research of elevator fault diagnosis based on neural network reasoning strategy [J].Journal of WUT :Information &Managfment Engineering,2009,31(6):950-953.
[6]黃建國,羅航,王厚軍,等.運用GA-BP神經網絡研究時間序列的預測[J].電子科技大學學報,2009,38(5):687-692.HUANG Jian-guo,LUO Hang,WANG Hou-jun,et al.Prediction of time sequence based on GA-BP neural Net[J].Journal of University of Electronic Science and Technology of China,2009,38(5):687-692.
[7]UCI 機器學習數據庫[EB/OL].http://archive.ics.uci.edu/ml/dntasets/.
[8]何達,吳明.Ada-BP神經網絡改進算法在電力負荷預測中的應用研究[J].陜西電力,2012(12):21-24.HE Da,WU Ming.Probe into application of Ada-BP neural network improved algorithm in electric power load forecasting[J].Shaanxi Electric Power,2012(12):21-24.