池凱莉,董林璽
(杭州電子科技大學電子信息工程學院,浙江杭州310018)
工程中遇到的問題多數是非線性關系,很難用數學模型來計算,而神經網絡具有高度非線性映射的性能特點,只要構建合適的網絡,就可以以任意的精度逼近任何的非線性映射,所以神經網絡有著十分廣泛的應用前景,在網絡監測以及交通、醫療、農業等方面獲得了廣泛的應用。該算法的思想是通過梯度下降法修正各層神經元之間的權值,使誤差不斷下降以達到期望誤差的目的。從本質上說,這種算法是一種迭代過程,迭代算法一般都與初值的選擇密切相關,如果初值選擇不當,則算法的收斂速度會很慢甚至不收斂,在訓練過程中也容易陷入局部極小值。研究者一直致力于算法的改進[1],目前已有很多BP網絡改進算法產生,如:批處理、增加動量項、變學習效率等,然而,這些改進方法都是基于隨機初始化權值進行訓練仿真的,所以不能解決對初始權值的依賴問題。
本研究將采用分步賦值的方法設置初始權值。輸入到最后一級隱層的權值矩陣對網絡的影響不是很大,只要保證網絡的抗干擾性和容錯性,使網絡處于一個很好的狀態即可,本研究采用敏感區賦值,通過矩陣相乘來計算各級的權值。最后一層的輸出權值直接作用于輸出,對算法的影響最大,筆者進行單獨賦值,利用期望值作為實際輸出構成線性方程組,以方程組的解作為輸出層的權矩陣的初始值,這樣不僅可以避免陷入局部最小點,同時也可大大地縮短訓練的時間。
傳統BP神經網絡的思想是:學習過程由信號的正向傳播與誤差的反向傳播兩個過程組成[2]。正向傳播是將樣本經過逐層處理后傳向輸出層,誤差反傳是將輸出誤差以某種形式通過隱層向輸入層逐層反傳,并將誤差分攤給各層的所有單元,從而獲得各層單元的誤差信號,該信號即作為修正各單元權值的依據。信號正傳后誤差信號反傳,周而復始地進行,該過程就是網絡的學習訓練過程。該過程一直進行到網絡輸出的誤差減少到可以接受的程度,或進行到預先設定的學習次數為止。
筆者以3層的神經網絡為例來闡述神經網絡的工作原理[3],其結構圖如圖1所示。

圖13 層BP神經網絡結構
網絡參數如下:輸入樣本數為k,輸入層節點數為n,隱層節點數為v,隱層加權和向量為net,輸出層節點數是m,輸入層到隱層的權值矩陣為Wij,輸出層權值矩陣是Vjk,教師向量是tk,學習效率為η,動量項為ε,輸入和隱層之間的激勵函數是f1,輸出層的激勵函數是函數f2,通常激活函數取單極性S變換函數。
定義網絡輸出和期望輸出不等時,輸出誤差E可以表示為:

第1隱層加權和netj如下所示:

第1隱層輸出hj如下所示:

第2隱層的加權和與輸出層的輸出計算方法同上。

輸出層的權值Δvjk變化如下:

隱層的權值Δwij變化表示為:

傳統BP神經網絡算法采用的反向迭代逐步調整各層權值,最終得到最優權值矩陣,研究者利用該矩陣對樣本進行訓練校準,得到更準確的信號數據。但是這種標準的BP算法在應用中暴露了不少內在的缺陷。網絡是在權初值基礎上展開訓練的,因此權值的初值是網絡訓練的最根本的影響因素,有些文獻提出了新的賦初值算法[3-4],主要過程如下。
輸入和隱層之間的激勵函數是線性分段函數f1,輸出層的激勵函數采用的是sigmoid函數f2。其中:p=1,2,3…k。輸入層和隱層、隱層和輸出層的權值矩陣分別是:

輸入層與輸出層的隱層分別采用不同的賦初值方法來賦值,方法如下:首先對輸入層到隱層的權值賦初值,前層對輸出的影響很小,主要考慮的是網絡的抗干擾性,使網絡處于一個良好的狀態,該賦值方法已經被驗證是切實可行的。
為了使前層穩定,最后網絡收斂到設定精度,本研究選擇的激勵函數是已經研究很成熟的單極性的S函數,如下所示:

該函數保證隱層的輸出和樣本保持一致的相關性。其賦值原理可總結如下:
f1的反函數如下所示:
