ELM極限學(xué)習(xí)機(jī)相關(guān)_第1頁(yè)
ELM極限學(xué)習(xí)機(jī)相關(guān)_第2頁(yè)
已閱讀5頁(yè),還剩13頁(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、簡(jiǎn)單易學(xué)的機(jī)器學(xué)習(xí)算法一一極限學(xué)習(xí)機(jī)(ELM)極限學(xué)習(xí)機(jī)(ExtremeLearningMachine)ELM,是由黃廣斌提出來(lái)的求解單隱層神經(jīng)網(wǎng)絡(luò)的算法。ELM最大的特點(diǎn)是對(duì)于傳統(tǒng)的神經(jīng)網(wǎng)絡(luò),尤其是單隱層前饋神經(jīng)網(wǎng)絡(luò)(SLFNs),在保證學(xué)習(xí)精度的前提下比傳統(tǒng)的學(xué)習(xí)算法速度更快。ELM是一種新型的快速學(xué)習(xí)算法,對(duì)于單隱層神經(jīng)網(wǎng)絡(luò),ELM可以隨機(jī)初始化輸入權(quán)重和偏置并得到相應(yīng)的輸出權(quán)重。Figure1:SLFN:addibvehiddennodesOutputNeuronLHiddenNeuronsiiInputNeurone(選自黃廣斌老師的PPT)對(duì)于一個(gè)單隱層神經(jīng)網(wǎng)絡(luò)(見Figurel)

2、,假設(shè)有個(gè)任意的樣本其中E=切畑為丁G卅,樸=切忌如丁wR"。對(duì)于一個(gè)有丄個(gè)隱層節(jié)點(diǎn)的單隱層神經(jīng)網(wǎng)絡(luò)可以表示為J2爲(wèi)g(Wi-兀+矗)=<?,打=1,、n=1其中,EM為激活函數(shù),=叫叫為輸入權(quán)重,方為輸出權(quán)重,;是第;個(gè)隱層單元的偏置。i;表示i;和-的內(nèi)積。單隱層神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的目標(biāo)是使得輸出的誤差最小,可以表示為”ll°J=0即存在,i;和,使得工陽(yáng)阿+如)=姑j=jN!=可以矩陣表示為=T其中,門是隱層節(jié)點(diǎn)的輸出,為輸出權(quán)重,廣為期望輸出。日評(píng)1,14么幾虹.i門為了能夠訓(xùn)練單隱層神經(jīng)網(wǎng)絡(luò),我們希望得到I.','和,使得其中,;丨丄,這等價(jià)于最小

3、化損失函數(shù)A'/L-匸1!=1/傳統(tǒng)的一些基于梯度下降法的算法,可以用來(lái)求解這樣的問題,但是基本的基于梯度的學(xué)習(xí)算法需要在迭代的過(guò)程中調(diào)整所有參數(shù)。而在ELM算法中,一旦輸入權(quán)重i;和隱層的偏置八被隨機(jī)確定,隱層的輸出矩陣口就被唯一確定。訓(xùn)練單隱層神經(jīng)網(wǎng)絡(luò)可以轉(zhuǎn)化為求解一個(gè)線性系統(tǒng):<0并且輸出權(quán)重可以被確定j=HT其中,"是矩陣打的Moore-Penrose廣義逆。且可證明求得的解的范數(shù)是最小的并且唯一。三、實(shí)驗(yàn)我們使用簡(jiǎn)單易學(xué)的機(jī)器學(xué)習(xí)算法一Logistic回歸中的實(shí)驗(yàn)數(shù)161412108642-41012原始數(shù)據(jù)集我們采用統(tǒng)計(jì)錯(cuò)誤率的方式來(lái)評(píng)價(jià)實(shí)驗(yàn)的效果,其中錯(cuò)誤

4、率公式為:對(duì)于這樣一個(gè)簡(jiǎn)單的問題,IIoMATLAB代碼主程序plainviewplaincopy1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.%主函數(shù),二分類問題%導(dǎo)入數(shù)據(jù)集A=load('testSet.txt');data=A(:,1:2);%特征label=A(:,3);%標(biāo)簽N,n=size(data);L=100;%隱層節(jié)點(diǎn)個(gè)數(shù)m=2;%要分的類別數(shù)%-初始化權(quán)重和偏置矩陣W

5、=rand(n,L)*2-1;b_1=rand(1,L);ind=ones(N,1);b=b_1(ind,:);%擴(kuò)充成N*L的矩陣tempH=data*W+b;H=g(tempH);%得到H%對(duì)輸出做處理temp_T=zeros(N,m);fori=1:Niflabel(i,:)=0temp_T(i,1)=1;elsetemp_T(i,2)=1;endendT=temp_T*2-1;outputWeight=pinv(H)*T;%-畫出圖形x_1=data(:,1);x_2=data(:,2);holdonfori=1:Niflabel(i,:)=0plot(x_1(i,:),x_2(i,:

6、),'.g');else44. plot(x_1(i,:),x_2(i,:),'.r');45. end46. end47.47. output=H*outputWeight;48. %-計(jì)算錯(cuò)誤率49. tempCorrect=0;50. fori=1:N51. maxNum,index=max(output(i,:);52. index=index-1;53. ifindex=label(i,:);54. tempCorrect=tempCorrect+1;55. end56. end58.57. errorRate=1-tempCorrect./N;激活函

7、數(shù)plainviewplaincopy1. functionH=g(X)2. H=1./(1+exp(-X);3. endmachine:anewlearningschemeoffeedforwardneuralnetworks】。與SVM,傳統(tǒng)神經(jīng)網(wǎng)絡(luò)相比,ELM的訓(xùn)練速度非??欤枰斯じ蓴_較少,據(jù)集其泛化能力很強(qiáng)。Huang在【Extremelearningmachines:asurvey,2011】這篇論文中對(duì)ELM進(jìn)行了總結(jié),包括最初的ELM算法和后來(lái)被發(fā)展延伸的ELM算法(比如在線序列ELM算法、增量ELM算法和集成ELM算法等),里面的很多知識(shí)點(diǎn)值得學(xué)習(xí)。ELM的原理從神經(jīng)網(wǎng)絡(luò)的

8、結(jié)構(gòu)上來(lái)看,ELM是一個(gè)簡(jiǎn)單的SLFN,SLFN示意圖如下:該SLFN包括三層:輸入層、隱含層和輸出層(忽略輸入層則為兩層)。其中隱含層包括L個(gè)隱含神經(jīng)元,一般情況下L遠(yuǎn)小于N,輸出層的輸出為m維的向量,對(duì)于二分類問題,顯然該向量是一維的。對(duì)于一個(gè)訓(xùn)練數(shù)據(jù)樣本,忽略輸入層和隱含層而只考慮隱含層神經(jīng)元的輸出和輸出層,則神經(jīng)網(wǎng)絡(luò)的輸出函數(shù)表達(dá)式為:a,嘰,11和bi是隱含層節(jié)點(diǎn)的參數(shù),表示第i個(gè)隱含層神經(jīng)元和輸出神經(jīng)元之間的連接權(quán)值,即它是一個(gè)m維的權(quán)值向量。公式里面的G是隱含層神經(jīng)元的輸出。針對(duì)加法型隱含層節(jié)點(diǎn),G為:G(略如X)=列3X+frj.其中,小g為激勵(lì)函數(shù),激勵(lì)函數(shù)可以是線性函數(shù),也

9、可。曲也和一屮打IIX-a,.II).以是sigmoid函數(shù);針對(duì)RBF型隱含層節(jié)點(diǎn),G為:和bi分別表示了第i個(gè)徑向基函數(shù)節(jié)點(diǎn)的中心和影響因子。神經(jīng)網(wǎng)絡(luò)輸出函數(shù)可以寫成:H0丫,其中:'h(xi)'H=:h(砧GL九,ka/)G(虹.歐)_|打皿如果神經(jīng)網(wǎng)絡(luò)能夠無(wú)誤差的預(yù)測(cè)訓(xùn)練樣本,那么隱含層和輸出層的權(quán)值是有解的,特別的,當(dāng)L=N時(shí),肯定有解。但是實(shí)際問題中,L往往是遠(yuǎn)小于N的,那么求解權(quán)值向量的問題是無(wú)解的,即網(wǎng)絡(luò)輸出和實(shí)際值之間有誤差,可以定義代價(jià)函數(shù)為:丿二(H0T)(H0-T),ELM算法:Input:給定訓(xùn)練樣本集1(環(huán)©)仁cxKHr,隱層輸出函數(shù)G(

10、a,和隱層節(jié)點(diǎn)個(gè)數(shù)匚1商隨機(jī)生成嗯房節(jié)點(diǎn)參數(shù)I丄;b計(jì)算隱層輸出矩陣11(確探H列滿秩);c)Output網(wǎng)絡(luò)繪優(yōu)權(quán)伏p-HT.在Huang的survey中描述了一種思想,該思想把SVM也看成了神經(jīng)網(wǎng)絡(luò),該思想把神經(jīng)網(wǎng)絡(luò)的輸入層到最后一層隱含層的部分或者SVM核函數(shù)映射的部分都看成了從輸入空間到一個(gè)新的空間的轉(zhuǎn)換,然后,BP會(huì)將誤差反向傳播更新權(quán)值使得誤差最小化,而SVM則力求找到最大分界間隔的分界面,將新空間映射到輸出空間,從這個(gè)角度來(lái)看,SVM確實(shí)可以看成是一種神經(jīng)網(wǎng)絡(luò)。ELM最初算法就如上所述,從2004年至今,后來(lái)的學(xué)者對(duì)其進(jìn)行了很多改進(jìn),主要包括對(duì)輸入層和隱含層權(quán)值隨即確定權(quán)值的優(yōu)化

11、、求解隱含層和輸出層權(quán)值的優(yōu)化(使得ELM更適應(yīng)于噪聲數(shù)據(jù)集)、核函數(shù)ELM以及加入了正則化項(xiàng)的損失函數(shù)(求解結(jié)構(gòu)風(fēng)險(xiǎn)而不再是經(jīng)驗(yàn)風(fēng)險(xiǎn))、ELM和其他方法相結(jié)合等。ELM為神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)設(shè)計(jì)提供了一個(gè)新的思路,使我們更好地理解神經(jīng)網(wǎng)絡(luò),但是還有很多問題需要解決,比如隱含層節(jié)點(diǎn)個(gè)數(shù)的確定,正則化項(xiàng)的選擇等等。作為一個(gè)性能很好的機(jī)器,我們也可以將其應(yīng)用到諸多交叉學(xué)科的應(yīng)用中。極限學(xué)習(xí)機(jī)(ELM)算法的matlab與C+實(shí)現(xiàn)極限學(xué)習(xí)機(jī)的原理極限學(xué)習(xí)機(jī)(Extremelearningmachine,ELM)是單隱層神經(jīng)網(wǎng)絡(luò)的算法,其最大4AII-f%特點(diǎn)就是能在保證學(xué)習(xí)精度的前提下比傳統(tǒng)的學(xué)習(xí)算法快。

12、其結(jié)構(gòu)如下圖所示:OutputNeuronFigure1:SLFN:additivehiddennodesii:11;=iLiiLIliddenNeuronsnInputNeurons對(duì)于一個(gè)單隱層神經(jīng)網(wǎng)絡(luò),假設(shè)有N個(gè)任意的樣本(Xi,ti),其中,Xi=xii'Xi2'xinT匕Rnti=ti1,ti2,timT匕Rm一個(gè)有L個(gè)隱層節(jié)點(diǎn)的單隱層神經(jīng)網(wǎng)絡(luò)可以表示為:Si=iL卩狙冋阿+0)=0滬1,N其中,h(x)為激活函數(shù),Wi=Wii,Wi2,-,WinT為輸入權(quán)重,Pi為輸出權(quán)重,bi是第個(gè)隱層單元的偏置。WiWj表示W(wǎng)i和Wj的內(nèi)積。單隱層神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的目標(biāo)是使得輸出的

