劉思嬌,鄭 莉,焦曉亮,呼 婧
(北京華航無線電測量研究所,北京 100013)
隨著石油和天然氣市場的飛速發(fā)展,油氣管道的安全問題越來越受到重視,管道缺陷的量化對于預防管道事故的發(fā)生起著十分重要的作用。BP神經網絡方法已被應用到漏磁缺陷量化領域[1-2],韓文花等[3-4]提出了用遺傳算法對缺陷進行反演,但是傳統(tǒng)遺傳算法優(yōu)化BP神經網絡應用于大量缺陷反演的計算存在訓練速度慢、量化精度低等缺點[5-6]。筆者將自適應遺傳算法優(yōu)化的BP神經網絡應用到管道漏磁缺陷量化中,即根據管道漏磁實測缺陷的特點,自適應遺傳算法自主調節(jié)變異率和交叉率,進而提高計算速度,降低量化誤差[7]。
誤差逆?zhèn)鞑ニ惴?BP神經網絡算法)是神經網絡算法的一種,網絡由信號的正傳播和誤差的逆反饋組成。正傳播,即將訓練樣本輸入網絡,逐層向前傳播;誤差逆反饋,即計算輸出層的誤差,逆向反饋給隱層單元,再將誤差方向傳播回去,用連接全輸入端的實際信號和輸出端的等效誤差確定連接權的修正量,來更新各層間連接的權重和閾值[8]。在算法訓練過程中,這兩個階段循環(huán)進行,直至滿足停止條件。
遺傳算法是用于解決搜索和優(yōu)化問題的啟發(fā)式學習方法,其結合了遺傳學中基于適應度逐代選擇的存活原理,用選擇算子、交叉算子、變異算子去產生可延續(xù)的后代,進而找到最匹配的解決方案。
遺傳算法也是通過循環(huán)遍歷的方式進行最優(yōu)篩選的,例如,在第t代種群為P(t),經過遺傳算子運算胡,得到第t+1代群體,遺傳算法流程如圖1所示。
圖1 遺傳算法流程
簡單的遺傳算法忽略了逐代運算時種群個體的優(yōu)劣性,只利用了人為設定的交叉率和變異率進行尋優(yōu)運算,算法泛化能力低,在進行神經網絡優(yōu)化時增加了網絡優(yōu)化難度,缺陷尺寸量化精度不高。
自適應遺傳算法利用適應度在種群中的順序排列和種群的進化狀態(tài),自動調節(jié)遺傳算子的交叉率和變異率,使算法泛化能力增強。
(1)
(2)
式中:f′為初代個體的適應度最大值;f為次代個體的適應度值;fmax,fmin分別為個體適應度的最大值,最小值;favg為整個種群適應度的平均值;Pm1為初代變異率;Pc1為初代交叉率。
由式(1),(2)可知,個體適應度值趨于最大值時,其交叉率和變異率均趨近于零,說明在后期種群進化尋優(yōu)的過程中,自適應遺傳算法可以對優(yōu)秀的子代個體進行保留,增加交叉和變異操作的泛化能力,進而提高簡單的遺傳算法對于誤差逆反饋網絡對于初始權值的選擇。
將遺傳算法應用到誤差逆反饋中,主要是用遺傳算法優(yōu)化誤差逆反饋神經網絡的初始權值,誤差逆反饋神經網絡運用優(yōu)化后的初始權值進行網絡訓練,對訓練數(shù)據更具有適用性。自適應遺傳算法優(yōu)化BP神經網絡流程如圖2所示。
圖2 自適應遺傳算法優(yōu)化BP神經網絡流程
2.2.1 選擇算子
采用輪盤賭法的選擇策略,使種群中優(yōu)秀的個體以較大概率遺傳到下一代,增加優(yōu)秀個體的適應度。
2.2.2 交叉算子
選擇算子完成后,種群中個體兩兩組合成為交叉算子的初代個體,由兩個初代種群的適應度計算出自適應交叉率,進行交叉運算。
2.2.3 變異算子
基于漏磁缺陷尺寸的多樣性及連續(xù)性,采用多點變異的方式,相較于傳統(tǒng)的單點變異,更適用于個體染色體長度較大的情況。在代數(shù)逐漸增加的進化過程中,產生變異的基因位的個數(shù)會逐漸減小,對變異點進行如下定義。
(3)
式中:N為染色體基因長度;t為種群當前進化代數(shù);T為種群進化目標代數(shù);L為大于1的自然數(shù);中括號表示向下取整。
2.2.4 適應度函數(shù)
適應度函數(shù)是評價算法選擇何種路徑進化的重要判別標準,即對收斂速度及最優(yōu)后代的產生有決定性影響。設置適應度函數(shù)為
(4)
式中:error(t)為其對應的誤差逆反饋網絡輸出的誤差標準差,適應度隨著error(t)的減小而增加;Fitness為常數(shù)。
2.2.5 誤差逆反饋網絡的框架搭建
采取自適應遺傳算法優(yōu)化誤差逆反饋神經網絡,基于數(shù)據特點自適應定義變異率和交叉率,為誤差逆反饋網絡選取適應度最高的初始權值,同時定義如下網絡框架,具體描述如下所述[9]。
(1) 首先將數(shù)據進行歸一化,構建網絡輸入層傳輸函數(shù)采用log-sigmoid,輸入值和輸出值在0和1之間;輸出層傳遞函數(shù)采用線性輸出函數(shù)purelin,輸入和輸出值可取任意值;訓練函數(shù)采用貝葉斯正則法進行訓練。
(2) 設置種群的規(guī)模為50,隨機生成50組個體長度為57的神經網絡連接值,其中每個連接值的變化范圍為[-1,1],然后對每一組連接值進行初始化。
(3) 進行遺傳算法運算,迭代過程中不斷調整交叉率和變異率,依據上一節(jié)選擇、交叉、變異方法進行優(yōu)勝劣汰的遺傳策略。
缺陷數(shù)據庫包含天津直管牽拉和水壓環(huán)路試驗采集數(shù)據的缺陷庫,共1 567個缺陷樣本。所有缺陷樣本均從軸向去噪之后的數(shù)據中提取,訓練集與測試集比例為4…1。
缺陷長度分別為10,20,40,60 mm,寬度分別為10,20,40,60 mm,深度分別為1,3,5,7 mm。其中內缺陷為895個,外缺陷為672個。
3.2.1 訓練速度
對比傳統(tǒng)遺傳算法和自適應遺傳算法對神經網絡訓練速度的影響,可以看出,傳統(tǒng)遺傳算法需迭代的次數(shù)多,且得到的誤差遠大于目標誤差;而自適應遺傳算法迭代次數(shù)少,訓練速度快,量化精度也較傳統(tǒng)遺傳算法有很大提高。傳統(tǒng)遺傳算法優(yōu)化BP神經網絡訓練集迭代次數(shù)如圖3所示,自適應遺傳算法優(yōu)化BP神經網絡訓練集迭代次數(shù)如圖4所示。
圖3 傳統(tǒng)遺傳算法優(yōu)化BP神經網絡訓練集迭代次數(shù)
圖4 自適應遺傳算法優(yōu)化BP神經網絡訓練集迭代次數(shù)
3.2.2 量化誤差
比較傳統(tǒng)遺傳算法和自適應遺傳算法優(yōu)化BP神經網絡對于缺陷長寬深量化結果在不同評價指標的誤差,結果表明:自適應遺傳算法優(yōu)化BP神經網絡算法在訓練集和測試集的評價指標滿足率較傳統(tǒng)遺傳算法優(yōu)化BP神經網絡有明顯提高,說明自適應遺傳算法優(yōu)化BP神經網絡有更好的學習能力;同時,自適應遺傳算法優(yōu)化BP神經網絡對比傳統(tǒng)遺傳算法計算速率更快,迭代次數(shù)少,計算效率更高。 傳統(tǒng)遺傳算法和自適應遺傳算法優(yōu)化BP神經網絡的長度、寬度和深度量化結果如表1~6所示(表中A為管道壁厚,9.5 mm)。
表1 傳統(tǒng)遺傳算法優(yōu)化BP神經網絡長度量化結果
表2 自適應遺傳算法優(yōu)化BP神經網絡長度量化結果
表3 傳統(tǒng)遺傳算法優(yōu)化BP神經網絡寬度量化結果
表4 自適應遺傳算法優(yōu)化BP神經網絡寬度量化結果
表5 傳統(tǒng)遺傳算法優(yōu)化BP神經網絡深度量化結果
表6 自適應遺傳算法優(yōu)化BP神經網絡深度量化結果
在管道漏磁缺陷量化的計算過程中,針對傳統(tǒng)遺傳算法的缺點,采用自適應遺傳算法,根據實測管道缺陷的特點進行交叉率和變異率的調節(jié)和選取,相較于固定的交叉率和變異率,此方法提高了遺傳算法的計算速度,降低了實測數(shù)據的計算誤差。