蔣 一,張 帆
人工神經(jīng)網(wǎng)絡是20世紀80年代以來從仿生學發(fā)展起來的具有極強非線性映射能力的模型,BP(Back Propagation,簡稱BP)神經(jīng)網(wǎng)絡作為其中應用最為廣泛的網(wǎng)絡之一,一直以來都是研究的熱點[1].它所采用的基于誤差逆?zhèn)鞑サ膶W習算法具有很好的非線性映射能力、泛化能力和容錯能力,但同時也存在著學習過程收斂速度慢、誤差和函數(shù)可能存在局部最小值等問題.
遺傳算法(Genetic Algorithm,簡稱GA)也稱進化算法,其思想基于達爾文的進化論和遺傳學說,具有極強的全局搜索能力和較快的收斂速度.將遺傳算法與BP神經(jīng)網(wǎng)絡相結合,可以實現(xiàn)快速全局搜索,同時還能夠解決局部存在最小值問題[2-4].但是,標準遺傳算法采用固定的交叉概率和變異概率,使得系統(tǒng)難以平衡全局搜索和局部搜索之間的矛盾.由此,提出改進型衰變參數(shù)遺傳算法的BP 神經(jīng)網(wǎng)絡模型,建立故障類型和數(shù)據(jù)化故障征兆之間的非線性映射關系,從而提高系統(tǒng)故障診斷的精度和速度.
標準遺傳算法將待解問題以某種形式編碼,產(chǎn)生相應的解集,再根據(jù)適應度函數(shù)的指導對編碼串進行遺傳操作實現(xiàn)優(yōu)勝劣汰,然后通過再選擇、交叉、變異產(chǎn)生新的群體,直至出現(xiàn)最優(yōu)解[5].圖1為遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡的原理圖.從圖1中可以看出,遺傳算法對神經(jīng)網(wǎng)絡權值閾值矩陣的優(yōu)化是通過誤差反饋來實現(xiàn)的.圖2 為算法具體流程.
圖1 遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡原理圖
圖2 標準遺傳算法流程圖
步驟1:產(chǎn)生初始種群.初始種群可以隨機產(chǎn)生,若初始種群為n,則n條染色體構成初始種群.
步驟2:計算適應度.適應度用來評價個體優(yōu)劣,是執(zhí)行遺傳算法的依據(jù).計算每一個個體的適應度值,該值越大表示適應度越高,越適應生存環(huán)境,個體評價越好,為下一步選擇、交叉和變異操作提供依據(jù).
步驟3:編碼.常見的編碼技術有計算機唯一識別的二進制編碼、格雷碼、整數(shù)或字母排列編碼等.本文采用二進制編碼,即將權值和閾值采用相同位數(shù)的二進制編碼形式表示,從而組成一條染色體.
步驟4:遺傳操作.在該步驟中又包含選擇、交叉和變異操作.
選擇.從父代種群中選取優(yōu)良個體遺傳(或復制)到下一代種群,實現(xiàn)優(yōu)勝劣汰,達到搜索結果的最優(yōu)值.
交叉.將兩個互相配對的染色體按照常用的隨機配對原則相互交換其部分基因,形成兩個新的個體的操作,就被稱為交叉.
變異.將個體編碼中的某些基因采用其他基因替換,是形成新個體的輔助方法.但是新個體變異的效果或好或壞,難以預料.
步驟5:解碼操作.解碼操作用是產(chǎn)生權值、閾值矩陣.
用遺傳得到的新個體構成新一代群體,返回步驟2,并重復執(zhí)行步驟2~4,直至達到預定的誤差范圍或已定的迭代次數(shù).
在遺傳算法中,交叉是產(chǎn)生新個體的主要手段,變異是產(chǎn)生新個體的方法之一,若交叉、變異概率過低,遺傳算法搜索可能會陷入遲鈍狀態(tài),達不到全局搜索的要求;若交叉、變異概率過高,遺傳算法將會退化為隨機搜索.由于標準遺傳算法采用固定的交叉概率和變異概率,因此難以平衡全局搜索和局部搜索之間的矛盾[6-7],因此本文提出了改進型衰變參數(shù)遺傳算法.其流程是在標準遺傳算法的基礎上引入衰減因子作用于交叉概率和變異概率,使兩者在迭代的過程中逐漸變小,從而兼顧了全局搜索能力和局部搜索能力,局部流程如圖3所示.
圖3 衰變參數(shù)遺傳算法局部流程圖
衰減因子:
式中,k為0~1之間的常數(shù),k為0時對應為標準遺傳算法.g為遺傳代數(shù),gmax為遺傳最大截止代數(shù),隨著迭代次數(shù)的增加,β從1 線性遞減到1-k.
在標準遺傳算法的基礎上,引入衰減因子β,構成衰變交叉概率為βρc,衰變變異概率為βρm,ρc、ρm分別為標準遺傳算法中的固定交叉概率和變異概率.隨著迭代次數(shù)的增加,衰減因子β相應從1線性遞減到1-k,從而交叉概率和變異概念分別從ρc、ρm遞減到(1-k)ρc和(1-k)ρm.由此,通過調(diào)節(jié)常數(shù)k就可以實現(xiàn)系統(tǒng)的全局搜索和局部搜索的動態(tài)平衡.
采用文獻[8]中的實驗數(shù)據(jù)來對比驗證遺傳算法改進前后算法性能的改善.樣本輸入向量包括各缸平均燃燒最大爆發(fā)壓力、排氣總管溫度、掃氣箱溫度、增壓器轉速、掃氣箱壓力、掃排氣道壓損系數(shù)、壓氣機出口溫度,一個負荷參數(shù),共8個變量作為BP 神經(jīng)網(wǎng)絡輸入變量.輸出變量由實驗數(shù)據(jù)中發(fā)動機常見的故障變量構成,包括:#1無故障;#2增壓器效率下降;#3冷空氣傳熱惡化;#4透平保護格柵阻塞;#5透平通流部分阻塞.共5個變量作為BP神經(jīng)網(wǎng)絡的輸出變量.
遺傳算法需設置的參數(shù)有:種群規(guī)模、最大遺傳代數(shù)、代溝、交叉概率、變異概率,以及衰減因子[9].由確定的輸入、輸出向量選擇BP 神經(jīng)網(wǎng)絡的結構為8-17-5,神經(jīng)網(wǎng)絡隱含層權值個數(shù)為156(17×8)個,閾值17(17×1)個,輸出層權值個數(shù)85(5×17)個,閾值5(5×1)個,用改進型衰變參數(shù)遺傳算法對這243個權值閾值進行優(yōu)化,其步驟如下,優(yōu)化流程圖見圖4.
圖4 衰變參數(shù)遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡流程圖
①確定種群規(guī)模.一般來說,選擇較大數(shù)目的種群規(guī)??梢酝瑫r處理更多的個體,容易找到全局最優(yōu)解,但缺點是增加了每次迭代的時間,實驗表明種群規(guī)模的增加將導致計算量呈指數(shù)增長.但是種群過小時,種群多樣性下降,遺傳算法陷入局部極小值從而導致早熟現(xiàn)象出現(xiàn)的可能性將大大增加.因此,本算法種群規(guī)模設定為40.
②通過反饋算法計算誤差E.對權值、閾值解碼產(chǎn)生權值、閾值矩陣,并賦給BP 神經(jīng)網(wǎng)絡,計算目標誤差函數(shù)E.
③計算適應度并排序.將目標誤差函數(shù)求導數(shù)定義為適應度函數(shù),計算個體適應度函數(shù)數(shù)值,并將其排序[10].
④編碼.編碼方式采用10位二進制編碼.
⑤遺傳操作.代溝設定為0.95,則從40 個個體中選取38 個(40×0.95)最優(yōu)個體;交叉概率設定為0.7,變異概率設定為0.01,即以0.7β的概率進行交叉,以0.01β的概率進行變異,其中,衰減因子β中的k取0~1之間的常數(shù).
⑥經(jīng)過多次Matlab 仿真實驗并觀察誤差進化曲線,可以發(fā)現(xiàn),當?shù)螖?shù)在30~70 之后誤差不再變化,因此遺傳代數(shù)gen取40.如未達到遺傳代數(shù),則進入步驟②,開始下一循環(huán),同時記錄每一代最小誤差.
⑦將最優(yōu)個體解碼,輸出最優(yōu)權值和閾值.
將最優(yōu)權值和閾值賦予BP 神經(jīng)網(wǎng)絡,輸入訓練樣本和測試樣本,得到相應的輸出樣本.
對k分別?。?,1]之間的11 個數(shù)進行遺傳操作,得到11組權值閾值矩陣,用于評價衰減因子的效果,評價結果如表1所示.
由表1 可以看出,當k=0.5 時,誤差最小.因此將表達式(1)中k取0.5,衰減因子如(2)式:
當k=0為標準遺傳算法,k=0.5時為衰變參數(shù)遺傳算法.表2、表3分別是標準遺傳算法和衰變參數(shù)遺傳算法優(yōu)化后的權值閾值賦予BP神經(jīng)網(wǎng)絡的輸出結果.
表1 衰減因子評價結果
表2 標準遺傳算法輸出結果
表3 衰變參數(shù)遺傳算法的輸出結果
由表2 和表3 可以看出,衰變參數(shù)遺傳算法較之標準遺傳算法,其輸出與理論輸出更為相似,訓練樣本誤差和測試樣本誤差更小.
誤差訓練曲線如圖5、圖6所示.
圖5 標準算法遺傳神經(jīng)網(wǎng)絡誤差訓練曲線
圖6 衰變參數(shù)遺傳神經(jīng)網(wǎng)絡誤差訓練曲線
由圖5 和圖6 對比可以看出,衰變參數(shù)遺傳算法的訓練步數(shù)更短,由14 步減少到4 步,因此收斂速度更快.
誤差進化曲線如圖7、圖8所示.
圖7 標準算法遺傳神經(jīng)網(wǎng)絡誤差進化曲線
圖8 衰變參數(shù)遺傳神經(jīng)網(wǎng)絡誤差進化曲線
由圖7 和圖8 對比可以看出,衰變參數(shù)遺傳算法在迭代前期具有較強的全局搜索能力,在后期又具有較好的局部搜索能力,較好地平衡了全局搜索和局部搜索之間的矛盾,克服了標準遺傳算法的不足,大大提高了故障診斷的準確率和魯棒性.
在標準遺傳算法的基礎上,引入衰減因子的概念,提出了改進型衰變參數(shù)遺傳算法,用于優(yōu)化BP 神經(jīng)網(wǎng)絡建立故障診斷模型.對改進前后的算法進行了仿真驗證,結果表明,改進型衰變參數(shù)遺傳神經(jīng)網(wǎng)絡可以很好地克服標準遺傳算法難以同時兼顧全局搜索能力和局部搜索能力的不足,具有更好的準確性和魯棒性,完全可以應用于系統(tǒng)故障診斷.