《神經(jīng)網(wǎng)絡(luò)》課件第4章_第1頁(yè)
《神經(jīng)網(wǎng)絡(luò)》課件第4章_第2頁(yè)
《神經(jīng)網(wǎng)絡(luò)》課件第4章_第3頁(yè)
《神經(jīng)網(wǎng)絡(luò)》課件第4章_第4頁(yè)
《神經(jīng)網(wǎng)絡(luò)》課件第4章_第5頁(yè)
已閱讀5頁(yè),還剩132頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

4.1

BP網(wǎng)絡(luò)分析及其改進(jìn)思路

4.2基于降低網(wǎng)絡(luò)靈敏度的網(wǎng)絡(luò)改進(jìn)算法4.3提高神經(jīng)網(wǎng)絡(luò)容錯(cuò)性的理論和方法4.4提高神經(jīng)網(wǎng)絡(luò)收斂速度的一種賦初值算法4.5復(fù)雜系統(tǒng)神經(jīng)網(wǎng)絡(luò)辨識(shí)MATLAB仿真舉例4.6小結(jié)習(xí)題

雖然BP網(wǎng)絡(luò)有其重要的意義,但在實(shí)際應(yīng)用中存在不少問題。本章在分析BP網(wǎng)絡(luò)算法存在的問題的基礎(chǔ)上,探討幾種改進(jìn)的BP網(wǎng)絡(luò)算法,其中包括基于降低神經(jīng)網(wǎng)絡(luò)的靈敏度的改進(jìn)算法、提高一類神經(jīng)網(wǎng)絡(luò)容錯(cuò)性的理論和方法、提高神經(jīng)網(wǎng)絡(luò)收斂速度的一種賦初值算法,同時(shí)給出了3種改進(jìn)BP網(wǎng)絡(luò)算法的應(yīng)用程序及程序剖析。4.1.1網(wǎng)絡(luò)存在問題分析

BP網(wǎng)絡(luò)存在以下問題:

(1)學(xué)習(xí)算法的收斂速度很慢。因?yàn)锽P算法是以梯度下降法為基礎(chǔ)的,只具有線性收斂速度,雖通過引入“勢(shì)態(tài)項(xiàng)”增加了一定程度的二階信息,但對(duì)算法的性質(zhì)并無(wú)根本的改變。4.1

BP網(wǎng)絡(luò)分析及其改進(jìn)思路

1.智能控制的定義

智能控制有多種定義。從信息的角度來(lái)看,所謂智能,可具體地定義為能有效地獲取、傳遞、處理、再生和利用信息,從而在任意給定的環(huán)境下成功地達(dá)到預(yù)定目的的能力??梢钥闯?,智能的核心是一種思維的活動(dòng)。

(2)學(xué)習(xí)因子h和記憶因子a沒有一種選擇的規(guī)則,選的過大會(huì)使訓(xùn)練的過程引起振蕩,選的過小會(huì)使訓(xùn)練的過程更加緩慢。

(3)網(wǎng)絡(luò)對(duì)初始值很敏感。同一BP網(wǎng)絡(luò)不同的初值會(huì)使網(wǎng)絡(luò)的收斂速度差異很大。若初始權(quán)值離極小點(diǎn)很近,則收斂速度較快;若初始值權(quán)值遠(yuǎn)離極小點(diǎn),則收斂速度極慢。另外,若輸入初始值不合適,則訓(xùn)練起始段就會(huì)出現(xiàn)振蕩。

(4)網(wǎng)絡(luò)隱層節(jié)點(diǎn)個(gè)數(shù)的選擇尚無(wú)理論指導(dǎo),一般是根據(jù)經(jīng)驗(yàn)選取的。

(5)從數(shù)學(xué)上看BP算法是一個(gè)非線性的優(yōu)化問題,這就不可避免地存在局部極小問題。近年來(lái),人們對(duì)BP算法做了大量的研究改進(jìn)工作。主要包括以下幾個(gè)方面:

(1)提高學(xué)習(xí)速率的方法研究。Jacobs等人(1988)、Tullenaere(1990)、Lengelle等人(1989)在此研究中做了大量的工作。他們主要根據(jù)學(xué)習(xí)進(jìn)展情況(一般指訓(xùn)練誤差)在訓(xùn)練

過程中改變學(xué)習(xí)因子。采用這種方法改進(jìn)的BP算法,其好處是不增加額外的計(jì)算量,通過調(diào)整學(xué)習(xí)因子基本上可保證算法的收斂性,但還是不能令人滿意。

(2)利用目標(biāo)函數(shù)的二階導(dǎo)數(shù)信息對(duì)網(wǎng)絡(luò)訓(xùn)練精度進(jìn)行改進(jìn)。Kramer等人(1989)、Battiti等人(1990)、Patrick等人(1994)在這方面做了大量研究。這種方法主要利用了指標(biāo)函數(shù)二階信息,即對(duì)二階導(dǎo)數(shù)矩陣近似,這樣構(gòu)成了具有超線性收斂的算法。這種研究以非線性優(yōu)化理論為基礎(chǔ),將BP多層網(wǎng)的訓(xùn)練問題歸結(jié)為一個(gè)非線性的規(guī)劃問題。這樣以來(lái),

優(yōu)化理論中的各種優(yōu)化算法(如共軛梯度法、變尺度法、Newton法及其對(duì)這些算法的改進(jìn)算法)都可以用來(lái)對(duì)非線性的規(guī)劃問題求解。但這種算法的應(yīng)用也帶來(lái)一些實(shí)際問題。

BP多層網(wǎng)本身就是一種并行處理結(jié)構(gòu),要采用這種改進(jìn)的算法,則必須將網(wǎng)絡(luò)的權(quán)值展開,以構(gòu)成一個(gè)權(quán)向量來(lái)進(jìn)行各種向量、矩陣運(yùn)算,或者構(gòu)成一個(gè)矩陣近似指標(biāo)函數(shù),該陣是關(guān)系權(quán)值向量的Hessian陣。這對(duì)于多層網(wǎng)的并行處理能力有較大影響。有些研究者將二階信息應(yīng)用到某一層或者某一節(jié)點(diǎn),這在一定程度上對(duì)網(wǎng)絡(luò)訓(xùn)練的精度有所改進(jìn),但又使運(yùn)算工作量增加,從而影響了訓(xùn)練速度。以上兩種改進(jìn)算法為提高神經(jīng)網(wǎng)絡(luò)的訓(xùn)練速度和精度的研究奠定了基礎(chǔ)。在第一種改進(jìn)算法的研究中,如果再考慮如何提高網(wǎng)絡(luò)的抗干擾措施和一些對(duì)并行網(wǎng)的綜合管理,將會(huì)得到更加理想的效果。在第二種改進(jìn)算法的研究中,雖然二階導(dǎo)數(shù)信息使計(jì)算的復(fù)雜性增加,但網(wǎng)絡(luò)訓(xùn)練的有效性可提高一到兩個(gè)數(shù)量級(jí),因此,對(duì)非線性程度不太嚴(yán)重、并行算法要求不太高且被測(cè)系統(tǒng)過渡過程較慢的情況,二階算法是可用的。4.1.2其它網(wǎng)絡(luò)訓(xùn)練技巧

BP算法在系統(tǒng)辨識(shí)中得到了最廣泛的應(yīng)用,但由于BP算法基于梯度下降法的思想,常常具有多個(gè)局部極小點(diǎn),因此BP訓(xùn)練時(shí)會(huì)出現(xiàn)很多問題,諸如不收斂、訓(xùn)練速度慢或精

度不高等。為了克服這些問題,除了上面討論的幾種改進(jìn)算法之外,下面基于Caudill在1991年提出的BP網(wǎng)絡(luò)學(xué)習(xí)竅門,加之我們?cè)谟?xùn)練非線性函數(shù)和系統(tǒng)辨識(shí)中的體會(huì),介紹一些BP訓(xùn)練技巧,希望對(duì)讀者進(jìn)行神經(jīng)網(wǎng)絡(luò)系統(tǒng)辨識(shí)有一定的幫助。

(1)重新給網(wǎng)絡(luò)的權(quán)值初始化。有時(shí)由于網(wǎng)絡(luò)的權(quán)值初始化不合適,使得BP算法無(wú)法獲得滿意的結(jié)果,此時(shí)不仿重新設(shè)置網(wǎng)絡(luò)權(quán)值的初始值,讓訓(xùn)練重新開始。注意權(quán)值初始值不能太大。

(2)給權(quán)值加擾動(dòng)。在訓(xùn)練中,給權(quán)值加擾動(dòng),有可能使網(wǎng)絡(luò)脫離目前局部最小點(diǎn)的陷阱,但仍然保持網(wǎng)絡(luò)訓(xùn)練已得到的結(jié)果。如果知道網(wǎng)絡(luò)權(quán)值的分布范圍,例如在-5和5之

間,則可加上約10%的擾動(dòng),即在權(quán)值上加-0.5到0.5之間的隨機(jī)數(shù)。

