MATLAB神經網絡實驗_第1頁
MATLAB神經網絡實驗_第2頁
MATLAB神經網絡實驗_第3頁
MATLAB神經網絡實驗_第4頁
MATLAB神經網絡實驗_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、神經元模型Neuron Model: 多輸入,單輸出,帶偏置輸入:R維列向量1,TRppp權值:R維行向量111,Rwwwb閾值:標量求和單元11Riiinp wb傳遞函數f輸出()afbwp常用傳遞函數aWp-b1-1u閾值函數1(0)( )hardlim( )0(0)naf nnnMATLAB函數: hardlim1(0)( )hardlim ( )1(0)naf ns nnMATLAB函數: hardlims線性函數uPurelin Transfer Function :( )af nnanMATLAB函數: purelinSigmoid函數uSigmoid Function :u特性:

2、 值域a(0,1) 非線性,單調性 無限次可微 |n|較小時可近似線性函數 |n|較大時可近似閾值函數1( )1naf neMATLAB函數: logsig(對數), tansig(正切)對數Sigmoid函數正切Sigmoid函數tanh( )nnnneeanee 前饋神經網絡u前饋神經網絡(feed forward NN):各神經元接受前級輸入,并輸出到下一級,無反饋,可用一有向無環(huán)圖表示。u前饋網絡通常分為不同的層(layer),第i層的輸入只與第i-1層的輸出聯結。u可見層:輸入層(input layer)和輸出層(output layer)u隱藏層(hidden layer) :中間

3、層BP網絡l 多層前饋網絡l 主要功能: 函數逼近, 模式識別, 信息分類l 傳遞函數:隱層采用S形函數,輸出層S形函數或線性函數BP網絡的生成newff函數newff用來生成一個BP網絡net=newff(PR,S1 S2.SN,TF1 TF2. TFN,BTF,BLF,PF)PR: 一個R2矩陣, 由R維輸入向量的每維最小值和最大值組成Si: 第i層的神經元個數TFi: 第i層的傳遞函數, 默認為tansigBTF: 訓練函數, 默認為trainlmBLF: 學習函數, 默認為learngdmPF: 性能函數, 默認為msenet=newff(0,10;-1,2,5,1,tansig,pu

4、relin,trainlm); %生成一個兩層BP網絡,隱層和輸出層神經的個數為5和1, 傳遞函數分別為tansig和purelin, 訓練函數為trainlm, 其他默認BP網絡的初始化 newff 函數在建立網絡對象的同時, 自動調用初始化函數, 根據缺省的參數設置網絡的連接權值和閾值. 使用函數init可以對網絡進行自定義的初始化. 通過選擇初始化函數, 可對各層連接權值和閾值分別進行不同的初始化.BP網絡的學習規(guī)則 權值和閾值的調節(jié)規(guī)則采用誤差反向傳播算法(back propagation). 反向傳播算法分二步進行,即正向傳播和反向傳播。 1正向傳播 輸入的樣本從輸入層經過隱單元一層

5、一層進行處理,通過所有的隱層之后,則傳向輸出層;在逐層處理的過程中,每一層神經元的狀態(tài)只對下一層神經元的狀態(tài)產生影響。在輸出層把現行輸出和期望輸出進行比較,如果現行輸出不等于期望輸出,則進入反向傳播過程。2反向傳播 反向傳播時,把誤差信號按原來正向傳播的通路反向傳回,并對每個隱層的各個神經元的權系數進行修改,以望誤差信號趨向最小。BP算法實質是求取誤差函數的最小值問題。這種算法采用非線性規(guī)劃中的最速下降方法,按誤差函數的負梯度方向修改權系數。BP網絡的快速學習算法與選擇學習算法適用問題類型收斂性能占用存儲空間其他特點trainlm函數擬合收斂快,誤差小大性能隨網絡規(guī)模增大而變差trainrp模

6、式分類收斂最快較小性能隨網絡訓練誤差減小而變差trainscg函數擬合模式分類收斂較快性能穩(wěn)定中等尤其適用于網絡規(guī)模較大的情況trainbfg函數擬合收斂較快較大計算量歲網絡規(guī)模的增大呈幾何增長traingdx模式分類收斂較慢較小適用于提前停止的方法 MATLAB神經網絡工具箱對常規(guī)BP算法進行改進,提供了一系列快速算法,以滿足不同問題的需要BP網絡的訓練 利用已知的”輸入目標”樣本向量數據對網絡進行訓練,采用train 函數來完成. 訓練之前, 對訓練參數進行設置 訓練參數 參數含義 默認值net.trainParam.epochs訓練步數100net.trainParam.show顯示訓練

7、結果的間隔步數25net.trainParam.goal訓練目標誤差0net.trainParam.time訓練允許時間INfnet.trainParam.lr學習率0.01net = train(net, P, T)BP網絡的設計(1)網絡層數 已經證明,單隱層的BP網絡可以實現任意非線性映射. BP網絡的隱層數一般不超過兩層.輸入層的節(jié)點數 輸入層接收外部的輸入數據, 節(jié)點數取決于輸入向量的維數輸出層的節(jié)點數 輸出層的節(jié)點數取決于輸出數據類型和該類型所需的數據大小.對于模式分類問題,節(jié)點數為2log mBP網絡的設計(2)隱層的節(jié)點數 隱層的節(jié)點數與求解問題的要求,輸入輸出單元數多少有關.

