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