(3)在網(wǎng)絡(luò)學(xué)習(xí)的樣本中適當(dāng)加噪聲,這是一種加快訓(xùn)練速度和提高抗噪聲能力的行之有效的方法。在學(xué)習(xí)樣本中加點(diǎn)噪聲,可避免網(wǎng)絡(luò)依靠死記的辦法來(lái)學(xué)習(xí),因?yàn)檫@種情況下所有的樣本將不同(雖然有些樣本相似)。

(4)學(xué)習(xí)可有允許誤差。當(dāng)網(wǎng)絡(luò)的輸出和樣本之間的差小于給定的誤差范圍時(shí),則停止對(duì)網(wǎng)絡(luò)權(quán)值的修正。采用對(duì)網(wǎng)絡(luò)學(xué)習(xí)寬容的作法,可加快網(wǎng)絡(luò)的學(xué)習(xí)速度。另外還可采取自適應(yīng)的辦法,即允許誤差在訓(xùn)練開始取大點(diǎn),然后隨著訓(xùn)練逐漸減小。

(5)網(wǎng)絡(luò)的隱層級(jí)(層)數(shù)不能太多。網(wǎng)絡(luò)的隱層級(jí)數(shù)盡量保持在一級(jí),在無(wú)法達(dá)到目標(biāo)時(shí)隱層可增加級(jí)數(shù)。因?yàn)樵贐P算法中,誤差是通過輸出層向輸入層反向傳播的,隱層級(jí)數(shù)越多,反向傳播誤差在靠近輸入層時(shí)就越不可靠,這樣用不可靠的誤差來(lái)修正權(quán)值,其效果是可以想象的。另外,隱層級(jí)數(shù)多必然計(jì)算工作量大,影響訓(xùn)練速度。

(6)隱層的節(jié)點(diǎn)數(shù)不能太多。網(wǎng)絡(luò)的輸入層和輸出層的節(jié)點(diǎn)個(gè)數(shù)是根據(jù)所訓(xùn)練函數(shù)或所辨識(shí)的實(shí)際系統(tǒng)的具體情況而定的。在能保證訓(xùn)練精度的前提下,網(wǎng)絡(luò)隱層的節(jié)點(diǎn)個(gè)數(shù)一定不能太多,只要保證隱層節(jié)點(diǎn)大于輸入層節(jié)點(diǎn)即可,否則會(huì)影響訓(xùn)練速度。1.神經(jīng)網(wǎng)絡(luò)靈敏度的定義

BP網(wǎng)絡(luò)學(xué)習(xí)算法的收斂速度很慢的主要原因是由于BP網(wǎng)絡(luò)是一種全反傳式的前向網(wǎng)絡(luò),即只要誤差反傳信號(hào)存在,則網(wǎng)絡(luò)所有層的權(quán)值統(tǒng)統(tǒng)修正,從而造成了學(xué)習(xí)時(shí)間的拖延。在上述改進(jìn)BP算法提高學(xué)習(xí)速率的方法研究的基礎(chǔ)上,若在神經(jīng)網(wǎng)絡(luò)的誤差反傳權(quán)值修正時(shí)增加一個(gè)協(xié)調(diào)器,該協(xié)調(diào)器將全反傳式網(wǎng)絡(luò)變成局部反傳式網(wǎng)絡(luò),就會(huì)使網(wǎng)絡(luò)學(xué)習(xí)速率大大提高。4.2基于降低網(wǎng)絡(luò)靈敏度的網(wǎng)絡(luò)改進(jìn)算法

協(xié)調(diào)器的協(xié)調(diào)方法要靠對(duì)網(wǎng)絡(luò)靈敏度的分析來(lái)決定。神經(jīng)網(wǎng)絡(luò)的靈敏度是指作為辨識(shí)器或控制器的神經(jīng)網(wǎng)絡(luò)對(duì)各種變化和擾動(dòng)的自學(xué)習(xí)、自調(diào)整、自適應(yīng)的能力。因此,可對(duì)作為辨識(shí)器神經(jīng)網(wǎng)絡(luò)的靈敏度作如下定義[16]

定義4.1

是由信號(hào)的各種變化及擾動(dòng)引起的網(wǎng)絡(luò)輸出變化,|Δε|為網(wǎng)絡(luò)輸入、權(quán)值變化及被辨識(shí)系統(tǒng)變化引起的綜合誤差。對(duì)第i個(gè)樣本,神經(jīng)網(wǎng)絡(luò)辨識(shí)器的靈敏度定義為

(4-1)

式中,MSE(MeanSquareError)為方差。

2.降低神經(jīng)網(wǎng)絡(luò)靈敏度的一種方法

據(jù)前分析,這里提出一種用于降低系統(tǒng)辨識(shí)中神經(jīng)網(wǎng)絡(luò)靈敏度的方法,描述如下:

定理4.1在網(wǎng)絡(luò)輸入擾動(dòng)、網(wǎng)絡(luò)參數(shù)變化或被辨識(shí)系統(tǒng)參數(shù)變化時(shí),根據(jù)系統(tǒng)在被辨識(shí)過程中的誤差,動(dòng)態(tài)地控制神經(jīng)網(wǎng)絡(luò)各層權(quán)值,特別是最末一級(jí)隱層到輸出層的權(quán)值矩

陣(即輸出層的權(quán)值矩陣)修正,可以使網(wǎng)絡(luò)的輸出的均方差

快速減小,從而使網(wǎng)絡(luò)靈敏度降低。

證明:設(shè)一個(gè)三層BP網(wǎng)絡(luò)辨識(shí)器,網(wǎng)絡(luò)的輸入層、隱層(含b-1級(jí))、輸出層節(jié)點(diǎn)數(shù)分別為m、n、p,則網(wǎng)絡(luò)輸入層到第一級(jí)隱層的權(quán)值矩陣w1ij為n×m維矩陣;第二級(jí)隱層的權(quán)值矩陣w2ij為n×n維矩陣;依此類推,最末一級(jí)隱層的權(quán)值矩陣w

(b-1)ij為n×n維矩陣;輸出層的權(quán)值矩陣wbij為p×n維矩陣;對(duì)第j個(gè)輸入xj的網(wǎng)絡(luò)輸出分量ymj可寫成[17]

:(4-2)由于激發(fā)函數(shù)Sigmoid函數(shù)連續(xù)可微,且作為辨識(shí)器的神經(jīng)網(wǎng)絡(luò)的輸入到輸出共經(jīng)過了b級(jí)Sigmoid函數(shù),因此網(wǎng)絡(luò)輸出對(duì)各層權(quán)值的微分為

式中,a1j為網(wǎng)絡(luò)第一級(jí)隱層節(jié)點(diǎn)的輸出;a2j為第二級(jí)隱層的輸出;a

(b-1)j為最末級(jí)隱層的輸出。(4-3)…(4-4)(4-5)從式(4-3)到式(4-5)可推得,網(wǎng)絡(luò)的各層權(quán)值變化對(duì)應(yīng)的網(wǎng)絡(luò)輸出變化量可寫成(4-6)(4-7)…由于0<ymi<1,0<a1i<1,…,0<a

(b-1)i<1,從式(4-6)~(4-8)可見,當(dāng)權(quán)值矩陣wbij變化一個(gè)單位時(shí),網(wǎng)絡(luò)的輸出ymi的變化最大不超過0.25;當(dāng)w(b-1)ij變化一個(gè)單位時(shí),系統(tǒng)的輸出ymi

的變化最大不超過(0.25)2=0.0625;以此類推,w(b-q)ij變化一個(gè)單位,系統(tǒng)的輸出ymi的變化最大不超過(0.25)q+1(當(dāng)q=b-1時(shí),w(b-q)ij即為w1ij);w1ij變化一個(gè)單位,系統(tǒng)的輸出ymi的變化最大不超過(0.25)b。由于w1ij經(jīng)過了b級(jí)Sigmoid函數(shù)的用,因而它對(duì)網(wǎng)絡(luò)輸出的影響最小,而wbij

只經(jīng)過了一級(jí)Sigmoid函數(shù)的作用,因此它對(duì)網(wǎng)絡(luò)輸出的影響最大。從而可見,神經(jīng)網(wǎng)絡(luò)輸出層的權(quán)值陣wbij的元素值的大小對(duì)網(wǎng)絡(luò)輸出影響最大,所以,當(dāng)網(wǎng)絡(luò)參數(shù)變化或系統(tǒng)參數(shù)變化時(shí),動(dòng)態(tài)地控制網(wǎng)絡(luò)各層特別是輸出層的權(quán)值修正,可以使網(wǎng)絡(luò)輸出的均方差快速減小,從而使網(wǎng)絡(luò)靈敏度降低。證畢。

3.基于降低網(wǎng)絡(luò)靈敏度的BP網(wǎng)絡(luò)改進(jìn)算法

根據(jù)定理4.1,基于降低網(wǎng)絡(luò)靈敏度的BP網(wǎng)絡(luò)改進(jìn)算法可描述為:

(1)在常規(guī)BP學(xué)習(xí)算法基礎(chǔ)上,網(wǎng)絡(luò)的誤差反向傳播信號(hào)線上增加一個(gè)協(xié)調(diào)器,該協(xié)調(diào)器控制各層權(quán)值的修正。

