一種RBF神經(jīng)網(wǎng)絡(luò)的自適應(yīng)學(xué)習(xí)算法
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引言
徑向基函數(shù)(Radial Basis Function,RBF)神經(jīng)網(wǎng)絡(luò)具有結(jié)構(gòu)簡(jiǎn)單,學(xué)習(xí)速度快等優(yōu)點(diǎn),在函數(shù)逼近、系統(tǒng)辨識(shí)、模式識(shí)別等領(lǐng)域得到了廣泛應(yīng)用。
構(gòu)造RBF網(wǎng)絡(luò)的關(guān)鍵是合理選取徑向基函數(shù)的數(shù)量和中心向量。目前,比較常用的方法主要有K均值聚類法、C-Means算法等。這些方法都是在人為確定徑向基函數(shù)的數(shù)量和初始向量之后,采用基于歐氏距離的最近鄰方法來實(shí)現(xiàn)聚類的。對(duì)于類間距離大,類內(nèi)距離小的樣本可以得到比較不錯(cuò)的結(jié)果,而對(duì)于類間交錯(cuò)較大,類內(nèi)距離大的情形,這種方法的分類能力將嚴(yán)重減弱,從而不利于網(wǎng)絡(luò)的泛化應(yīng)用。另外,網(wǎng)絡(luò)的訓(xùn)練過程和工作過程完全獨(dú)立,如果外部環(huán)境發(fā)生變化,系統(tǒng)的特性會(huì)隨之發(fā)生變化,由此需要重新對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,這使問題變得更加復(fù)雜,也使網(wǎng)絡(luò)的應(yīng)用領(lǐng)域受到限制。
針對(duì)以上算法存在的問題,本文提出了一種RBF網(wǎng)絡(luò)的自適應(yīng)學(xué)習(xí)算法。該算法事先不需要確定RBF的數(shù)量和中心向量,而是在學(xué)習(xí)過程中,根據(jù)誤差在輸入空間的分布,自適應(yīng)地增加RBF的數(shù)量,并適當(dāng)調(diào)節(jié)中心向量。為了不使RBF的數(shù)量過于膨脹,還制定了相應(yīng)的刪除策略,該策略通過綜合評(píng)價(jià)每個(gè)RBF對(duì)網(wǎng)絡(luò)所作的貢獻(xiàn),然后刪除貢獻(xiàn)小的RBF,使網(wǎng)絡(luò)結(jié)構(gòu)始終保持簡(jiǎn)潔。
1 RBF神經(jīng)網(wǎng)絡(luò)
RBF網(wǎng)絡(luò)是一種三層前饋網(wǎng)絡(luò),由輸入層、輸出層和隱層組成。其中,輸入層和輸出層皆由線性神經(jīng)元組成;隱層的激活函數(shù)(核函數(shù))采用中心徑向?qū)ΨQ衰減的非負(fù)非線性函數(shù),其作用是對(duì)輸入信號(hào)在局部產(chǎn)生響應(yīng)。輸入層與隱層之間的權(quán)值固定為1,只有隱層與輸出層之間的權(quán)值可調(diào)。
設(shè)輸入矢量x=(x1,x2,…,xn)T,隱層節(jié)點(diǎn)個(gè)數(shù)為m,RBF網(wǎng)絡(luò)的輸出可表示為:
式中:ωi是第i個(gè)隱層節(jié)點(diǎn)與輸出層之間的權(quán)值;φi(‖x—ci‖),i=1,2,…,m為隱層激活函數(shù)。通常采用如下高斯函數(shù):
式中:σi和ci分別表示該隱層節(jié)點(diǎn)的寬度和中心矢量;‖·‖是歐氏范數(shù)。
2 RBF網(wǎng)絡(luò)自適應(yīng)學(xué)習(xí)算法
RBF選取得越多,網(wǎng)絡(luò)的逼近精度越高,但同時(shí)也會(huì)使網(wǎng)絡(luò)的泛化能力下降,因此,在滿足一定逼近精度的條件下,應(yīng)選取盡可能少的中心向量,以保證網(wǎng)絡(luò)有較好的泛化能力。本文提出的算法,根據(jù)網(wǎng)絡(luò)的輸出誤差在輸入空間的非均勻分布,以及每個(gè)RBF對(duì)網(wǎng)絡(luò)所作貢獻(xiàn)的大小,通過相應(yīng)的添加和刪除策略對(duì)網(wǎng)絡(luò)參數(shù)進(jìn)行自適應(yīng)調(diào)整,使網(wǎng)絡(luò)的逼近性能和泛化能力都達(dá)到較高的要求。同時(shí),網(wǎng)絡(luò)的訓(xùn)練和工作可以交替進(jìn)行,所以它能夠適應(yīng)外界環(huán)境的緩慢變化。
2.1 添加策略
添加策略綜合考慮了網(wǎng)絡(luò)輸出誤差在輸入空間的非均勻分布。需要統(tǒng)計(jì)每個(gè)輸入矢量產(chǎn)生的輸出誤差,然后通過比較找出誤差相對(duì)較大的點(diǎn),再在這些點(diǎn)附近適當(dāng)?shù)夭迦腚[層節(jié)點(diǎn)。
設(shè)(xk,yk),k=1,2,…,N是一組訓(xùn)練樣本,初始時(shí)刻,隱層節(jié)點(diǎn)數(shù)為零,每次執(zhí)行添加操作,依據(jù)以下準(zhǔn)則判斷是否添加隱層節(jié)點(diǎn):
式中:是網(wǎng)絡(luò)輸出均方誤差;ck,nearest和xk,nearest分別對(duì)應(yīng)與輸入向量xk最接近的隱層節(jié)點(diǎn)中心和輸入向量。如果滿足添加條件,則將(xk+xk,nearest)/2設(shè)為新的隱層節(jié)點(diǎn)中心,將ek設(shè)為新節(jié)點(diǎn)的權(quán)值,中心寬度取。
2.2 刪除策略
由于RBF神經(jīng)網(wǎng)絡(luò)是一種局部感知場(chǎng)網(wǎng)絡(luò),網(wǎng)絡(luò)總的輸出取決于隱層與輸出層之間的權(quán)值和隱層節(jié)點(diǎn)中心與輸入矢量之間的距離。進(jìn)行訓(xùn)練時(shí),所選取的訓(xùn)練樣本相對(duì)比較稀疏。當(dāng)某一個(gè)隱層節(jié)點(diǎn)中心離每一個(gè)輸入矢量都很遠(yuǎn)時(shí),即使其權(quán)值是一個(gè)較大的數(shù),也不會(huì)對(duì)輸出產(chǎn)生太大的影響。在訓(xùn)練結(jié)束后進(jìn)行檢驗(yàn)的過程中,檢驗(yàn)的數(shù)據(jù)一般都比較密集,若某些輸入矢量離該隱層中心較近,則輸出會(huì)受到很大的影響,這使網(wǎng)絡(luò)的泛化能力變差。因此需要制定一種策略來刪除這樣的隱層節(jié)點(diǎn),由此引入了刪除策略。
刪除策略是針對(duì)每個(gè)隱層節(jié)點(diǎn)對(duì)整個(gè)網(wǎng)絡(luò)所作貢獻(xiàn)的大小不同而提出的。貢獻(xiàn)大的節(jié)點(diǎn),繼續(xù)保留;貢獻(xiàn)小的節(jié)點(diǎn),則刪除。對(duì)任意隱層節(jié)點(diǎn)i,用Ai來表示它對(duì)整個(gè)網(wǎng)絡(luò)所作的貢獻(xiàn)。Ai定義為:
執(zhí)行刪除操作前,先對(duì)Ai進(jìn)行歸一化處理,即。最后的判斷規(guī)則為:若,則刪除第i個(gè)隱層節(jié)點(diǎn),其中θ為判決門限。
在采用梯度下降法調(diào)整隱層節(jié)點(diǎn)中心位置和權(quán)值的過程中,需要計(jì)算每個(gè)輸入矢量對(duì)應(yīng)的輸出誤差ek,以及每個(gè)隱層節(jié)點(diǎn)的輸出值φ(‖xk-ci‖)。而執(zhí)行添加和刪除操作時(shí)也需要計(jì)算ek和φ(‖xk-ci‖)。為了減小計(jì)算量,提高運(yùn)算效率,可以在調(diào)整隱層的中心位置和權(quán)值的過程中先保存ek和φ(‖xk-ci‖)的值。
2.3 算法流程
自適應(yīng)RBF神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法的具體流程如圖1所示。對(duì)RBF進(jìn)行訓(xùn)練之前,先確定最大訓(xùn)練次數(shù)M和訓(xùn)練允許誤差Er,作為訓(xùn)練結(jié)束的條件。
整個(gè)算法的流程大體可分成三個(gè)部分。第一個(gè)部分是調(diào)節(jié)隱層節(jié)點(diǎn)的中心位置和隱層與輸出層之間的權(quán)值。本文采用梯度下降法,每循環(huán)一次,相應(yīng)地調(diào)節(jié)一次。第二個(gè)部分是執(zhí)行添加操作。添加的策略是根據(jù)輸出誤差在輸入空間分布的不均勻性而提出的。如果執(zhí)行該操作過頻,不但會(huì)減小隱層節(jié)點(diǎn)的中心位置和權(quán)值的調(diào)節(jié)速度,而且會(huì)造成隱層節(jié)點(diǎn)數(shù)目過多,計(jì)算量增大,導(dǎo)致過度擬合。考慮到以上因素,采用間歇的方式執(zhí)行添加操作,只有當(dāng)i=4n+1(n=0,1,2,…)時(shí),才執(zhí)行添加操作。第三個(gè)部分是執(zhí)行刪除操作。如果執(zhí)行該操作過頻,對(duì)于一些新增加的隱層節(jié)點(diǎn),其中心位置和權(quán)值有可能還沒來得及調(diào)整就已經(jīng)被刪除了,所以也采用間歇的方式執(zhí)行。當(dāng)i=8m+7(m=0,1,2,…)時(shí),才執(zhí)行刪除操作。
2.4 RBF網(wǎng)絡(luò)參數(shù)調(diào)整算法
本文采用梯度下降法調(diào)整RBF的隱層節(jié)點(diǎn)中心位置和權(quán)值。設(shè)隱層節(jié)點(diǎn)的數(shù)目為m,一共有N組訓(xùn)練樣本:(x,y)={(x1,y1),(x2,y2),…,(xN,yN)}。神經(jīng)網(wǎng)絡(luò)的實(shí)際輸出為:。選取均方差為誤差函數(shù),取ρ1和ρ2為學(xué)習(xí)率。
(1)調(diào)整隱層節(jié)點(diǎn)的權(quán)值
(2)調(diào)整隱層節(jié)點(diǎn)中心的位置
3 仿真實(shí)例
(1)對(duì)隨機(jī)曲面進(jìn)行恢復(fù)
仿真中定義曲面方程如下:
原始數(shù)據(jù)集所得曲面圖像如圖2所示。
以x(x=x1,x2)為輸入矢量,其中,x1和x2分別以1為間隔在區(qū)間[0,9]內(nèi)均勻取值,一共得到100組輸入數(shù)據(jù)(x1,x2)。選取ε=0.02,θ=0.3,ρ1=0.1,ρ2=0.05。經(jīng)過20次訓(xùn)練,最后得到的網(wǎng)絡(luò)具有41個(gè)隱層節(jié)點(diǎn),系統(tǒng)的均方誤差為0.023 3。擬合后的曲面圖像如圖3所示。
(2)對(duì)θ取不同值時(shí)的比較,結(jié)果如表1~表3所示。
4 結(jié)語
針對(duì)RBF神經(jīng)網(wǎng)絡(luò)隱層節(jié)點(diǎn)的參數(shù)和數(shù)量難以確定的問題,提出了一種自適應(yīng)的學(xué)習(xí)算法。該算法事先不需要確定隱層節(jié)點(diǎn)的中心位置和數(shù)量,而是通過相應(yīng)的添加和刪除策略實(shí)現(xiàn)的。添加策略是根據(jù)輸出誤差在輸入空間分布的不均勻而提出的,通過執(zhí)行相應(yīng)的操作可以使隱層節(jié)點(diǎn)的數(shù)目在學(xué)習(xí)過程中自適應(yīng)的增加。同時(shí),為了使隱層節(jié)點(diǎn)數(shù)目不過于膨脹,還制定了刪除策略。它先分析每個(gè)隱層節(jié)點(diǎn)對(duì)整個(gè)網(wǎng)絡(luò)所作的貢獻(xiàn),然后刪除貢獻(xiàn)小的節(jié)點(diǎn),以保持網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)單。仿真研究表明,該網(wǎng)絡(luò)不僅靈活性高,結(jié)構(gòu)簡(jiǎn)單,精度高,而且具有較好的泛化能力。