譚檢平+劉輝+楊岳飛
摘 要 針對BP神經(jīng)網(wǎng)絡(luò)在模擬電路故障診斷中的缺陷,BP神經(jīng)網(wǎng)絡(luò)采用的是沿梯度下降的搜索求解算法,因而收斂速度慢,而且容易陷入局部極小等問題。本文提出用遺傳算法來優(yōu)化BP神經(jīng)網(wǎng)絡(luò)權(quán)值和閾值的診斷方法,并以心電放大模擬電路為診斷實(shí)例,驗(yàn)證采用遺傳算法優(yōu)化的BP網(wǎng)絡(luò)在診斷實(shí)例中的效果。結(jié)果表明,和傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)診斷方法相比,遺傳神經(jīng)網(wǎng)絡(luò)算法既提高了網(wǎng)絡(luò)收斂速度,又提高了診斷的準(zhǔn)確度。
關(guān)鍵詞 遺傳算法 BP神經(jīng)網(wǎng)絡(luò) 模擬電路 故障診斷
中圖分類號:TP183 文獻(xiàn)標(biāo)識(shí)碼:A
0 引言
自20世紀(jì)60年代以來,模擬電路故障診斷研究取得了很大的成績,但由于模擬電路的輸入輸出關(guān)系及測試方法都比較復(fù)雜,而且模擬電路的元件有容差性,從而使得模擬電路故障診斷進(jìn)展比較緩慢。①②目前,BP神經(jīng)網(wǎng)絡(luò)廣泛應(yīng)用于模擬電路的故障診斷中。雖然BP算法具有精確性,卻存在容易陷入局部極小值,造成收斂速度慢等問題。遺傳算法有較強(qiáng)的宏觀搜索能力,還可以克服BP神經(jīng)網(wǎng)絡(luò)容易陷入局部極小值的問題,本文將二者結(jié)合而給出一種新的算法:遺傳神經(jīng)算法,從而達(dá)到理想的診斷效果。
1 BP神經(jīng)網(wǎng)絡(luò)的模擬電路故障診斷方法
1.1 模擬電路故障診斷原理
模擬電路故障的模式識(shí)別診斷原理是先對模擬電路故障數(shù)據(jù)進(jìn)行采集,再通過一定的算法對電路故障進(jìn)行分類,以達(dá)到電路故障定位的目的。主要包括電路測試,特征提取和故障診斷三個(gè)階段,用圖1所示來表示模擬電路的故障診斷過程。
圖1 模擬電路故障診斷框圖
模擬電路故障診斷是一種模式識(shí)別問題,電路故障與模擬元器件存在非線性問題,輸入和輸出間的關(guān)系復(fù)雜并且難以用精確的數(shù)學(xué)模型刻畫,由于模擬電路的非線性,導(dǎo)致傳統(tǒng)故障分類方法無法識(shí)別其非線性,故障診斷率低。
1.2 BP神經(jīng)網(wǎng)絡(luò)算法
1986年Rumelhart和McClelland等科學(xué)家提出了BP神經(jīng)網(wǎng)絡(luò),是一種按誤差反傳算法訓(xùn)練的多層前向網(wǎng)絡(luò),③是當(dāng)前使用最廣泛的神經(jīng)網(wǎng)絡(luò)模型,無需事前知道輸入和輸出之間的映射關(guān)系,能夠進(jìn)行自學(xué)習(xí),BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)圖
2 遺傳算法優(yōu)化神經(jīng)網(wǎng)絡(luò)
遺傳算法(Genetic Algorithm,GA)是以自然選擇和生物進(jìn)化為基礎(chǔ),將生物進(jìn)化過程中適者生存規(guī)則與群體內(nèi)部染色體的隨機(jī)信息交換機(jī)制相結(jié)合的高效全局尋優(yōu)搜索算法。④⑤⑥遺傳算法不是從一個(gè)點(diǎn)而是從多個(gè)點(diǎn)開始搜索,這樣就可以避免搜索過程在局部最優(yōu)解處收斂,從而有可能從解的空間尋優(yōu)得到全局最優(yōu)解。該算法是通過適應(yīng)度函數(shù)來尋優(yōu)的,不要求目標(biāo)函數(shù)的連續(xù)性、可微性。本文將遺傳算法和神經(jīng)網(wǎng)絡(luò)算法結(jié)合起來用于模擬電路故障診斷中。
2.1 編碼
二進(jìn)制編碼被傳統(tǒng)的GA所采用,雖然二進(jìn)制編碼簡單和通用,編碼、解碼操作簡單易行,但是二進(jìn)制編碼對處理復(fù)雜問題而言,自變量較多,而且編碼長度較長,從而導(dǎo)致染色體的長度非常長進(jìn)而使搜索空間增大,進(jìn)化速度很慢,降低了搜索效率。本文采用實(shí)數(shù)編碼的GA,對二進(jìn)制編碼加以改進(jìn),縮短了編碼長度,提升了處理復(fù)雜的決策變量約束條件能力,提高了運(yùn)算的精度和高度,也縮小了搜索空間,提高了搜索效率。
2.2 計(jì)算適應(yīng)度
采用訓(xùn)練樣本對種群中的個(gè)體所代表的神經(jīng)網(wǎng)絡(luò)進(jìn)行網(wǎng)絡(luò)訓(xùn)練,計(jì)算每個(gè)個(gè)體所代表網(wǎng)絡(luò)的學(xué)習(xí)誤差,從而確定適應(yīng)度的值,誤差與適應(yīng)度成反相關(guān)。訓(xùn)練誤差為:
= [( )] (1)
定義式中,表示訓(xùn)練樣本個(gè)數(shù),表示輸出單元個(gè)數(shù),為第個(gè)樣本時(shí)第個(gè)輸出單元,為第個(gè)樣本時(shí)第個(gè)期望單元。計(jì)算初始種群中每一個(gè)個(gè)體的適應(yīng)度值,我們把個(gè)體適應(yīng)度函數(shù)定義為:
() = (2)
式中,對于輸入樣本集: = (,,…),輸出樣本集為: = (,,…)。
2.3 選擇
通常的選擇算子有很多,建立在對個(gè)體的適應(yīng)度進(jìn)行評價(jià)的基礎(chǔ)上,根據(jù)優(yōu)勝劣汰原則本文采用確定式采樣選擇方法,具體操作步驟如下:
①計(jì)算適應(yīng)度的期望值:
= (3)
②計(jì)算群體中每個(gè)個(gè)體在下一代生存的期望生存數(shù):
= (4)
③對進(jìn)行取整運(yùn)算得到[],則可以確定出下一代群體中的[]個(gè)個(gè)體;對的小數(shù)部分進(jìn)行降序排列,順序排在前[]個(gè)加入到下一代群體中,后面的就淘汰掉了。這樣下一代群體中的個(gè)個(gè)體就確定了。
2.4 交叉
單點(diǎn)交叉或多點(diǎn)交叉在二進(jìn)制的編碼中常被采用,雖然單點(diǎn)交叉或多點(diǎn)交叉操作簡單,但是不利于產(chǎn)生新的優(yōu)良的個(gè)體。在實(shí)數(shù)編碼中,采用算術(shù)交叉的方法,對個(gè)體進(jìn)行線性組合而產(chǎn)生新的個(gè)體。隨機(jī)從第一代個(gè)體中選擇兩個(gè)個(gè)體、作為交叉的父本,通過線性組合而產(chǎn)生出兩個(gè)新的子代、,它們由(5)、(6)式確定。
= + () (5)
= () + (6)
其中為一個(gè)0~1之間的隨機(jī)數(shù)。
2.5 變異
為了使遺傳算法維持種群的多樣性,就必須采用變異算子。這樣不但可以增加局部所搜能力,而且能防止出現(xiàn)過早成熟,針對實(shí)數(shù)編碼遺傳算法,本文采用非均勻變異算法。設(shè)群體中的一個(gè)個(gè)體為 = (,,…,…),假定在變異點(diǎn)處的基因值取值范圍為[],則新的基因值由(7)式確定:
(7)
其中,表示一個(gè)0~1范圍內(nèi)的隨機(jī)數(shù),€HU(代表或)表示[0,]內(nèi)符合非均勻分布的一個(gè)隨機(jī)數(shù),本文定義€HU如(8)式:
€HU = ·() (8)
其中,為種群的最大進(jìn)化代數(shù),為0~1內(nèi)符合均勻概率分布的一個(gè)隨機(jī)數(shù),為系統(tǒng)固有的參數(shù)。不斷重復(fù)計(jì)算適應(yīng)度、選擇、交換及變異操作產(chǎn)生新的群體,使得權(quán)值和閾值得到不斷修正,直到總的迭代次數(shù)或是誤差達(dá)到預(yù)設(shè)訓(xùn)練標(biāo)準(zhǔn)。其流程圖如圖3所示。endprint
圖3 診斷流程圖
圖4 心電放大圖
3 電路診斷仿真實(shí)例
3.1 模擬電路
以心電放大電路為例來驗(yàn)證本文提出的對BP神經(jīng)網(wǎng)絡(luò)算法改進(jìn)的有效性。電路如圖4所示,其中電阻R1~R12,其電阻允許容差范圍為5%,電容C1~C2,其電容容差范圍為10%,運(yùn)放采用LF411,單位正弦激勵(lì)為輸入,頻率為100Hz。在仿真過程中,根據(jù)靈敏度分析得出R8,R9,C1最易受容差影響,所以我們僅考慮三種故障R8負(fù)偏50%,R12正偏50%,C1正偏50%,共三種單軟故障。
3.2 遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)模型參數(shù)設(shè)定
建立BP神經(jīng)網(wǎng)絡(luò)為三層網(wǎng)絡(luò)模型,神經(jīng)網(wǎng)絡(luò)輸入層和隱層函數(shù)為tansig,神經(jīng)網(wǎng)絡(luò)輸出層函數(shù)取logsig。參數(shù)設(shè)定輸入層單元數(shù)r = 15,根據(jù)經(jīng)驗(yàn)規(guī)律得出隱層單位數(shù)h = 2*r+1即h = 31,輸出層單元數(shù)為電路故障的種類即q = 3,神經(jīng)網(wǎng)絡(luò)的初始學(xué)習(xí)速率為0.1,遺傳算法染色體的編碼長度為l = r*h + q*h + h + q即l = 592,初始種群大小設(shè)為40,迭代次數(shù)為50,評判誤差為0.01。
圖5 改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練誤差曲線圖
圖6 傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練誤差曲線圖
3.3 訓(xùn)練和測試結(jié)果分析
BP算法的訓(xùn)練目標(biāo)為error_goal = 0.01,學(xué)習(xí)速率為lr = 0.1,經(jīng)過GA優(yōu)化后的權(quán)值和閾值賦給BP網(wǎng)絡(luò)作為初始值,經(jīng)過訓(xùn)練達(dá)到要求,訓(xùn)練過程如圖5所示。
同樣建立傳統(tǒng)的BP神經(jīng)網(wǎng)路,其參數(shù)設(shè)定跟用遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)參數(shù)一樣。在相同的預(yù)測誤差下,其訓(xùn)練過程如圖6所示。通過圖5和圖6,觀察分析可得:在相同的預(yù)測誤差下,優(yōu)化的BP神經(jīng)網(wǎng)路算法的迭代次數(shù)要少,而且其全局搜索能力強(qiáng),不易陷入局部極值。
經(jīng)過網(wǎng)絡(luò)訓(xùn)練后,分別隨機(jī)選取的測試數(shù)據(jù)進(jìn)行測試分析,測試結(jié)果、期望輸出以及診斷誤差分別如表1和表2所示。
表1 改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)測試數(shù)據(jù)表
表2 傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)測試數(shù)據(jù)表
4 結(jié)論
本文采用GA優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值,能使BP網(wǎng)絡(luò)在較小的范圍發(fā)揮高精度的搜索優(yōu)勢,而不必靠經(jīng)驗(yàn)和試驗(yàn)來確定這些參數(shù),從而提高故障診斷的精度和速度;同時(shí),克服BP算法陷入局部最小點(diǎn)、收斂速度慢等問題,結(jié)合這兩方面的優(yōu)點(diǎn),遺傳算法優(yōu)化的BP網(wǎng)絡(luò)用于模擬電路故障診斷是有效且實(shí)用的,為模擬電路故障診斷智能化提供了方法。
注釋
① 譚陽紅,何怡剛.模擬電路故障診斷技術(shù)的發(fā)展[J].測控技術(shù),2003(7):1-3.
② 何怡剛.非線性容差模擬電阻電路故障診斷的神經(jīng)網(wǎng)絡(luò)方法[J].固體電子學(xué)研究與進(jìn)展,2002.22(3):297-299.
③ 虞和濟(jì),陳長征.基于神經(jīng)網(wǎng)絡(luò)的智能診斷[M].北京:冶金工業(yè)出版社,2000.
④ 范睿,李國斌.基于實(shí)數(shù)編碼遺傳算法的混合神經(jīng)網(wǎng)絡(luò)[J].計(jì)算機(jī)仿真,2006.23(1).
⑤ 陳國良.遺傳算法及其應(yīng)用[M].北京:人民郵電出版社,1996.
⑥ Herrera F.Lozano M. Gradual distributed real-coded genetic algorithms [J].IEEETra- nsactions on Evolutionary Computation,2004.4(1):43-63.endprint