鈕永莉,陳 暉,魏光杏
(1.滁州職業技術學院 信息工程系,安徽 滁州239000;2.福州大學 數學與計算機科學學院,福建 福州350019)
模糊神經網絡是模糊邏輯和神經網絡的有機結合,它匯集了模糊推理和神經網絡的優點,為處理帶有模糊不確定性質的模式識別問題提供了一種有效的手段.在實際應用過程中,模糊神經網絡的一個難點問題是如何確定隱層節點數,隱層節點個數的多少對神經網絡有舉足輕重的作用,甚至直接決定了網絡的學習和泛化能力[1].隱層節點數的選取有很多方法,包括根據經驗選取、進化法和奇異值分解法等方式,其中進化法的計算量比較大且不夠直觀,奇異值分解法的好壞依賴于初始節點數和閥值,在計算隱層節點數時也有可能導致結果不唯一,使得網絡設定失敗[2].
筆者在研究了多種方法優缺點的基礎上,使用BP網絡,構造出一個基于模糊C均值法的模糊神經網絡模型,首先使用模糊C均值法對樣本進行特征抽取,確定隱層節點數后,可根據訓練集得到所需的網絡結構,然后使用測試集進行分類驗證.本文使用此模型對塔里木盆地地質測井資料進行油氣預測,取得了較好的效果.
對樣本帶有不確定性的聚類問題,通常采用模糊聚類算法.在各種模糊聚類算法中,模糊C均值算法(即FCM算法)及其各種優化算法被廣泛使用.FCM算法是 Bezdek提出的一種基于目標函數的動態優化算法,能實現對數據的自動聚類.
假設{xi,i=1,2,…,n}是 n 個樣本組成的樣本集,mj,j=1,2,…,c 為每個聚類的中心, 其中 c 是類別數,μj(xi)是隸屬度函數,其中i表示樣本,j表示類別,聚類損失函數可以表示為:

用不同的方法定義隸屬度函數并求解公式(1)的極小值,就可以得到不同的模糊聚類方法.其中,模糊C均值方法是最有代表性的并被廣泛使用的一種聚類算法,對于各個不同的聚類,它要求隸屬度之和為 1,即:

在滿足隸屬度之和為1的條件下求解公式的極小值.令公式(1)的Jf對mi和μj(xi)的偏導數為0,可得公式(3)和公式(4),用迭代的方法求解這兩個公式,就是基本的模糊C均值算法[3].

對樣本集進行動態聚類,最后的分類數即為模糊神經網絡的隱節點數目.
BP網絡是一種反向傳播網絡(Back-propagation Network),BP算法屬于監督式的δ算法,主要思想是:對n個輸入學習樣本:X1,X2,...,Xn,已知其對應的 m 個輸出樣本為:Y1,Y2,...,Ym,為了實際值與期望值盡可能接近,要達到網絡輸出層誤差平方和最小的目標,網絡訓練要不斷修正其權值,每次修正都以反向傳播的方式傳遞到每一層,從而達到最終目標[4].BP網絡模型見圖1.

圖1 BP網絡模型
由于模糊推理的單向性,使得應用比較多的模糊神經網絡模型以多層前向網絡結構為主.對不同的應用和訓練集,需要采用不同的模型.在這些模型中,有很多方面都可以有不同的方式,如隸屬度函數的建立、模糊激勵函數的確定以及輸入輸出的形式,另外還有結構調整方式等都有不同[5].總之,需要通過對訓練集的特征提取和訓練達到盡量優的效果.
通過熱解參數進行油氣預測是典型的模糊推理問題,它具有多輸入多輸出的結構.對于輸入的特征變量進行模糊分割,可以建立不同模糊分類的隸屬度函數,同時根據最終的分類輸出,建立起模糊神經網絡模型.該網絡共有5層:輸入層、隸屬函數建立層、隱含層、隸屬度輸出層和去模糊化層(見圖2).用Ii(q)表示第q層的第i個神經元輸入,Oi(q)表示第q層的第i個神經元輸出,則第i個神經元的輸入為Ii(l)=xi,輸出為:Oi(l)=xi(i=1,2,…,m).