(2)當(dāng)網(wǎng)絡(luò)的綜合誤差|Δε|(包括網(wǎng)絡(luò)輸出和被辨識(shí)系統(tǒng)的輸出誤差的絕對(duì)值|e|,又稱動(dòng)態(tài)的訓(xùn)練誤差)較大時(shí),協(xié)調(diào)器控制網(wǎng)絡(luò)輸出層的權(quán)值陣wbij增大,使網(wǎng)絡(luò)輸出迅速變化。

(3)當(dāng)訓(xùn)練誤差為10%≤|e|<20%時(shí),協(xié)調(diào)器控制網(wǎng)絡(luò)輸出層的權(quán)值陣wbij減小,同時(shí)停止其它層權(quán)值的修正,使網(wǎng)絡(luò)靈敏度降低,以免網(wǎng)絡(luò)輸出過沖,造成反向誤差。

(4)當(dāng)訓(xùn)練誤差|e|<10%時(shí),協(xié)調(diào)器控制只允許靠近網(wǎng)絡(luò)輸入層的第一或二級(jí)隱層權(quán)值修正,同時(shí)停止網(wǎng)絡(luò)輸出層的權(quán)值陣wbij和其它級(jí)隱層權(quán)值的修正,網(wǎng)絡(luò)靈敏度再降低,使網(wǎng)絡(luò)輸出和被辨識(shí)系統(tǒng)的輸出誤差達(dá)到允許值。上述基于降低網(wǎng)絡(luò)靈敏度的BP網(wǎng)絡(luò)改進(jìn)算法,動(dòng)態(tài)地將全局反向傳播式網(wǎng)絡(luò)變成局部反傳式網(wǎng)絡(luò),可以使網(wǎng)絡(luò)學(xué)習(xí)速率大大提高。

1.神經(jīng)網(wǎng)絡(luò)容錯(cuò)性概述

從神經(jīng)網(wǎng)絡(luò)誕生以來(lái),人們就一直以為人工神經(jīng)網(wǎng)絡(luò)理應(yīng)具有如同生物神經(jīng)網(wǎng)絡(luò)的容錯(cuò)力。換言之,神經(jīng)網(wǎng)絡(luò)應(yīng)具有較高的可靠性,某些能力損傷后可通過學(xué)習(xí)恢復(fù),具有容

錯(cuò)編碼的能力,具有空間上、時(shí)間上的容錯(cuò)力。但遺憾的是,要使人工神經(jīng)網(wǎng)絡(luò)獲得良好的容錯(cuò)能力并不容易,還有很多工作等待研究。對(duì)BP網(wǎng)絡(luò)容錯(cuò)能力研究最早的是1992年Emmerson和Damper所作的研究。4.3提高神經(jīng)網(wǎng)絡(luò)容錯(cuò)性的理論和方法

Emmerson通過實(shí)驗(yàn)表明,隱層節(jié)點(diǎn)多的網(wǎng)絡(luò)并不一定比隱層節(jié)點(diǎn)少的網(wǎng)絡(luò)具有更強(qiáng)的容錯(cuò)力。但是,另一種稱為“倍增”隱節(jié)點(diǎn)的方法可以提高網(wǎng)絡(luò)的容錯(cuò)力。例如,針對(duì)某具體問題采用3-4-2三層BP網(wǎng)絡(luò)進(jìn)行訓(xùn)練,訓(xùn)練成功后,將網(wǎng)絡(luò)的結(jié)構(gòu)改為3-8-2,同時(shí)將隱層的權(quán)值陣由4×3改成8×3維,其權(quán)值均是原權(quán)值的1/2,從而保持映射關(guān)系不變。這種網(wǎng)絡(luò)的容錯(cuò)能力可望得到改善,但增加隱節(jié)點(diǎn),勢(shì)必使計(jì)算量增大而影響訓(xùn)練速度,更何況隱節(jié)點(diǎn)不能無(wú)限制地增加。這一方法并沒有從理論上予以證明(M.D.Emmerson和R

.I.Dammper,1993)。與Emmerson幾乎同時(shí)發(fā)表這方面文章的還有Neti、Schneider等,他們把對(duì)于一個(gè)已知結(jié)構(gòu)的網(wǎng)絡(luò)尋求最大容錯(cuò)能力的問題化為求解有約束的非線性優(yōu)化問題,且從仿真過程中找到了近似解,并指出一定程度上增加隱節(jié)點(diǎn)可使得到的解更精確,但這一方法需要復(fù)雜、繁瑣的計(jì)算。

Holmstron(1992)從理論上證明了對(duì)樣本進(jìn)行一定程度的噪聲污染可以提高網(wǎng)絡(luò)的泛化能力。之后,Minnix通過實(shí)驗(yàn)的方法證明噪聲污染也可以提高網(wǎng)絡(luò)的容錯(cuò)能力。AlanMurry和PeterEdwards(1994)指出,在BP網(wǎng)絡(luò)訓(xùn)練過程中有意對(duì)權(quán)值加一擾動(dòng)項(xiàng)(如白噪聲),可以明顯地提高泛化能力,降低靈敏度,提高容錯(cuò)能力。

1995年有學(xué)者給出了容錯(cuò)神經(jīng)網(wǎng)絡(luò)的數(shù)學(xué)模型[11],并針對(duì)控制中的神經(jīng)元網(wǎng)絡(luò)定義了相關(guān)的評(píng)價(jià)函數(shù)。我們將其思想引入到辨識(shí)所用的神經(jīng)網(wǎng)絡(luò)中。

定義4.2設(shè)某一給定的三層神經(jīng)網(wǎng)絡(luò)的輸入為X,對(duì)應(yīng)

的輸出為Y。當(dāng)神經(jīng)網(wǎng)絡(luò)發(fā)生故障f時(shí),神經(jīng)網(wǎng)絡(luò)的實(shí)際輸出為Yf,則

式中,‖Y-Yf‖2表示正常時(shí)和故障情況下網(wǎng)絡(luò)輸出的差值的二范數(shù)。式(4-9)為神經(jīng)網(wǎng)絡(luò)對(duì)故障f的容錯(cuò)評(píng)價(jià)函數(shù),它反映了在故障f發(fā)生的情況下,網(wǎng)絡(luò)執(zhí)行正常功能的能力。(4-9)模型1對(duì)于上述給定其拓?fù)浣Y(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò),設(shè)其訓(xùn)練樣本集為T={(Xt,Yt|t=1,2,…,q)},若存在適當(dāng)?shù)臋?quán)值矩陣,顯然,網(wǎng)絡(luò)權(quán)值要受到網(wǎng)絡(luò)輸入、擾動(dòng)和學(xué)習(xí)因子的影響,取

極小值,即

(4-10)

則神經(jīng)網(wǎng)絡(luò)w*即為容錯(cuò)神經(jīng)網(wǎng)絡(luò)。模型2同模型1的設(shè)定,若使函數(shù)

取極小值,即(4-11)(4-12)則神經(jīng)網(wǎng)絡(luò)w*即為容錯(cuò)神經(jīng)網(wǎng)絡(luò)。式中,Yt為教師信號(hào);

為神經(jīng)網(wǎng)絡(luò)在無(wú)故障下對(duì)應(yīng)輸入Xt的輸出;為神經(jīng)網(wǎng)絡(luò)在故障f發(fā)生的情況下對(duì)應(yīng)輸入的實(shí)際輸出;f=1,2,…,h;af為加權(quán)因子,0<af<1。迄今為止,所有關(guān)于提高神經(jīng)網(wǎng)絡(luò)容錯(cuò)性的方法都僅僅只能通過實(shí)驗(yàn)證明,學(xué)術(shù)界既沒有衡量神經(jīng)網(wǎng)絡(luò)容錯(cuò)能力的一般標(biāo)準(zhǔn),更沒有關(guān)于對(duì)已知提高容錯(cuò)力方法的證明,這不能不在一定程度上阻礙了尋找更多提高容錯(cuò)力方法的進(jìn)程。

2.一種提高控制系統(tǒng)神經(jīng)網(wǎng)絡(luò)容錯(cuò)性的方法

前述關(guān)于神經(jīng)網(wǎng)絡(luò)容錯(cuò)性的方法,無(wú)論是倍增法還是噪聲污染法都是提高網(wǎng)絡(luò)容錯(cuò)性的有效方法,但會(huì)使神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程的計(jì)算工作量大增,從而影響訓(xùn)練速度??梢宰C明,增加網(wǎng)絡(luò)的層數(shù)(對(duì)BP網(wǎng)來(lái)講,就是增加隱層的級(jí)數(shù))可以提高網(wǎng)絡(luò)的容錯(cuò)能力,但也會(huì)影響訓(xùn)練速度。在此基礎(chǔ)上,我們探討一種用于提高系統(tǒng)辨識(shí)中神經(jīng)網(wǎng)絡(luò)容錯(cuò)性的方法[16],用定理4.2來(lái)描述定理4.2在神經(jīng)網(wǎng)絡(luò)(設(shè)網(wǎng)絡(luò)的輸入、隱層(含b-1層)、輸出層節(jié)點(diǎn)數(shù)分別為m、n、p)作辨識(shí)器時(shí),當(dāng)神經(jīng)網(wǎng)絡(luò)發(fā)生故障,動(dòng)態(tài)控制網(wǎng)絡(luò)權(quán)值陣的乘積結(jié)構(gòu)

