感知器算法實(shí)驗(yàn)【借鑒實(shí)操】_第1頁(yè)
感知器算法實(shí)驗(yàn)【借鑒實(shí)操】_第2頁(yè)
感知器算法實(shí)驗(yàn)【借鑒實(shí)操】_第3頁(yè)
感知器算法實(shí)驗(yàn)【借鑒實(shí)操】_第4頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、一.實(shí)驗(yàn)?zāi)康?. 理解線性分類器的分類原理。2. 掌握感知器算法,利用它對(duì)輸入的數(shù)據(jù)進(jìn)行分類。3. 理解BP算法,使用BP算法對(duì)輸入數(shù)據(jù)進(jìn)行分類。二. 實(shí)驗(yàn)原理1.感知器算法感知器算法是通過訓(xùn)練模式的迭代和學(xué)習(xí)算法,產(chǎn)生線性可分的模式判別函數(shù)。感知器算法就是通過對(duì)訓(xùn)練模式樣本集的“學(xué)習(xí)”得出判別函數(shù)的系數(shù)解。在本次實(shí)驗(yàn)中,我們主要是采用硬限幅函數(shù)進(jìn)行分類。感知器的訓(xùn)練算法如下:設(shè)輸入矢量x1,x2,xn其中每一個(gè)模式類別已知,它們分別屬于1類和2類。(1)置步數(shù)k=1,令增量為某正的常數(shù),分別賦給初始增廣權(quán)矢量w(1)的各分量較小的任意值。(2)輸入訓(xùn)練模式xk,計(jì)算判別函數(shù)值wT(k) xk

2、。(3)調(diào)整增廣權(quán)矢量,規(guī)則是:a.如果xk1和wT(k) xk0,則w(k+1)=w(k)+ xk;b.如果xk2和wT(k) xk0,則w(k+1)=w(k)-xk;c.如果xk1和wT(k) xk0,或xk2和wT(k) xk0,則w(k+1)=w(k)(4)如果k0分類正確,則為第一個(gè)表達(dá)式,如果wT(k) xk0錯(cuò)誤分類則為第二個(gè)表達(dá)式。在全部模式訓(xùn)練完一輪之后只要還有模式分類錯(cuò)誤,則需要進(jìn)行第二輪迭代,再用全部訓(xùn)練模式訓(xùn)練一次,建立新的權(quán)矢量。如果對(duì)訓(xùn)練模式還有錯(cuò)分,則進(jìn)行第三輪迭代依此類推,直至對(duì)所有馴良模式均能正確分類為止,此時(shí)的w即為所求的權(quán)矢量。2BP算法BP (Back

3、Propagation)神經(jīng)網(wǎng)絡(luò)是一種神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法。其由輸入層、隱層、輸出層組成的階層型神經(jīng)網(wǎng)絡(luò),隱層可擴(kuò)展為多層。相鄰層之間各神經(jīng)元進(jìn)行全連接,而每層各神經(jīng)元之間無(wú)連接,網(wǎng)絡(luò)按有教師示教的方式進(jìn)行學(xué)習(xí),當(dāng)一對(duì)學(xué)習(xí)模式提供給網(wǎng)絡(luò)后,各神經(jīng)元獲得網(wǎng)絡(luò)的輸入響應(yīng)產(chǎn)生連接權(quán)值(Weight)。然后按減小希望輸出與實(shí)際輸出誤差的方向,從輸出層經(jīng)各中間層逐層修正各連接權(quán),回到輸入層。此過程反復(fù)交替進(jìn)行,直至網(wǎng)絡(luò)的全局誤差趨向給定的極小值,即完成學(xué)習(xí)的過程。算法描述:輸入層:單元i的輸入:;單元數(shù)量:d;單元i的輸出:; 單元i的激活函數(shù):線性函數(shù);隱層:?jiǎn)卧猨的輸入:netj;單元數(shù)量:nH; 單元

4、j的輸出:; 單元j的激活函數(shù):非線性函數(shù);輸出層:?jiǎn)卧猭的輸入: ;單元數(shù)量:c ;單元k的輸出:?jiǎn)卧猭的激活函數(shù):非線性函數(shù)兩層神經(jīng)網(wǎng)絡(luò)圖如下:分析:(1)給定隱層單元及輸出層單元的激活函數(shù),一個(gè)神經(jīng)網(wǎng)絡(luò)就可以實(shí)現(xiàn)一個(gè)對(duì)輸入特征向量x的非線性映射。因此,神經(jīng)網(wǎng)絡(luò)本質(zhì)上是一個(gè)非線性函數(shù)。(2)給定隱層單元及輸出層單元的激活函數(shù),該非線性函數(shù)所對(duì)應(yīng)的映射關(guān)系完全由權(quán)系數(shù)決定。不同的權(quán)系數(shù)對(duì)應(yīng)不同的非線性映射。(3)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的目的,就是根據(jù)已知的訓(xùn)練樣本,確定神經(jīng)網(wǎng)絡(luò)的權(quán)系數(shù)。這一過程稱為訓(xùn)練過程。在訓(xùn)練過程結(jié)束后,對(duì)于新樣本x,根據(jù)神經(jīng)網(wǎng)絡(luò)的輸出進(jìn)行判決。(4)對(duì)于C類分類問題,神經(jīng)網(wǎng)絡(luò)的

