毛炳強 孫鐵良 孫凌祎 陳 鵬 高 暢
(1.國家石油天然氣管網集團有限公司油氣調控中心;2.昆侖數智科技有限責任公司)
BP神經網絡是目前神經網絡理論中發展最為完善、應用最為廣泛的網絡,但在訓練時通常需要較多的迭代步數[1]。 尤其在訓練較長數據序列時,就難免耗用大量CPU時間。 目前,國內外的改進工作主要集中于BP神經網絡算法的優化上,而對拓撲結構的研究相對較少。 Lopes N和Ribeiro B提出了多神經網絡結構, 并對一些分類問題進行了研究[2]。 Chen K和Salman A提出了一種針對語音信號處理的深度神經網絡結構[3]。
在計算機視覺中, 處理景象匹配問題時,一般會先進行實時圖和基準圖的粗匹配計算[4],以減少計算時間。 小波分析可以準確定位信號的瞬變特征,通過多分辨率變換可對信號進行“切片式”分析。 這一思想與視覺中由粗到細的多分辨率分析過程是一致的,更符合人類的視覺特性[5]。在此,筆者基于視覺生理學特征和小波分析在信號特征提取方面的優勢,提出了一種加速神經網絡訓練的新結構——雙神經網絡結構(Dual Neural Networks Architecture,DNNA)。 首先對輸入輸出信號進行小波分解,得到近似系數。利用DNNA中的輔助神經網絡對小波分解后的原始數據近似序列進行訓練, 將訓練得到的權值和閾值傳遞給主神經網絡, 再利用主神經網絡對全部的輸入輸出信號進行訓練。 在非線性函數逼近、非線性動態系統辨識和井底壓力預測仿真實驗中,與常規的神經網絡結構相比,在達到相同精度的前提下,DNNA占用的CPU時間更少, 訓練效率更高。
1989年,Mallat S G將計算機視覺領域內的多尺度分析思想引入到小波分析中,統一了小波函數的構造,提出了離散信號按小波變換進行分解和重構的金字塔算法,即Mallat算法[6],該算法使得多尺度分析在眾多領域取得了許多重要的理論和應用成果。
根據Mallat算法,一維輸入信號X可分解為一個低頻近似系數caJ和不同頻率的高頻細節系數cd1,cd2,…,cdJ(圖1)。

圖1 一維輸入信號X的3層小波分解
該過程中, 系數可通過離散小波分解的Mallat算法獲得:

其中,D為下抽樣算子, h-*為高通濾波器h的共軛反轉,g-*為低通濾波器g的共軛反轉,*表示卷積運算。
同理, 可以得到一維輸出信號Y的小波分解分量tcaJ和tcd1,tcd2,…,tcdJ。 如果X和Y為多維信號,則可將多維信號的每一維按相同的分解方式分別進行分解。 數據序列分解后,每層的分解序列相對于分解前的長度減半。 另外,小波分解中低頻部分隨層次的增加,它含有的高頻成分信息會隨之減少,當分解到下一層次時,就有更高頻的信息被去除,則低頻部分可以以較短的長度表征時間序列的變化趨勢。
雙神經網絡結構[7](圖2)包含一個輔助神經網絡ANN_a和一個主神經網絡ANN_p,它們具有相同的網絡結構和學習參數。 其中,輔助神經網絡主要根據小波分解得到的原始數據的近似序列的趨勢特征, 在較短時間內尋找權值和閾值,并提供給主神經網絡作為初始權值和閾值,以縮短整體訓練時間。