(4-13)

要設(shè)法使其乘積和(這里“乘積”指網(wǎng)絡(luò)各層權(quán)值矩陣的乘積;“和”指該乘積結(jié)果所得的矩陣的所有元素之和)盡量小,這是提高網(wǎng)絡(luò)容錯(cuò)能力的一種方法。

證明:網(wǎng)絡(luò)輸出ymj對(duì)網(wǎng)絡(luò)輸入分量xj的微分為

從而有

(4-14)(4-15)

從定理4.2可知,輸入變化Δxj經(jīng)過Sigmoid函數(shù)級(jí)數(shù)越多的權(quán)值陣對(duì)網(wǎng)絡(luò)輸出的影響越小。顯見,若式(4-15)的網(wǎng)絡(luò)輸入變化一個(gè)單位,則經(jīng)過

[wbijw(b-1)ij…w2ijw1ij(0.25)b](4-16)

的傳遞才可得到網(wǎng)絡(luò)輸出最大可能的變化Δymj。因此,網(wǎng)絡(luò)輸入xi的變化對(duì)輸出的影響不僅取決于與神經(jīng)網(wǎng)絡(luò)隱層的層數(shù)有關(guān)的常數(shù)b的大小,而且取決于權(quán)值陣的乘積的結(jié)構(gòu)

wbijw(b-1)ij…w2ijw1ij。如果這個(gè)乘積和的絕對(duì)值很小,接近零,則xj的變化將幾乎不會(huì)影響輸出的變化。當(dāng)網(wǎng)絡(luò)發(fā)生

故障時(shí),控制wbijw(b-1)ij…w2ijw1ij結(jié)構(gòu)使其乘積和盡量小,少一些反映網(wǎng)絡(luò)輸出上。另外,無(wú)論故障發(fā)生在網(wǎng)絡(luò)的哪一部位,一旦檢測(cè)到故障,控制該乘積和為最小,都可抑制故障對(duì)輸出的影響。因此,在BP網(wǎng)絡(luò)一類神經(jīng)網(wǎng)絡(luò)系統(tǒng)辨識(shí)中,只要?jiǎng)討B(tài)控制網(wǎng)絡(luò)權(quán)值陣的乘積結(jié)構(gòu)[wbijw(b-1)ij…w3ijw2ijw1ij],則可使式(4-10)

取得盡可能小的值,從而可提高網(wǎng)絡(luò)容錯(cuò)能力。證畢。

1.網(wǎng)絡(luò)初值的概念

神經(jīng)網(wǎng)絡(luò)的初始值對(duì)網(wǎng)絡(luò)的訓(xùn)練速度有很大影響。在系統(tǒng)辨識(shí)中,理想的初始值可以使網(wǎng)絡(luò)模型較快地跟蹤被辨識(shí)系統(tǒng)而收斂到其最優(yōu)解,甚至還可以避免一些局部極值點(diǎn)的影響。但在一般情況下,人們給權(quán)值初值賦以較小的隨機(jī)數(shù)。從激發(fā)函數(shù)敏感區(qū)的分布情況來(lái)看,小的權(quán)值可保證敏感區(qū)有一定的寬度;但這又使網(wǎng)絡(luò)的輸出在一定范圍內(nèi)變化緩慢,必須經(jīng)過一段時(shí)間的訓(xùn)練之后才能表現(xiàn)出一些被測(cè)系統(tǒng)的特性來(lái)。4.4提高神經(jīng)網(wǎng)絡(luò)收斂速度的一種賦初值算法

如果這些隨機(jī)數(shù)與被測(cè)系統(tǒng)的神經(jīng)網(wǎng)絡(luò)模型的最優(yōu)解相差甚大,或者當(dāng)樣本點(diǎn)不在原點(diǎn)附近分布或被測(cè)系統(tǒng)的非線性特性較嚴(yán)重時(shí),這種賦初值的方法會(huì)使網(wǎng)絡(luò)的訓(xùn)練速度很慢,甚至只能收斂到局部極值上。在這方面,也有學(xué)者作過研究。Wessel和Barnard(1992)以模式分類問題為背景專門討論了用初始化的方法避免極小點(diǎn)的問題。他們的基本方法是:設(shè)法使隱層節(jié)點(diǎn)的中、小超平面穿越樣本所在的區(qū)域,并且各隱層節(jié)點(diǎn)的方向應(yīng)有盡可能大的差異。Nguyen等從多層反饋網(wǎng)在頻域中的特性出發(fā),提出一種初始化的方法,其目的是使初始網(wǎng)絡(luò)能夠具有逼近任意函數(shù)的結(jié)構(gòu)。Denoeux等(1993)提出一種基于典型值的初始化方法,這種方法利用樣本集中的一些典型值對(duì)輸入向量作了一種變換,使得樣本輸入落在一個(gè)球面上,從而使網(wǎng)絡(luò)選取合理的初始值。1995年,學(xué)者高峰針對(duì)雙曲正切作用函數(shù)提出了基于敏感區(qū)分布網(wǎng)絡(luò)初始化的方法,目的是設(shè)法使網(wǎng)絡(luò)處于一個(gè)良好的初始狀態(tài)。

以上這些初始化方法的研究多是基于對(duì)網(wǎng)絡(luò)的逼近的經(jīng)驗(yàn)提出的。在以上學(xué)者研究的啟發(fā)下,我們提出一種賦初值的算法[6,16]:這種算法針對(duì)BP網(wǎng)絡(luò)中最常用的Sigmoid激發(fā)函數(shù),綜合考慮了網(wǎng)絡(luò)抗干擾性和敏感區(qū)的分布情況,較全面地對(duì)多層并行網(wǎng)所有權(quán)值和閾值進(jìn)行設(shè)計(jì)。

2.Sigmoid函數(shù)f(·)敏感區(qū)的分布

這里針對(duì)三層(輸入層、隱層和輸出層)且具有多個(gè)隱層的前向網(wǎng)絡(luò)來(lái)分析網(wǎng)絡(luò)的敏感區(qū)的分布情況。設(shè)網(wǎng)絡(luò)有m個(gè)輸入節(jié)點(diǎn)xi(i=1,2,…,m),第一隱層有n個(gè)隱層節(jié)點(diǎn)Hi(i=1,2,…,n)。一個(gè)隱層節(jié)點(diǎn)的函數(shù)關(guān)系可表示為

H=f(wx+θ)=f(net),net=wx+θ(4-17)式中,x為該節(jié)點(diǎn)的輸入向量,w為權(quán)值矩陣,θ為閾值。這里考慮激發(fā)函數(shù)為Sigmoid函數(shù),激發(fā)函數(shù)f(·)的作用使得隱層節(jié)點(diǎn)的輸出限制在(0,1)。由式(4-17)可見,隱層節(jié)點(diǎn)的輸出是對(duì)輸入向量的加權(quán)和,然后經(jīng)非線性飽和變換形成,故其輸出等值面是一簇平行超曲面。當(dāng)某隱層節(jié)點(diǎn)的輸出值為a時(shí),式(4-17)可寫成則有(4-18)(4-19)給出以下定義:定義4.3一個(gè)隱層節(jié)點(diǎn)的輸出值為a的等值超平面定義為等值超平面Pa,等值超曲面簇P={Pa,a∈(0,1)},隱層節(jié)點(diǎn)的起始超平面為P0,則(4-20)(4-21)式中hw=w/‖w‖表示隱層節(jié)點(diǎn)權(quán)值向量w方向上的單位向量,稱為隱層節(jié)點(diǎn)方向。從原點(diǎn)出發(fā)方向?yàn)閔w的直線與P0的交點(diǎn)X0稱為隱層節(jié)點(diǎn)的起始面中心點(diǎn),可表示為式(4-22),在二維情況下,Pa的分布如圖4-1所示。(4-22)圖4-1

Sigmoid函數(shù)作用時(shí)二維敏感區(qū)示意

對(duì)任意一種激發(fā)函數(shù),都可以用類似的方法找到其敏感區(qū)的分布。如果激發(fā)函數(shù)取雙曲(對(duì)稱型的Sigmoid)函數(shù),在這種函數(shù)作用下,隱層輸出限制在(-1,1)范圍內(nèi),因此敏感區(qū)是以水平等值超平面P0為對(duì)稱中心的,若一個(gè)隱層節(jié)點(diǎn)輸出為a,則P0位于等值超平面Pa,P-a中心。

由于Sigmoid函數(shù)在t=0附近變化最大,即函數(shù)f(·)在其值為0.5附近變化最明顯,故其函數(shù)的導(dǎo)數(shù)f′(·)在t=0即零水平等值超平面P0上取極大值,在靠近P0區(qū)域節(jié)點(diǎn)輸出變化較明顯。也就是說,靠近P0區(qū)域是隱層節(jié)點(diǎn)映射特性的敏感區(qū)。定義4.4一個(gè)隱層節(jié)點(diǎn)的a水平敏感區(qū)域Aa定義為節(jié)點(diǎn)輸出在(0,a)范圍內(nèi)輸入?yún)^(qū)域,即為