8、 對于模式識別/分類的節(jié)點數可按下列公式設計傳遞函數 隱層傳遞函數采用S型函數, 輸出層采用S型函數或線性函數訓練方法及其參數選擇 針對不同應用, BP網絡提供了多種訓練學習方法.0innnan其中為隱層節(jié)點數,in為輸入節(jié)點數,a為110之間的整數BP網絡設計實例采用動量梯度下降算法訓練BP網絡. 訓練樣本%定義訓練樣本p=-1 -1 3 1;-1 1 5 -3; t=-1 -1 1 1;%創(chuàng)建一個新的BP網絡net=newff(minmax(p),3 1,tansig,purelin,traingdm);%設置訓練參數net.trainParam.epochs=1000;net.train

9、Param.goal=0.001;net.trainParam.show=50;net.trainParam.lr=0.05;net.trainParam.mc=0.9;%動量因子,缺省為0.9net=train(net,p,t); % 訓練網絡A=sim(net,p) %網絡仿真目標線訓練誤差變化曲線訓練誤差變化曲線(每次不同)實驗2: BP網絡用于曲線擬合 要求設計一個簡單的BP網絡,實現對非線性函數的逼近。通過改變該函數的參數以及BP網絡隱層神經元的數目,來觀察訓練時間以及訓練誤差的變化情況。Step1: 將要逼近的非線性函數設為正弦函數k = 1; p = -1:.05:1;t = s

10、in(k*pi*p);plot(p,t,-)title(要逼近的非線性函數);xlabel(時間);ylabel(非線性函數); Step 2: 網絡建立應用函數newff()建立BP網絡結構,為二層BP網絡。隱層神經元數目n可以改變,暫設為10,輸出層有一個神經元。選擇隱層和輸出層神經元傳遞函數分別為tansig函數和purelin函數,網絡訓練算法采用trainlmn = 10;net = newff(minmax(p), n,1, tansig purelin, trainlm);% 對于該初始網絡,可以應用sim()函數觀察網絡輸出y1 = sim(net,p);% 同時繪制網絡輸出曲

11、線,并與原函數相比較figure;plot(p,t,-,p,y1,-)title(未訓練網絡的輸出結果);xlabel(時間);ylabel(仿真輸出 原函數 );因為使用newff()函數建立網絡時,權值和閾值的初始化是隨機的,所以網絡輸出的結果很差,根本達不到函數逼近的目的,并且每次運行結果也有所不同。 Step 3: 網絡訓練 應用函數train()對網絡進行訓練之前,要先設置訓練參數。將訓練時間設置為50,精度設置為0.01,其余用缺省值。 訓練后得到的誤差變化過程如圖:net.trainParam.epochs = 50;net.trainParam.goal = 0.01;net

12、= train(net,p,t);Stet 4: 網絡測試對于訓練好的網絡進行仿真并繪制網絡輸出曲線,與原始非線性函數曲線以及未訓練網絡的輸出結果曲線相比較y2 = sim(net,p);figure;plot(p,t,-,p,y1,-,p,y2,-.)title(訓練后網絡的輸出結果);xlabel(時間);ylabel(仿真輸出);從圖中可以看出,得到的曲線和原始的非線性函數曲線很接近。這說明經過訓練后,BP網絡對非線性函數的逼近效果相當好。線性函數uPurelin Transfer Function :( )af nnanMATLAB函數: purelinBP網絡l 多層前饋網絡l 主要

13、功能: 函數逼近, 模式識別, 信息分類l 傳遞函數:隱層采用S形函數,輸出層S形函數或線性函數BP網絡的設計(2)隱層的節(jié)點數 隱層的節(jié)點數與求解問題的要求,輸入輸出單元數多少有關. 對于模式識別/分類的節(jié)點數可按下列公式設計傳遞函數 隱層傳遞函數采用S型函數, 輸出層采用S型函數或線性函數訓練方法及其參數選擇 針對不同應用, BP網絡提供了多種訓練學習方法.0innnan其中為隱層節(jié)點數,in為輸入節(jié)點數,a為110之間的整數BP網絡設計實例采用動量梯度下降算法訓練BP網絡. 訓練樣本%定義訓練樣本p=-1 -1 3 1;-1 1 5 -3; t=-1 -1 1 1;%創(chuàng)建一個新的BP網絡

14、net=newff(minmax(p),3 1,tansig,purelin,traingdm);%設置訓練參數net.trainParam.epochs=1000;net.trainParam.goal=0.001;net.trainParam.show=50;net.trainParam.lr=0.05;net.trainParam.mc=0.9;%動量因子,缺省為0.9net=train(net,p,t); % 訓練網絡A=sim(net,p) %網絡仿真BP網絡設計實例采用動量梯度下降算法訓練BP網絡. 訓練樣本%定義訓練樣本p=-1 -1 3 1;-1 1 5 -3; t=-1 -1 1 1;%創(chuàng)建一個新的BP網絡net=newff(minmax(p),3 1,tansig,purelin,traingdm);%設置訓練參數net.trainParam.epochs=1000;net.trainParam.goal=0.001;net.trainParam.show=50;net.trainParam.lr=0.05;net.trainParam.mc=0.9;%動量因子,缺省為0.9net=train(net,p,t); % 訓練網絡A=sim(net,p) %網絡仿真n = 10;net = newff(minmax(p), n,1

溫馨提示

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

評論

0/150

提交評論