版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、bp神經(jīng)網(wǎng)絡(luò)及mat l ab實現(xiàn)bp神經(jīng)網(wǎng)絡(luò)及matlab實現(xiàn)分類:算法學(xué)習(xí)2012-06-20 20:56 66399 人閱讀 評論(28)收藏 舉報 網(wǎng)絡(luò) matlab 算法 functionnetworkinput本文主要內(nèi)容包括:(1)介紹神經(jīng)網(wǎng)絡(luò)基本原理,(2) AForge.NET實現(xiàn)前向神經(jīng)網(wǎng)絡(luò)的方法,(3) Matlab實現(xiàn)前向神經(jīng)網(wǎng)絡(luò)的方法。第0節(jié)、引例本文以Fisher的Iris數(shù)據(jù)集作為神經(jīng)網(wǎng)絡(luò)程序的測試數(shù)據(jù)集。ms數(shù)據(jù)集可以在 /wiki/Iris_flower_data_set 找到。這里簡要介紹一 下Iris數(shù)據(jù)集:有一
2、批Iris花,已知這批Iris花可分為3個品種,現(xiàn)需要對其進(jìn)行分類。不同 品種的Iris花的花萼長度、花萼寬度、花瓣長度、花瓣寬度會有差異。我們現(xiàn) 有一批已知品種的Iris花的花萼長度、花萼寬度、花瓣長度、花瓣寬度的數(shù) 據(jù)。一種解決方法是用已有的數(shù)據(jù)訓(xùn)練一個神經(jīng)網(wǎng)絡(luò)用作分類器。如果你只想用C#或Matlab快速實現(xiàn)神經(jīng)網(wǎng)絡(luò)來解決你手頭上的問題,或 者已經(jīng)了解神經(jīng)網(wǎng)絡(luò)基本原理,請直接跳到第二節(jié)一一神經(jīng)網(wǎng)絡(luò)實現(xiàn)。第一節(jié)、神經(jīng)網(wǎng)絡(luò)基本原理1.人工神經(jīng)元(Artificial Neuron ) 模型人工神經(jīng)元是神經(jīng)網(wǎng)絡(luò)的基本元素,其原理可以用下圖表示:圖1.人工神經(jīng)元模型圖中x1xn是從其他神經(jīng)元傳來
3、的輸入信號,wij表示表示從神經(jīng)元j到神 經(jīng)元i的連接權(quán)值,8表示一個閾值(threshold ),或稱為偏置(bias)。則神經(jīng) 元i的輸出與輸入的關(guān)系表示為:產(chǎn)工居=ffnetj圖中yi表示神經(jīng)元i的輸出,函數(shù)f稱為激活函數(shù)(Activation Function ) 或轉(zhuǎn)移函數(shù)(Transfer Function ) , net稱為凈激活(net activation)。若將閾值 看成是神經(jīng)元i的一個輸入x0的權(quán)重wi0,則上面的式子可以簡化為:n口明=W叫產(chǎn)i若用X表示輸入向量,用 W表示權(quán)重向量,即:X = x0 , x1 , x2 ,xn w =嗎之-%則神經(jīng)元的輸出可以表示為向量
4、相乘的形式:net. = XW|y; = f(net£) = f(XW若神經(jīng)元的凈激活net為正,稱該神經(jīng)元處于激活狀態(tài)或興奮狀態(tài)(fire),若凈激活net為負(fù),則稱神經(jīng)元處于抑制狀態(tài)。圖1中的這種 閾值加權(quán)和”的神經(jīng)元,K型稱為 M-P模型(McCulloch-Pitts Model ),也稱為神經(jīng)網(wǎng)絡(luò)的一個 處理單元(PE, Processing Element )。2.常用激活函數(shù)激活函數(shù)的選擇是構(gòu)建神經(jīng)網(wǎng)絡(luò)過程中的重要環(huán)節(jié),下面簡要介紹常用的 激活函數(shù)。(1)線性函數(shù)(Liner Function )= k * 工 + u(2)斜面函數(shù)(Ramp Function )
5、9; T t x> cf(x) = k 等冤, |jt| < c1 T j x V c(3)閾值函數(shù)(Threshold Function )以上3個激活函數(shù)都屬于線性函數(shù),下面介紹兩個常用的非線性激活函 數(shù)。 S 形函數(shù)(Sigmoid Function )f(X)=:(° < 酬)< 1)HI E該函數(shù)的導(dǎo)函數(shù):f,保)= a fQ)【i 一 六,)(5)雙極S形函數(shù)2FG) = 1 : s - 1 ( -1 < f(x) < 1 該函數(shù)的導(dǎo)函數(shù):口 1 一汽幻4許可=2S形函數(shù)與雙極S形函數(shù)的圖像如下:圖3. S形函數(shù)與雙極S形函數(shù)圖像雙極S
6、形函數(shù)與S形函數(shù)主要區(qū)別在于函數(shù)的值域,雙極S形函數(shù)值域是(-1,1),而S形函數(shù)值域是(0,1)。由于S形函數(shù)與雙極S形函數(shù)都是可導(dǎo)的(導(dǎo)函數(shù)是連續(xù)函數(shù)),因此適合 用在BP神經(jīng)網(wǎng)絡(luò)中。(BP算法要求激活函數(shù)可導(dǎo))3.神經(jīng)網(wǎng)絡(luò)模型神經(jīng)網(wǎng)絡(luò)是由大量的神經(jīng)元互聯(lián)而構(gòu)成的網(wǎng)絡(luò)。根據(jù)網(wǎng)絡(luò)中神經(jīng)元的互聯(lián) 方式,常見網(wǎng)絡(luò)結(jié)構(gòu)主要可以分為下面3類:(1)前饋神經(jīng)網(wǎng)絡(luò) (Feedforward Neural Networks )前饋網(wǎng)絡(luò)也稱前向網(wǎng)絡(luò)。這種網(wǎng)絡(luò)只在訓(xùn)練過程會有反饋信號,而在分類 過程中數(shù)據(jù)只能向前傳送,直到到達(dá)輸出層,層間沒有向后的反饋信號,因此 被稱為前饋網(wǎng)絡(luò)。感知機(perceptron)
7、與BP神經(jīng)網(wǎng)絡(luò)就屬于前饋網(wǎng)絡(luò)。圖4中是一個3層的前饋神經(jīng)網(wǎng)絡(luò),其中第一層是輸入單元,第二層稱為 隱含層,第三層稱為輸出層(輸入單元不是神經(jīng)元,因此圖中有 2層神經(jīng) 元)。Input圖4.前饋神經(jīng)網(wǎng)絡(luò)對于一個3層的前饋神經(jīng)網(wǎng)絡(luò)N,若用X表示網(wǎng)絡(luò)的輸入向量,W1W3 表示網(wǎng)絡(luò)各層的連接權(quán)向量,F(xiàn)1F3表示神經(jīng)網(wǎng)絡(luò)3層的激活函數(shù)。那么神經(jīng)網(wǎng)絡(luò)的第一層神經(jīng)元的輸出為:O1 = F1( XW1 )第二層的輸出為:O2 = F2 ( F1( XW1 ) W2 )輸出層的輸出為:O3 = F3( F2 ( F1( XW1 ) W2 ) W3 )若激活函數(shù)F1F3都選用線性函數(shù),那么神經(jīng)網(wǎng)絡(luò)的輸出 O3將是輸
8、入X 的線性函數(shù)。因此,若要做高次函數(shù)的逼近就應(yīng)該選用適當(dāng)?shù)姆蔷€性函數(shù)作為 激活函數(shù)。(2)反饋神經(jīng)網(wǎng)絡(luò)(Feedback Neural Networks )反饋型神經(jīng)網(wǎng)絡(luò)是一種從輸出到輸入具有反饋連接的神經(jīng)網(wǎng)絡(luò),具結(jié)構(gòu)比前饋網(wǎng)絡(luò)要復(fù)雜得多。典型的反饋型神經(jīng)網(wǎng)絡(luò)有:Elman網(wǎng)絡(luò)和Hopfield網(wǎng)絡(luò)。Ihpmt圖5.反饋神經(jīng)網(wǎng)絡(luò)(3)自組織網(wǎng)絡(luò)(SOM ,Self-Organizing Neural Networks )自組織神經(jīng)網(wǎng)絡(luò)是一種無導(dǎo)師學(xué)習(xí)網(wǎng)絡(luò)。它通過自動尋找樣本中的內(nèi)在規(guī) 律和本質(zhì)屬性,自組織、自適應(yīng)地改變網(wǎng)絡(luò)參數(shù)與結(jié)構(gòu)。圖6,自組織網(wǎng)絡(luò)4.神經(jīng)網(wǎng)絡(luò)工作方式神經(jīng)網(wǎng)絡(luò)運作過程分為學(xué)
9、習(xí)和工作兩種狀態(tài)。(1)神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)狀態(tài)網(wǎng)絡(luò)的學(xué)習(xí)主要是指使用學(xué)習(xí)算法來調(diào)整神經(jīng)元間的聯(lián)接權(quán),使得網(wǎng)絡(luò)輸出更符合實際。學(xué)習(xí)算法分為 有導(dǎo)師學(xué)習(xí)(Supervised Learning ) 與無導(dǎo)師學(xué) 習(xí)(Unsupervised Learning ) 兩類。有導(dǎo)師學(xué)習(xí)算法將一組訓(xùn)練集(training set )送入網(wǎng)絡(luò),根據(jù)網(wǎng)絡(luò)的實際輸 出與期望輸出間的差別來調(diào)整連接權(quán)。有導(dǎo)師學(xué)習(xí)算法的主要步驟包括: 1)從樣本集合中取一個樣本(Ai, Bi);2)計算網(wǎng)絡(luò)的實際輸出O;3)求 D=Bi-O ;4)根據(jù)D調(diào)整權(quán)矩陣W;5)對每個樣本重復(fù)上述過程,直到對整個樣本集來說,誤差不超過規(guī)定范 圍。
10、BP算法就是一種出色的有導(dǎo)師學(xué)習(xí)算法。無導(dǎo)師學(xué)習(xí)抽取樣本集合中蘊含的統(tǒng)計特性,并以神經(jīng)元之間的聯(lián)接權(quán)的 形式存于網(wǎng)絡(luò)中。Hebb學(xué)習(xí)律是一種經(jīng)典的無導(dǎo)師學(xué)習(xí)算法。(2)神經(jīng)網(wǎng)絡(luò)的工作狀態(tài)神經(jīng)元間的連接權(quán)不變,神經(jīng)網(wǎng)絡(luò)作為分類器、預(yù)測器等使用 下面簡要介紹一下 Hebb學(xué)習(xí)率與Delta學(xué)習(xí)規(guī)則。 無導(dǎo)師學(xué)習(xí)算法:Hebb學(xué)習(xí)率Hebb算法核心思想是,當(dāng)兩個神經(jīng)元同時處于激發(fā)狀態(tài)時兩者間的連接 權(quán)會被加強,否則被減弱。為了理解Hebb算法,有必要簡單介紹一下條件反射實驗。巴甫洛夫的條 件反射實驗:每次給狗喂食前都先響鈴,時間一長,狗就會將鈴聲和食物聯(lián)系 起來。以后如果響鈴但是不給食物,狗也會流口
11、水。How Dog Training Works1. Before Cond itioningFoodUnconditionedStlmiua2. fi-efo re C&nd i tisi ng-酷ResponseNo SdiivdtionSMiwatiDnNeutral StimulusBell+fl J4.After JndhiMirgJ.During ConditioningK監(jiān)pn帛公所阿寓nF Stlmuiu*Une。向 tSmd ResponseRes-pQm-eSafiAhonCorid Itioned Rspvh* 。攙匐 heMjewc弱 Mion Uncondit
12、iAnodRepOrtM Food圖7.巴甫洛夫的條件反射實驗受該實驗的啟發(fā),Hebb的理論認(rèn)為在同一時間被激發(fā)的神經(jīng)元間的聯(lián)系 會被強化。比如,鈴聲響時一個神經(jīng)元被激發(fā),在同一時間食物的出現(xiàn)會激發(fā) 附近的另一個神經(jīng)元,那么這兩個神經(jīng)元間的聯(lián)系就會強化,從而記住這兩個 事物之間存在著聯(lián)系。相反,如果兩個神經(jīng)元總是不能同步激發(fā),那么它們問 的聯(lián)系將會越來越弱。Hebb學(xué)習(xí)律可表示為:嗎式t+ 1) = w£t)+仃制K©其中wij表示神經(jīng)元j到神經(jīng)元i的連接權(quán),yi與yj為兩個神經(jīng)元的輸出, a是表示學(xué)習(xí)速度的常數(shù)。若yi與yj同時被激活,即yi與yj同時為正,那么 Wij將
13、增大。若yi被激活,而yj處于抑制狀態(tài),即yi為正yj為負(fù),那么 Wij將 變小。 有導(dǎo)師學(xué)習(xí)算法:Delta學(xué)習(xí)規(guī)則Delta學(xué)習(xí)規(guī)則是一種簡單的有導(dǎo)師學(xué)習(xí)算法,該算法根據(jù)神經(jīng)元的實際輸 出與期望輸出差別來調(diào)整連接權(quán),其數(shù)學(xué)表示如下:w0(t + 1) =+a( 4 - H)Z(t)其中Wij表示神經(jīng)元j到神經(jīng)元i的連接權(quán),di是神經(jīng)元i的期望輸出,yi 是神經(jīng)元i的實際輸出,xj表示神經(jīng)元j狀態(tài),若神經(jīng)元j處于激活態(tài)則xj為 1,若處于抑制狀態(tài)則xj為0或-1 (根據(jù)激活函數(shù)而定)。a是表示學(xué)習(xí)速度 的常數(shù)。假設(shè)xi為1,若di比yi大,那么Wij將增大,若di比yi小,那么Wij 將變小
14、。Delta規(guī)則簡單講來就是:若神經(jīng)元實際輸出比期望輸出大,則減小所有輸 入為正的連接的權(quán)重,增大所有輸入為負(fù)的連接的權(quán)重。反之,若神經(jīng)元實際 輸出比期望輸出小,則增大所有輸入為正的連接的權(quán)重,減小所有輸入為負(fù)的 連接的權(quán)重。這個增大或減小的幅度就根據(jù)上面的式子來計算。(5)有導(dǎo)師學(xué)習(xí)算法:BP算法采用BP學(xué)習(xí)算法的前饋型神經(jīng)網(wǎng)絡(luò)通常被稱為 BP網(wǎng)絡(luò)Input圖8.三層BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)BP網(wǎng)絡(luò)具有很強的非線性映射能力,一個 3層BP神經(jīng)網(wǎng)絡(luò)能夠?qū)崿F(xiàn)對任 意非線性函數(shù)進(jìn)行逼近(根據(jù) Kolrnogorov定理)。一個典型的3層BP神經(jīng) 網(wǎng)絡(luò)模型如圖7所示。BP網(wǎng)絡(luò)的學(xué)習(xí)算法占篇幅較大,我打算在下
15、一篇文章中介紹。第二節(jié)、神經(jīng)網(wǎng)絡(luò)實現(xiàn)1 .數(shù)據(jù)預(yù)處理在訓(xùn)練神經(jīng)網(wǎng)絡(luò)前一般需要對數(shù)據(jù)進(jìn)行預(yù)處理,一種重要的預(yù)處理手段是 歸一化處理。下面簡要介紹歸一化處理的原理與方法。(1)什么是歸一化?數(shù)據(jù)歸一化,就是將數(shù)據(jù)映射到0,1或卜1,1區(qū)間或更小的區(qū)間,比如(0.1,0.9)。(2)為什么要歸一化處理?< 1>輸入數(shù)據(jù)的單位不一樣,有些數(shù)據(jù)的范圍可能特別大,導(dǎo)致的結(jié)果是神經(jīng) 網(wǎng)絡(luò)收斂慢、訓(xùn)練時間長。< 2>數(shù)據(jù)范圍大的輸入在模式分類中的作用可能會偏大,而數(shù)據(jù)范圍小的輸入 作用就可能會偏小。< 3>由于神經(jīng)網(wǎng)絡(luò)輸出層的激活函數(shù)的值域是有限制的,因此需要將網(wǎng)絡(luò)訓(xùn)練 的
16、目標(biāo)數(shù)據(jù)映射到激活函數(shù)的值域。例如神經(jīng)網(wǎng)絡(luò)的輸出層若采用S形激活函數(shù),由于S形函數(shù)的值域限制在(0,1),也就是說神經(jīng)網(wǎng)絡(luò)的輸出只能限制在 (0,1),所以訓(xùn)練數(shù)據(jù)的輸出就要歸一化到0,1區(qū)間。<4>S形激活函數(shù)在(0,1)區(qū)間以外區(qū)域很平緩,區(qū)分度太小。例如 S形函數(shù)f(X) 在參數(shù)a=1時,f(100)與f(5)只相差0.0067。(3)歸一化算法一種簡單而快速的歸一化算法是線性轉(zhuǎn)換算法。線性轉(zhuǎn)換算法常見有兩種 形式:<1>y = ( x - min )/( max - min )其中min為x的最小值,max為x的最大值,輸入向量為x,歸一化后的 輸出向量為y。上
17、式將數(shù)據(jù)歸一化到0,1 區(qū)間,當(dāng)激活函數(shù)采用S形函數(shù)時 (值域為(0,1)時這條式子適用。<2>y = 2 * ( x - min ) / ( max - min ) - 1這條公式將數(shù)據(jù)歸一化到-1 , 1 區(qū)間。當(dāng)激活函數(shù)采用雙極 S形函數(shù) (值域為(-1,1)時這條式子適用。Matlab數(shù)據(jù)歸一化處理函數(shù)Matlab 中歸一化處理數(shù)據(jù)可以采用 premnmx , postmnmx , tramnmx 這 3個函數(shù)。<1> premnmx語法:pn,minp,maxp,tn,mint,maxt = premnmx(p,t)參數(shù):pn: p矩陣按行歸一化后的矩陣min
18、p , maxp : p矩陣每一行的最小值,最大值tn: t矩陣按行歸一化后的矩陣mint, maxt: t矩陣每一行的最小值,最大值作用:將矩陣p, t歸一化到-1,1,主要用于歸一化處理訓(xùn)練數(shù)據(jù)集。<2> tramnmx語法:pn = tramnmx(p,minp,maxp)參數(shù):minp , maxp: premnmx 函數(shù)計算的矩陣的最小,最大值pn :歸一化后的矩陣作用:主要用于歸一化處理待分類的輸入數(shù)據(jù)。<3> postmnmx語法:p,t = postmnmx(pn,minp,maxp,tn,mint,maxt)參數(shù):minp , maxp: premnm
19、x 函數(shù)計算的 p矩陣每行的最小值,最大值 mint, maxt: premnmx函數(shù)計算的t矩陣每行的最小值,最大值 作用:將矩陣pn , tn映射回歸一化處理前的范圍。postmnmx函數(shù)主要用于將 神經(jīng)網(wǎng)絡(luò)的輸出結(jié)果映射回歸一化前的數(shù)據(jù)范圍。2.使用Matlab實現(xiàn)神經(jīng)網(wǎng)絡(luò)使用Matlab建立前饋神經(jīng)網(wǎng)絡(luò)主要會使用到下面3個函數(shù):newff :前饋網(wǎng)絡(luò)創(chuàng)建函數(shù)train :訓(xùn)練一個神經(jīng)網(wǎng)絡(luò) sim :使用網(wǎng)絡(luò)進(jìn)行仿真下面簡要介紹這3個函數(shù)的用法。(1) newff 函數(shù)<1>newff函數(shù)語法newff函數(shù)參數(shù)列表有很多的可選參數(shù),具體可以參考 Matlab的幫助文 檔,這里
20、介紹newff函數(shù)的一種簡單的形式。語法:net = newff ( A, B, C ,'trainFun ')參數(shù):A: 一個n&的矩陣,第i行元素為輸入信號xi的最小值和最大值;B: 一個k維行向量,其元素為網(wǎng)絡(luò)中各層節(jié)點數(shù);C: 一個k維字符串行向量,每一分量為對應(yīng)層神經(jīng)元的激活函數(shù);trainFun :為學(xué)習(xí)規(guī)則采用的訓(xùn)練算法。<2>常用的激活函數(shù)常用的激活函數(shù)有:a)線性函數(shù) (Linear transfer function) f(x) = x該函數(shù)的字符串為purelin 'b)對數(shù) S 形轉(zhuǎn)移函數(shù)(Logarithmic sigmoi
21、d transfer function )fG) =*二 c 0 << I)J- T 毛該函數(shù)的字符串為logsig 'c)雙曲正切 S 形函數(shù) (Hyperbolic tangent sigmoid transfer function )f(X)= 1 j f -1(-1 < fOO V 1 )也就是上面所提到的雙極 S形函數(shù)。該函數(shù)的字符串為tansig 'Matlab的安裝目錄下的toolboxnnetnnetnntransfer 子目錄中有所有激活 函數(shù)的定義說明。<3>常見的訓(xùn)練函數(shù)常見的訓(xùn)練函數(shù)有:traingd : 梯度下降 BP 訓(xùn)
22、練函數(shù)(Gradient descent backpropagation)traingdx :梯度下降自適應(yīng)學(xué)習(xí)率訓(xùn)練函數(shù)<4>網(wǎng)絡(luò)配置參數(shù)一些重要的網(wǎng)絡(luò)配置參數(shù)如下:net.trainparam.goal :神經(jīng)網(wǎng)絡(luò)訓(xùn)練的目標(biāo)誤差net.trainparam.show : 顯示中間結(jié)果的周期net.trainparam.epochs :最大迭代次數(shù)net.trainParam.lr :學(xué)習(xí)率train函數(shù)網(wǎng)絡(luò)訓(xùn)練學(xué)習(xí)函數(shù)。語法:net, tr, Y1, E = train( net, X, Y )參數(shù):X:網(wǎng)絡(luò)實際輸入Y:網(wǎng)絡(luò)應(yīng)有輸出tr:訓(xùn)練跟蹤信息Y1 :網(wǎng)絡(luò)實際輸出E:誤差
23、矩陣sim函數(shù)語法:Y=sim(net,X)參數(shù):net:網(wǎng)絡(luò)X:輸入給網(wǎng)絡(luò)的K XN矩陣,其中K為網(wǎng)絡(luò)輸入個數(shù),N為數(shù)據(jù)樣本數(shù)Y:輸出矩陣QXN,其中Q為網(wǎng)絡(luò)輸出個數(shù)Matlab BP 網(wǎng)絡(luò)實例我將Iris數(shù)據(jù)集分為2組,每組各75個樣本,每組中每種花各有25個樣 本。其中一組作為以上程序的訓(xùn)練樣本,另外一組作為檢驗樣本。為了方便訓(xùn) 練,將3類花分別編號為1,2,3 o使用這些數(shù)據(jù)訓(xùn)練一個4輸入(分別對應(yīng)4個特征),3輸出(分別對應(yīng) 該樣本屬于某一品種的可能性大小)的前向網(wǎng)絡(luò)。Matlab程序如下:0%實取訓(xùn)練數(shù)據(jù)f1,f2,f3,f4,class = textread('train
24、Data.txt' , '%f%f%f%f%f ,150);%!征信歸一化input,minI,maxI = premnmx( f1 , f2 , f3 , f4 ');%勾造輸出矩陣s = length( class);output = zeros( s , 3 );for i = 1 : soutput( i , class( i ) ) = 1 ;end噓【J建神經(jīng)網(wǎng)絡(luò)net = newff( minmax(input) , 10 3 , 'logsig' 'purelin' ,'traingdx' );%設(shè)置訓(xùn)練參
25、數(shù)net.trainparam.show = 50 ;net.trainparam.epochs = 500 ;net.trainparam.goal = 0.01 ;net.trainParam.lr = 0.01 ;%開始訓(xùn)練net = train( net, input , output');%讀取測試數(shù)據(jù)t1 t2 t3 t4 c = textread( 'testData.txt' , '%f%f%f%f%f ,150);%M試數(shù)據(jù)歸一化testInput = tramnmx ( t1,t2,t3,t4' , minI, maxI );%&am
26、p;真Y = sim( net , testInput )%統(tǒng)計識別正確率s1 , s2 = size( Y );hitNum = 0 ;for i = 1 : s2m , Index = max( Y( : , i );if ( Index = c(i)hitNum = hitNum + 1 ;endendsprintf('識別率是 %3.3f%',100 * hitNum / s2 )以上程序的識別率穩(wěn)定在95%左右,訓(xùn)I練100次左右達(dá)到收斂,訓(xùn)練曲線 如下圖所示:fl10畝由E) JOJJW paranbs ue ?區(qū)Best Tra ring Performance
27、is NaN at epoch 500050100150200250300360400 好。 mSOO Epochs圖9.訓(xùn)練性能表現(xiàn)(5)參數(shù)設(shè)置對神經(jīng)網(wǎng)絡(luò)性能的影響我在實驗中通過調(diào)整隱含層節(jié)點數(shù),選擇不通過的激活函數(shù),設(shè)定不同的學(xué)習(xí)率,<1>隱含層節(jié)點個數(shù)隱含層節(jié)點的個數(shù)對于識別率的影響并不大,但是節(jié)點個數(shù)過多會增加運 算量,使得訓(xùn)練較慢。<2>激活函數(shù)的選擇激活函數(shù)無論對于識別率或收斂速度都有顯著的影響。在逼近高次曲線 時,S形函數(shù)精度比線性函數(shù)要高得多,但計算量也要大得多。<3>學(xué)習(xí)率的選擇學(xué)習(xí)率影響著網(wǎng)絡(luò)收斂的速度,以及網(wǎng)絡(luò)能否收斂。學(xué)習(xí)率設(shè)置偏小
28、可以 保證網(wǎng)絡(luò)收斂,但是收斂較慢。相反,學(xué)習(xí)率設(shè)置偏大則有可能使網(wǎng)絡(luò)訓(xùn)練不 收斂,影響識別效果。3,使用AForge.NET實現(xiàn)神經(jīng)網(wǎng)絡(luò)(1) AForge.NET 簡介AForge.NET是一個C#實現(xiàn)的面向人工智能、計算機視覺等領(lǐng)域的開源架 構(gòu)。AForge.NET源代碼下的Neuro目錄包含一個神經(jīng)網(wǎng)絡(luò)的類庫。AForge.NET 主頁:AForge.NET 代碼下載:http:/code.google.eom/p/aforge/Aforge.Neuro工程的類圖如下:DistLinceeurcnDistaaceNetvorkActivationNe:vork圖10. AForge.Ne
29、uro類庫類圖下面介紹圖9中的幾個基本的類:Neuron 神經(jīng)元的抽象基類Layer 一層的抽象基類,由多個神經(jīng)元組成Network 神經(jīng)網(wǎng)絡(luò)的抽象基類,由多個層(Layer)組成lActivationFunction - 激活函數(shù)(activation function ) 的接口 lUnsupervisedLearning - 無導(dǎo)師學(xué)習(xí) (unsupervised learning ) 算法的接口ISupervisedLearning - 有導(dǎo)師學(xué)習(xí) (supervised learning ) 算法的接口(2)使用Aforge建立BP神經(jīng)網(wǎng)絡(luò)使用AForge建立BP神經(jīng)網(wǎng)絡(luò)會用到下面的幾個類:< 1> SigmoidFunction : S 形神經(jīng)網(wǎng)絡(luò)構(gòu)造函數(shù): public SigmoidFunction( double alpha )參數(shù)alpha決定S形函數(shù)的陡峭程度。&
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度礦產(chǎn)購銷與市場信息共享合同范本3篇
- 2024版日用品購銷的合同書
- 2024版網(wǎng)絡(luò)安全防護服務(wù)與技術(shù)支持合同
- 環(huán)保建筑設(shè)計師的工作要求
- 二零二五年度畜牧企業(yè)家畜養(yǎng)殖基地養(yǎng)殖技術(shù)與購銷合同3篇
- 2024版青年志愿者服務(wù)協(xié)議
- 國家旅游合同范本(2篇)
- 2024版大學(xué)生創(chuàng)業(yè)園2號樓1層創(chuàng)業(yè)環(huán)境優(yōu)化與配套設(shè)施建設(shè)合同3篇
- 2024版水電安裝工程清包合同范本
- 重慶工業(yè)職業(yè)技術(shù)學(xué)院《概率論與數(shù)理統(tǒng)計二》2023-2024學(xué)年第一學(xué)期期末試卷
- 《飛機操縱面》課件
- 電力行業(yè)安全風(fēng)險管理措施
- 商業(yè)咨詢報告范文大全
- 小學(xué)一年級數(shù)學(xué)20以內(nèi)的口算題(可直接打印A4)
- 腫瘤放射治療體位固定技術(shù)
- 監(jiān)理報告范本
- 店鋪交割合同范例
- 新生兒心臟病護理查房
- 規(guī)劃設(shè)計行業(yè)數(shù)字化轉(zhuǎn)型趨勢
- 湖南省長沙市2024-2025學(xué)年高二上學(xué)期期中考試地理試卷(含答案)
- 物業(yè)年終總結(jié)匯報工作
評論
0/150
提交評論