Widrow-Hoff神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)規(guī)則的應(yīng)用研究
摘要:基于線性神經(jīng)網(wǎng)絡(luò)原理,提出線性神經(jīng)網(wǎng)絡(luò)的模型,并利用Matlab實(shí)現(xiàn)Widrow-Hoff神經(jīng)網(wǎng)絡(luò)算法。分析Matlab人工神經(jīng)網(wǎng)絡(luò)工具箱中有關(guān)線性神經(jīng)網(wǎng)絡(luò)的工具函數(shù),最后給出線性神經(jīng)網(wǎng)絡(luò)在系統(tǒng)辨識中的實(shí)際應(yīng)用。通過對線性神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,進(jìn)一步驗(yàn)證Widrow-Hoff神經(jīng)網(wǎng)絡(luò)算法的有效性,以及用其進(jìn)行系統(tǒng)辨識的高精度擬合性。
關(guān)鍵詞:Widrow-Hoff學(xué)習(xí)規(guī)則;線性神經(jīng)網(wǎng)絡(luò);Matlab;系統(tǒng)辨識
1 引言
利用神經(jīng)網(wǎng)絡(luò)解決實(shí)際問題時(shí),必定涉及大量數(shù)值計(jì)算。為了解決數(shù)值計(jì)算與計(jì)算機(jī)仿真間的矛盾。美國MathWorks公司推出的集數(shù)學(xué)計(jì)算、圖形計(jì)算、語言設(shè)計(jì)、計(jì)算機(jī)仿真于一體的Matlab具有非線性適應(yīng)性信息處理功能,克服傳統(tǒng)人工智能方法對于直覺,如模式、語言識別、非結(jié)構(gòu)化信息處理方面的缺陷,使之在神經(jīng)專家系統(tǒng)、模式識別、智能控制、組合優(yōu)化、預(yù)測等領(lǐng)域獲得成功,具有極高的編程效率。神經(jīng)網(wǎng)絡(luò)工具箱是以神經(jīng)網(wǎng)絡(luò)理論為基礎(chǔ),用Matlab語言構(gòu)造的典型神經(jīng)網(wǎng)絡(luò)工具函數(shù)。Matlab中大量有關(guān)線性神經(jīng)網(wǎng)絡(luò)的工具函數(shù)可為線性神經(jīng)網(wǎng)絡(luò)研究和應(yīng)用提供強(qiáng)有力的工具。
2 線性神經(jīng)網(wǎng)絡(luò)原理
2.1 線性神經(jīng)網(wǎng)絡(luò)的模型
圖1是具有R個(gè)輸入的單層(有S個(gè)神經(jīng)元)線性神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),其權(quán)值矩陣為w,閾值向量為b,這種網(wǎng)絡(luò)也稱為Madaline網(wǎng)絡(luò)。
2.2 線性神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)規(guī)則
線性神經(jīng)網(wǎng)絡(luò)是基于線性神經(jīng)網(wǎng)絡(luò)算法。線性神經(jīng)網(wǎng)絡(luò)采用Widrow-Hoff學(xué)習(xí)規(guī)則,利用learnwh()函數(shù)修正網(wǎng)絡(luò)的權(quán)值和閾值。使用Widrow-Hoff學(xué)習(xí)規(guī)則訓(xùn)練網(wǎng)絡(luò)某一層的權(quán)值和閾值,使其線性逼近一個(gè)函數(shù)式。
首先定義一個(gè)線性網(wǎng)絡(luò)的誤差函數(shù):
通過式(1)可知,線性網(wǎng)絡(luò)具有拋物面型的誤差曲面,因此只有一個(gè)誤差最小值。由于該值取決于網(wǎng)絡(luò)的權(quán)值和目標(biāo)矢量,于是可通過調(diào)整權(quán)值使誤差達(dá)到最小。Widrow-Hoff學(xué)習(xí)規(guī)則是通過沿著相對于誤差平方和的最速下降方向,連續(xù)調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,根據(jù)梯度下降法,權(quán)值矢量的修正正比于當(dāng)前位置上的e(w,b)的梯度,對于第i個(gè)輸出節(jié)點(diǎn):
式中,η是學(xué)習(xí)率。
當(dāng)η較大時(shí),學(xué)習(xí)過程加速,網(wǎng)絡(luò)收斂較快,但η過大時(shí),學(xué)習(xí)過程變得不穩(wěn)定,且誤差增大;δ(i)=t(i)-a(i)。
以上各式為Widrow-Hoff學(xué)習(xí)規(guī)則最小均方誤差算法(LMS)。Widrow-Hoff學(xué)習(xí)規(guī)則的權(quán)值變化量正比于網(wǎng)絡(luò)的輸出誤差及網(wǎng)絡(luò)的輸入矢量。該算法無需求導(dǎo),因此較簡單,并具有收斂速度快和精度高的優(yōu)點(diǎn)。由于學(xué)習(xí)率與學(xué)習(xí)過程比較密切,因此學(xué)習(xí)率的取值非常關(guān)鍵。
采用Widrow-Hoff規(guī)則訓(xùn)練的線性網(wǎng)絡(luò),該網(wǎng)絡(luò)能夠收斂的必要條件是被訓(xùn)練的輸入矢量必須是線性獨(dú)立的,且應(yīng)適當(dāng)選擇學(xué)習(xí)率。
3 線性神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)
Matlab神經(jīng)網(wǎng)絡(luò)工具箱中含有易于構(gòu)建的神經(jīng)網(wǎng)絡(luò)函數(shù)。以下詳細(xì)說明線性神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)。
3.1 線性神經(jīng)網(wǎng)絡(luò)的Matlab設(shè)計(jì)
3.1.1 線性神經(jīng)網(wǎng)絡(luò)初始化
初始化是對連接權(quán)值和閾值進(jìn)行初始化。initwb()初始化函數(shù)是對網(wǎng)絡(luò)的某一層的權(quán)值和閾值進(jìn)行初始化,其格式為:net=initwb(net,i)。其中,i表示網(wǎng)絡(luò)的第i層。函數(shù)返回為第i層的權(quán)值和閾值都更新的網(wǎng)絡(luò)。
3.1.2 訓(xùn)練網(wǎng)絡(luò)
線性神經(jīng)網(wǎng)絡(luò)初始化后,就可對其訓(xùn)練。設(shè)置參數(shù),諸如學(xué)習(xí)步長、誤差目標(biāo)等,同時(shí)在網(wǎng)絡(luò)訓(xùn)練過程中,圖形顯示網(wǎng)絡(luò)誤差隨學(xué)習(xí)次數(shù)的變化而變化。
其格式為:
式中,Pd為延遲輸入;T為每一層的目標(biāo)向量;Ai為初始輸入條件;Q為輸入向量個(gè)數(shù);TS為時(shí)間步長;VV為空矩陣或確定的向量結(jié)構(gòu)。
3.1.3 網(wǎng)絡(luò)仿真
仿真甬?dāng)?shù)sim()用來網(wǎng)絡(luò)仿真。其格式為:[Y,Pf,Af]=sim(net,{Q TS},Pi,Ai)。其中,Y為訓(xùn)練好的線性神經(jīng)網(wǎng)絡(luò)的實(shí)際輸出;Pf為最終輸出延遲;Af為最終的層延遲。
3.2 訓(xùn)練步驟
(1)根據(jù)給定的輸入矢量計(jì)算網(wǎng)絡(luò)的輸出矢量a=wxp+b,并計(jì)算與期望輸出之間的誤差e=t-a;
(2)將網(wǎng)絡(luò)輸出誤差的平方和與期望誤差相比較,如果其值小于期望誤差,或訓(xùn)練以達(dá)到事先設(shè)定的最大訓(xùn)練次數(shù),則終止訓(xùn)練;否則,繼續(xù)訓(xùn)練;
(3)采用Widfrow-Hoff學(xué)習(xí)規(guī)則計(jì)算新的權(quán)值和閾值,并返回至(1)。
4 線性神經(jīng)網(wǎng)絡(luò)在系統(tǒng)辨識中的應(yīng)用
4.1 工作原理
線性神經(jīng)網(wǎng)絡(luò)用于線性系統(tǒng)辨識必須遵循系統(tǒng)辨識的3個(gè)基本構(gòu)成原則:(1)選擇在滿足給定的誤差準(zhǔn)則下逼近系統(tǒng)的最簡單模型;(2)輸入信號的頻譜必須足以覆蓋系統(tǒng)的頻譜;(3)誤差準(zhǔn)則由誤差的泛函表示。
對于一個(gè)具有m個(gè)輸入和n個(gè)輸出的r階離散線性系統(tǒng),可由n個(gè)差分方程來描述,其中第l個(gè)差分方程的一般形式表示為:
式中,aij和bij是方程右邊各項(xiàng)系數(shù),如果某項(xiàng)系數(shù)為零,則該項(xiàng)與y1(k)無關(guān),去掉該項(xiàng)。
從式(5)可以看出,線性系統(tǒng)k時(shí)刻的輸出可以由前面時(shí)刻有關(guān)輸入輸出線性表示,這種關(guān)系類似于單層線性神經(jīng)網(wǎng)絡(luò)輸入輸出之間的關(guān)系。根據(jù)上述原則(1),建立線性神經(jīng)網(wǎng)絡(luò)以辨識線性系統(tǒng),神經(jīng)網(wǎng)絡(luò)的輸入由系統(tǒng)輸入輸出信號的時(shí)延序列組成,網(wǎng)絡(luò)的輸入個(gè)數(shù)與系統(tǒng)階數(shù)有關(guān),神經(jīng)網(wǎng)絡(luò)的輸出代表系統(tǒng)輸出的估計(jì)值,網(wǎng)絡(luò)的輸出個(gè)數(shù)等于系統(tǒng)輸出個(gè)數(shù)。網(wǎng)絡(luò)建立后,根據(jù)基本構(gòu)成原則(2),運(yùn)用Widrow-Hoff學(xué)習(xí)規(guī)則訓(xùn)練神經(jīng)網(wǎng)絡(luò),反復(fù)調(diào)節(jié)網(wǎng)絡(luò)的權(quán)值和閾值,使網(wǎng)絡(luò)輸出y(k)和系統(tǒng)輸出Y(k)之間的輸出誤差不斷減小,直至達(dá)到規(guī)定精度要求。
4.2 應(yīng)用實(shí)例
設(shè)系統(tǒng)傳遞甬?dāng)?shù)為用線性神經(jīng)網(wǎng)絡(luò)辨識其脈沖響應(yīng)。設(shè)置如果迭代次數(shù)大于10 000或誤差小于0.001時(shí),訓(xùn)練結(jié)束。
采用其工作原理及Widrow-Hoff規(guī)則訓(xùn)練給定系統(tǒng)。訓(xùn)練過程中,當(dāng)?shù)拇螖?shù)大于10 000或誤差小于目標(biāo)誤差時(shí),訓(xùn)練結(jié)束。圖2為訓(xùn)練后的訓(xùn)練誤差及步數(shù)曲線,由圖2看出,經(jīng)過7 766步訓(xùn)練后誤差達(dá)到0.000 999 252小于誤差目標(biāo)e=0.001,訓(xùn)練結(jié)束。
圖3為訓(xùn)練后的結(jié)果與期望結(jié)果的比較,圖中,“?”表示訓(xùn)練值,連續(xù)曲線表示理論值。由圖3可見,訓(xùn)練值和理論值基本擬合。
需要注意的是,在訓(xùn)練過程中發(fā)現(xiàn),由于權(quán)值的初始值是隨機(jī)的,經(jīng)多次訓(xùn)練,每次的訓(xùn)練結(jié)果都不一樣,有時(shí)訓(xùn)練到10 000步時(shí)仍然收斂不到0.001。由此可見,初始權(quán)值的選取對訓(xùn)練是有一定影響的。選取初始值時(shí)應(yīng)要根據(jù)具體要求而定,不能隨意而定。
5 結(jié)語
論述的Widrow-Hoff學(xué)習(xí)規(guī)則算法可實(shí)現(xiàn),仿真結(jié)果表明Widrow-Hoff學(xué)習(xí)規(guī)則無需求導(dǎo),算法比較簡單,收斂速度快。采用線性神經(jīng)網(wǎng)絡(luò)辨識系統(tǒng),無需建立實(shí)際系統(tǒng)的辨識模式,因?yàn)榫€性神經(jīng)網(wǎng)絡(luò)本身已作為一種辨識模型,可達(dá)到很高的辨識速度且擬合精度較高。該方法還可推廣至其他本質(zhì)非線性系統(tǒng)。
評論