資源描述:
《bp神經(jīng)網(wǎng)絡(luò)及matlab實現(xiàn)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、bp神經(jīng)網(wǎng)絡(luò)及matlab實現(xiàn)分類:?算法學(xué)習(xí)2012-06-2020: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ù)集。Iris數(shù)據(jù)集可以在http://en.wikipedia.org/wiki/Iris_flower_data_set?找到。這里簡要介紹一下Iris數(shù)據(jù)集:有一批Iri
2、s花,已知這批Iris花可分為3個品種,現(xiàn)需要對其進行分類。不同品種的Iris花的花萼長度、花萼寬度、花瓣長度、花瓣寬度會有差異。我們現(xiàn)有一批已知品種的Iris花的花萼長度、花萼寬度、花瓣長度、花瓣寬度的數(shù)據(jù)?! ∫环N解決方法是用已有的數(shù)據(jù)訓(xùn)練一個神經(jīng)網(wǎng)絡(luò)用作分類器?! ∪绻阒幌胗肅#或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)元(ArtificialNeuron)模型???????人工神經(jīng)元是神經(jīng)網(wǎng)絡(luò)的基本元素,其原理可以用下圖表示:圖1.人工神經(jīng)元模型???
3、????圖中x1~xn是從其他神經(jīng)元傳來的輸入信號,wij表示表示從神經(jīng)元j到神經(jīng)元i的連接權(quán)值,θ表示一個閾值(threshold),或稱為偏置(bias)。則神經(jīng)元i的輸出與輸入的關(guān)系表示為:? 圖中yi表示神經(jīng)元i的輸出,函數(shù)f稱為激活函數(shù)?(ActivationFunction)或轉(zhuǎn)移函數(shù)(TransferFunction),net稱為凈激活(netactivation)。若將閾值看成是神經(jīng)元i的一個輸入x0的權(quán)重wi0,則上面的式子可以簡化為:? 若用X表示輸入向量,用W表示權(quán)重向量,即:X=[x0,x1,x2,.......,xn]? 則神經(jīng)元的輸出可以
4、表示為向量相乘的形式:????????若神經(jīng)元的凈激活net為正,稱該神經(jīng)元處于激活狀態(tài)或興奮狀態(tài)(fire),若凈激活net為負(fù),則稱神經(jīng)元處于抑制狀態(tài)。??????圖1中的這種“閾值加權(quán)和”的神經(jīng)元模型稱為M-P模型?(McCulloch-PittsModel),也稱為神經(jīng)網(wǎng)絡(luò)的一個處理單元(PE,ProcessingElement)。2.常用激活函數(shù)???????激活函數(shù)的選擇是構(gòu)建神經(jīng)網(wǎng)絡(luò)過程中的重要環(huán)節(jié),下面簡要介紹常用的激活函數(shù)。(1)線性函數(shù)(LinerFunction)?(2)斜面函數(shù)(RampFunction)?(3)閾值函數(shù)(ThresholdFunc
5、tion)????????以上3個激活函數(shù)都屬于線性函數(shù),下面介紹兩個常用的非線性激活函數(shù)。(4)S形函數(shù)(SigmoidFunction) 該函數(shù)的導(dǎo)函數(shù):(5)雙極S形函數(shù)? 該函數(shù)的導(dǎo)函數(shù): S形函數(shù)與雙極S形函數(shù)的圖像如下:圖3.S形函數(shù)與雙極S形函數(shù)圖像 雙極S形函數(shù)與S形函數(shù)主要區(qū)別在于函數(shù)的值域,雙極S形函數(shù)值域是(-1,1),而S形函數(shù)值域是(0,1)?! ∮捎赟形函數(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ò)
6、中神經(jīng)元的互聯(lián)方式,常見網(wǎng)絡(luò)結(jié)構(gòu)主要可以分為下面3類:(1)前饋神經(jīng)網(wǎng)絡(luò) ( FeedforwardNeuralNetworks)??????前饋網(wǎng)絡(luò)也稱前向網(wǎng)絡(luò)。這種網(wǎng)絡(luò)只在訓(xùn)練過程會有反饋信號,而在分類過程中數(shù)據(jù)只能向前傳送,直到到達輸出層,層間沒有向后的反饋信號,因此被稱為前饋網(wǎng)絡(luò)。感知機(perceptron)與BP神經(jīng)網(wǎng)絡(luò)就屬于前饋網(wǎng)絡(luò)。??????圖4中是一個3層的前饋神經(jīng)網(wǎng)絡(luò),其中第一層是輸入單元,第二層稱為隱含層,第三層稱為輸出層(輸入單元不是神經(jīng)元,因此圖中有2層神經(jīng)元)。圖4.前饋神經(jīng)網(wǎng)絡(luò)? 對于一個3層的前饋神經(jīng)網(wǎng)絡(luò)N,若用X表示網(wǎng)絡(luò)的輸入向量,W
7、1~W3表示網(wǎng)絡(luò)各層的連接權(quán)向量,F(xiàn)1~F3表示神經(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ù)F1~F3都選用線性函數(shù),那么神經(jīng)網(wǎng)絡(luò)的輸出O3將是輸入X的線性函數(shù)。因此,若要做高次函數(shù)的逼近就應(yīng)該選用適當(dāng)?shù)姆蔷€性函數(shù)作為激活函數(shù)。(2)反饋神經(jīng)網(wǎng)絡(luò) ( FeedbackNeuralNetworks)??????反饋型神經(jīng)網(wǎng)絡(luò)是一種從輸出到輸入具有反饋連接