Aa={x∈Rm:0<f(wx+θ)<a}(4-23)

一個(gè)隱層節(jié)點(diǎn)的a水平飽和區(qū)域Ba定義為節(jié)點(diǎn)輸出值與飽和值相差小于a的輸入?yún)^(qū)域,并表示為

Ba={x∈Rm:f(wx+θ)≥a}(4-24)

在飽和區(qū)域Ba內(nèi),節(jié)點(diǎn)的輸出幾乎是不變的。從而可見,隱層節(jié)點(diǎn)敏感區(qū)的寬度取決于‖w‖。當(dāng)‖w‖太大時(shí),敏感區(qū)域非常窄,隱層節(jié)點(diǎn)主要工作在飽和區(qū);當(dāng)‖w‖太小時(shí),敏感區(qū)域比較寬,這時(shí)隱層節(jié)點(diǎn)的

泛化能力較強(qiáng)。以上所討論的是網(wǎng)絡(luò)隱層的一個(gè)隱層節(jié)點(diǎn)的敏感區(qū)。在隱層中,每一個(gè)節(jié)點(diǎn)都有各自的敏感區(qū)域。這些敏感區(qū)域的延伸方向是由隱層節(jié)點(diǎn)的方向決定的。每個(gè)隱層節(jié)點(diǎn)的敏感區(qū)域的等值超平面可能是相交的,也可能是平行的,又因?yàn)槊總€(gè)隱層節(jié)點(diǎn)的敏感區(qū)域具有無(wú)限延伸的特性,這使得各隱層節(jié)點(diǎn)之間形成一種相互交疊、相互耦合的復(fù)雜關(guān)系。這種關(guān)系給網(wǎng)絡(luò)訓(xùn)練帶來(lái)一定影響,因此必須協(xié)調(diào)各隱層節(jié)點(diǎn)的作用,才能在辨識(shí)中使模型無(wú)誤地跟蹤被辨識(shí)系統(tǒng)。

3.提高網(wǎng)絡(luò)收斂速度的賦初值算法

考慮到網(wǎng)絡(luò)抗干擾特性,網(wǎng)絡(luò)輸出層的權(quán)值和閾值對(duì)網(wǎng)絡(luò)輸出影響最大;同時(shí)考慮到網(wǎng)絡(luò)激發(fā)函數(shù)的敏感區(qū)分布,這種賦初值算法分兩步進(jìn)行[6]

:第一步,對(duì)網(wǎng)絡(luò)的輸入到最末一級(jí)隱層之間的所有權(quán)值和閾值進(jìn)行設(shè)計(jì);第二步,對(duì)輸出層權(quán)值和閾值進(jìn)行設(shè)計(jì)

。

1)對(duì)網(wǎng)絡(luò)輸入到最末一級(jí)隱層之間的所有權(quán)值和閾值進(jìn)行設(shè)計(jì)

設(shè)被辨識(shí)系統(tǒng)的離散輸入樣本集為X={x1,x2,…,xq},隱層節(jié)點(diǎn)的數(shù)目為n,即H=hj(j=1,2,…,n),qn,初始化的算法如下:

(1)在樣本集中任意取兩個(gè)不同的樣本點(diǎn),稱之為xh1,xh2,通過測(cè)試所辨識(shí)系統(tǒng)的輸出得到相應(yīng)的yh1,yh2,若yh1=yh2,則另選一個(gè)樣本,最終要保證yh1≠yh2。

(2)根據(jù)所選的樣本值計(jì)算隱層節(jié)點(diǎn)的方向:

(3)根據(jù)所選的樣本值計(jì)算隱層節(jié)點(diǎn)敏感區(qū)的寬度:

式中kh為[1,4]之間的隨機(jī)數(shù)(4-26)(4-27)

(4)計(jì)算第i隱層節(jié)點(diǎn)上的權(quán)值(隱層節(jié)點(diǎn)的輸出a一般取0.95左右):

(5)該隱層節(jié)點(diǎn)的中心為,該隱層節(jié)點(diǎn)的閾值為(4-28)(4-29)

(6)重復(fù)(1)~(5)直到求出n對(duì)權(quán)值、閾值,即

(7)如果網(wǎng)絡(luò)輸入的節(jié)點(diǎn)數(shù)m>1,這時(shí)網(wǎng)絡(luò)的輸入到第一隱層的權(quán)值陣w1ij是n×m維的矩陣。(1)~(6)已經(jīng)求出了w1ij的第一列,其它m-1列可以用重復(fù)求w1ij的第一列的過程求取,但注意樣本值不要重復(fù);或者按照w1ij的第一列的數(shù)量級(jí)隨機(jī)取值,但注意不要取相同數(shù)值。

(8)如果網(wǎng)絡(luò)的隱層的級(jí)數(shù)大于1,根據(jù)前面對(duì)網(wǎng)絡(luò)抗干擾性的分析結(jié)果,越靠近網(wǎng)絡(luò)輸出的權(quán)值,其變化對(duì)網(wǎng)絡(luò)的輸出影響越大。因此,第二隱層的權(quán)值陣的絕對(duì)值應(yīng)小于第

一隱層的權(quán)值陣,即w2ij<w1ij或w2h<w1h。又考慮到隱層節(jié)點(diǎn)敏感區(qū),故第二隱層的權(quán)值用下面方法求得:(4-31)式中khi∈(0.2,0.6),(w1ij)1是第一隱層的權(quán)值陣w1ij的第一列子陣。這樣求出的w2h是小于第一層權(quán)值陣w1ij的n×n矩陣。由于w1ij考慮了隱層節(jié)點(diǎn)敏感區(qū)的分布,因此,用式(4-31)求取的w2h既保證了隱層節(jié)點(diǎn)敏感區(qū)有一定的寬度,又對(duì)提高網(wǎng)絡(luò)的抗干擾性有一定的促進(jìn)作用。無(wú)論網(wǎng)絡(luò)有多少級(jí)隱層,第k(k>1)級(jí)隱層的權(quán)值陣都可用式(4-32)求取:(4-32)式中(w(k-1)ij)1是第k-1級(jí)隱層權(quán)值w(k-1)h的第一列子陣,對(duì)應(yīng)的閾值陣為

式中:i=1,2,…,n;(wkij)1i是第k級(jí)隱層權(quán)值陣wkh的第一列子陣的第i個(gè)元素;(xhτ+xh(τ+1))/2為符合初始化算法中的兩個(gè)不同樣本的中心點(diǎn)。

(4-33)

2)對(duì)網(wǎng)絡(luò)輸出層權(quán)值和閾值進(jìn)行設(shè)計(jì)

網(wǎng)絡(luò)輸出層權(quán)值wo的變化對(duì)網(wǎng)絡(luò)輸出影響最大。在已知網(wǎng)絡(luò)輸入到最末一級(jí)隱層之間的權(quán)值和閾值初值的情況下(這些值第一步已全部求出),從網(wǎng)絡(luò)輸入的變化又可以直接得

到最末一級(jí)隱層的輸出anh。據(jù)此,基于網(wǎng)絡(luò)抗干擾性和最小二乘法對(duì)網(wǎng)絡(luò)輸出層wo的權(quán)值進(jìn)行設(shè)計(jì),算法如下:

(1)選擇樣本集中的特殊點(diǎn),如局部極大點(diǎn)、局部極小點(diǎn)、關(guān)鍵性的過渡點(diǎn),并求出這些樣本的平均值點(diǎn):

(4-34)

式中q為特殊樣本點(diǎn)的個(gè)數(shù)。若網(wǎng)絡(luò)的激發(fā)函數(shù)選對(duì)稱型Sigmoid函數(shù),該平均值可取為零。

(2)求出這些特殊點(diǎn)和均值點(diǎn)xs的差值,用這些差值組成一個(gè)特殊樣本集:

ΔX={Δxi,(i=1,2,…,q)}(4-35)

(3)將特殊樣本集中的一個(gè)變量加入到網(wǎng)絡(luò)輸入中,則得到一組相應(yīng)最末一級(jí)隱層的輸出:

(anh)1=[a1ja2j

anj]T(4-36)

如果將特殊樣本集中的每一個(gè)變量都分別加入到網(wǎng)絡(luò)中,則可得到:(4-37)

(4)根據(jù)特殊樣本集可找到對(duì)應(yīng)的期望值和期望平均值的誤差值,稱之為yt:

式中,p、n分別是網(wǎng)絡(luò)輸出的個(gè)數(shù)和隱層節(jié)點(diǎn)的個(gè)數(shù)。

(5)誤差yt可表示為yt=y(1-y)·anh·Δwo,其中y、Δwo分別為網(wǎng)絡(luò)的輸出和輸出層權(quán)值的變化。在最大可能情況下,y(1-y)≈0.25,Δwo≈wo,從而有

y(1-y)·wo·anh=0.25·wo·anh=yt

(4-39)

在上式中,anh、yt是已求出的矩陣,從而可以求出wo矩陣。但anh不是方陣,無(wú)法求其逆陣,因此,?。?/p>

A=[anh][anh]T(4-40)