5、輸出為。神經(jīng)網(wǎng)絡(luò)的判決規(guī)則為:如果,則判x屬于wk。(5)令,可以看出神經(jīng)網(wǎng)絡(luò)實(shí)際上實(shí)現(xiàn)了C個(gè)非線性的鑒別函數(shù),并根據(jù)鑒別函數(shù)的取值進(jìn)行分類。(6)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練目標(biāo):調(diào)整權(quán)系數(shù)w,即所有的wkj及wij,使得對(duì)于訓(xùn)練集中的每一個(gè)訓(xùn)練樣本(x,t),網(wǎng)絡(luò)的輸出盡可能滿足:(7)優(yōu)化準(zhǔn)則:對(duì)于樣本集D,使下述誤差函數(shù)取得最小值:權(quán)系數(shù)的調(diào)整: BP算法描述:對(duì)于給定的樣本集D=(x,t),初始化網(wǎng)絡(luò)結(jié)構(gòu)d*nH*c。初始化權(quán)系數(shù)w,學(xué)習(xí)效率、閾值。隨機(jī)從D中取出一個(gè)樣本(x,t),根據(jù)該樣本更新權(quán)系數(shù)w:計(jì)算,如果結(jié)束訓(xùn)練,并認(rèn)為此時(shí)的w為最優(yōu)。否則轉(zhuǎn)第2步繼續(xù)進(jìn)行循環(huán)。三實(shí)驗(yàn)內(nèi)容1. 感知器算

6、法實(shí)驗(yàn)本實(shí)驗(yàn)利用感知器算法的原理,隨機(jī)抽取兩類的部分?jǐn)?shù)據(jù),然后,用這兩類的其他數(shù)據(jù)來(lái)驗(yàn)證分類是否正確。這里是利用感知器兩兩分類的原理。實(shí)驗(yàn)可得結(jié)果如下表。其中r1是輸入x1所得的分類正確率,r2是輸入x2所得的分類正確率,r3是輸入x3所得的分類正確率。當(dāng)訓(xùn)練樣本數(shù)m取20時(shí),x1和x2數(shù)據(jù)分類正確率都是100%,x1和x3數(shù)據(jù)分類正確率是100%,而x2和x3的分類正確率分別為86% 和93%。當(dāng)訓(xùn)練樣本數(shù)m取30時(shí),x1和x2數(shù)據(jù)分類正確率都是100%,x1和x3數(shù)據(jù)分類正確率是100%,而x2和x3的分類正確率分別為92% 和88%。由實(shí)驗(yàn)結(jié)果可以看出,x1和x2、x1和x3之間是線性可

7、分的,而x2和x3則達(dá)到了與預(yù)設(shè)的迭代次數(shù)的上限,且分類效果不明顯。說(shuō)明感知器算法對(duì)于現(xiàn)行可分的數(shù)據(jù)有比較好的性能與速度,但對(duì)于線性不可分的數(shù)據(jù)則效果較差。2BP算法實(shí)驗(yàn)(1)異或問題實(shí)驗(yàn)利用前向兩層神經(jīng)網(wǎng)絡(luò)來(lái)完成異或分類,輸入的樣本為x1=0 1 1,x2=1 0 1,x3=0 0 1,x4=1 1 1將這四個(gè)樣本分成兩類。其中,x1和x2是屬于w1類,x3和x4屬于w2類。第一層(輸入層)采用三個(gè)神經(jīng)元,兩個(gè)輸入神經(jīng)元和一個(gè)恒等于1的神經(jīng)元,第二層(輸出層)設(shè)置一個(gè)神經(jīng)元,第二層輸出的值若小于0.5就表示為w1類,大于0.5就表示w2類。這里采用負(fù)梯度法調(diào)整參數(shù)。在本實(shí)驗(yàn)中,我們記錄訓(xùn)練次

