版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
經(jīng)網(wǎng)絡工箱應用簡介第一章介紹1.神經(jīng)網(wǎng)絡神經(jīng)網(wǎng)絡是個并行理元素的合,我們從生物學神系統(tǒng)得到發(fā)。在自然界,網(wǎng)絡功能要由神經(jīng)決定,我們可以通過改變接點的權(quán)來訓練神網(wǎng)絡完成特定的能。一般的神經(jīng)絡都是調(diào)節(jié)的,或者說可訓練的,這樣一個特定的入便可得到要求的輸出如下圖所。這里,網(wǎng)絡根據(jù)輸出和目的比較而整,直到網(wǎng)絡輸出和目標匹配作為典型,許多輸入/目標對應的方法被用在有督模式中訓練神經(jīng)網(wǎng)絡。神經(jīng)網(wǎng)絡已在各個域中應用,以實現(xiàn)各種復雜的功。這些領包括:模式識別、鑒定分類、語、翻譯控制系統(tǒng)。如今神經(jīng)網(wǎng)能夠用解決常規(guī)算機和人以解決的題。我們要通過這個工具箱來立示范的經(jīng)網(wǎng)絡統(tǒng),并應用到工程、金和其他實項目中去。一般普遍使用有監(jiān)督訓練方法,但是也能夠通過無監(jiān)督的訓練方法或者直接設計得到其他的神經(jīng)網(wǎng)絡。無監(jiān)督網(wǎng)絡可以被應用在數(shù)據(jù)組的辨別上。一些線形網(wǎng)絡和Hopfield網(wǎng)絡是直接設計的??偟膩碚f,有各種各樣的設計和學習方法來增強用戶的選擇。神經(jīng)網(wǎng)絡領域已經(jīng)有50年的歷史了,但是實際的應用卻是在最近15年里,如今神經(jīng)網(wǎng)絡仍快速發(fā)展著。因,它顯然不同與控制系統(tǒng)和最優(yōu)化系統(tǒng)領,它們的術語、數(shù)學理論和設計過程都已牢固的建立和應用了好多年。我們沒有把神經(jīng)網(wǎng)絡工具箱僅看作一個能正常運行的建好的處理輪廓。我們寧愿希望它能成為一個有用的工業(yè)、教育和研究工,一個能夠幫助用戶找到什么能夠做什么不能做的工,一個能夠幫助發(fā)展和拓寬神經(jīng)網(wǎng)絡領域的工具。因為這個領域和它的材料是如此,這個工具箱將給我們解釋處理過,講述怎樣運用它們,并且舉例說明它們的成功和失敗。我們相信要成功和滿意的使用這個工具,對范例和它們的應用的理解是很重要的,并且如果沒有這些說明那么用戶的埋怨和質(zhì)詢就會把我們淹沒。所以如果我們包括了大量的說明性材,請保持耐心。我們希望這些材料能對你有幫助。這個章節(jié)在開始使用神經(jīng)網(wǎng)絡工具箱時包括了一些注,它也描述了新的圖形用戶接口和新的運算法則和體系結(jié),并且它解釋了工具箱為了使用模塊化網(wǎng)絡對象描述而增強的機動性。最后這一章給出了一個神經(jīng)網(wǎng)絡實際應用的列表并增加了一個新的文用,的MATLAB和神經(jīng)網(wǎng)絡工具箱的使用。2.準備工作基本章節(jié)第一章是神經(jīng)網(wǎng)絡的基本介,第二章包括了由工具箱指定的有關網(wǎng)絡結(jié)構(gòu)和符號的基本材料以及建立神經(jīng)網(wǎng)絡的一些基本函數(shù),例如new、init、adapt和train。第三以向播網(wǎng)為講了向傳網(wǎng)的理和用基過。幫助和安裝神經(jīng)網(wǎng)絡工具箱包含在nnet錄中,鍵入helpnt得幫主。工具包了多例每個子述一問題,展示了來決題的網(wǎng)絡給了后結(jié)。示導討的經(jīng)絡例和用碼以過鍵入helpndms找到。安裝經(jīng)絡具的令以下兩份MATLAB文檔中找到:theInstallationGuideforMS-WindowsandMacintosh或者theIntalationGudefrU。第章神構(gòu)1.符號數(shù)號下號:標量字.....a,b,c向量小寫加粗的非斜體字.....a,b,c矩陣-大加的斜字.....A,B,C向量表示一組數(shù)字數(shù)學符號和字符的等價從數(shù)學符號到字符的轉(zhuǎn)換或者反過來可以遵循一些規(guī),為了便于今后引用我們將這些規(guī)則列出。為了從數(shù)學符號變?yōu)镸ALB符號戶要:變上標為細胞數(shù)組標號例如變下標為圓括號標號例如和變圓括號標號為二維數(shù)組標號例如變數(shù)學運算符為MAAB運算符和工具箱函數(shù)例如2.神經(jīng)元模型單神經(jīng)元下圖所示為一個單標量輸入且無偏置的神經(jīng)元。這個輸入標量通過乘以權(quán)重為標量w的連結(jié)點得到結(jié)果wp,這仍是一個標量。這里,加權(quán)的輸入wp僅轉(zhuǎn)數(shù)f的數(shù),函數(shù)是量。的元有一個標量偏置b,你既可以認為它僅僅是通過求和節(jié)點加在結(jié)果wp上,也以認為它把數(shù)f左移了b個位,偏置除了一個定不的輸值1外,其他的像權(quán)重標量n是加權(quán)輸入wp和置b的和,它作移數(shù)f參函數(shù)f轉(zhuǎn)移數(shù),它可為數(shù)曲數(shù),它收數(shù)n輸出,各種不同的轉(zhuǎn)移函數(shù)。注意神經(jīng)元中的w和b的樣,就整。置,我并是,話,以。的,在中,標量b。量1。數(shù)在"rn"中找。出,使于0為,或于0為1,在。工具箱中有一個函數(shù)hardlim來數(shù)上的階躍,如上圖所。我們以輸入以下代碼n=-50.1:;plot(nharlimn,'c:';它產(chǎn)生一在-5到5。。示。值,而于0到1。播(P絡,這得益于函數(shù)的可微性。在上面所示的每一個轉(zhuǎn)移函數(shù)圖的右邊方框中的符號代表了對應的函數(shù),這些圖表將替換網(wǎng)絡圖的方框中的f來表示所使用的特定的轉(zhuǎn)移函數(shù)。第13章列出了所有的轉(zhuǎn)移函數(shù)和圖標。你能夠定義自己的傳遞函數(shù),你可以不限于使用第13章所列的轉(zhuǎn)移函數(shù)。你能夠通過運行示例程序nn2n1來試驗一個神經(jīng)元和各種轉(zhuǎn)移函數(shù)。帶向量輸入的神經(jīng)元一個有R個元素輸入向量的神經(jīng)元如下圖所示。這里單個輸入元素乘上權(quán)重本頁已使用福昕閱讀器進行編輯。福昕軟件(C2005-2009,版權(quán)所有,僅供試用。得到加權(quán)值輸入求和節(jié)點。它們的和是Wp,單行矩陣W和向量p。這個神經(jīng)元有一個偏置b,它加在加權(quán)的輸入上得到網(wǎng)絡輸入n,和值n函數(shù)f用MATLAB代碼表示為:n=W*p+b可是,用戶很少要寫如此底層的代碼,因為這些代碼已經(jīng)被建立到函數(shù)中來定義和模擬整個網(wǎng)絡。上面所示的圖包括了許多細節(jié)。當我們考慮有許多神經(jīng)元和可能是許多神經(jīng)元組成的多層網(wǎng)絡時,我們可能會漏掉許多細節(jié)。因此,作者設計了一個簡潔的符號代表單個神經(jīng)元。這個符號如下圖中所示,它將會在以后的多重神經(jīng)元電路中用到。這里輸入向量p用左邊的黑色實心豎條代表,p的維數(shù)寫在符號p下面,在圖中是Rx1。(注意我們用的是大寫字母,正如在以前句子里R用表示量大時一樣。因此,p一有R個輸元素向量這個入向量上R列行矩陣W。和前一樣,常量1作為一個輸入乘上偏置標量b,給轉(zhuǎn)移函數(shù)的網(wǎng)絡輸入是n,它是偏置與乘積Wp的和。這個和值傳給轉(zhuǎn)移函數(shù)f得到網(wǎng)絡輸出a,在中元,。合,乘作(里就是向量乘積Wp,偏置b和轉(zhuǎn)移函數(shù)f。輸入數(shù)組,即向量p不包括在一層中。這個簡潔的網(wǎng)絡符號每一次都會被用,向量的大小會顯示在矩陣變量名字的下面。我們希望這個符號會讓你理解神經(jīng)網(wǎng)絡的結(jié)構(gòu)以及與之相關的矩陣數(shù)學。正如前面所討論,當特定的轉(zhuǎn)移函數(shù)在一張圖中被使用,轉(zhuǎn)移函數(shù)將用上面所示的符號代替。下面是幾個例:你可以通過運行示例程序nnd2n2來試驗有2個元素的神經(jīng)元。3.網(wǎng)絡結(jié)構(gòu)兩個或更多的上面所示的神經(jīng)元可以組合成一層,一個典型的網(wǎng)絡可包括一層或者多層。我們首先來研究神經(jīng)元層。單層神經(jīng)元網(wǎng)絡有R輸入元素和S個經(jīng)元組成單層網(wǎng)如下圖所示:在一個單層網(wǎng)絡中,輸入向量p的每一個元素都通過權(quán)重矩陣W和每一個神經(jīng)元連接起來。第I個神經(jīng)元通過把所有加權(quán)的輸入和偏置加起來得到它自己的標量輸出n(i。不同的n(i合來成有S個元素的網(wǎng)絡輸入向量n。最后,網(wǎng)絡層輸出一列量a,了a的表達式。注意輸入元素個數(shù)R和神經(jīng)元個數(shù)S通常是不等,我們也并不需要這兩者相等。你也可以建立一個簡單的復合神經(jīng)元層,它將上面所示的網(wǎng)絡并行的合在一起,使用不同的轉(zhuǎn)移函數(shù)。所有的網(wǎng)絡都有相同的輸入,而每一個網(wǎng)絡都會產(chǎn)生輸出。輸入向量元素經(jīng)加權(quán)矩陣W作用輸入網(wǎng)絡。W=注意加權(quán)矩陣W的行標標記權(quán)重的目的神經(jīng),列標標記待加權(quán)的輸入標號。因此,的標號表示從輸入信號的第二個元素到第一個神經(jīng)元的權(quán)重是。有S個神經(jīng)元和R個輸入元素的神經(jīng)網(wǎng)絡也能夠簡化成以下符:這,p是一個有R個元素的輸入向,W是一個SxR的矩陣,a和b是有S個元素的向量。如前面所定義,神經(jīng)元層包括權(quán)重矩,乘法運算,偏置向量b,求和符和轉(zhuǎn)移函數(shù)框。輸入和層我們將要討論多層網(wǎng)絡,所以我們需要拓展我們的符號來描述這樣的網(wǎng)絡。特別是我們要弄清連接輸入的權(quán)重矩陣和連接層的權(quán)重矩陣之間的區(qū)別。我們也要分清權(quán)重矩陣的目的和源。我們將把連接輸入的權(quán)重矩陣成為輸入權(quán)重,把來自層輸出的權(quán)重矩陣稱為層矩陣。進一步說,我們在各個權(quán)重和其他網(wǎng)絡元素中將用上標區(qū)分源(第二個標號和目的第一個標號。作為示例,我們用簡化的形式重畫了上面所畫的單層多輸入網(wǎng)絡。你可以看到,我們把連接輸入向量p的權(quán)重矩陣標記為輸入權(quán)重矩陣(W1,第二號1是源,第號1是同樣,第層素,比偏網(wǎng)和輸有標1來們第。在章節(jié),我們用W陣,用W。節(jié),絡nt用符表示權(quán)轉(zhuǎn)代碼,如下示:IW1,1net.IW{1,1}這樣,你就可以寫代碼來得到對轉(zhuǎn)移函數(shù)的網(wǎng)絡輸入:n{1}=net.IW{1,1}*p+net.b{1}多層神經(jīng)元網(wǎng)絡一個網(wǎng)絡可以有幾,每一層都有權(quán)重矩陣W,量b量a了等,在層,標。上面所示的網(wǎng)絡有R1個輸,第一層有S1個神經(jīng),第二層有S2個神經(jīng),以次類推。一般不同層有不同數(shù)量的神經(jīng)元。每一個神經(jīng)元的偏置輸入是常量1。注意中間層的輸出就是下一層的輸入。第二層可看作有S1個輸,S2個神經(jīng)元和S1xS2階陣W2的單層網(wǎng)絡第二的輸是a1,是a,在已經(jīng)了的向陣,我們把成層。層也可此理。多絡扮不色出出做層其他的做上示網(wǎng)一層(層隱層(第二層些輸為層,這里這定。上示網(wǎng)簡如所示:多層網(wǎng)絡的功能非常強大。舉個例子,一個兩層的網(wǎng)絡,第一層的轉(zhuǎn)移函數(shù)是曲線函數(shù),第二層的轉(zhuǎn)移函數(shù)是線性函數(shù),通過訓練,它能夠很好的模擬任何有有限斷點的函數(shù)。這種兩層網(wǎng)絡集中應用于反向傳播網(wǎng)絡。注意我們把第三層的輸出a3為。我們將使用這種符號來定義這種網(wǎng)絡的輸出。4.數(shù)據(jù)結(jié)構(gòu)這一節(jié)將討論影響網(wǎng)絡仿真的輸入數(shù)據(jù)結(jié)構(gòu)的格式。我們首先討論靜態(tài)網(wǎng),在討論動態(tài)網(wǎng)絡。我們將關心兩種基本的輸入向量類:同步(同時或者無時序向量和異步向量。對異步向量來,向量的順序是非常重要的。對同步向量來,順序是不重要的,并且如果我們已經(jīng)有一定數(shù)量的并行網(wǎng)絡我們就能把一個輸入向量輸入到其中的任意網(wǎng)絡。靜態(tài)網(wǎng)絡中的同步輸入仿真仿真靜態(tài)網(wǎng)沒有反饋或者延遲是網(wǎng)絡仿真最簡單的一種。在這種情況,我們不需要關心向量輸入的時間順,所以我們可以認為它是同時發(fā)生的。另,為了是問題更簡,我們假定開始網(wǎng)絡僅有一個輸入向量。我們用下面的網(wǎng)絡作為例子。為了建立這個網(wǎng)絡我們可以用以下命:net=newlin([-11;-11],1;簡單起見我們假定權(quán)重矩陣和偏置為:W=[1,2],b=[0]其命令行:=[12];=0;假定模擬的網(wǎng)絡有四個無序向,即Q=4:這些步向可以一個陣表示:P=[1223;2131];現(xiàn)在我們就可以模擬這個網(wǎng)絡:A=sim(net,PA=5485我們向網(wǎng)絡輸入一個簡單的同步向量矩,得到了一個簡單的同步向量輸出矩陣。結(jié)果不論是由一個網(wǎng)絡串行輸出還是由四個網(wǎng)絡并行輸出得到的都是一樣的。由于輸入并無關,輸入向量的順序并不重要。動態(tài)網(wǎng)絡中的異步輸入仿真當網(wǎng)絡中存在延遲時,順序發(fā)生的輸入向量就要按一定的序列輸入網(wǎng)絡。為了演示這種情況,我們用了一個有延遲的簡單網(wǎng)絡。為了建立這個網(wǎng)絡我們可以用以下命令:net=newlin([-11],1,[01];net.biasConnect=0;假定權(quán)重矩陣:W=[12]命令行為:=[12];假定輸入順序:p(1=[1],p(2=[2],p(3=[3],p(4=[4]輸入序列可以用一個細胞數(shù)組來表:P=23這樣我們就能模擬這個網(wǎng)絡:A=A=[1][4][7][10]我們輸入一個包含輸入序列的細胞數(shù),網(wǎng)絡產(chǎn)生一個包含輸出序列的細胞數(shù)組。注意異步輸入中的輸入順序是很重要的。在這個例子,當前輸出等于當前輸入乘1加上前一個輸入乘2。如果我們改變輸入順,那么輸出結(jié)果也回隨之改變。動態(tài)網(wǎng)絡中的同步輸入仿真如果我們在上一個例子中把輸入作為同步而不是異步應,我們就會得到完全不同的響應雖然我們不清楚為什么要在動態(tài)網(wǎng)絡中使用這種方式。這就好象每一個輸入都同時加到一個單獨的并行網(wǎng)絡中。在前一個例子,如果我們用一組同步輸入,我們有:p1=[1],p2=[2],p3=[3],p4=[4]這可用下列代碼創(chuàng):P=[1234];模擬這個網(wǎng),我們得:A=A=1234這個結(jié)果和我們同時把每一個輸入應用到單獨的網(wǎng)絡中并計算單獨的輸出沒什么兩樣。注意如果我們沒有初始化延遲時,那么缺省值就是0。在這個例子,由于當前輸入的權(quán)重是1,輸出就是輸入乘1。在某些特定的情況,我們可能想要在同一時間模擬一些不同序列的網(wǎng)絡響應。這種情況我們就要給網(wǎng)絡輸入一組同步序列。比如,我們要把下面兩個序列輸入網(wǎng)絡:p(1=[1],p(2=[2],p(3=[3],p(4=[4]p(1=[4],p(2=[3],p(3=[2],p(4=[1]輸入P應該是一個細胞數(shù),每一個數(shù)組元素都包含了兩個同時發(fā)生的序列的元素。P={[14][23][32][41]};現(xiàn)在我們就可以模擬這個網(wǎng)絡:A=sim(net,P;網(wǎng)絡輸出結(jié)果將:A={[14][411][78][105]}你可以看,每個矩陣的第一列是由第一組輸入序列產(chǎn)生的輸出序,每個矩陣的第二列是由第二組輸入序列產(chǎn)生的輸出序列。這兩組序列之間沒有關,好象他們是同時應用在單個的并行網(wǎng)絡上的。下面的圖表顯示了當我們有Q個TS長度序列時,在函數(shù)sim中入P一般格式它函了單入向的有的況。一個胞組的素都一個步向量矩陣,它對于每個列的一時點。果有輸向量,那么在胞數(shù)中的矩里就多行。這一節(jié)我們我們把同步和異步輸入應用到了動態(tài)網(wǎng)絡中。在以前的章節(jié)中我們把同步輸入應用到了靜態(tài)網(wǎng)絡中。我們也能把異步序列應用到靜態(tài)網(wǎng)絡中。這不會改變網(wǎng)絡的輸出響應,但是這會影響訓練過的網(wǎng)絡的形式。在下一節(jié)你會更清楚的了解這一點。5.訓練方式在這一節(jié)中,我們將描述兩種不同的訓練方式。在增加方式中,每提交一次輸入數(shù)據(jù),網(wǎng)絡權(quán)重和偏置都更新一次。在批處理方式中,僅僅當所有的輸入數(shù)據(jù)都被提交以后,網(wǎng)絡權(quán)重和偏置才被更新。增加方式應用與自適應網(wǎng)絡和其他網(wǎng)絡雖然增加方式更普遍的應用于動態(tài)網(wǎng)絡,比如自適應濾波,但是在靜態(tài)和動態(tài)網(wǎng)絡中都可以應用它。在這一節(jié)中我們將示范怎樣把增加方式應用到這兩種網(wǎng)絡中去。靜態(tài)網(wǎng)絡中的增加方式繼續(xù)考慮前面用過的第一個靜態(tài)網(wǎng)絡的例子,我們用增加方式來訓練它,這樣每數(shù)給輸和標列:假定我們要訓練網(wǎng)絡建立以下線性函:我們以前用的輸入:目標輸出:t1=[4],t2=[5],t3=[7],t4=[7]我們首先用0初始化權(quán)重和偏置。為了顯示增加方式的效果,我們把學習速度也設為0。net=newlin([-11;-11],1,0,0;=[00];=0;為了用增加方式,我們把輸入和目標輸出表示為以下序列:P=[2;1][2;3]T=57前面的討論,不論是作為一個同步向量矩陣輸入還是作為一個異步向量細胞數(shù)組輸,模擬的輸出值是一樣的。而在訓練網(wǎng)絡,這是不對的。當我們使用aat函時,如果入向數(shù)組,那么將一提候新(就是方式,我們下看到,如果是向陣,那權(quán)只輸入的新(是理。我在增式絡:[net,a,e,pf]=adapt(net,P,T;由于學習速度為0網(wǎng)絡輸出仍然為0,并且權(quán)重沒有被更新。錯誤和目標輸出相等。a=[0][0][0][0]e=[4][5][7][7]如果我們設置學習速度為0.1,我們就能夠看到當每一組輸入提交時,網(wǎng)絡是怎么調(diào)整的了。[net,a,e,pf]=adapt(net,P,T;a=[0][2][6.0][5.8]e=[4][3][1.0][1.2]由于在第一個輸入數(shù)據(jù)提交前還沒有更新,第一個輸出和學習速率為0時一樣。由于權(quán)重已更新,第二個輸出就不一樣了。每計算一次錯誤,權(quán)重都不斷的修改。如果網(wǎng)絡可行并且學習速率設置得當,錯誤將不斷的趨向于0。動態(tài)網(wǎng)絡中的增加方式我們同樣也能用增加方式訓練動態(tài)網(wǎng)絡。實際上,這是最普遍的情況。讓我們用前面用過的那個有輸入延遲的線性網(wǎng)絡作為例子,我們將初始化權(quán)重為0,并把學習速率設為0.1。net=newlin([-11],1,[01],0.1;=[00];net.biasConnect=0;為了用增加方式,我們把輸入和目標輸出表示為細胞數(shù)組的元素:Pi=P=3T=5這里我們嘗試訓練網(wǎng)絡把當前輸入和前一次輸入加起來作為當前輸出。輸入序列和我們以前使用sim的例子中用過的一樣,除了我們指定了輸入序列的第一組作為延遲的初始狀態(tài)?,F(xiàn)在我們可以用adt來訓練網(wǎng)絡了:[net,a,e,pf]=adapt(net,P,T,Pi;a=[0][2.4][7.98]e=[3][2.6][-1.98]由于權(quán)重沒有更,第一個輸出是0。每一個序列步,權(quán)重都改變一次。批處理方式在批處理方式,僅僅當所有的輸入數(shù)據(jù)都被提交以,網(wǎng)絡權(quán)重和偏置才被更新,它也可以應用于靜態(tài)和動態(tài)網(wǎng)絡。我們將在這一節(jié)討論這兩種類型。靜態(tài)網(wǎng)絡中的批處理方式批處理方式可以用adapt或trin數(shù)實現(xiàn),雖然由于于用更高的學習算法,tain通常最好的擇。加方式能用aat現(xiàn),tain函只能于批處方式。讓我用前用過靜態(tài)絡例子始,學習速率置為0.1。net=neli(-11;1],,,01;=[00;=0;用apt函數(shù)實現(xiàn)靜態(tài)網(wǎng)絡的批處理方式,輸入向量必須用同步向量矩陣的方式放置:P=[1223;2131];T=[4577];當我們調(diào)用adpt時將觸發(fā)adpwb數(shù),這是缺省的線性網(wǎng)絡調(diào)整函數(shù)。lawh是缺省的權(quán)重和偏置學習函數(shù)。因此,Widrow-Hoff學習法將會被使用:[net,a,e,pf]=adapt(net,P,T;a=0000e=4577注意網(wǎng)絡的輸出全部為0,因為在所有要訓練的數(shù)據(jù)提交前權(quán)重沒有被更,如果我們顯示權(quán),我們就會發(fā):ans=4.90004.1000ans=2.3000經(jīng)過了用apt函數(shù)的批處理方式調(diào)整,這就和原來不一樣了?,F(xiàn)在用trin函來實批理式由于Widrow-off規(guī)則能夠在增加方式和批處理方式中應,它可以通過adt和train觸發(fā)。我們有好幾種算法只能用于批處理方特別是Levenerg-arqurdt算法,所以這些算法只能用train觸。網(wǎng)絡相的法建立:net=newlin([-11;-11],1,0,0.1;=[00];=0;在這種情況下輸入向量即能用同步向量矩陣表示也能用異步向量細胞數(shù)組表示。用train函數(shù),任何異步向細數(shù)組會轉(zhuǎn)成同向量陣。是因網(wǎng)絡是靜的,并且因為train總在處理式使。為MATLB實同步模式效率更高,所以只可能是采用步模處理。P=[1223;2131;T=[4577];現(xiàn)在我開始訓網(wǎng)絡由于我只用一次adp,我們這里訓練它一次。缺省的線性網(wǎng)絡訓練函數(shù)是trainb。leanwh是缺省的權(quán)重和偏置學習函數(shù)。因此,我們應該和前面缺省調(diào)整函數(shù)是adatb的例子得到同樣的結(jié)果。=0.1;=0.1;net.trainParam.epochs=1;net=train(net,P,T;經(jīng)過一次訓練后,我們顯示權(quán)重發(fā):ans=4.90004.1000ans=2.3000這和用apt訓的一。網(wǎng)中,adpt函數(shù)能夠根據(jù)輸入數(shù)據(jù)格式的不同應用于增加方式和批處理方式。如果數(shù)據(jù)用同步向量矩陣方式輸入就用批處理方式訓;如果數(shù)據(jù)用異步方式輸入就用增加方式。但這對于train函數(shù)行通,無論輸入式何,它總是采批理式。動態(tài)絡的加方式訓練態(tài)絡對要單些如我們用tran練網(wǎng)絡,即使入是步向量細數(shù)組,它也是轉(zhuǎn)成步量矩而用處方式如我用aat。輸入決絡方果的列,網(wǎng)用方式,如傳同步就處式。在網(wǎng)中,批處方用train成,特別是僅一訓練列在時。了明楚,讓我們重考那帶遲的性絡我把學速設為0.2(當們采梯下算時,我們要比增方更的習速率,應為有的分立梯都在決權(quán)改步之前和net=ewi(-11,,01]00;];ne.isCnet0;ne.rinaa.pohs=;Pi=P=3T=5我們用以前增加方式訓練過的那組數(shù)據(jù)訓練,但是這一次我們希望只有在所有數(shù)據(jù)都提交后才更新權(quán)重(批處理方式。因為輸入是一個序列,網(wǎng)絡將用異步模式模擬。但是權(quán)重將用批處理方式更新。net=train(net,P,T,Pi;經(jīng)過一次訓練后,權(quán)重值為:ans=0.90000.6200這里的權(quán)重值和我們用增加方式得到的不同。在增加方式,通過訓練設,一次訓練可以更新權(quán)重三次。在批處理方式,每次訓練只能更新一次。第三章反向傳播網(wǎng)(BP網(wǎng)絡1.概述前面介紹了神經(jīng)網(wǎng)絡的結(jié)構(gòu)和模,在實際應用,我們用的最廣泛的是反向傳播網(wǎng)P網(wǎng)絡。下面就介紹一下P。P用f一的BP網(wǎng)的度法,也是Wd-ff算法所規(guī)定的。backpropagation就是指的為非線性多層網(wǎng)絡計算梯度的方法?,F(xiàn)在有許多基本的優(yōu)化算,例如變尺度算法和牛頓算法。神經(jīng)網(wǎng)絡工具箱提供了許多這樣的算法。這一章我們將討論使用這些規(guī)則和這些算法的優(yōu)缺點。一個經(jīng)過訓練的P果,被得P入/練,把入/性,了性-這。2.基礎網(wǎng)絡結(jié)構(gòu)神經(jīng)網(wǎng)絡的結(jié)構(gòu)前一章已詳細討論過,前饋型BP網(wǎng)絡的結(jié)構(gòu)結(jié)構(gòu)和它基本相,這里就不再詳細論述,這里著重說明以下幾:1.常用的前饋型P有l(wèi)ogigtnsg,有時也會用到線性函數(shù)purein。當網(wǎng)的最后一采用曲函數(shù)時,輸出被限制一個很小范圍內(nèi),如果采用線性數(shù)則輸出為任意。以上三函數(shù)是P數(shù),是。.在P中,的g、g和purelin都有對應的導函數(shù)dtansi、dlogsig和dpureln。為了得到更多轉(zhuǎn)移函數(shù)的導函數(shù),你可以帶字符"deriv的轉(zhuǎn)移函數(shù):tansig('deriv'ans=dtansig網(wǎng)絡構(gòu)建和初始化訓練前饋網(wǎng)絡的第一步是建立網(wǎng)絡對象。函數(shù)nwf建立一個可訓練的前饋網(wǎng)絡。這需要4個的矩陣以定義R個輸入向量的最小值和最大值。第二個參數(shù)是一個顢頇每層神經(jīng)元個數(shù)的數(shù)組。第三個參數(shù)是包含每層用到的轉(zhuǎn)移函數(shù)名稱的細胞數(shù)組。最后一個參數(shù)是用到的訓練函數(shù)的名稱。舉個例,下面命令將創(chuàng)建一個二層網(wǎng),其網(wǎng)絡模型如下圖所示。它的輸入是兩個元素的向量,第一層有三個神經(jīng)元,第二層有一個神經(jīng)元。第一層的轉(zhuǎn)移函數(shù)是tan-sigmoid,輸出層的轉(zhuǎn)移函數(shù)是lina。輸入向量的第一個元素的范圍是1到2,輸是0到5,訓是tid。nn(1;0[,a'untn;這建對初絡偏置,因網(wǎng)以行訓我多初或自始面始化步。在饋前,權(quán)重置始化偏用命令init來實現(xiàn)。這個函數(shù)接收網(wǎng)絡對象并初始化權(quán)重和偏置后返回網(wǎng)絡對象。下面就是網(wǎng)絡如何初始化:net=init(net;我們可以通過設定網(wǎng)絡參數(shù)Fcn和net.aye{Fcn這一技巧來初始化一個給定的網(wǎng)絡Fn用來定整網(wǎng)絡的始化數(shù)。前網(wǎng)絡的省值為inita,它允許一用單的始函。定了net.iniFcn,那么參數(shù)netlaer{}.niFcn也要設用來定每一的初化函。對前饋絡來說,有兩種不同的始化式經(jīng)被用到:initwb和initw。initwb函數(shù)根據(jù)每一層自己的初始化參(ne.inptWeghtsi,j.iniFcn初始化權(quán)重矩陣和偏置。前饋網(wǎng)絡的初始化權(quán)重通常設為rad,它使權(quán)在-1到1這。ininw常用轉(zhuǎn)換數(shù)曲線數(shù)。它根據(jù)Nguen和WidwNW0]為層產(chǎn)生始權(quán)和偏值,使得每層經(jīng)元活動區(qū)域大致坦的布在入空。它起單的給權(quán)和偏隨機值有下優(yōu)點:(1減神經(jīng)的浪費(因所有經(jīng)元活動域都輸入間內(nèi)。(2快度(。被nef所調(diào)用。因此當網(wǎng)絡創(chuàng)建時,它根據(jù)缺省的參數(shù)自動初始化。init不需要單獨的調(diào)用。可是我們可能要重新初始化權(quán)重和偏置或者進行自定義的初始化。例,我們用nef的絡,它缺用initnw來初始化第一層。如果我們想要用rans重新初始化第一層的權(quán)重和偏置,我們用以下命令:net.layers{1}.initFcn='initwb';net.inputWeights{1,1}.initFcn='rands';net.biases{1,1}.initFcn='rands';net.biases{2,1}.initFcn='rands';net=init(net;網(wǎng)絡模(SIM函數(shù)sim模擬一個網(wǎng)絡sim接收網(wǎng)絡輸入p,網(wǎng)絡對象ne,返回絡出,這是sf。p=;a=pa=-0.1011用這段代碼得到的輸出是不一樣,這是因為網(wǎng)絡初始化是隨機的。下面調(diào)用sim來計算一個同步輸入3向量網(wǎng)絡的輸出:p=[132;241];a=sim(net,pa=-0.1011-0.23080.4955網(wǎng)絡訓練一旦網(wǎng)絡加權(quán)和偏差被初始,網(wǎng)絡就可以開始訓練了。我們能夠訓練網(wǎng)絡來做函數(shù)近似非線性后退,模式結(jié)合,或者模式分類。訓練處理需要一套適當?shù)木W(wǎng)絡操作的例子入p出t。絡數(shù)nn差mse-網(wǎng)絡出和標輸出t之間的均方誤差。這章的余項將描述幾個對前饋網(wǎng)絡來說不同的訓練算法。所有這些算法都用性能函數(shù)的梯度來決定怎樣把權(quán)重調(diào)整到最佳。梯度由叫做反向傳播的技術決,它要通過網(wǎng)絡實現(xiàn)反向計算。反向傳播計算源自使用微積分的鏈規(guī)則?;镜姆聪騻鞑ニ惴ǖ臋?quán)重沿著梯度的負方向移,這將在下一節(jié)講述。以后的章節(jié)將講述更復雜的算法以提高收斂速度。反向傳播算法反向傳播算法中有許多變,這一章將討論其中的一些。反向傳播學習算法最簡單的應用是沿著性能函數(shù)最速增加的方-梯種成:xk+1=xk-akgk這里xk是前重和置量,gk是當前梯度,ak是學習速率。有兩種不同的辦法實現(xiàn)梯度下降算:增加模式和批處理模式。在增加模式,網(wǎng)絡輸入每提交一次,梯度計算一次并更新權(quán)重。在批處理模式中,當所有的輸入都被提交后網(wǎng)絡才被更新。下面兩節(jié)將討論增加模式和批處理模式。增加模式訓練法(ADAPT函數(shù)apt用來訓練增加模式的網(wǎng)絡,它從訓練設置中接受網(wǎng)絡對象、網(wǎng)絡輸入和目標輸,返回訓練過的網(wǎng)絡對象、用最后的權(quán)重和偏置得到的輸出和誤差。這里有幾個網(wǎng)絡參數(shù)必須被設,第一個是net.aaptcn,它決定使用哪一種增加模式函,缺省值為adaptwb這個值允許每一個權(quán)重和偏置都指定它自己的函,這些單個的學習函數(shù)由參數(shù)net.biases{i,j}.learnFc、net.inputWeights{i,j}.learnFc、netlaereiht{ij}leanFn和GradentDecetLERDD來決定。對于基本的梯度最速下降算,權(quán)重和偏置沿著性能函數(shù)的梯度的負方向移動。在這種算法,單個的權(quán)重和偏置的學習函數(shù)設定"learngd"。下面的命令演示了怎樣設置前面建立的前饋函數(shù)參:net.biases{1,1}.learnFcn='learngd';net.biases{2,1}.learnFcn='learngd';net.layerWeights{2,1}.learnFcn='learngd';net.inputWeights{1,1}.learnFcn='learngd';函數(shù)land有一個相關的參數(shù)-率lr。權(quán)重和偏置的變化通過梯度的負數(shù)乘上學習速率倍數(shù)得到。學習速率越,步進越大。如果學習速率太大算法就會變得不穩(wěn)定。如果學習速率太,算法就需要很長的時間才能收斂。當learFcn設置為leagd時,就一權(quán)和設了速參的值,如上的碼所示,當你以己照改它下代演把權(quán)的速率設為0.2。我們以權(quán)和單的置速。ntleWit{1.enaal=.;為序練的后個是ne.dtampss,它決定在訓練過程中訓練值重復的次數(shù)。這里設置重復次數(shù)為200net.adaptParam.passes=200;現(xiàn)在我們就可以開始訓練網(wǎng)絡了。當然我們要指定輸入值和目標值如下所示:p=[-1-122;0505];t=[-1-111];如果我們要在每一次提交輸入后都更新權(quán),那么我們需要將輸入矩陣和目標矩陣轉(zhuǎn)變?yōu)榧毎麛?shù)組。每一個細胞都是一個輸入或者目標向量。p=num2cell(p,1;t=num2cell(t,1;現(xiàn)在就可以用adpt來實現(xiàn)增加方式訓練了:[net,a,e]=adapt(net,p,t;訓練結(jié)束以,我們就可以模擬網(wǎng)絡輸出來檢驗訓練質(zhì)量了。a=sim(net,pa=[-0.9995][-1.0000][1.0001][1.0000]帶動力的梯度下降法(LEARDGDM除了land以外,還有一種增加方式算法常被用到,它能提供更快的收斂速-lergm,帶動量最下法動力許絡但根當梯而還能據(jù)誤差曲最的勢響。像個通濾器樣,動量允網(wǎng)忽誤曲面的小特。有量,網(wǎng)絡又可在個部小中卡。了量網(wǎng)就夠平滑這的小動量夠過權(quán)變得上權(quán)變化部和算規(guī)則到的新化和同而入網(wǎng)學中去上次重變對量影由一動量常數(shù)來決定,它能夠設為0到1之間的任意值。當動量常數(shù)為0時,權(quán)重變化之根據(jù)梯度得到。當動量常數(shù)為1時新的權(quán)重變化等于上次的權(quán)重變化,梯度值被忽略了。Lrm函數(shù)有上面所示的leagd函數(shù)觸發(fā),除非mc和lr學習參數(shù)都被設置了。由于每一個權(quán)重和偏置有它自己的學習參,每一個權(quán)重和偏置都可以用不同的參數(shù)。下面的命令將用lerangdm為前面建立的用增加方式訓練的網(wǎng)絡設置缺省的學習參:net.biases{1,1}.learnFcn='learngdm';net.biases{2,1}.learnFcn='learngdm';net.layerWeights{2,1}.learnFcn='learngdm';net.inputWeights{1,1}.learnFcn='learngdm';[net,a,e]=adapt(net,p,t;批處理訓練方式訓練的另一種方式是批處理方,它由函數(shù)tran發(fā)。批理式中,當整個訓練置應到網(wǎng)后重偏才被新在一個練子的算的度加在起決權(quán)重偏的化。批處梯下法(TRAND與增方的習函數(shù)leagd等價的函數(shù)是trid,它是批處理形式中標準的最速下降學習函數(shù)。權(quán)重和偏置沿著性能函數(shù)的梯度的負方向更新。如果你希望用批處理最速下降法訓練函,你要設置網(wǎng)絡的trnn為traingd,并調(diào)用tran函。不像前節(jié)學習數(shù),它們要單設權(quán)矩和偏向量,這一給定網(wǎng)絡只有個習數(shù)。Trigd有幾個訓練參數(shù):epochs,show,goal,time,min_grad,max_fail和lr。這里的學習速率和lergd的意義是一樣的。訓練狀態(tài)將每隔show次顯示一次。其他參數(shù)決定訓練什么時候結(jié)束。如果訓練次數(shù)超過epcs,性能函數(shù)低于g,低于mid或者訓練時間超過time,訓練就會結(jié)束。下面的代碼將重建我們以前的網(wǎng),然后用批處理最速下降法訓練網(wǎng)絡注意用批處理方式訓練的話所有的輸入要設置為矩陣方式net=newff([-12;05],[3,1],{'tansig','purelin'},'traingd';net.trainParam.show=50;net.trainParam.lr=0.05;net.trainParam.epochs=300;net.trainParam.goal=1e-5;p=[-1-122;0505];t=[-1-111];net=train(net,p,t;TRAINGD,Epoch0/300,MSE1.59423/1e-05,Gradient2.76799/1e-10TRAINGD,Epoch50/300,MSE0.00236382/1e-05,Grad
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024高考地理一輪復習第九章第2講工業(yè)地域的形成與工業(yè)區(qū)教案含解析新人教版
- 2024高考化學二輪復習專題突破練4B元素及其化合物含解析
- 二零二五年度股東分紅紅利分配與投資計劃合同3篇
- 第二章復合材料增強體2017上課講義
- 小學食品安全管理制度
- 分階段分層次全過程質(zhì)量管控機制
- 單病種填報要求(更新至20240911)
- 2024年河北軟件職業(yè)技術學院高職單招語文歷年參考題庫含答案解析
- 2024年閘北區(qū)市北醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 二零二五年度離婚協(xié)議中個人隱私保護協(xié)議
- 藍軍戰(zhàn)略課件
- 《請柬及邀請函》課件
- 遼寧省普通高中2024-2025學年高一上學期12月聯(lián)合考試語文試題(含答案)
- 《個體防護裝備安全管理規(guī)范AQ 6111-2023》知識培訓
- 科學計算語言Julia及MWORKS實踐 課件8 - 基本數(shù)據(jù)類型
- 湖北省黃岡市2023-2024學年高一上學期期末考試化學試題(含答案)
- 物流公司安全生產(chǎn)監(jiān)督檢查管理制度
- DB22T 277-2011 建筑電氣防火檢驗規(guī)程
- DB52T 1696-2022 口腔綜合治療臺用水衛(wèi)生管理規(guī)范
- 2025屆上海市復旦附中浦東分校物理高二上期末教學質(zhì)量檢測試題含解析
- 快樂讀書吧:童年(專項訓練)-2023-2024學年六年級語文上冊(統(tǒng)編版)(含答案)
評論
0/150
提交評論