從而得到的A是n×n階的方陣,只要適當(dāng)?shù)卣{(diào)整隱層權(quán)值便可保證A的逆陣存在。則網(wǎng)絡(luò)輸出層的權(quán)值陣和閾值陣分別為

式中,(wo)1為輸出層的p×n維權(quán)值矩陣wo的第一列子陣。(4-41)(4-42)

4.應(yīng)用實(shí)例

現(xiàn)采用這種賦初值算法對(duì)交流電動(dòng)機(jī)轉(zhuǎn)差角頻率Δω和定子電流I1的非線性特性辨識(shí)的神經(jīng)網(wǎng)絡(luò)進(jìn)行初始化。Δω和I1的非線性特性描述為(4-43)

式中,、、Lm分別為實(shí)際運(yùn)行中動(dòng)態(tài)的轉(zhuǎn)子等效電阻和電感。為保證磁場(chǎng)恒定,認(rèn)為磁場(chǎng)電流Im為定值。針對(duì)250W交流電動(dòng)機(jī)動(dòng)態(tài)實(shí)測(cè)數(shù)據(jù),以Δω為自變量,對(duì)應(yīng)測(cè)得I1特殊點(diǎn)上的樣本集為X=[0.56

0.48

0.26

0.17

0.395

0.475

0.535],該樣本是在額定電壓Ue=220V,變負(fù)載,即改變和交流電動(dòng)機(jī)同軸連接的直流發(fā)電機(jī)電樞上所接的可變電阻箱,轉(zhuǎn)速范圍500~1420r/m,分別測(cè)得正轉(zhuǎn)和反轉(zhuǎn)情況下的定子電流I1(A),并取其1/3。神經(jīng)網(wǎng)絡(luò)選用“2-6-1”型3層網(wǎng)?,F(xiàn)根據(jù)樣本集,利用提高網(wǎng)絡(luò)訓(xùn)練速度的初始化方法求神經(jīng)網(wǎng)絡(luò)輸入到隱層之間的權(quán)值wij和閾值θi的初值wijc及閾值θic。從所選網(wǎng)絡(luò)知,wij和θi分別為6×2和6×1的矩陣。從式(4-26)求得wijc第一列值的方向?yàn)槿=0.95,從式(4-27)求得敏感區(qū)的寬度為

Ga=[0.32

0.88

0.36

0.90

0.32

0.24]T

從式(4-28)求得wijc的第一列為

w1=[-9.2012

-3.3459-8.1789

3.27169.2012

12.2683]T另取一組特殊樣本值重復(fù)上述過程,并利用式(4-29)、式(4-30)求得wijc和閾值θic分別為(4-44)神經(jīng)網(wǎng)絡(luò)輸出層的權(quán)值、閾值的初值計(jì)算過程從略。利用從電機(jī)實(shí)際運(yùn)轉(zhuǎn)統(tǒng)計(jì)的60組樣本和計(jì)算的初值,采用基于降低網(wǎng)絡(luò)靈敏度的網(wǎng)絡(luò)改進(jìn)的BP算法,對(duì)交流電動(dòng)機(jī)轉(zhuǎn)差角

頻率Δω和定子電流I1的關(guān)系式(4-43)的非線性特性進(jìn)行辨識(shí),辨識(shí)結(jié)果權(quán)值wij和閾值θi的終值wijz和閾值θiz為(4-45)當(dāng)網(wǎng)絡(luò)的權(quán)值和閾值初值賦隨機(jī)小數(shù)時(shí),有

利用相同的60組樣本和隨機(jī)初值,仍采用基于降低網(wǎng)絡(luò)靈敏度的網(wǎng)絡(luò)改進(jìn)的BP算法對(duì)該非線性特性進(jìn)行辨識(shí),辨識(shí)結(jié)果權(quán)值wij和閾值θi的終值與式(4-45)的數(shù)量級(jí)幾乎相同,但辨識(shí)速度明顯不如前者。它們的辨識(shí)誤差均方值E見表4-1。(4-46)表4-1兩種賦初值法辨識(shí)誤差均方值

比較新賦初值法和隨機(jī)小數(shù)初值法的辨識(shí)過程:在CPU為P4且內(nèi)存為2.4GB的計(jì)算機(jī)上,用MATLAB的m軟件編程進(jìn)行辨識(shí),前者所用的時(shí)間為4.8秒,而后者時(shí)間為6.2秒;從表4-1可知,新賦初值法辨識(shí)誤差均方值E比隨機(jī)小數(shù)初值辨識(shí)的E也有所減?。涣硗?,采用新賦初值法對(duì)多谷點(diǎn)、多峰值的多變量非線性函數(shù)進(jìn)行辨識(shí),由于新賦初值算法的樣本包括了非線性特性的特殊點(diǎn),因而可避免網(wǎng)絡(luò)收斂于局部極小點(diǎn)。綜上可見,新賦初值法不僅能使網(wǎng)絡(luò)的收斂速度有一定提高,辨識(shí)誤差有所下降,且可避免局部極小點(diǎn)。4.5.1具有噪聲二階系統(tǒng)辨識(shí)的MATLAB程序剖析

【例4-1】對(duì)具有隨機(jī)噪聲的二階系統(tǒng)的模型辨識(shí)

,進(jìn)行標(biāo)幺化以后系統(tǒng)的參考模型差分方程為

y(k)=a1y(k-1)+a2y(k-2)+bu(k-1)+ξ(k)(4-47)

式中,a1=0.3366,a2=0.6634,b=0.68,ξ(k)為隨機(jī)噪聲。由于神經(jīng)網(wǎng)絡(luò)的輸出最大為1,所以被辨識(shí)的系統(tǒng)應(yīng)先標(biāo)幺化,這里標(biāo)幺化系數(shù)為5。4.5復(fù)雜系統(tǒng)神經(jīng)網(wǎng)絡(luò)辨識(shí)MATLAB仿真舉例

利用圖3-16正向建模(并聯(lián)辨識(shí))結(jié)構(gòu),神經(jīng)網(wǎng)絡(luò)選用3-9-9-1型,即輸入層i、隱層j包括2級(jí),輸出層k的節(jié)點(diǎn)個(gè)數(shù)分別為3、9、9、1個(gè);采用MATLAB的m軟件編程來(lái)說明對(duì)具有隨機(jī)噪聲的二階系統(tǒng)的模型辨識(shí)方法;采用改進(jìn)BP算法,在常規(guī)的BP網(wǎng)絡(luò)中增加協(xié)調(diào)器;激發(fā)函數(shù)采用Sigmoid函數(shù)。

解光盤中對(duì)應(yīng)的程序名為FLch4eg1。

(1)編程如下:

%初始化:w10ij表示第一隱層權(quán)值w1ij(k-2),w11ij表示w1ij(k-1);w120ij表示第二

%隱層權(quán)值w2ij(k-2),w121ij表示w21ij(k-1);w20j表示輸出層權(quán)值w3ij(k-2),

%w21j表示w3ij(k-1);q表示隱層閾值;p表示輸出層閾值;置標(biāo)幺化系數(shù)f1=5等w10ij=[.01.01.02;.1.11.02;.010.1;.11.01.02;.1.1.02;.11.1.1;.1.1.1;0.1.1;.10.1];

w11ij=[.1.2.11;.02.13.04;.09.08.08;.09.1.06;.1.11.02;.060.1;.1.1.1;0.10;.1.1.1];

w20j=[.01;.02;.1;.2;.1;.1;.1;.1;.1];w21j=[0;0.1;.1;.02;0;.1;.1;.1;.1];

q0j=[.9.8.7.6.1.2.1.1.1];q120j=q0j;q11j=[.5.2.3.4.1.2.1.1.1];q12j=q11j;

w121ij=w20j*q0j;w120ij=w20j*q11j;

f1=5;q2j=0;p0=.2;k1=1;p1=.3;w=0;xj=[111];a1=[1111];n=100;e1=0;e0=0;e2=0;e3=0;e4=0;yo=0;ya=0;yb=0;y0=0;y1=0;

y2=0;y3=0;u=0;u1=0;u2=0.68;u3=.780;u4=u3-u2;k1=1;kn=28;e3=.055;z1=0;z12=0;q123j=0;t2j=0;o12j=0;r=0;r1=0;s=0.1;d2j=0;

%+++++++++++++++++++++++++++++++++++++++++++++++++++++%初始化結(jié)束v1=randn(40,1);%產(chǎn)生40個(gè)隨機(jī)數(shù),v1代表噪聲form=1:40%訓(xùn)練40次開始

s1=0.1*v1(m)

yn=.3366*y2+.6634*u1+s*s1;%參考模型y1=y2;y2=yn;yp=yn;%yn=y(k);y2=y(k-1);y1=y(k-2)

u0=u1;u1=u2;ya(m)=yn;

fork=1:n%每個(gè)采樣點(diǎn)訓(xùn)練n次開始%calculatingoutputofthehiddenlayer

%calculatingoutputofthehiddenlayer(1)

fori=1:9

x1=[w11ij(i,1)*xj(:,1)]+[w11ij(i,2)*xj(:,2)]+[w11ij(i,3)*xj(:,3)];