8、數(shù)和做不同次實(shí)驗(yàn)的分類正確率。取實(shí)驗(yàn)次數(shù)為1,訓(xùn)練次數(shù)為3686,分類正確率為100%;取實(shí)驗(yàn)次數(shù)為25,最后一次訓(xùn)練次數(shù)為2970,分類正確率100%;取實(shí)驗(yàn)次數(shù)為50,最后一次訓(xùn)練次數(shù)2942,分類正確率100%。由實(shí)驗(yàn)可以看出,分別做1次、25次和50次實(shí)驗(yàn),所得到的分類正確率都是100,所以說(shuō)利用前向兩層神經(jīng)網(wǎng)絡(luò)來(lái)完成異或分類問題可以得到很好的分類效果。(2)BP算法實(shí)驗(yàn)采用前向兩層神經(jīng)網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)x1、x2和x3兩兩之間的分類。分別選取不同個(gè)數(shù)(m)的樣本進(jìn)行訓(xùn)練,得到相應(yīng)的權(quán)系數(shù),然后再將全部數(shù)據(jù)代入進(jìn)行分類,記錄訓(xùn)練次數(shù)和分類正確率??傻萌缦陆Y(jié)果:訓(xùn)練樣本數(shù)輸入不同組數(shù)據(jù)后的訓(xùn)練次

9、數(shù)和分類正確率x1和x2x1和x3x2和x3 正確率迭代系數(shù)正確率迭代次數(shù)正確率迭代次數(shù)m=5r1=100%r2=100%1334r1=100%r3=100%1336r2=92%r3=86%4452m=15r1=100%r2=100%915r1=100%r3=100%1276r2=92%r3=98%2213m=25r1=100%r2=100%989r1=100%r3=100%1131r2=92%r3=96%1970m=35r1=100%r2=100%961r1=100%r3=100%1044r2=92%r3=98%1410m=45r1=100%r2=100%867r1=100%r3=100%1

10、039r2=90%r3=100%2006x1和x2之間分別選取訓(xùn)練樣本數(shù)為5和45時(shí)的分類效果: x1和x3之間分別選取訓(xùn)練樣本數(shù)為5和45時(shí)的分類效果: x2和x3之間分別選取訓(xùn)練樣本數(shù)為5和45時(shí)的分類效果:下面是分別進(jìn)行不同多次實(shí)驗(yàn)所得的正確率的統(tǒng)計(jì)結(jié)果:x1和x3之間實(shí)驗(yàn)次數(shù)訓(xùn)練樣本個(gè)數(shù)分類正確次數(shù)正確率p=20m=5r1=19,r2=2097.5m=15r1=20,r2=20100m=25r1=20,r2=20100m=35r1=19,r2=2097.5m=45r1=20,r2=20100p=50m=5r1=50,r2=50100m=15r1=50,r2=50100m=25r1=49

11、,r2=5099m=35r1=50,r2=50100m=45r1=50,r2=50100p=100m=5r1=98,r2=10099m=15r1=97,r2=10098.5m=25r1=100,r2=100100m=35r1=97,r2=10098.5m=45r1=99,r2=10099.5x1和x2之間實(shí)驗(yàn)次數(shù)訓(xùn)練樣本個(gè)數(shù)分類正確次數(shù)正確率p=20m=5r1=20,r2=20100m=15r1=19,r2=2097.5m=25r1=19,r2=2097.5m=35r1=20,r2=20100m=45r1=20,r2=20100p=50m=5r1=48,r2=5098m=15r1=49,r2=

12、5099m=25r1=49,r2=5099m=35r1=50,r2=50100m=45r1=50,r2=50100p=100m=5r1=95,r2=10097.5m=15r1=99,r2=10099.5m=25r1=97,r2=10098.5m=35r1=99,r2=10099.5m=45r1=98,r2=10099x2和x3之間實(shí)驗(yàn)次數(shù)訓(xùn)練樣本個(gè)數(shù)分類正確次數(shù)正確率p=20m=5r1=4,r2=420m=15r1=0,r2=2050m=25r1=4,r2=1137.5m=35r1=4,r2=2037.5m=45r1=0,r2=1127.5p=50m=5r1=3,r2=25m=15r1=0,r

13、2=4343m=25r1=13,r2=2134m=35r1=1,r2=1314m=45r1=0,r2=4040分析實(shí)驗(yàn)結(jié)果可以得出:無(wú)論從一次實(shí)驗(yàn)所得結(jié)果還是從做多次實(shí)驗(yàn)所得的統(tǒng)計(jì)結(jié)果上來(lái)看,利用前向二層神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)x1、x2和x3兩兩之間的分類,對(duì)于x1和x2之間、x1和x3之間的分類效果是比較明顯的,可以很好的將兩類分開。而對(duì)于x2和x3之間卻很難用此種辦法達(dá)到很好的分類效果。四. 實(shí)驗(yàn)小結(jié)本次實(shí)驗(yàn)主要是進(jìn)行線性可分類問題的實(shí)驗(yàn),實(shí)驗(yàn)中分別運(yùn)用感知器算法和BP算法進(jìn)行x1、x2和x3兩兩之間的分類,結(jié)果得出,只有x1和x2之間及x1和x3之間是線性可分的,而x2和x3之間是無(wú)法用這兩種辦法

