例1 采用動量梯度下降算法訓練 BP 網絡_第1頁
例1 采用動量梯度下降算法訓練 BP 網絡_第2頁
例1 采用動量梯度下降算法訓練 BP 網絡_第3頁
例1 采用動量梯度下降算法訓練 BP 網絡_第4頁
例1 采用動量梯度下降算法訓練 BP 網絡_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、例1采用動量梯度下降算法訓練BP網絡。訓練樣本定義如下:輸入矢量為p =-1 -2 3 1-1 1 5 -3目標矢量為t = -1 -1 1 1解:本例的MATLAB程序如下:close allclearecho onclc% NEWFF生成一個新的前向神經網絡% TRAIN對BP神經網絡進行訓練% SIM對BP神經網絡進行仿真pause%敲任意鍵開始clc% 定義訓練樣本% P為輸入矢量P=-1, -2,3,1;-1,1,5, -3;% T為目標矢量T=-1, -1, 1, 1;pause;clc%創(chuàng)建一個新的前向神經網絡net二newff(minmax(P),3,1,tansig,pure

2、lin,traingdm)%當前輸入層權值和閾值inputWeights二net.IW1,1inputbias二net.b1%當前網絡層權值和閾值layerWeights二net.LW2,1layerbias二net.b2pauseclc%設置訓練參數net.trainParam.show = 50;net.trainParam.lr = 0.05;net.trainParam.mc = 0.9;net.trainParam.epochs = 1000;net.trainParam.goal = 1e-3;pauseclc% 調用TRAINGDM算法訓練BP網絡net,tr=train(net

3、,P,T);pauseclc%對BP網絡進行仿真A = sim(net,P)%計算仿真誤差E = T - AMSE=mse(E)pauseclcecho off例2采用貝葉斯正則化算法提高BP網絡的推廣能力。在本例中,我們采用兩 種訓練方法,即L-M優(yōu)化算法(trainlm)和貝葉斯正則化算法(trainbr), 用以訓練BP網絡,使其能夠擬合某一附加有白噪聲的正弦樣本數據。其中,樣 本數據可以采用如下MATLAB語句生成:輸入矢量:P = -1:0.05:1;目標矢量:randn(seed,78341223);T = sin(2*pi*P)+0.1*randn(size(P);解:本例的MA

4、TLAB程序如下:close allclearecho onclc% NEWFF生成一個新的前向神經網絡% TRAIN對BP神經網絡進行訓練% SIM對BP神經網絡進行仿真pause%敲任意鍵開始clc%定義訓練樣本矢量% P為輸入矢量P = -1:0.05:1;% T為目標矢量randn(seed,78341223); T = sin(2*pi*P)+0.1*randn(size(P);%繪制樣本數據點plot(P,T,+);echo offhold on;plot(P,sin(2*pi*P),:);%繪制不含噪聲的正弦曲線echo onclcpauseclc%創(chuàng)建一個新的前向神經網絡net

5、二newff(minmax(P),20,1,tansig,purelin);pauseclcecho offclcdisp(1. L-M優(yōu)化算法TRAINLM); disp(2.貝葉斯正則化算法 TRAINBR);choice二input(請選擇訓練算法(1,2):);figure(gcf);if(choice=1)echo onclc%采用L-M優(yōu)化算法TRAINLMnet.trainFcn=trainlm;pauseclc%設置訓練參數net.trainParam.epochs = 500;net.trainParam.goal = 1e-6;net二init(net);%重新初始化pau

6、seclcelseif(choice=2)echo onclc%采用貝葉斯正則化算法TRAINBRnet.trainFcn=trainbr;pauseclc% 設置訓練參數net.trainParam.epochs = 500;randn(seed,192736547);net = init(net);% 重新初始化pauseclcend%調用相應算法訓練BP網絡net,tr=train(net,P,T);pauseclc%對BP網絡進行仿真A = sim(net,P);%計算仿真誤差E = T - A;MSE=mse(E)pauseclc%繪制匹配結果曲線 close all;plot(P,

7、A,P,T,+,P,sin(2*pi*P),:);pause;clcecho off 通過采用兩種不同的訓練算法,我們可以得到如圖1和圖2所示的兩種擬合結 果。圖中的實線表示擬合曲線,虛線代表不含白噪聲的正弦曲線, + ”點為含 有白噪聲的正弦樣本數據點。顯然,經trainlm函數訓練后的神經網絡對樣本 數據點實現了 “過度匹配”,而經trainbr函數訓練的神經網絡對噪聲不敏感, 具有較好的推廣能力。-10 0.Z 0-4 aw 】一1 -妙芯=耐#一(14-口念 o SN I|b4 。.忌值 得指出的是,在利用trainbr函數訓練BP網絡時,若訓練結果收斂,通常 會給出提示信息“ Max

8、imum MU reached”。此外,用戶還可以根據SSE和SSW 的大小變化情況來判斷訓練是否收斂:當SSE和SSW的值在經過若干步迭代后 處于恒值時,則通常說明網絡訓練收斂,此時可以停止訓練。觀察trainbr函 數訓練BP網絡的誤差變化曲線,可見,當訓練迭代至320步時,網絡訓練收斂, 此時SSE和SSW均為恒值,當前有效網絡的參數(有效權值和閾值)個數為 11.7973。例3采用“提前停止”方法提高BP網絡的推廣能力。對于和例2相同的問題, 在本例中我們將采用訓練函數traingdx和“提前停止”相結合的方法來訓練 BP網絡,以提高BP網絡的推廣能力。解:在利用“提前停止”方法時,首

9、先應分別定義訓練樣本、驗證樣本或測試樣 本,其中,驗證樣本是必不可少的。在本例中,我們只定義并使用驗證樣本,即 有 驗證樣本輸入矢量:val.P = -0.975:.05:0.975 驗證樣本目標矢量:val.T = sin(2*pi*val.P)+0.1*randn(size(val.P) 值得注意的是,盡管“提前停止”方法可以和任何一種BP網絡訓練函數一起使 用,但是不適合同訓練速度過快的算法聯合使用,比如trainlm函數,所以本 例中我們采用訓練速度相對較慢的變學習速率算法traingdx函數作為訓練函 數。本例的MATLAB程序如下: close all clear echo on

10、clc % NEWFF生成一個新的前向神經網絡 % TRAIN對BP神經網絡進行訓練 % SIM對BP神經網絡進行仿真 pause %敲任意鍵開始 clc % 定義訓練樣本矢量 % P為輸入矢量 P = -1:0.05:1; % T為目標矢量 randn(seed,78341223); T = sin(2*pi*P)+0.1*randn(size(P); %繪制訓練樣本數據點 plot(P,T,+); echo off hold on; plot(P,sin(2*pi*P),:);%繪制不含噪聲的正弦曲線echo on clc pause clc % 定義驗證樣本 val.P = -0.975

11、:0.05:0.975;% 驗證樣本的輸入矢量val.T = sin(2*pi*val.P)+0.1*randn(size(val.P);% 驗證樣本的目標矢量 pause clc %創(chuàng)建一個新的前向神經網絡 net二newff(minmax(P),5,1,tansig,purelin,traingdx);pauseclc%設置訓練參數net.trainParam.epochs = 500;net = init(net);pauseclc%訓練BP網絡net,tr=train(net,P,T,val);pauseclc%對BP網絡進行仿真A = sim(net,P);%計算仿真誤差E = T

12、- A;MSE=mse(E)pauseclc%繪制仿真擬合結果曲線close all;plot(P,A,P,T,+,P,sin(2*pi*P),:);pause;clcecho off下面給出了網絡的某次訓練結果,可見,當訓練至第136步時,訓練提前停止, 此時的網絡誤差為0.0102565。給出了訓練后的仿真數據擬合曲線,效果是相當 滿意的。net,tr=train(net,P,T,val);TRAINGDX, Epoch 0/500, MSE 0.504647/0, Gradient 2.1201/1e-006TRAINGDX,Epoch25/500,MSE0.163593/0,Gradient0.384793/1e-006TRAINGDX,Epoch50/500,MSE0.130259/0,Gradient0.158209/1e-006TRAINGDX,Epoch75/500,MSE0.086869/0,Gradient0.0883479/1e-006TRAINGDX,Epoch100/500,MSE0.0492511/0,Gradient0.

溫馨提示

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

評論

0/150

提交評論