x=x1+q11j(:,i);o=1/[1+exp(-x)];o11j(i)=o;end

%calculatingoutputofthehiddenlayer(2)fori=1:9

forj=1:9

z1=z1+w121ij(i,j)*o11j(:,j);end

z=z1+q12j(:,i);o=1/[1+exp(-x)];o12j(i)=o;end

%calculatingoutputoftheoutputlayer

fori=1:9

yb=yb+w21j(i,:)*o12j(:,i);end

yi=yb+p1;y=1/[1+exp(-yi)];

%calculatingerrorvaluebetweenaimandpracticevalue

e0=e1;e1=e2;e2=[(yp-y).^2]/2;e(k)=e2;

xj1=e2;xj2=e1;xj3=e0;xj=[xj1xj2xj3];

%revisingrightvalue(1)fori=1:9

d1=o11j(:,i)*[1-o11j(:,i)]*d2j*w21j(i,:);%計(jì)算第1隱層誤差反傳信號(hào)

do=o11j(:,i)*d1;qw=q11j(:,i)-q0j(:,i);

q2j=q11j(:,i)+.8*do+.4*qw;q3j(:,i)=q2j;

forj=1:3

dw=w11ij(i,j)-w10ij(i,j);

w12ij=w11ij(i,j)+.8*do*xj(j)+.6*dw;

w13ij(i,j)=w12ij;end

endw10ij=w11ij;w11ij=w13ij;q0j=q11j;q11j=q3j;%遞推存儲(chǔ)

%revisingrightvalue(2)

fori=1:9

d1=o12j(:,i)*[1-o12j(:,i)]*d2j*w21j(i,:);%計(jì)算第2隱層誤差反傳信號(hào)

do=o12j(:,i)*d1;qw=q12j(:,i)-q120j(:,i);

t2j=q12j(:,i)+.8*do+.4*qw;q123j(:,i)=t2j;

forj=1:9

dw=w121ij(i,j)-w120ij(i,j);

w122ij=w121ij(i,j)+.8*do*o11j(j)+.6*dw;w123ij(i,j)=w122ij;end

end

w120ij=w121ij;w121ij=w123ij;q120j=q12j;q12j=q123j;

%revisingrightvalue(3)

ifm<4,r=0.2;r1=0.0001;else,r=0.14;r1=0.005;end%協(xié)調(diào)器的作用

%ife2<=0.006,r=0.0;r1=0.0;elsebreak;end

fori=1:9

d2j=y*(1-y)*(yp-y);%計(jì)算輸出誤差反傳信號(hào)

dw=w21j(i,:)-w20j(i,:);w22j=w21j(i,:)+r*d2j*o12j(i)+.4*dw+r1*e2;w23j(i,:)=w22j;end

w20j=w21j;w21j=w23j;ph=p1-p0;p2=p1+.96*(yp-y)+.58*ph+r1*e2;

p0=p1;p1=p2;u=y;

ife2<=0.005break;else,end

end%每個(gè)采樣點(diǎn)訓(xùn)練n次結(jié)束

ya(m)=yp*f1;e3(m)=e2;ym(m)=y*f1;v(m)=s1;m6=m;

end%訓(xùn)練40次結(jié)束

w11ij=w13ij%在MATLAB主界面上打印出第一隱層權(quán)值

w121ij=w123ij%在MATLAB主界面上打印出第二隱層權(quán)值

w21j=w23j%在MATLAB主界面上打印出輸出層權(quán)值

m1=m;

%grapher

subplot(3,1,1),m=1:m6;

plot(m,ya,m,ym,'rx'),xlabel('k'),ylabel('yaandym')

title('IdentifiedmodelbyMBPalgorithm'),

legend('yaissystem','ymisidentifiedmodel');%圖標(biāo)注

subplot(3,1,2),m=1:m6;

plot(m,e3),xlabel('k'),ylabel('error')

subplot(3,1,3),m=1:m6;plot(m,v),xlabel('k'),ylabel('randomnoise')

(2)辨識(shí)結(jié)果。辨識(shí)結(jié)果如圖4-2所示,圖中ya表示被辨識(shí)系統(tǒng)的輸出;ym表示神經(jīng)網(wǎng)絡(luò)的輸出,即由改進(jìn)BP算法辨識(shí)的系統(tǒng)模型的輸出。在程序中ya和ym已用標(biāo)幺化系數(shù)還原到原系統(tǒng)值。“error”表示辨識(shí)過程中的訓(xùn)練誤差,在k=3以前最大誤差為2‰,之后誤差在1‰以內(nèi)?!皉andomnoise”表示系統(tǒng)的隨機(jī)噪聲。圖4-2

MBP算法對(duì)具有隨機(jī)噪聲的二階系統(tǒng)辨識(shí)結(jié)果各層權(quán)值如下:

w11ij=w21j=

0.23520.48550.2456-0.0589

-0.10090.15850.06900.1011

0.20930.19890.04940.0478

0.06070.23640.1214-0.1522

0.10050.12610.0211-0.1189

-0.0157-0.15110.09940.0478

0.09930.09890.09940.0478

-0.00070.0989-0.15060.0478

0.09930.24890.09940.0478w121ij=

0.01650.01820.01430.01040.00230.00330.00230.00230.0023

0.02480.02980.02130.0129-0.0026-0.0008-0.0026-0.0026-0.0027

0.14660.16720.12690.08660.00690.01680.00690.00700.0069

0.30430.34340.26380.18420.02380.04390.02380.02370.0238

0.15350.17280.13310.09340.01310.02310.01310.01300.0131

0.14660.16720.12690.08660.00690.01680.00690.00700.0069

0.14660.16720.12690.08660.00690.01680.00690.00700.0069

0.14660.16720.12690.08660.00690.01680.00690.00700.0069

0.14660.16720.12690.08660.00690.01680.00690.00700.00694.5.2多維非線性辨識(shí)與MATLAB程序剖析

【例4-2】現(xiàn)以二維不同頻率的三角函數(shù)yp=cos(2πk1m+2πk2n)×sin(2πk2n)為樣本,即yp為教

師信號(hào)(參考模型的輸出),其中0<m<36,0<n<36;利用圖3-16正向建模(并聯(lián)辨識(shí))結(jié)構(gòu)圖,神經(jīng)網(wǎng)絡(luò)選用3-6-1型,即輸入層i、隱層j、輸出層k的節(jié)點(diǎn)個(gè)數(shù)分別為3、6、1個(gè);采用MATLAB的m軟件編程來(lái)說明用神經(jīng)網(wǎng)絡(luò)對(duì)多維非線性函數(shù)的辨識(shí)方法。

解由于樣本幅值是正負(fù)變化的,因此,激發(fā)函數(shù)采用對(duì)稱的Sigmoid函數(shù)(雙曲函數(shù)),即

采用MBP算法,即由協(xié)調(diào)器來(lái)協(xié)調(diào)各層權(quán)值修正;另外,在修正權(quán)值時(shí)考慮積累誤差。隱層和輸出層的修正權(quán)值式為(4-48)(4-49)(4-50)式中w為積累誤差。如果不采用這種方法,也可修正閾值;若不修正閾值,重新調(diào)整系數(shù)。

(1)編程如下(附帶光盤中程序名為FLch4eg2):

%初始化:w10ij表示隱層權(quán)值陣wij(k-2);w11ij表示wij(k-1);w20j表示wjk(k-2);

%w21j表示層權(quán)值陣wjk(k-1);q和p為閾值

w10ij=[.001.001.002;.001.001.02;.010.001;.001.001.002;.0010.002;.0011.001.001];

w11ij=[-.1-.02.11;-.21.10-.19;-.14.15-.16;.14-.13.17;-.13.12.21;-.16-.23.13];

w20j=[.01;.02;.1;.2;.1;.1];w21j=[.18;.9;.9;.7;.8;.9];q0j=[.5.8.4.6.1.2];q1j=[-.1.02.12.14-.02.02];

q2j=0;p0=.2;k1=1;p1=.2;

w23j=[0;0;0;0;0;0];w22j=0;w=0;w0=0;

xj=[0.50.30.2];%inputs

ya=[000];yp=0;yy=0;m1=0;yam=0;yp1=0;qw=0;yo=[000];ya1=0;error=0.0001;

n=1;q=0;e1=0;e0=0;e2=0;e3=0;e4=0;yo=0;ya=0;yb=0;y0=0;y1=0;

y2=0;y3=0;u=0;u1=0;u2=0;k1=1;kn=28;e3=.055;

a1=0.036;a2=0.036;a3=0.08;w0=1;dj2=0.01;

%++++++++++++++++++++++++++++++++++++++++++++++++++++%初始化結(jié)束form=1:36%變量m開始訓(xùn)練

forn=1:36%變量n開始訓(xùn)練

q=pi*0.05*m;p=pi*0.02*n;

yn=cos(2*q+2*p)*sin(2*p);yzs=0.1*yn;yp=yn;

fork=1:6%對(duì)樣本的一次采樣值yp訓(xùn)練k次開始

fori=1:6%calculatingoutputofthehiddenlayer

x1=[w11ij(i,1)*xj(:,1)]+[w11ij(i,2)*xj(:,2)]+[w11ij(i,3)*xj(:,3)];