圖2 雙神經網絡結構
在雙神經網絡結構中[8],首先利用小波分解獲取原始數據序列的近似序列,該序列的長度隨著分解層數的增加逐層減半,接著利用新獲得的近似序列進行輔助神經網絡訓練,找到一個合理的初始權值和閾值,最后以此權值和閾值作為初始值對原始數據序列進行主神經網絡訓練,這樣可以大幅減少計算量,縮短訓練時間。
值得注意的是,近似系數是從原始輸入輸出數據中提取的低頻信息和趨勢信息,所以雙神經網絡結構對包含大量高頻信號的數據并不適用;另外,信號中的突變點會在小波分解后成為幅值最大點,所以雙神經網絡結構對包含較多突變點的信號也不適用。 因此,使用雙神經網絡結構時需要注意以下3點:
a. 數據的歸一化預處理。為了保證輔助神經網絡傳遞給主神經網絡的參數的有效性,輔助神經網絡和主神經網絡的輸入輸出數據標準化必須在相同的范圍內。
b. 分解級數的選擇。分解級數既不能過大也不能過小。 過大則分解得到的近似系數包含的原始數據的信息過少,為主神經網絡提供的初始值不夠有效,多次實驗表明,一般分解最大層數不超過5層; 過小則輔助神經網絡的訓練會占用較多CPU時間。
c. 小波函數的選擇。 選擇不同的小波函數,將得到不同的分解分量,從而影響最終的訓練結果。 小波變換后的小波系數反映了小波與被處理信號之間的相似程度。 如果小波變換后的小波系數較大,則小波和被處理信號之間的波形相似程度較大,反之則較小[9]。 在雙神經網絡結構中,小波變換僅需反映小波信號整體的近似特征即可,因此可選用尺度較大的小波。
采用非線性函數逼近、非線性動態系統辨識和井底壓力預測3個仿真實驗, 并與常規神經網絡結構訓練結果進行比較,以驗證雙神經網絡結構的有效性。 其中,訓練誤差函數均選擇均方根誤差函數(RMES),即:

其中,N為數據長度,y(·)為實際輸出,yn(·)為預測輸出。
考慮如下非線性函數:

其中,x為-15~15之間均勻分布的數,共1 500組數據。
實驗中,神經網絡訓練的終止條件設為均方根誤差不大于0.01或者最大迭代次數達到10 000。采用常規BP神經網絡和雙神經網絡(db3小波基,3層小波分解)分別進行25次獨立實驗,結果如圖3所示。可以得到,常規BP神經網絡的訓練時間平均值為144.85 s, 雙神經網絡的訓練時間平均值為16.03 s,節約時間約88.93%。

圖3 非線性函數逼近的兩種神經網絡訓練時間對比
固定小波類型為db3小波, 考慮不同的分解層數對訓練時間的影響。 由表1可知,1~3分解層的運行結果類似,當分解層數達到4、5之后,標準差變大,說明運行結果的起伏變化較大,不穩定,這是因為分解后的近似系數長度過短,不能很好地表征原始輸入輸出信號所包含的信息。

表1 不同分解層數下的訓練時間 s
固定小波分解層數為3層時, 考慮不同的小波類型對訓練時間的影響。Ingrid Daubechies是較為常用的一組小波基。 由表2可知,總體訓練結果差別不是很大, 其中db1的結果波動最小但平均值最大,db10的結果波動最大,最不穩定。

表2 不同小波類型下的訓練時間 s

在物理模型內部結構未知的情況下,輸入變量選為y(t-1)、y(t-2)和u(t-1),輸出變量為y(t),輸入輸出共800組數據,誤差精度設為0.008,選擇db3小波基,3層小波分解。 非線性動態系統辨識的兩種神經網絡訓練時間對比結果如圖4所示,可以看出,BP神經網絡平均訓練時間為9.10 s,雙神經網絡平均訓練時間為3.41 s, 節約時間約62.53%。

圖4 非線性動態系統辨識的兩種神經網絡訓練時間對比
井底壓力預測系統是典型的非線性系統,以中東油田現場測量得到的垂直井筒氣液兩相流井底壓力數據為訓練對象,對井底壓力進行預測。輸入變量為液相流量、氣相流量、管直徑、管長度、井口壓力、API油相密度、地面溫度和井底溫度,輸出變量為井底壓力,共選取150組數據[10]。 采用多入多出的BP神經網絡進行井底壓力預測, 標準化區間為-1~1,誤差精度設為0.05。 由于原始數據序列波動劇烈且無規律, 選用db3小波基,1層小波分解。 得到井底壓力預測的兩種神經網絡訓練時間對比結果如圖5所示, 可以看出,BP神經網絡的平均訓練時間為128.41 s,雙神經網絡的平均訓練時間為85.38 s,節約時間約33.51%。

圖5 井底壓力預測的兩種神經網絡訓練時間對比
為提高常規神經網絡的訓練效率,筆者提出了雙神經網絡結構,利用小波分解提取特征的優勢,構建輔助神經網絡,并為主神經網絡提供訓練初值。 仿真實驗結果表明,雙神經網絡結構相對于常規的神經網絡結構,可以極大地節約訓練時間。 另外,由于雙神經網絡結構對算法和內部結構不做要求,因此不影響其泛化、容錯等性能,使之可以應用在多種神經網絡(如徑向基神經網絡、回歸神經網絡及小波神經網絡等)中,使用簡單、方便高效,有利于神經網絡的開發和應用。