新聞中心

EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > Widrow-Hoff神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)規(guī)則的應(yīng)用研究

Widrow-Hoff神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)規(guī)則的應(yīng)用研究

作者: 時(shí)間:2009-07-23 來(lái)源:網(wǎng)絡(luò) 收藏

摘要:基于線性原理,提出線性的模型,并利用Matlab實(shí)現(xiàn)算法。分析Matlab人工神經(jīng)網(wǎng)絡(luò)工具箱中有關(guān)線性神經(jīng)網(wǎng)絡(luò)的工具函數(shù),最后給出線性神經(jīng)網(wǎng)絡(luò)在系統(tǒng)辨識(shí)中的實(shí)際應(yīng)用。通過(guò)對(duì)線性神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,進(jìn)一步驗(yàn)證神經(jīng)網(wǎng)絡(luò)算法的有效性,以及用其進(jìn)行系統(tǒng)辨識(shí)的高精度擬合性。
關(guān)鍵詞:學(xué)習(xí)規(guī)則;線性神經(jīng)網(wǎng)絡(luò);Matlab;系統(tǒng)辨識(shí)

本文引用地址:http://m.butianyuan.cn/article/191985.htm


1 引言
利用神經(jīng)網(wǎng)絡(luò)解決實(shí)際問(wèn)題時(shí),必定涉及大量數(shù)值計(jì)算。為了解決數(shù)值計(jì)算與計(jì)算機(jī)仿真間的矛盾。美國(guó)MathWorks公司推出的集數(shù)學(xué)計(jì)算、圖形計(jì)算、語(yǔ)言設(shè)計(jì)、計(jì)算機(jī)仿真于一體的Matlab具有非線性適應(yīng)性信息處理功能,克服傳統(tǒng)人工智能方法對(duì)于直覺(jué),如模式、語(yǔ)言識(shí)別、非結(jié)構(gòu)化信息處理方面的缺陷,使之在神經(jīng)專家系統(tǒng)、模式識(shí)別、智能控制、組合優(yōu)化、預(yù)測(cè)等領(lǐng)域獲得成功,具有極高的編程效率。神經(jīng)網(wǎng)絡(luò)工具箱是以神經(jīng)網(wǎng)絡(luò)理論為基礎(chǔ),用Matlab語(yǔ)言構(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ù):


通過(guò)式(1)可知,線性網(wǎng)絡(luò)具有拋物面型的誤差曲面,因此只有一個(gè)誤差最小值。由于該值取決于網(wǎng)絡(luò)的權(quán)值和目標(biāo)矢量,于是可通過(guò)調(diào)整權(quán)值使誤差達(dá)到最小。Widrow-Hoff學(xué)習(xí)規(guī)則是通過(guò)沿著相對(duì)于誤差平方和的最速下降方向,連續(xù)調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,根據(jù)梯度下降法,權(quán)值矢量的修正正比于當(dāng)前位置上的e(w,b)的梯度,對(duì)于第i個(gè)輸出節(jié)點(diǎn):


式中,η是學(xué)習(xí)率。
當(dāng)η較大時(shí),學(xué)習(xí)過(guò)程加速,網(wǎng)絡(luò)收斂較快,但η過(guò)大時(shí),學(xué)習(xí)過(guò)程變得不穩(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ò)的輸入矢量。該算法無(wú)需求導(dǎo),因此較簡(jiǎn)單,并具有收斂速度快和精度高的優(yōu)點(diǎn)。由于學(xué)習(xí)率與學(xué)習(xí)過(guò)程比較密切,因此學(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ì)說(shuō)明線性神經(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ò)初始化
初始化是對(duì)連接權(quán)值和閾值進(jìn)行初始化。initwb()初始化函數(shù)是對(duì)網(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ò)初始化后,就可對(duì)其訓(xùn)練。設(shè)置參數(shù),諸如學(xué)習(xí)步長(zhǎng)、誤差目標(biāo)等,同時(shí)在網(wǎng)絡(luò)訓(xùn)練過(guò)程中,圖形顯示網(wǎng)絡(luò)誤差隨學(xué)習(xí)次數(shù)的變化而變化。
其格式為:


式中,Pd為延遲輸入;T為每一層的目標(biāo)向量;Ai為初始輸入條件;Q為輸入向量個(gè)數(shù);TS為時(shí)間步長(zhǎng);VV為空矩陣或確定的向量結(jié)構(gòu)。
3.1.3 網(wǎng)絡(luò)仿真
仿真甬?dāng)?shù)sim()用來(lái)網(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)辨識(shí)中的應(yīng)用
4.1 工作原理
線性神經(jīng)網(wǎng)絡(luò)用于線性系統(tǒng)辨識(shí)必須遵循系統(tǒng)辨識(shí)的3個(gè)基本構(gòu)成原則:(1)選擇在滿足給定的誤差準(zhǔn)則下逼近系統(tǒng)的最簡(jiǎn)單模型;(2)輸入信號(hào)的頻譜必須足以覆蓋系統(tǒng)的頻譜;(3)誤差準(zhǔn)則由誤差的泛函表示。
對(duì)于一個(gè)具有m個(gè)輸入和n個(gè)輸出的r階離散線性系統(tǒng),可由n個(gè)差分方程來(lái)描述,其中第l個(gè)差分方程的一般形式表示為:


式中,aij和bij是方程右邊各項(xiàng)系數(shù),如果某項(xiàng)系數(shù)為零,則該項(xiàng)與y1(k)無(wú)關(guān),去掉該項(xiàng)。
從式(5)可以看出,線性系統(tǒng)k時(shí)刻的輸出可以由前面時(shí)刻有關(guān)輸入輸出線性表示,這種關(guān)系類(lèi)似于單層線性神經(jīng)網(wǎng)絡(luò)輸入輸出之間的關(guān)系。根據(jù)上述原則(1),建立線性神經(jīng)網(wǎng)絡(luò)以辨識(shí)線性系統(tǒng),神經(jīng)網(wǎng)絡(luò)的輸入由系統(tǒng)輸入輸出信號(hào)的時(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ò)辨識(shí)其脈沖響應(yīng)。設(shè)置如果迭代次數(shù)大于10 000或誤差小于0.001時(shí),訓(xùn)練結(jié)束。
采用其工作原理及Widrow-Hoff規(guī)則訓(xùn)練給定系統(tǒng)。訓(xùn)練過(guò)程中,當(dāng)?shù)拇螖?shù)大于10 000或誤差小于目標(biāo)誤差時(shí),訓(xùn)練結(jié)束。圖2為訓(xùn)練后的訓(xùn)練誤差及步數(shù)曲線,由圖2看出,經(jīng)過(guò)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可見(jiàn),訓(xùn)練值和理論值基本擬合。

需要注意的是,在訓(xùn)練過(guò)程中發(fā)現(xiàn),由于權(quán)值的初始值是隨機(jī)的,經(jīng)多次訓(xùn)練,每次的訓(xùn)練結(jié)果都不一樣,有時(shí)訓(xùn)練到10 000步時(shí)仍然收斂不到0.001。由此可見(jiàn),初始權(quán)值的選取對(duì)訓(xùn)練是有一定影響的。選取初始值時(shí)應(yīng)要根據(jù)具體要求而定,不能隨意而定。

5 結(jié)語(yǔ)
論述的Widrow-Hoff學(xué)習(xí)規(guī)則算法可實(shí)現(xiàn),仿真結(jié)果表明Widrow-Hoff學(xué)習(xí)規(guī)則無(wú)需求導(dǎo),算法比較簡(jiǎn)單,收斂速度快。采用線性神經(jīng)網(wǎng)絡(luò)辨識(shí)系統(tǒng),無(wú)需建立實(shí)際系統(tǒng)的辨識(shí)模式,因?yàn)榫€性神經(jīng)網(wǎng)絡(luò)本身已作為一種辨識(shí)模型,可達(dá)到很高的辨識(shí)速度且擬合精度較高。該方法還可推廣至其他本質(zhì)非線性系統(tǒng)。

矢量控制相關(guān)文章:矢量控制原理


評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