14、分開的。本次實(shí)驗(yàn)中,在運(yùn)用BP算法進(jìn)行x1、x2和x3之間的分類之前,還進(jìn)行了異或問題的實(shí)驗(yàn),實(shí)驗(yàn)中采用兩層前向神經(jīng)網(wǎng)絡(luò)達(dá)到了很好的分類效果,為進(jìn)行后面的實(shí)驗(yàn)打好了基礎(chǔ)。通過本次實(shí)驗(yàn),使我對(duì)感知器算法和BP算法有了更加深入的認(rèn)識(shí),以前在神經(jīng)網(wǎng)絡(luò)這門課程中所學(xué)的理論問題,在本次實(shí)驗(yàn)中通過具體動(dòng)手進(jìn)行編程,使得對(duì)當(dāng)時(shí)所學(xué)知識(shí)有了更加深入的認(rèn)識(shí)。在實(shí)驗(yàn)中也遇到了各種各樣的問題,通過思考解決后,對(duì)我以后的學(xué)習(xí)很有幫助。五. 代碼1.感知器算法文書#借鑒clear all;close all;clc;k=load(iris.txt);k1=zeros(50,4);k2=zeros(50,4);k3=ze

15、ros(50,4);for i=1:1:50 k1(i,:)=k(i,:); k2(i,:)=k(i+50,:); k3(i,:)=k(i+100,:);endm=input(訓(xùn)練樣本數(shù)m=); T1=zeros(m,4);T2=zeros(m,4);T3=zeros(m,4);index=randperm(50); for i=1:1:m T1(i,:)=k1(index(i),:); T2(i,:)=k2(index(i),:); T3(i,:)=k3(index(i),:); end W=0.1,0.1,0.1,0.1; count=0; k=0.02; cc=0; while(coun

16、tm&cc100) i=1; count=0; while(i=m) if(W*T1(i,:)0) W=W-k*T2(i,:); count=0; end if(W*T1(i,:)0)&(W*T2(i,:)0) if(0i&i51) fprintf(第%d個(gè)數(shù)據(jù)被分為第一類,分類正確n,i); else fprintf(第%d個(gè)數(shù)據(jù)被分為第一類,分類錯(cuò)誤n,i); end end if(W*k(i,:)0) if(50i&i101) fprintf(第%d個(gè)數(shù)據(jù)被分為第二類,分類正確n,i); else fprintf(第%d個(gè)數(shù)據(jù)被分為第二類,分類錯(cuò)誤n,i); end end end2.B

17、P算法解決異或問題clear all;close all;clc;p=0;x1=0 0 -1;1 1 -1;x2=0 1 -1;1 0 -1;r11=0;r22=0;while p0.001if mod(k,4)=1 g1=x1(1,:); d=0.1;endif mod(k,4)=2 g1=x2(1,:); d=0.9;endif mod(k,4)=3 g1=x1(2,:); d=0.1;endif mod(k,4)=0 g1=x2(2,:); d=0.9;endg2=g1*w1;o1=1./(1+exp(-g2);o1_y=o1 -1;g3=o1_y*w2;o2=1./(1+exp(-g3

18、);% 輸出層的權(quán)系數(shù)調(diào)整det2=a*2*(d-o2)*o2*(1-o2)*o1_y;w2=w2+det2;s=2*(d-o2)*o2*(1-o2);%第一層的權(quán)系數(shù)調(diào)整w22=w2;det1=a*g1*(s*w22(:,1:2).*o1.*(1-o1);w1=w1+det1;err=d-o2;pf=err2;k=k+1;endr1=0;for j=1:1:2 t1=x1(j,:)*w1; y1=1./(1+exp(-t1); y1_y=y1 -1; I2=y1_y*w2; y2(j)=1./(1+exp(-I2); if y2(j)0.5 r2=r2+1; endendif r2=2 r22=r22+1;end p=p+1endlv=p/25;3.BP算法實(shí)現(xiàn)x1、x2和x3兩兩之間分類clear all;close all;clc;load(data.mat);m=input(訓(xùn)練樣本數(shù)m=); %輸入訓(xùn)練樣本數(shù)T1=zeros(m,4);T2=zeros(m,4);T3=zeros(m,4);%隨機(jī)抽取m個(gè)訓(xùn)練樣本index=randperm(50); for i=1:1:m %得到隨機(jī)的訓(xùn)練樣本 x1(i,:)=k1(index(i),:); x2(i,:)=k2(index(i),:); x3(i,:)=k3(index(i),:);endp=0;r11=0;

溫馨提示

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

評(píng)論

0/150

提交評(píng)論