x=x1+q1j(:,i);o=tanh(x);o1j(i)=o;

end%calculatingoutputoftheoutputlayer

fori=1:6

yb=yb+w21j(i,:)*o1j(:,i);end

yi=yb+p1;y=tanh(yi);

%calculatingerrorvaluebetweenaimandpracticevalue

e0=e1;e1=e2;e2=[(yp-y).^2]/2;

%revisingrightvalue

fori=1:6%修正隱層權(quán)值

d1=[1-o1j(:,i)]*dj2*w23j(i,:);do=o1j(:,i)*d1;%計(jì)算隱層誤差反傳信號(hào)

q3j(:,i)=q1j(i);forj=1:3

dw=w11ij(i,j)-w10ij(i,j);

ife2<0.05,a1=0;a2=0;a3=0;else,a1=0.02;a2=0.05;a3=0.0005;

end;%協(xié)調(diào)器根據(jù)訓(xùn)練誤差動(dòng)態(tài)變化學(xué)習(xí)因子

w12ij=w11ij(i,j)+a1*do*xj(j)+a2*dw+a3*w;w13ij(i,j)=w12ij;end

end%修正隱層權(quán)值結(jié)束

w10ij=w11ij;w11ij=w13ij;q0j=q1j;q1j=q3j;%遞推暫存隱層權(quán)值和閾值

w=yp-y;w0=w;w=0.36*w0+(yp-y);%計(jì)算積累誤差wife2<0.004,w=0.78*w;end%協(xié)調(diào)器根據(jù)訓(xùn)練誤差動(dòng)態(tài)變化學(xué)習(xí)因子

fori=1:6%修正輸出層權(quán)值

d2j=y*(1-y)*(yp-y);%計(jì)算輸出層誤差反傳信號(hào)

dw=w21j(i,:)-w20j(i,:);

w22j=w21j(i,:)+0.132*d2j*o1j(i)+0.26*dw;+0.0016*w;%增加積累誤差w

w23j(i,:)=w22j;

endw20j=w21j;w21j=w23j;

ph=p1-p0;p2=p1+.3*(yp-y)+.102*ph;p0=p1;p1=p2;

ife2<=0.005break;elseend%判斷誤差

end%對(duì)樣本的一次采樣值訓(xùn)練k次結(jié)束

ypp(m,n)=yn;%存儲(chǔ)二維非線性樣本

yom(m,n)=y;%存儲(chǔ)神經(jīng)網(wǎng)絡(luò)辨識(shí)結(jié)果

e3(m,n)=e2;%存儲(chǔ)訓(xùn)練誤差

end%變量n訓(xùn)練結(jié)束m2=m

end%變量m訓(xùn)練結(jié)束

w11ij=w13ij%句末無(wú)“;”,可直接在MATLAB主界面下觀察隱層權(quán)值

w21j=w23j%可直接在MATLAB主界面下觀察輸出層權(quán)值

%grapher

subplot(2,2,1);%plot3(m,n,ypp);%也可用此語(yǔ)句繪制樣本的三維圖

mesh(ypp)%繪制樣本的三維圖

xlabel('m'),ylabel('n'),zlabel('ypp'),%三維坐標(biāo)

title('教師信號(hào)')%圖題

subplot(2,2,2);mesh(yom)xlabel('m'),ylabel('n'),zlabel('yom');

title('學(xué)習(xí)結(jié)果')

subplot(2,1,2);mesh(e3)

xlabel('m'),ylabel('n'),zlabel('e3');

title('學(xué)習(xí)誤差')

(2)辨識(shí)結(jié)果。對(duì)二維非線性函數(shù)yp=cos(2πk1m+2πk2n)×sin(2πk2n)的辨識(shí)結(jié)果如圖4-3所示。圖中ypp為教師信號(hào)(樣本);yom為學(xué)習(xí)(辨識(shí))結(jié)果;e3為學(xué)習(xí)(訓(xùn)練)誤差。圖4-3對(duì)二維非線性函數(shù)yp=cos(2πk1m+2πk2n)×sin(2πk2n)的辨識(shí)結(jié)果

(3)結(jié)論。從圖4-3可見,學(xué)習(xí)誤差在5%之內(nèi)。在程序設(shè)計(jì)和調(diào)試過程中,注意以下技巧:

①只要在程序中增加類似m或n的循環(huán)語(yǔ)句,便可用神經(jīng)網(wǎng)絡(luò)對(duì)三維或三維以上的非線性函數(shù)進(jìn)行訓(xùn)練,也可以

將神經(jīng)網(wǎng)絡(luò)用于復(fù)雜系統(tǒng)兩個(gè)以上獨(dú)立變量、任意維非線性動(dòng)態(tài)參數(shù)的辨識(shí)。②程序中除了for、end、else和mesh語(yǔ)句外,一般應(yīng)在語(yǔ)句末加分號(hào)。程序在m2=m,w11ij=w13ij和w21j=w23j中

不要加分號(hào),目的有兩個(gè):一是用m2=m動(dòng)態(tài)顯示程序執(zhí)行的狀態(tài)及程序每次循環(huán)所花的時(shí)間;二是在程序運(yùn)行結(jié)束顯示隱層和輸出層的權(quán)值:w11ij=w21j=

-0.00910.07580.20830.8293

-0.12060.1949-0.09241.5274

-0.01590.2657-0.04850.3184

0.2347-0.03190.2698-0.9167

-0.01420.23080.31820.6995

-0.0755-0.13810.22571.5786③調(diào)整修正因子a1、a2、a3和b1、b2、b3,直到方差

最小,收斂時(shí)間最短為止。

④一旦修正因子、循環(huán)次數(shù)m和n確定,調(diào)整第三層內(nèi)循環(huán)k的次數(shù),可以明顯地改變訓(xùn)練精度和程序運(yùn)行速度,k=20,最大方差e3max=0.01,程序運(yùn)行時(shí)間ts=14s;k=6,e3max=0.032,ts=12s;k=3,e3max=0.08,ts=10s;k=2,e3=0.22,ts=9s。⑤程序中,若在語(yǔ)句“ife2<0.05,a1=0;a2=0;a3=0;else,a1=0.02;a2=0.05;a3=0.005;end;%協(xié)調(diào)器根據(jù)訓(xùn)練誤差動(dòng)態(tài)變化學(xué)習(xí)因子”,如果在這條語(yǔ)句前加“%”(即不要這條語(yǔ)句),訓(xùn)練誤差將成倍增加。這種改進(jìn)BP網(wǎng)絡(luò)比一般的BP網(wǎng)絡(luò)在m、n、k相同的情況下平均收斂速度約提高2s,且訓(xùn)練精度明顯提高。

【例4-3】現(xiàn)以馬鞍非線性函數(shù)

,即yd=0.8*(x^2/a^2+y^2/b^2)為教師信號(hào)(參考模型的輸出),其中-1.25<x<3;-1.25<y<3;步長(zhǎng)為0.001,利用圖3-16正向建模(并聯(lián)辨識(shí))結(jié)構(gòu)圖,神經(jīng)網(wǎng)絡(luò)選用2-6-1型,即輸入層i、隱層j、輸出層k的節(jié)點(diǎn)個(gè)數(shù)分別為2、6、1個(gè);采用MATLAB的m軟件編程來(lái)說明神經(jīng)網(wǎng)絡(luò)對(duì)多維非線性函數(shù)的辨識(shí)方法。解在例4-2中,采用嵌套方式對(duì)多維函數(shù)辨識(shí),而本例則采用并行方式對(duì)多維函數(shù)辨識(shí)。設(shè)w10ij表示隱層權(quán)值陣wij(k-2);w11ij表示wij(k-1);w20j表示wjk(k-2);w21j表示層權(quán)

值陣wjk(k-1);p表示神經(jīng)網(wǎng)絡(luò)輸入向量;網(wǎng)絡(luò)輸入向量及各層權(quán)值陣均采用產(chǎn)生隨機(jī)數(shù)的方法賦初值。在神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)過程中增加點(diǎn)循環(huán),即取一次樣本訓(xùn)練10次。采用與例4

-2完全不同的思路,首先記錄馬鞍非線性函數(shù)學(xué)習(xí)的數(shù)列(求出神經(jīng)網(wǎng)絡(luò)輸出層輸出,并存儲(chǔ)到ko(N)中),然后轉(zhuǎn)換成二維矩陣,最后繪制馬鞍非線性函數(shù)的三維立體圖。

(1)編程如下(光盤中對(duì)應(yīng)的源程序名為FLch4eg3):

Clear%初始化

p=rand(2,1);

wij0=rand(6,2);wij1=rand(6,2);%產(chǎn)生隨機(jī)隱層權(quán)值陣的初始值

wjk0=rand(1,6);wjk1=rand(1,6);%產(chǎn)生隨機(jī)輸出層權(quán)值陣的初始值

E=0.005;a=0.8;b=0.9;z=0.3;g=0.9;

N=1;x=-1.25;y=-1.25;e=3.141592;

form=1:3000%x,y學(xué)習(xí)3000次開始yd=0.8*(x^2/a^2-y^2/b^2);y

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論