潘 琪,王福林,吳志輝,方 堃
(東北農(nóng)業(yè)大學(xué) 工程學(xué)院,哈爾濱 150030)
農(nóng)機(jī)總動(dòng)力是評(píng)價(jià)農(nóng)業(yè)機(jī)械化水平的重要指標(biāo),也是政府部門指定農(nóng)業(yè)機(jī)械化發(fā)展規(guī)劃的重要依據(jù),對(duì)農(nóng)機(jī)總動(dòng)力的預(yù)測(cè)具有重要意義。目前,關(guān)于農(nóng)機(jī)總動(dòng)力的預(yù)測(cè)有多種方法,以人工神經(jīng)網(wǎng)絡(luò)的效果較好,但大多數(shù)研究都是和BP神經(jīng)網(wǎng)絡(luò)有關(guān)的[1-3]。徑向基函數(shù)(Radial Basis Function,RBF)神經(jīng)網(wǎng)絡(luò)[4-5]是一種三層前饋型神經(jīng)網(wǎng)絡(luò),能夠以任意精度逼近任意的非線性函數(shù)。其網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)單,隱含層與輸出層之間為線性關(guān)系,優(yōu)化方式簡(jiǎn)單,采用局部逼近的方法,收斂速度快,有效地解決了BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜、計(jì)算量大、收斂速度較慢及容易陷入局部最小值點(diǎn)的問(wèn)題。在RBF神經(jīng)網(wǎng)絡(luò)中一種做法是采用k-means聚類法來(lái)確定基函數(shù)中心[4],但這種方式對(duì)初始點(diǎn)的選取敏感,網(wǎng)絡(luò)結(jié)構(gòu)不夠穩(wěn)定,且隱含層神經(jīng)元個(gè)數(shù)需要提前給出。為此,本文提出了一種采用系統(tǒng)聚類來(lái)確定基函數(shù)中心的方法,可以有效改善網(wǎng)絡(luò)對(duì)初始點(diǎn)敏感的問(wèn)題。
RBF神經(jīng)的結(jié)構(gòu)一般如圖1所示。第1層為輸入層,將神經(jīng)網(wǎng)絡(luò)與外界連接起來(lái);中間層為隱含層,將輸入層傳過(guò)來(lái)的信號(hào)進(jìn)行非線性轉(zhuǎn)換;第3層為輸出層,是對(duì)輸入信號(hào)的響應(yīng)。
圖1 RBF神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
該網(wǎng)絡(luò)有n個(gè)輸入神經(jīng)元,h個(gè)隱含神經(jīng)元,m個(gè)輸出神經(jīng)元。神經(jīng)網(wǎng)絡(luò)的第i個(gè)輸入向量為Xi=[x1,x2,…,xn];基函數(shù)中心為[C1,C2,…,Cj,…,Ch]T,并且有Cj=[c1,c2,…,cn],即每一個(gè)基函數(shù)中心的維度要與輸入向量的維度相同;b=[b1,b2,…,bm]T為閾值。輸入層和隱含層之間進(jìn)行一次非線性映射,映射結(jié)果為φ(‖Xi-Cj‖),則第i個(gè)輸入的輸出為
(1)
令w0=-1,φ0=b,則有
(2)
假設(shè)有P個(gè)輸入向量,則對(duì)應(yīng)的有
(3)
令φij=φ(‖Xi-Cj‖),i=1,2,…,p;j=i=1,2,…,h,那么可將上述方程組改寫(xiě)為
(4)
進(jìn)一步可以表示為
ΦW=D
(5)
其中,Φ為映射矩陣;W為系數(shù)矩陣;D為輸出矩陣。
RBF神經(jīng)網(wǎng)絡(luò)的思想是:在低維空間非線性相關(guān)關(guān)系通過(guò)基函數(shù)投影到高維空間后可能成為線性相關(guān),這樣就可以用線性方法解決非線性線性問(wèn)題。在這個(gè)過(guò)程中,離基函數(shù)中心越近,對(duì)響應(yīng)的影響就越大。在RBF神經(jīng)網(wǎng)絡(luò)中,基函數(shù)的寬度決定影響因素的作用范圍,基函數(shù)的數(shù)量等于隱層節(jié)點(diǎn)的數(shù)量,隱層節(jié)點(diǎn)數(shù)量越多,網(wǎng)絡(luò)逼近能力越強(qiáng),結(jié)構(gòu)越復(fù)雜,計(jì)算量越大,泛化能力越差。因此,確定基函數(shù)中心的數(shù)量、位置及寬度是RBF神經(jīng)網(wǎng)絡(luò)主要解決的問(wèn)題。
基函數(shù)中心的選取常用的有兩種方法[6]:一種是通過(guò)非監(jiān)督學(xué)習(xí)法確定基函數(shù)中心的位置和寬度,再通過(guò)監(jiān)督學(xué)習(xí)法確定網(wǎng)絡(luò)的權(quán)值;另一種是將網(wǎng)絡(luò)的基函數(shù)中心和權(quán)值等所有參數(shù)都通過(guò)有監(jiān)督學(xué)習(xí)法來(lái)確定。在第一種方法中,除了隨機(jī)選取基函數(shù)中心直接計(jì)算外,較常用且效果比較好的做法是先將訓(xùn)練樣本通過(guò)k-means聚類算法進(jìn)行分類,選取聚類中心作為基函數(shù)的中心。這種方法能夠有效地提高網(wǎng)絡(luò)性能,但對(duì)初始值敏感,當(dāng)選取不同的初始值時(shí)聚類結(jié)果可能不同,網(wǎng)絡(luò)結(jié)構(gòu)不夠穩(wěn)定。為了解決這一問(wèn)題,本文提出將系統(tǒng)聚類[7]應(yīng)用到基函數(shù)中心的選取中,可以解決k-means聚類算法對(duì)初始值敏感的問(wèn)題,提高網(wǎng)絡(luò)的穩(wěn)定性。
從RBF的原理可以看出:離基函數(shù)中心越近對(duì)響應(yīng)的影響越大,離基函數(shù)中心越遠(yuǎn)對(duì)響應(yīng)的影響越小。聚類的目的就是想根據(jù)輸入的不同特性將其分成不同的類別,每個(gè)類別選取一個(gè)基函數(shù),這樣可以有效地簡(jiǎn)化網(wǎng)絡(luò)結(jié)構(gòu),提高網(wǎng)絡(luò)的泛化能力。聚類的原則是類內(nèi)的距離盡可能小,類間的距離盡可能大,而系統(tǒng)聚類非常符合這一原則。
系統(tǒng)聚類是先將n個(gè)樣本分別看成一類共分成n類,計(jì)算各樣本之間的距離,把距離最近的兩個(gè)合并成一類變成n-1類;然后,再次計(jì)算各類之間的距離,再將距離最近的兩類合并成一類變成n-2類,重復(fù)上述過(guò)程,直到將所有的聚類單元分為一類。
對(duì)于一些樣本特性未知的問(wèn)題,需確定基函數(shù)中心的數(shù)量。定義一個(gè)常量ε(0<ε<1),稱之為類間距占比,假設(shè)聚類過(guò)程中第k次合并的最小的類間距為d(k),第k+1次合并的最小的類間距為d(k+1),如果有d(k)<εd(k+1),就說(shuō)兩個(gè)類之間的相似度低,則停止聚類,n個(gè)樣本分為n-k類。樣本間距和類間距的計(jì)算有很多種方法[8],應(yīng)根據(jù)樣本的不同特點(diǎn)和需要達(dá)到的效果選擇具體的方法。
構(gòu)建一個(gè)RBF神經(jīng)網(wǎng)絡(luò),輸入樣本為X1,X2,…,Xn,對(duì)應(yīng)的樣本輸出分別為Y1,Y2,…,Yn,網(wǎng)絡(luò)隱層節(jié)點(diǎn)的激活函數(shù)φ(x)選取高斯函數(shù)。首先根據(jù)系統(tǒng)聚類的方法確定RBF神經(jīng)網(wǎng)絡(luò)的基函數(shù)中心Ci和寬度σi,然后用梯度下降法確定隱含層與輸出層之間的權(quán)值w,具體操作過(guò)程如下:
1)將每個(gè)樣本看作一類,計(jì)算各樣本之間的距離。
2)從得到的距離矩陣中選出最小的類間距dij并記為d(k),將Xi和Xj合并為一類。
3)計(jì)算新類之間的類間距,得到新的距離矩陣。
4)從新的距離矩陣選出最小的類間距dpq并記為d(k+1);如果d(k)<εd(k+1),0<ε<1,則停止分類,到第5)步;否則將Xp和Xq合并為一類,并令d(k)=d(k+1),轉(zhuǎn)到第3)步。
6)根據(jù)各聚類中心之間的距離計(jì)算各基函數(shù)的寬度σi=κdi。其中,κ為重疊系數(shù),控制基函數(shù)的平滑程度,寬度越大,函數(shù)越平滑;di為其它聚類中心與第i個(gè)聚類中心的最小距離,即di=min(‖Ci-Cj‖),i≠j。
7)訓(xùn)練網(wǎng)絡(luò)。根據(jù)梯度下降法[9]計(jì)算得到輸出權(quán)值w=[w1,w2,…,wh]T,具體方法如下:
設(shè)有N個(gè)訓(xùn)練樣本,第i個(gè)訓(xùn)練樣本Xi的期望輸出為di,網(wǎng)絡(luò)輸出為f(Xi),網(wǎng)絡(luò)的輸出誤差為ei,即
(6)
定義網(wǎng)絡(luò)的總誤差為目標(biāo)函數(shù),即
(7)
誤差對(duì)權(quán)值的偏導(dǎo)為
(8)
(9)
其中,η為學(xué)習(xí)率。重復(fù)訓(xùn)練,直到誤差小于設(shè)定的范圍或達(dá)到訓(xùn)練次數(shù),得到網(wǎng)絡(luò)權(quán)值。
根據(jù)黑龍江省統(tǒng)計(jì)年鑒,對(duì)黑龍江省農(nóng)機(jī)總動(dòng)力進(jìn)行預(yù)測(cè),黑龍江省1980-2014年農(nóng)機(jī)總動(dòng)力數(shù)據(jù)如表1所示。對(duì)數(shù)據(jù)按式(10)進(jìn)行數(shù)據(jù)歸一化,把數(shù)據(jù)歸一化到區(qū)間上,即
(10)
其中,xmin為數(shù)據(jù)中的最小值;xmax為數(shù)據(jù)中的最大值。
以連續(xù)6年數(shù)據(jù)作為一個(gè)輸入,下一年數(shù)據(jù)作為輸出,構(gòu)建時(shí)間序列數(shù),總共構(gòu)成29組數(shù)據(jù),作為樣本。選取輸出為1986-2010年的25組數(shù)據(jù)作為訓(xùn)練樣本,以輸出為2011-2014年的4組數(shù)據(jù)作為測(cè)試樣本。運(yùn)用改進(jìn)的學(xué)習(xí)算法構(gòu)建神經(jīng)網(wǎng)絡(luò)并進(jìn)行訓(xùn)練,利用訓(xùn)練的結(jié)果對(duì)2011-2014年的農(nóng)機(jī)總動(dòng)力進(jìn)行預(yù)測(cè),并與測(cè)試樣本進(jìn)行對(duì)照,比較網(wǎng)絡(luò)的預(yù)測(cè)效果。實(shí)驗(yàn)環(huán)境如下:Windows7操作系統(tǒng),CUP主頻2.20GHz,安裝內(nèi)存6.00GB,仿真軟件MatLab 7.11.0。網(wǎng)絡(luò)參數(shù)設(shè)置如下:輸入神經(jīng)元個(gè)數(shù)為6,輸出神經(jīng)元個(gè)數(shù)為1,初始權(quán)值W0=[1,1,…,1]T,初始閾值b0=1,網(wǎng)絡(luò)學(xué)習(xí)精度0.000 1,重疊系數(shù)κ=1,梯度下降法學(xué)習(xí)率η=0.2,距離占比ε=0.7。系統(tǒng)聚類中應(yīng)用歐氏距離(euclidean)計(jì)算樣本間距離,應(yīng)用最小距離法(single)計(jì)算類間距,網(wǎng)絡(luò)訓(xùn)練10次,取平均值;最后,根據(jù)已有數(shù)據(jù)對(duì)2015-2018年的農(nóng)機(jī)總動(dòng)力進(jìn)行預(yù)測(cè),仿真結(jié)果如表2所示。
在實(shí)驗(yàn)過(guò)程中發(fā)現(xiàn),改進(jìn)算法每次的訓(xùn)練結(jié)果都是相同的,網(wǎng)絡(luò)結(jié)構(gòu)十分穩(wěn)定,而原始的算法每次訓(xùn)練結(jié)果都有一定差異,說(shuō)明改進(jìn)算法在提高網(wǎng)絡(luò)穩(wěn)定性上有明顯的效果,解決了k-means均值聚類算法對(duì)初始點(diǎn)選取敏感的問(wèn)題。在網(wǎng)絡(luò)擬合精度方面,改進(jìn)方法訓(xùn)練樣本的平均相對(duì)誤差為0.702 5%,而原始方法訓(xùn)練樣本的平均相對(duì)誤差為2.198 3%,改進(jìn)方法的預(yù)測(cè)精度有明顯提高。在網(wǎng)絡(luò)結(jié)構(gòu)方面,改進(jìn)算法能夠自組織的完成節(jié)點(diǎn)個(gè)數(shù)的確定,效果比較理想。運(yùn)用改進(jìn)算法獲得的預(yù)測(cè)值與觀測(cè)值對(duì)比結(jié)果如圖2所示。
表1 黑龍江省1980-2014年農(nóng)機(jī)總動(dòng)力
表2 實(shí)驗(yàn)結(jié)果
1) 針對(duì)RBF神經(jīng)網(wǎng)絡(luò)根據(jù)k-means聚類算法確定基函數(shù)中心時(shí)存在對(duì)初始點(diǎn)選取敏感的問(wèn)題,提出了一種用系統(tǒng)聚類確定基函數(shù)中心的方法,這種方法不用選取初始聚類中心,有效地解決了網(wǎng)絡(luò)的穩(wěn)定性問(wèn)題。
2) 針對(duì)在選擇進(jìn)函數(shù)中心時(shí),針對(duì)基函數(shù)中心的個(gè)數(shù)難以確定的問(wèn)題,提出了一種利用類間距的變化程度作為聚類終止條件的方法,使得網(wǎng)絡(luò)在運(yùn)用聚類方法確定基函數(shù)中心時(shí)不用預(yù)先給定基函數(shù)的中心和數(shù)量,網(wǎng)絡(luò)按照一定的指標(biāo)自動(dòng)確定基函數(shù)中心的個(gè)數(shù)。
3) 通過(guò)實(shí)驗(yàn)驗(yàn)證了提出的改進(jìn)算法在提高網(wǎng)絡(luò)穩(wěn)定性、改善網(wǎng)絡(luò)結(jié)構(gòu)等方面的有效性,同時(shí)能夠有效減少網(wǎng)絡(luò)的訓(xùn)練誤差。
參考文獻(xiàn):
[1] 王吉權(quán), 王福林, 邱立春.基于BP神經(jīng)網(wǎng)絡(luò)的農(nóng)機(jī)總動(dòng)力預(yù)測(cè)[J].農(nóng)業(yè)機(jī)械學(xué)報(bào),2011, 42(12):121-126.
[2] 馬海志, 王福林, 王慧鵬,等.基于改進(jìn)BP神經(jīng)網(wǎng)絡(luò)的黑龍江農(nóng)機(jī)總動(dòng)力預(yù)測(cè)[J].農(nóng)機(jī)化研究, 2016,38(2):22-30.
[3] 何志連, 王福林, 董慧英,等.BP神經(jīng)網(wǎng)絡(luò)最佳停止法對(duì)農(nóng)機(jī)總動(dòng)力的預(yù)測(cè)[J].農(nóng)機(jī)化研究,2017, 39(2):1-5.
[4] Broomhead DS, Lowe D.Multi-variable functional interpolation and adaptive networks[J].Complex System, 1988(2):321-355.
[5] Moody JE, Darken CJ. Fast learning in networks of locally-tuned processing units[J].Neural Computation, 1989(2):281-294.
[6] 閻平凡, 張長(zhǎng)水.人工神經(jīng)網(wǎng)絡(luò)與模擬進(jìn)化計(jì)算[M]. 北京: 清華大學(xué)出版社, 2005.
[7] 王福林.農(nóng)業(yè)系統(tǒng)工程與管理工程[M].北京:中國(guó)農(nóng)業(yè)出版社,2006.
[8] 薛毅, 陳立萍.統(tǒng)計(jì)建模與R軟件[M].北京: 清華大學(xué)出版社,2007.
[9] Billings SA, Zheng GL. Radial basis function network configuration using a genetic algorithm[J].Neural Networks, 1995, 8(6):877-890.