鈕永莉,陳 暉,魏光杏
(1.滁州職業(yè)技術(shù)學(xué)院 信息工程系,安徽 滁州239000;2.福州大學(xué) 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,福建 福州350019)
模糊神經(jīng)網(wǎng)絡(luò)是模糊邏輯和神經(jīng)網(wǎng)絡(luò)的有機(jī)結(jié)合,它匯集了模糊推理和神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn),為處理帶有模糊不確定性質(zhì)的模式識(shí)別問(wèn)題提供了一種有效的手段.在實(shí)際應(yīng)用過(guò)程中,模糊神經(jīng)網(wǎng)絡(luò)的一個(gè)難點(diǎn)問(wèn)題是如何確定隱層節(jié)點(diǎn)數(shù),隱層節(jié)點(diǎn)個(gè)數(shù)的多少對(duì)神經(jīng)網(wǎng)絡(luò)有舉足輕重的作用,甚至直接決定了網(wǎng)絡(luò)的學(xué)習(xí)和泛化能力[1].隱層節(jié)點(diǎn)數(shù)的選取有很多方法,包括根據(jù)經(jīng)驗(yàn)選取、進(jìn)化法和奇異值分解法等方式,其中進(jìn)化法的計(jì)算量比較大且不夠直觀,奇異值分解法的好壞依賴于初始節(jié)點(diǎn)數(shù)和閥值,在計(jì)算隱層節(jié)點(diǎn)數(shù)時(shí)也有可能導(dǎo)致結(jié)果不唯一,使得網(wǎng)絡(luò)設(shè)定失?。?].
筆者在研究了多種方法優(yōu)缺點(diǎn)的基礎(chǔ)上,使用BP網(wǎng)絡(luò),構(gòu)造出一個(gè)基于模糊C均值法的模糊神經(jīng)網(wǎng)絡(luò)模型,首先使用模糊C均值法對(duì)樣本進(jìn)行特征抽取,確定隱層節(jié)點(diǎn)數(shù)后,可根據(jù)訓(xùn)練集得到所需的網(wǎng)絡(luò)結(jié)構(gòu),然后使用測(cè)試集進(jìn)行分類驗(yàn)證.本文使用此模型對(duì)塔里木盆地地質(zhì)測(cè)井資料進(jìn)行油氣預(yù)測(cè),取得了較好的效果.
對(duì)樣本帶有不確定性的聚類問(wèn)題,通常采用模糊聚類算法.在各種模糊聚類算法中,模糊C均值算法(即FCM算法)及其各種優(yōu)化算法被廣泛使用.FCM算法是 Bezdek提出的一種基于目標(biāo)函數(shù)的動(dòng)態(tài)優(yōu)化算法,能實(shí)現(xiàn)對(duì)數(shù)據(jù)的自動(dòng)聚類.
假設(shè){xi,i=1,2,…,n}是 n 個(gè)樣本組成的樣本集,mj,j=1,2,…,c 為每個(gè)聚類的中心, 其中 c 是類別數(shù),μj(xi)是隸屬度函數(shù),其中i表示樣本,j表示類別,聚類損失函數(shù)可以表示為:
用不同的方法定義隸屬度函數(shù)并求解公式(1)的極小值,就可以得到不同的模糊聚類方法.其中,模糊C均值方法是最有代表性的并被廣泛使用的一種聚類算法,對(duì)于各個(gè)不同的聚類,它要求隸屬度之和為 1,即:
在滿足隸屬度之和為1的條件下求解公式的極小值.令公式(1)的Jf對(duì)mi和μj(xi)的偏導(dǎo)數(shù)為0,可得公式(3)和公式(4),用迭代的方法求解這兩個(gè)公式,就是基本的模糊C均值算法[3].
對(duì)樣本集進(jìn)行動(dòng)態(tài)聚類,最后的分類數(shù)即為模糊神經(jīng)網(wǎng)絡(luò)的隱節(jié)點(diǎn)數(shù)目.
BP網(wǎng)絡(luò)是一種反向傳播網(wǎng)絡(luò)(Back-propagation Network),BP算法屬于監(jiān)督式的δ算法,主要思想是:對(duì)n個(gè)輸入學(xué)習(xí)樣本:X1,X2,...,Xn,已知其對(duì)應(yīng)的 m 個(gè)輸出樣本為:Y1,Y2,...,Ym,為了實(shí)際值與期望值盡可能接近,要達(dá)到網(wǎng)絡(luò)輸出層誤差平方和最小的目標(biāo),網(wǎng)絡(luò)訓(xùn)練要不斷修正其權(quán)值,每次修正都以反向傳播的方式傳遞到每一層,從而達(dá)到最終目標(biāo)[4].BP網(wǎng)絡(luò)模型見(jiàn)圖1.
圖1 BP網(wǎng)絡(luò)模型
由于模糊推理的單向性,使得應(yīng)用比較多的模糊神經(jīng)網(wǎng)絡(luò)模型以多層前向網(wǎng)絡(luò)結(jié)構(gòu)為主.對(duì)不同的應(yīng)用和訓(xùn)練集,需要采用不同的模型.在這些模型中,有很多方面都可以有不同的方式,如隸屬度函數(shù)的建立、模糊激勵(lì)函數(shù)的確定以及輸入輸出的形式,另外還有結(jié)構(gòu)調(diào)整方式等都有不同[5].總之,需要通過(guò)對(duì)訓(xùn)練集的特征提取和訓(xùn)練達(dá)到盡量?jī)?yōu)的效果.
通過(guò)熱解參數(shù)進(jìn)行油氣預(yù)測(cè)是典型的模糊推理問(wèn)題,它具有多輸入多輸出的結(jié)構(gòu).對(duì)于輸入的特征變量進(jìn)行模糊分割,可以建立不同模糊分類的隸屬度函數(shù),同時(shí)根據(jù)最終的分類輸出,建立起模糊神經(jīng)網(wǎng)絡(luò)模型.該網(wǎng)絡(luò)共有5層:輸入層、隸屬函數(shù)建立層、隱含層、隸屬度輸出層和去模糊化層(見(jiàn)圖2).用Ii(q)表示第q層的第i個(gè)神經(jīng)元輸入,Oi(q)表示第q層的第i個(gè)神經(jīng)元輸出,則第i個(gè)神經(jīng)元的輸入為Ii(l)=xi,輸出為:Oi(l)=xi(i=1,2,…,m).
圖2 模糊神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
(1)輸入層.該層每個(gè)神經(jīng)元都是一個(gè)輸入變量,其中神經(jīng)元的數(shù)目由FCM算法的結(jié)果確定.
(2)隸屬函數(shù)建立層.即對(duì)輸入變量進(jìn)行模糊化處理,本文采用高斯函數(shù)確定隸屬度,高斯函數(shù)的中心和寬度也要進(jìn)行訓(xùn)練.若模糊區(qū)間數(shù)有r個(gè),則該層共有m*r個(gè)神經(jīng)元.輸入為Ik(2)=Oi(1)=xi,輸出為Ok(2)=exp,(cij為中心,σij為寬度).
(3)隱含層.該層神經(jīng)元的個(gè)數(shù)即前一層模糊聚類的分類數(shù),其中第i個(gè)神經(jīng)元的輸入為Ii(3)=neti(3)=表示第q層第i個(gè)神經(jīng)元與第q-1層第j個(gè)神經(jīng)元的連接權(quán)值.輸出為
(4)隸屬度輸出層.傳遞函數(shù)采用Sigmoid函數(shù),第i個(gè)神經(jīng)元的輸入為
(5)去模糊化層.本層作用是得到最終的模式輸出,采用最大隸屬度原則.
網(wǎng)絡(luò)訓(xùn)練時(shí)采用附加動(dòng)量項(xiàng)的反向傳播算法,需要學(xué)習(xí)更新的參數(shù)有第三、四層的權(quán)值(包括閥值)wij(3)、wij(4),隸屬度函數(shù)的寬度σij和中心cij.如:第三層權(quán)值的調(diào)整量和修正公式為:
其中,η是學(xué)習(xí)速率,α是動(dòng)量項(xiàng)系數(shù),第四層的計(jì)算類似,且:
(1)使用FCM算法確定分類數(shù),作為第一層節(jié)點(diǎn)數(shù).
(2)賦初值:包括網(wǎng)絡(luò)權(quán)值和閥值,隸屬函數(shù)的寬度和中心.
(3)對(duì)歸一化后的樣本,在總誤差小于給定誤差的條件下,重復(fù)以下步驟直至收斂:
a.從前向后計(jì)算各層神經(jīng)元的輸出O(q)(q=1,…,4);
隸屬函數(shù)建立層:
隱含層:
b.計(jì)算每次實(shí)際輸出和期望輸出的誤差.
c.從后向前計(jì)算第四層、第三層權(quán)值修正量Δwij(4)和Δwij(3)、用附加動(dòng)量項(xiàng)的反向傳播算法計(jì)算第二層隸屬度函數(shù)中心修正量Δcij和寬度修正量Δσij并進(jìn)行修正.
(4)當(dāng)達(dá)到最小誤差后,將模糊量去模糊化,得到最終結(jié)果.
利用本模型對(duì)塔里木盆地?zé)峤鈪?shù)進(jìn)行油氣預(yù)測(cè),共163個(gè)樣本,每個(gè)樣本有9個(gè)特征屬性.取前120個(gè)樣本作為訓(xùn)練樣本,43個(gè)作為測(cè)試樣本,用本文的模糊神經(jīng)網(wǎng)絡(luò)模型進(jìn)行油氣分類預(yù)測(cè),具體步驟和參數(shù)設(shè)置如下:
(1)數(shù)據(jù)歸一化.熱解參數(shù)的各個(gè)特征值單位不同,為保證結(jié)果的準(zhǔn)確性,需要對(duì)這些特征進(jìn)行歸一化(使用最大最小歸一化算法),使得特征值都在[0,1]之間,保證每個(gè)特征值都發(fā)揮作用[6].
(2)將9個(gè)特征維數(shù)作為輸入單元數(shù),每個(gè)特征定義了高、中、低3個(gè)模糊區(qū)間.則第二層(隸屬度函數(shù)建立層)就有3×9=27個(gè)神經(jīng)元.經(jīng)過(guò)模糊聚類FCM算法后,所有訓(xùn)練樣本分成了9類,因此隱含層采用9個(gè)神經(jīng)元.隸屬度輸出層取實(shí)際類別數(shù)5個(gè)神經(jīng)元.因此網(wǎng)絡(luò)結(jié)構(gòu)采用的形式,其中最大誤差取0.01.
當(dāng)最大誤差取為0.01時(shí),該網(wǎng)絡(luò)經(jīng)過(guò)5 120次訓(xùn)練即可達(dá)到要求,當(dāng)?shù)螖?shù)為3 200時(shí),誤差收斂曲線見(jiàn)圖3,可見(jiàn)誤差收斂還是比較快的.
使用剩余的43個(gè)樣本作為測(cè)試集進(jìn)行驗(yàn)證,并與標(biāo)準(zhǔn)BP網(wǎng)絡(luò)進(jìn)行對(duì)比,BP網(wǎng)絡(luò)采用的形式,其中第一層9個(gè)神經(jīng)元代表輸入層的9個(gè)歸一化后的屬性,第二層參照本方法的聚類結(jié)果也使用9個(gè)神經(jīng)元,第三層5個(gè)神經(jīng)元代表實(shí)際分類數(shù),第四層是輸出,結(jié)果見(jiàn)表1.與標(biāo)準(zhǔn)的BP網(wǎng)絡(luò)相比,本文提出的模糊神經(jīng)網(wǎng)絡(luò)在迭代次數(shù)上有了很大的降低,正確率也得到較大提高.
圖3 迭代次數(shù)3 200時(shí)的誤差收斂曲線
表1 測(cè)試集結(jié)果
通過(guò)實(shí)驗(yàn)對(duì)比,基于模糊聚類的模糊神經(jīng)網(wǎng)絡(luò)系統(tǒng)將傳統(tǒng)神經(jīng)網(wǎng)絡(luò)和模糊聚類算法相結(jié)合,通過(guò)模糊聚類分析法確定隱層節(jié)點(diǎn)數(shù),減少了人工干預(yù),提高的網(wǎng)絡(luò)的自動(dòng)化和特征抽取的透明度,網(wǎng)絡(luò)的學(xué)習(xí)效率也較高,更加符合實(shí)際應(yīng)用的需要.