13、誤差最小,可以表示為:j=1NOjtj=0即存在Pi,Wi和bi使得Si=iL卩ih(WiXj+bi)=tjj=l,N可以矩陣表示為:H卩二T其中,是H隱層節(jié)點(diǎn)的輸出,卩為輸出權(quán)重,為T期望輸出。h(WXiH(Wi,,WL,bi,bL,Xi,,XL)=IUIh(WiXi+b)h(WiXN+bi)+bL)Jh(WL-XN+bL)UIIp=mI卩用ptluiiT=IUItt理ttniiiNxm傳統(tǒng)的一些基于梯度下降法的算法,可以用來(lái)求解這樣的問題,但是基本的基于梯度的學(xué)習(xí)算法需要在迭代的過(guò)程中調(diào)整所有參數(shù)。而在ELM算法中,一旦輸入權(quán)重Wi和隱層的偏置bi被隨機(jī)確定,隱層的輸出矩陣就被唯一確定。訓(xùn)

14、練單隱層神經(jīng)網(wǎng)絡(luò)可以轉(zhuǎn)化為求解一個(gè)線性系統(tǒng)HP=T。并且輸出權(quán)重卩可以被確定。Pa=H+T其中,H+是矩陣H的Moore-Penrose廣義逆。且可證明求得的解的范數(shù)是最小的并且唯一。以一個(gè)簡(jiǎn)單的二分類為例,分別用matlab和C+實(shí)現(xiàn)。matlab代碼如下:traindata=load('traindata.txt');feature=traindata(:,1:2);%特征label=traindata(:,3);%標(biāo)簽X=feature;N,n=size(X);L=100;m=2;%二分類W=rand(n,L)*2-1;%權(quán)重一1至U1b_1=rand(1,L);b=on