圖2 模糊神經網絡結構圖
(1)輸入層.該層每個神經元都是一個輸入變量,其中神經元的數目由FCM算法的結果確定.
(2)隸屬函數建立層.即對輸入變量進行模糊化處理,本文采用高斯函數確定隸屬度,高斯函數的中心和寬度也要進行訓練.若模糊區間數有r個,則該層共有m*r個神經元.輸入為Ik(2)=Oi(1)=xi,輸出為Ok(2)=exp,(cij為中心,σij為寬度).
(3)隱含層.該層神經元的個數即前一層模糊聚類的分類數,其中第i個神經元的輸入為Ii(3)=neti(3)=表示第q層第i個神經元與第q-1層第j個神經元的連接權值.輸出為
(4)隸屬度輸出層.傳遞函數采用Sigmoid函數,第i個神經元的輸入為
(5)去模糊化層.本層作用是得到最終的模式輸出,采用最大隸屬度原則.
網絡訓練時采用附加動量項的反向傳播算法,需要學習更新的參數有第三、四層的權值(包括閥值)wij(3)、wij(4),隸屬度函數的寬度σij和中心cij.如:第三層權值的調整量和修正公式為:

其中,η是學習速率,α是動量項系數,第四層的計算類似,且:

(1)使用FCM算法確定分類數,作為第一層節點數.
(2)賦初值:包括網絡權值和閥值,隸屬函數的寬度和中心.
(3)對歸一化后的樣本,在總誤差小于給定誤差的條件下,重復以下步驟直至收斂:
a.從前向后計算各層神經元的輸出O(q)(q=1,…,4);
隸屬函數建立層:

隱含層:

b.計算每次實際輸出和期望輸出的誤差.
c.從后向前計算第四層、第三層權值修正量Δwij(4)和Δwij(3)、用附加動量項的反向傳播算法計算第二層隸屬度函數中心修正量Δcij和寬度修正量Δσij并進行修正.
(4)當達到最小誤差后,將模糊量去模糊化,得到最終結果.
利用本模型對塔里木盆地熱解參數進行油氣預測,共163個樣本,每個樣本有9個特征屬性.取前120個樣本作為訓練樣本,43個作為測試樣本,用本文的模糊神經網絡模型進行油氣分類預測,具體步驟和參數設置如下:
(1)數據歸一化.熱解參數的各個特征值單位不同,為保證結果的準確性,需要對這些特征進行歸一化(使用最大最小歸一化算法),使得特征值都在[0,1]之間,保證每個特征值都發揮作用[6].
(2)將9個特征維數作為輸入單元數,每個特征定義了高、中、低3個模糊區間.則第二層(隸屬度函數建立層)就有3×9=27個神經元.經過模糊聚類FCM算法后,所有訓練樣本分成了9類,因此隱含層采用9個神經元.隸屬度輸出層取實際類別數5個神經元.因此網絡結構采用的形式,其中最大誤差取0.01.
當最大誤差取為0.01時,該網絡經過5 120次訓練即可達到要求,當迭代次數為3 200時,誤差收斂曲線見圖3,可見誤差收斂還是比較快的.
使用剩余的43個樣本作為測試集進行驗證,并與標準BP網絡進行對比,BP網絡采用的形式,其中第一層9個神經元代表輸入層的9個歸一化后的屬性,第二層參照本方法的聚類結果也使用9個神經元,第三層5個神經元代表實際分類數,第四層是輸出,結果見表1.與標準的BP網絡相比,本文提出的模糊神經網絡在迭代次數上有了很大的降低,正確率也得到較大提高.

圖3 迭代次數3 200時的誤差收斂曲線

表1 測試集結果
通過實驗對比,基于模糊聚類的模糊神經網絡系統將傳統神經網絡和模糊聚類算法相結合,通過模糊聚類分析法確定隱層節點數,減少了人工干預,提高的網絡的自動化和特征抽取的透明度,網絡的學習效率也較高,更加符合實際應用的需要.