版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、MATLAB神經(jīng)網(wǎng)絡(luò)工具箱神經(jīng)元模型Neuron Model: 多輸入,單輸出,帶偏置輸入:R維列向量1,TRppp:R維行向量111,Rwwwb閾值:標(biāo)量求和單元11Riiinp wb傳遞函數(shù)f輸出()afbwp常用傳遞函數(shù)aWp-b1-1u閾值函數(shù)1(0)( )hardlim( )0(0)naf nnnMATLAB函數(shù): hardlim1(0)( )hardlim ( )1(0)naf ns nnMATLAB函數(shù): hardlims線性函數(shù)uPurelin Transfer Function :( )af nnanMATLAB函數(shù): purelinSigmoid函數(shù)uSigmoid Fun
2、ction :u特性:值域a(0,1)非線性,單調(diào)性無限次可微|n|較小時可近似線性函數(shù)|n|較大時可近似閾值函數(shù)1( )1naf neMATLAB函數(shù): logsig(對數(shù)), tansig(正切)對數(shù)Sigmoid函數(shù)正切Sigmoid函數(shù)tanh( )nnnneeanee單層神經(jīng)網(wǎng)絡(luò)模型R維輸入, S個神經(jīng)元的單層神經(jīng)網(wǎng)絡(luò)模型111212121211RRSSSRwwwwwwwwwW12Sbbbb()faWp+b多層神經(jīng)網(wǎng)絡(luò)模型 前饋神經(jīng)網(wǎng)絡(luò)u前饋神經(jīng)網(wǎng)絡(luò)(feed forward NN):各神經(jīng)元接受前級輸入,并輸出到下一級,無反饋,可用一有向無環(huán)圖表示。u前饋網(wǎng)絡(luò)通常分為不同的層(la
3、yer),第i層的輸入只與第i-1層的輸出聯(lián)結(jié)。u可見層:輸入層(input layer)和輸出層(output layer)u隱藏層(hidden layer) :中間層感知器(perceptron):u 單層前饋網(wǎng)絡(luò)u 傳遞函數(shù)為閾值函數(shù)主要功能是模式分類感知器的生成函數(shù)newp用來生成一個感知器神經(jīng)網(wǎng)絡(luò)net = newp( pr, s, tf, lf ) net: 函數(shù)返回參數(shù),表示生成的感知器網(wǎng)絡(luò) pr: 一個R2矩陣, 由R維輸入向量的每維最小值和最 大值組成 s: 神經(jīng)元的個數(shù) tf: 感知器的傳遞函數(shù), 默認(rèn)為hardlim, 可選hardlims lf: 感知器的學(xué)習(xí)函數(shù),默
4、認(rèn)為learnp, 可選learnpnnet = newp(-2,+2;-2,+2,2) %生成一個二維輸入,兩個神經(jīng)元的感知器newp感知器的權(quán)值和閾值初始化p newp默認(rèn)權(quán)值和閾值為零(零初始化函數(shù)initzero).net = newp(-2,+2;-2,+2,2); W=net.IW1,1 %顯示網(wǎng)絡(luò)的權(quán)值b=net.b1 %顯示網(wǎng)絡(luò)的閾值W =0 00 0b =0 0 p 改變默認(rèn)初始化函數(shù)為隨機(jī)函數(shù)randsnet.inputweights1,1.initFcn = rands;net.biases1.initFcn = rands;net =init(net); %重新初始化p
5、 直接初始化定義權(quán)值和閾值net.IW1,1=1 2;3 4; net.b1=1感知器學(xué)習(xí)u感知器學(xué)習(xí)算法權(quán)值增量: ()TTWta pep閾值增量: btae 權(quán)值更新: newoldWWW閾值更新: newoldbbb算法改進(jìn)()TTta pepWpp輸入樣本歸一化權(quán)值和閾值訓(xùn)練與學(xué)習(xí)函數(shù)trainnet=train(net, P, T) 設(shè)計好的感知器并不能馬上投入使用. 通過樣本訓(xùn)練, 確定感知器的權(quán)值和閾值.輸入向量目標(biāo)向量被訓(xùn)練網(wǎng)絡(luò)net.trainParam.epochs=10 ; %預(yù)定的最大訓(xùn)練次數(shù)為10, 感知器經(jīng)過最多訓(xùn)練10次后停止,adaptnet=adapt(net
6、, P, T)自適應(yīng)訓(xùn)練函數(shù)權(quán)值和閾值學(xué)習(xí)函數(shù)learnpdW=learnp(W,P,Z,N,A,T,E,D,gW,gA,LP,LS)dW:權(quán)值或閾值的增量矩陣W:權(quán)值矩陣或閾值向量P:輸入向量T:目標(biāo)向量E:誤差向量其他可以忽略,設(shè)為 learnpn歸一化學(xué)習(xí)函數(shù)網(wǎng)絡(luò)仿真函數(shù)sima = sim(net, P)輸入向量網(wǎng)絡(luò)輸出分類結(jié)果顯示繪圖函數(shù)plotpvplotpv(P,T)plotpcplotpc(W,b)畫輸入向量的圖像畫分類線 根據(jù)給定的樣本輸入向量P和目標(biāo)向量T, 以及需分類的向量組Q, 創(chuàng)建一個感知器, 對其進(jìn)行分類. 例: 創(chuàng)建一個感知器P=-0.5 -0.6 0.7;0.8
7、 0 0.1; %已知樣本輸入向量T=1 1 0; %已知樣本目標(biāo)向量net=newp(-1 1;-1 1,1); %創(chuàng)建感知器handle=plotpc(net.iw1,net.b1); %返回劃分類線的句柄net.trainParam.epochs=10; % 設(shè)置訓(xùn)練最大次數(shù)net=train(net,P,T); %訓(xùn)練網(wǎng)絡(luò)Q=0.6 0.9 -0.1;-0.1 -0.5 0.5; %已知待分類向量Y=sim(net,Q); %二元分類仿真結(jié)果 figure; %新建圖形窗口plotpv(Q,Y); %畫輸入向量handle=plotpc(net.iw1,net.b1,handle) %
8、畫分類線實驗一 利用感知器進(jìn)行分類(1) 一個經(jīng)過訓(xùn)練的感知器對5個輸入向量進(jìn)行分類(2類)。 Step 1 兩個長度為5的向量構(gòu)成輸入樣本矩陣P,行向量T為目標(biāo)向量。利用PLOTPV畫出這個向量的圖像。例如:P = -0.5 -0.5 +0.3 -0.1 -4; -0.5 +0.5 -0.5 +1.0 5;T = 1 1 0 0 1;plotpv(P,T); % plotpv函數(shù)利用感知器的輸入向量和目標(biāo)向量來畫輸入向量的圖像Step 2建立神經(jīng)網(wǎng)絡(luò) 畫輸入向量的圖像 MATLAB提供函數(shù)newp來創(chuàng)建一個指定的感知器。第一個參數(shù)指定了期望的兩個輸入向量的取值范圍,第二個參數(shù)指定了只有一個神
9、經(jīng)元。net = newp(-40 1;-1 50,1);注意:這個神經(jīng)元的傳遞函數(shù)是hardlim函數(shù),也就是階躍函數(shù)。取0,1兩個值。Hardlims函數(shù),取-1,1兩個值。實驗一 利用感知器進(jìn)行分類(2) 添加神經(jīng)元的初始化值到分類圖添加神經(jīng)元的初始化值到分類圖 Step3 初始化的權(quán)值被設(shè)為0,因此任何輸入都會給出同樣的輸出,并且分類線不會出現(xiàn)在這個圖中,不用害怕,我們會繼續(xù)訓(xùn)練這個神經(jīng)網(wǎng)。hold on linehandle = plotpc(net.IW1,net.b1); /plotpc函數(shù)用來畫分類線訓(xùn)練神經(jīng)網(wǎng)絡(luò)訓(xùn)練神經(jīng)網(wǎng)絡(luò) Step4 Matlab提供了adapt函數(shù)來訓(xùn)練感
10、知器,adapt函數(shù)返回一個新的能更好的執(zhí)行分類、網(wǎng)絡(luò)的輸出、和誤差的神經(jīng)網(wǎng)絡(luò),這個劃線函數(shù)允許網(wǎng)絡(luò)從3個角度去調(diào)整,畫分類線一直到誤差為0為止。E = 1; /E為誤差net.adaptParam.passes = 3; /決定在訓(xùn)練過程中重復(fù)次數(shù)while (sse(E) /sse函數(shù)是用來判定誤差E的函數(shù)net,Y,E = adapt(net,P,T); /利用輸入樣本調(diào)節(jié)神經(jīng)網(wǎng)netlinehandle = plotpc(net.IW1,net.b1,linehandle);/ /畫出調(diào)整以后的分類線drawnow; /延遲一段時間end實驗一 利用感知器進(jìn)行分類(3) Step 5
11、模擬模擬sim sim函數(shù)能被用來劃分任何別的輸入向量,例如劃分一個輸入向量0.7; 1.2.這個新點的圖像為紅色,他將用來顯示這個感知器如何把這個新點從最初的訓(xùn)練集取分開來。p = 0.7; 1.2;a = sim(net,p); /利用模擬函數(shù)sim計算出新輸入p的神經(jīng)網(wǎng)絡(luò)的輸出plotpv(p,a);circle = findobj(gca,type, line);set(circle,Color,red);打開hold,以便于以前的圖像不被刪除。增加訓(xùn)練裝置和分類線在圖中。hold on; plotpv(P,T); plotpc(net.IW1,net.b1); hold off; a
12、xis(-2 2 -2 2); 這個感知器正確的區(qū)分了我們的新點(用紅色表示)作為”zero”類(用圓圈表示),而不是”one”類(用+號表示),盡管需要比較長的訓(xùn)練時間,這個感知器仍然適當(dāng)?shù)倪M(jìn)行了學(xué)習(xí)。最后放大感興趣的區(qū)域。BP網(wǎng)絡(luò)l 多層前饋網(wǎng)絡(luò)l 主要功能: 函數(shù)逼近, 模式識別, 信息分類l 傳遞函數(shù):隱層采用S形函數(shù),輸出層S形函數(shù)或線性函數(shù)BP網(wǎng)絡(luò)的生成newff函數(shù)newff用來生成一個BP網(wǎng)絡(luò)net=newff(PR,S1 S2.SN,TF1 TF2. TFN,BTF,BLF,PF)PR: 一個R2矩陣, 由R維輸入向量的每維最小值和最大值組成Si: 第i層的神經(jīng)元個數(shù)TFi:
13、 第i層的傳遞函數(shù), 默認(rèn)為tansigBTF: 訓(xùn)練函數(shù), 默認(rèn)為trainlmBLF: 學(xué)習(xí)函數(shù), 默認(rèn)為learngdmPF: 性能函數(shù), 默認(rèn)為msenet=newff(0,10;-1,2,5,1,tansig,purelin,trainlm); %生成一個兩層BP網(wǎng)絡(luò),隱層和輸出層神經(jīng)的個數(shù)為5和1, 傳遞函數(shù)分別為tansig和purelin, 訓(xùn)練函數(shù)為trainlm, 其他默認(rèn)BP網(wǎng)絡(luò)的初始化 newff 函數(shù)在建立網(wǎng)絡(luò)對象的同時, 自動調(diào)用初始化函數(shù), 根據(jù)缺省的參數(shù)設(shè)置網(wǎng)絡(luò)的連接權(quán)值和閾值. 使用函數(shù)init可以對網(wǎng)絡(luò)進(jìn)行自定義的初始化. 通過選擇初始化函數(shù), 可對各層連接
14、權(quán)值和閾值分別進(jìn)行不同的初始化.BP網(wǎng)絡(luò)的學(xué)習(xí)規(guī)則 權(quán)值和閾值的調(diào)節(jié)規(guī)則采用誤差反向傳播算法(back propagation). 反向傳播算法分二步進(jìn)行,即正向傳播和反向傳播。 1正向傳播 輸入的樣本從輸入層經(jīng)過隱單元一層一層進(jìn)行處理,通過所有的隱層之后,則傳向輸出層;在逐層處理的過程中,每一層神經(jīng)元的狀態(tài)只對下一層神經(jīng)元的狀態(tài)產(chǎn)生影響。在輸出層把現(xiàn)行輸出和期望輸出進(jìn)行比較,如果現(xiàn)行輸出不等于期望輸出,則進(jìn)入反向傳播過程。2反向傳播 反向傳播時,把誤差信號按原來正向傳播的通路反向傳回,并對每個隱層的各個神經(jīng)元的權(quán)系數(shù)進(jìn)行修改,以望誤差信號趨向最小。BP算法實質(zhì)是求取誤差函數(shù)的最小值問題。這種
15、算法采用非線性規(guī)劃中的最速下降方法,按誤差函數(shù)的負(fù)梯度方向修改權(quán)系數(shù)。BP網(wǎng)絡(luò)的快速學(xué)習(xí)算法與選擇學(xué)習(xí)算法適用問題類型收斂性能占用存儲空間其他特點trainlm函數(shù)擬合收斂快,誤差小大性能隨網(wǎng)絡(luò)規(guī)模增大而變差trainrp模式分類收斂最快較小性能隨網(wǎng)絡(luò)訓(xùn)練誤差減小而變差trainscg函數(shù)擬合模式分類收斂較快性能穩(wěn)定中等尤其適用于網(wǎng)絡(luò)規(guī)模較大的情況trainbfg函數(shù)擬合收斂較快較大計算量歲網(wǎng)絡(luò)規(guī)模的增大呈幾何增長traingdx模式分類收斂較慢較小適用于提前停止的方法 MATLAB神經(jīng)網(wǎng)絡(luò)工具箱對常規(guī)BP算法進(jìn)行改進(jìn),提供了一系列快速算法,以滿足不同問題的需要BP網(wǎng)絡(luò)的訓(xùn)練 利用已知的”輸入
16、目標(biāo)”樣本向量數(shù)據(jù)對網(wǎng)絡(luò)進(jìn)行訓(xùn)練,采用train 函數(shù)來完成. 訓(xùn)練之前, 對訓(xùn)練參數(shù)進(jìn)行設(shè)置 訓(xùn)練參數(shù) 參數(shù)含義 默認(rèn)值net.trainParam.epochs訓(xùn)練步數(shù)100net.trainParam.show顯示訓(xùn)練結(jié)果的間隔步數(shù)25net.trainParam.goal訓(xùn)練目標(biāo)誤差0net.trainParam.time訓(xùn)練允許時間INfnet.trainParam.lr學(xué)習(xí)率0.01net = train(net, P, T)BP網(wǎng)絡(luò)的設(shè)計(1)網(wǎng)絡(luò)層數(shù) 已經(jīng)證明,單隱層的BP網(wǎng)絡(luò)可以實現(xiàn)任意非線性映射. BP網(wǎng)絡(luò)的隱層數(shù)一般不超過兩層.輸入層的節(jié)點數(shù) 輸入層接收外部的輸入數(shù)據(jù),
17、節(jié)點數(shù)取決于輸入向量的維數(shù)輸出層的節(jié)點數(shù) 輸出層的節(jié)點數(shù)取決于輸出數(shù)據(jù)類型和該類型所需的數(shù)據(jù)大小.對于模式分類問題,節(jié)點數(shù)為2log mBP網(wǎng)絡(luò)的設(shè)計(2)隱層的節(jié)點數(shù) 隱層的節(jié)點數(shù)與求解問題的要求,輸入輸出單元數(shù)多少有關(guān). 對于模式識別/分類的節(jié)點數(shù)可按下列公式設(shè)計傳遞函數(shù) 隱層傳遞函數(shù)采用S型函數(shù), 輸出層采用S型函數(shù)或線性函數(shù)訓(xùn)練方法及其參數(shù)選擇 針對不同應(yīng)用, BP網(wǎng)絡(luò)提供了多種訓(xùn)練學(xué)習(xí)方法.0innnan其中為隱層節(jié)點數(shù),in為輸入節(jié)點數(shù),a為110之間的整數(shù)BP網(wǎng)絡(luò)設(shè)計實例采用動量梯度下降算法訓(xùn)練BP網(wǎng)絡(luò). 訓(xùn)練樣本%定義訓(xùn)練樣本p=-1 -1 3 1;-1 1 5 -3; t=-
18、1 -1 1 1;%創(chuàng)建一個新的BP網(wǎng)絡(luò)net=newff(minmax(p),3 1,tansig,purelin,traingdm);%設(shè)置訓(xùn)練參數(shù)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); % 訓(xùn)練網(wǎng)絡(luò)A=sim(net,p) %網(wǎng)絡(luò)仿真目標(biāo)線訓(xùn)練誤差變化曲線訓(xùn)練誤差變化曲線(每次不同)實驗實驗2: BP網(wǎng)絡(luò)用于曲線擬合網(wǎng)絡(luò)用于曲
19、線擬合 要求設(shè)計一個簡單的BP網(wǎng)絡(luò),實現(xiàn)對非線性函數(shù)的逼近。通過改變該函數(shù)的參數(shù)以及BP網(wǎng)絡(luò)隱層神經(jīng)元的數(shù)目,來觀察訓(xùn)練時間以及訓(xùn)練誤差的變化情況。Step1: 將要逼近的非線性函數(shù)設(shè)為正弦函數(shù)k = 1; p = -1:.05:1;t = sin(k*pi*p);plot(p,t,-)title(要逼近的非線性函數(shù));xlabel(時間);ylabel(非線性函數(shù)); Step 2: 網(wǎng)絡(luò)建立應(yīng)用函數(shù)newff()建立BP網(wǎng)絡(luò)結(jié)構(gòu),為二層BP網(wǎng)絡(luò)。隱層神經(jīng)元數(shù)目n可以改變,暫設(shè)為10,輸出層有一個神經(jīng)元。選擇隱層和輸出層神經(jīng)元傳遞函數(shù)分別為tansig函數(shù)和purelin函數(shù),網(wǎng)絡(luò)訓(xùn)練算法采用trainlmn = 10;net = newff(minmax(p), n,1, tansig purelin, trainlm);% 對于該初始網(wǎng)絡(luò),可以應(yīng)用sim()函數(shù)觀察網(wǎng)絡(luò)輸出y1 = sim(net,p);% 同時繪制網(wǎng)絡(luò)輸出曲線,并與原函數(shù)相比較figure;plot(p,t,-,p,y1,-)title(未訓(xùn)練網(wǎng)絡(luò)的輸出結(jié)果);xlabel(時間);ylabel(仿真輸出 原函數(shù) );因為使用newff()函數(shù)建立網(wǎng)絡(luò)時,權(quán)值和閾值的初始化是隨機(jī)的,所以網(wǎng)絡(luò)輸出的結(jié)果很差,根本達(dá)不到函數(shù)逼近的目的,并且每次運行結(jié)果也有所不同。Step 3: 網(wǎng)絡(luò)訓(xùn)練
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版通訊器材購銷合同3篇
- 2025年度大型活動場地租賃及服務(wù)合同4篇
- 2025年P(guān)VC管道產(chǎn)品檢測與質(zhì)量保證服務(wù)合同范本3篇
- 2025年消防給水系統(tǒng)設(shè)備及工程安全防護(hù)合同3篇
- 2025年度餐飲股份合作人力資源合作協(xié)議3篇
- 2024版跨國投資風(fēng)險共保協(xié)議版B版
- 二零二五版國有控股企業(yè)股權(quán)置換與混合所有制改革合同3篇
- 2025年度消防安全通道維護(hù)外包服務(wù)合同3篇
- 2024移動支付技術(shù)服務(wù)合同
- 2024版暫定協(xié)議總價協(xié)議樣本版B版
- GA/T 1003-2024銀行自助服務(wù)亭技術(shù)規(guī)范
- 《消防設(shè)備操作使用》培訓(xùn)
- 新交際英語(2024)一年級上冊Unit 1~6全冊教案
- 2024年度跨境電商平臺運營與孵化合同
- 2024年電動汽車充電消費者研究報告-2024-11-新能源
- 湖北省黃岡高級中學(xué)2025屆物理高一第一學(xué)期期末考試試題含解析
- 上海市徐匯中學(xué)2025屆物理高一第一學(xué)期期末學(xué)業(yè)水平測試試題含解析
- 稻殼供貨合同范本
- 《采氣樹基礎(chǔ)知識》課件
- 超齡員工用工免責(zé)協(xié)議書
- 機(jī)械工程師招聘筆試題及解答(某大型國企)
評論
0/150
提交評論