15、es(N,1)*b_1;H=1./(1+exp(-X*W+b);temp_T=zeros(N,m);fori=1:Nif(label(i)=1)temp_Ti(,1)=1;temp_Ti(,2)=0;elsetemp_Ti(,1)=0;temp_Ti(,2)=1;endendT=temp_T*2-1;beta=pinv(H)*T;x_1=X(:,1);x_2=X(:,2);holdonfori=1:Nif(label(i)=1)plot(x_1i(),x_2(i),'.g');elseplot(x_1i(),x_2(i),'.r');endC+代碼如下,這里的矩

16、陣運(yùn)算采用Eigen工具包,最難的地方就是廣義逆矩陣怎么求,參照網(wǎng)上的資源,代碼如下:#include<iostream>#include<fstream>#include<vector>#include<string>#include<Eigen/Dense>#include<Eigen/SVD>usingnamespacestd;usingnamespaceEigen;template<typename_Matrix_Type_>boolpseudoInverse(const_Matrix_Type_&am

17、p;a,_Matrix_Type_&result,doubleepsilon=std:numeric_limits<typename_Matrix_Type_:Scalar>:epsilon()Eigen:JacobiSVD<_Matrix_Type_>svd=a.jacobiSvd(Eigen:ComputeThinU|Eigen:ComputeThinV);if(a.rows()<a.cols()typename_Matrix_Type_:Scalartolerance=epsilon*std:max(a.cols(),a.rows()*svd.sin

18、gularValues().array().abs()(0);result=svd.matrixV()*(svd.singularValues(a)r.ray().abs()>tolerance).select(svd.singularValues().array().inverse(),0).matrix().asDiagonal()*svd.matrixU().adjoint();/returnfalse;elsetypename_Matrix_Type_:Scalartolerance=epsilon*std:max(a.cols(),a.rows()*svd.singularVa

19、lues().array().abs().maxCoeff();/Eigen:JacobiSVD<_Matrix_Type_>svd=a.jacobiSvd(Eigen:ComputeThinU|Eigen:ComputeThinV);/typename_Matrix_Type_:Scalartolerance=epsilon*std:max(a.cols(),a.rows()*svd.singularValues().array().abs().maxCoeff();result=svd.matrixV()*(svd.singularValues()a.rray().abs()&

20、gt;tolerance).select(svd.singularValues().array().inverse(),0).matrix().asDiagonal()*svd.matrixU().adjoint();returntrue;intmain()ifstreamtrainfile;trainfile.open"traindata.txt");vector<vector<double>>traindata;vector<double>rowdata;doubletemp3;while(!trainfile.eof()for(inti=0;i<3;i+)trainfile>>tempi;rowdata.push_back(tempi);traindata.push_back(rowdata);rowdata.erase(rowdata.begin(),rowdata.end();trainfile.close();MatrixXdfeature(traindata.size(),2);VectorXdlabel(traindata.size();for(inti=0;i<traindata.size();i+)for(intj=0;j<3;j

溫馨提示

  • 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)論