前饋神經網路(matlab例項)

2021-08-07 04:28:27 字數 2228 閱讀 6252

前饋網路也稱前向網路。這種網路只在訓練過程會有反饋訊號,而在分類過程中資料只能向前傳送,直到到達輸出層,層間沒有向後的反饋訊號,因此被稱為前饋網路。感知機( perceptron)與bp神經網路就屬於前饋網路。

對於乙個3層的前饋神經網路n,若用x表示網路的輸入向量,w1~w3表示網路各層的連線權向量,f1~f3表示神經網路3層的啟用函式。

那麼神經網路的第一層神經元的輸出為:

o1 = f1( xw1 )

第二層的輸出為:

o2 = f2 ( f1( xw1 ) w2 )

輸出層的輸出為:

o3 = f3( f2 ( f1( xw1 ) w2 ) w3 )

若啟用函式f1~f3都選用線性函式,那麼神經網路的輸出o3將是輸入x的線性函式。因此,若要做高次函式的逼近就應該選用適當的非線性函式作為啟用函式。

有一批iris花,已知這批iris花可分為3個品種,現需要對其進行分類。不同品種的iris花的花萼長度、花萼寬度、花瓣長度、花瓣寬度會有差異。我們現有一批已知品種的iris花的花萼長度、花萼寬度、花瓣長度、花瓣寬度的資料。

一種解決方法是用已有的資料訓練乙個神經網路用作分類器。

將iris資料集分為2組,每組各75個樣本,每組中每種花各有25個樣本。其中一組作為以上程式的訓練樣本,另外一組作為檢驗樣本。為了方便訓練,將3類花分別編號為1,2,3 。

使用這些資料訓練乙個4輸入(分別對應4個特徵),3輸出(分別對應該樣本屬於某一品種的可能性大小)的前向網路。

%讀取訓練資料

[f1,f2,f3,f4,class] = textread('traindata.txt' , '%f%f%f%f%f',150);

%特徵值歸一化

[input,mini,maxi] = premnmx( [f1 , f2 , f3 , f4 ]') ;

%構造輸出矩陣

s = length( class) ;

output = zeros( s , 3 ) ;

fori = 1 : s

output( i , class( i ) ) = 1 ;

end%建立神經網路

net = newff( minmax(input) , [10

3] , , 'traingdx' ) ;

%設定訓練引數

net.

trainparam.show = 50 ;

net.

trainparam.epochs = 500 ;

net.

trainparam.goal = 0.01 ;

net.

trainparam.lr = 0.01 ;

%開始訓練

net = train( net, input , output' ) ;

%讀取測試資料

[t1 t2 t3 t4 c] = textread('testdata.txt' , '%f%f%f%f%f',150);

%測試資料歸一化

testinput = tramnmx ( [t1,t2,t3,t4]' , mini, maxi ) ;

%**y = sim( net , testinput )

%統計識別正確率

[s1 , s2] = size( y ) ;

hitnum = 0 ;

fori = 1 : s2

[m , index] = max( y( : , i ) ) ;

if( index == c(i) )

hitnum = hitnum + 1 ;

endendsprintf('識別率是 %3.3f%%',100 * hitnum / s2 )

訓練曲線如下:

訓練140次左右收斂。最後程式輸出的識別率在95%左右。

<1>隱含層節點個數

隱含層節點的個數對於識別率的影響並不大,但是節點個數過多會增加運算量,使得訓練較慢。

<2>啟用函式的選擇

啟用函式無論對於識別率或收斂速度都有顯著的影響。在逼近高次曲線時,s形函式精度比線性函式要高得多,但計算量也要大得多。

<3>學習率的選擇

學習率影響著網路收斂的速度,以及網路能否收斂。學習率設定偏小可以保證網路收斂,但是收斂較慢。相反,學習率設定偏大則有可能使網路訓練不收斂,影響識別效果。

前饋神經網路

前饋神經網路 ffnn 由乙個輸入層,一到多個隱藏層,有乙個輸出層組成。資料通過網路一層層向後傳遞,直到輸出層,之間沒有反饋迴路。前饋神經網路可得到的函式 1 有乙個隱藏層的網路,可形成任意乙個連續函式 2 有倆個及以上的隱藏層,可形成任意函式,包括連續函式和離散函式 說明 設計乙個計算函式的網路,...

前饋神經網路 神經元

引言 人工神經網路 artificial neutral network 是受生物神經網路啟發而開發,由神經元連線組成的網路狀機器學習模型。其中,前饋神經網路 feedforward neural network 多層感知機 multilayer perceptron,mlp 是最具代表的神經網路,...

深度學習 前饋神經網路

神經元模型,由兩部分組成。一部分將訊號進行累加,得到得分函式,還有偏置項 bias 相當於函式的截距項或者常數項。z bias i 1mxi wi i 0m xiwiz bias i 1mxi wi i 0m xiwi 第二部分是啟用函式,這是神經元的關鍵,通常使用某類啟用函式,就稱為某類神經元。如...