当前位置:文档之家› 前馈神经网络

前馈神经网络

前饋式類神經網路1前言前饋式類神經網路是第一個也是最簡單的類神經網路,它是由多層的神經元所組成,其訊息傳遞的方式是從輸入層經由隱藏層往輸出層的方向傳送,每一層神經元只會接受上層神經元所傳送過來的輸出值,不同於循環式網路(Recurrent network)。

2神經元類神經網路最基本單位的是神經元(如圖1),神經元主要負責對資料的處理行為。

在類神經網路中的某個神經元,可能接收一個到數個不等的輸入變數,變數的多寡取決於傳送到該神經元的輸入值個數。

神經元接收輸入變數(I)後,視輸入變數的重要性,給予一個改變比重的參數,這些參數稱為配重值(Weight, ω),神經元會將所有輸入變數經由配重值的加權後累加,然後再與神經元中的偏移量(Bias, B)相加,會產生一個淨值(n),這個淨值將經由轉換函數的轉換,轉換出來的數值當成該神經元的輸出值。

神經元的輸出值可以傳送到一個以上的神經元當作該神經元的輸入變數,或是當成網路的輸出值,一切依網路結構的情況而定。

雖然,每個神經元可以同時接收一至多個不等的輸入變數,卻只有一個輸出值。

神經元的計算公式如式(1)、(2)所示,∑=+⋅=RjjjB In1ω(1))(nfY=(2)式中R為神經元輸入變數的個數,I1,I2,⋯,I R為神經元的輸入變數,ω1,ω2,⋯,ωR為神經元各個輸入變數的配重值,B為該神經元的偏移量,)(∙f為神經元的轉換函數。

1Y輸入值單位神經元Y=f(Wp+b)圖.1神經元神經元的轉換函數可能是線性函數或是非線性函數,依問題的需求不同所選擇的轉換函數也會不同,選擇一個適合特定問題的轉換函數,對描述輸入變數與輸出值之關係,是非常重要的。

可是,轉換函數的種類有很多,要選擇一個最適合特定問題的轉換函數,需要藉由不斷的嘗試才能獲得。

以下列出本研究所使用的十種轉換函數:1. 硬限制函數(Hard Limit transfer function)⎩⎨⎧≥<=1)(nifnifnf2. 對稱硬限制函數(Symmetrical Hard Limit transfer function)⎩⎨⎧≥<-=11)(nifnifnf3. 飽和線性函數(Saturating Linear transfer function)⎪⎩⎪⎨⎧>≤≤<=111)(nifnifnnifnf4. 對稱飽和線性函數(Symmetrical Saturating Linear transfer function)⎪⎩⎪⎨⎧>≤≤--<-=111111)(nifnifnnifnf5. 正線性函數(Positive Linear transfer function)⎩⎨⎧≥<=)(nifnnifnf6. 線性函數(Linear transfer function)nnf=)(7. S形函數(Sigmoid transfer function)ne nf -+=11)( 8. 雙曲正切函數(Hyperbolic Tangent transfer function)nn nn e e e e n f --+-=)(9. 三角基函數(Triangular basis transfer function)⎪⎪⎪⎩⎪⎪⎪⎨⎧>≤<-=<≤-+-<=101010101110)(n if n if n n if n if n n if n f 10. 高斯函數(Gaussian transfer function)22)(n e n f -=3 網路組織架構前饋式類神經網路結構如圖12所示,數個接收相同輸入變數的神經元並聯組成網路的基礎結構 − 層,再由數個層串聯組成一個前饋式類神經網路。

同一層的神經元接收前一層所有神經元的輸出,並將輸出送至下一層做為下一層每個神經元的輸入變數。

依各層的特質又可以區分為輸入層、輸出層和隱藏層三種。

1. 輸入層:輸入層每個神經元只接受一個輸入變數作為其輸入值,並將輸出送至下一層的每個神經元,所以輸入層神經元的個數等於輸入變數的個數。

輸入層有兩種類型,第一種輸入層中的神經元具有配重值與偏移量,且具有轉換函數;第二種輸入層中的神經元只有接收輸入變數的功能,輸出值便是輸入變數,不具有運算的功能,本研究採用第二種類型的輸入層。

一般若採用第二種類型的輸入層,不將此層當成一層。

2. 輸出層:輸出層每個神經元的輸出值便是網路的輸出值,所以輸出層神經元的個數等於網路的輸出值個數。

3. 隱藏層:介於輸入層與輸出層之間的層便是隱藏層,隱藏層的層數可以是零,也可以很多層,不過最常見的為一層,隱藏層神經元的個數也沒有一定,使用者視資料的複雜度調整隱藏層的層數與該隱藏層神經元的個數。

輸入層 隱藏層1 隱藏層k 輸出層圖12 前饋式類神經網路結構前饋式類神經網路是類神經網路最常見到的網路結構(如圖12),這種網路結構神經元間的資料傳遞方向與整個網路資料傳遞的方向相同,每一層的神經元只會接受前一層所有的神經元傳送過來的輸入變數,並經過處理後得到一個新輸出值,也就是說,第一層隱藏層只會接收來自輸入層的輸入變數,而第二層隱藏層只會接收來自第一層隱藏層的輸入變數,依此類推。

使用前饋式類神經網路,一定會有輸入層與輸出層。

一個非常簡單的問題可以沒有隱藏層,但是,類神經網路要具備處理複雜數據的能力,必須藉助隱藏層的使用,甚至於使用多層隱藏層。

通常不同層有不同的神經元個數和轉換函數。

同一層各神經元的轉換函數通常是相同的,也就是說,同一層的神經元有相同的輸入變數與轉換函數,但因為每個神經元內有不同的配重值和偏移量,導致同一層的神經元雖然接收相同的輸入變數,但輸出值卻大不相同。

也有可能同一層各神經元有不同的轉換函數,但本研究所開發的程式只提供同一層各個神經元使用相同的轉換函數之功能。

4 資料處理類神經網路可能具有很多層的網路結構,每一層中又有數個神經元,每一個神經元又有數個網路參數值與輸入變數與輸出值,所以必須對每個參數值、輸入變數與輸出值做一個區別,使每個符號更容易被辨別其所代表的意義。

在此用上標來表示其所在的層數,用下標來表示其所在的神經元,輸入變數m j I 代表第m層的神經元接收來自第m-1層第j 個神經元所傳送過來的輸入變數,1-m j O 代表第m-1層第j 個神經元之輸出值,也就是說1-=m j m j O I 。

m j I 所相對應的配重值為m j i ,ω,其代表意義為第m 層第i 個神經元接收上一層第j 個神經元的輸出值,該神經元的偏移量為m i B 。

舉一個例子(如圖3)來介紹前饋式類神經網路的輸出值與輸入變數之間的關係式,來說明整個類神經網路的計算過程。

從圖中的輸入層與輸出層神經元個數可知,此網路結構會從外界接收一個輸入變數,經過類神經網路的處理後,而得到一個輸出值,而其輸出值與輸入變數間的關係可表示成式(3)的通式。

)(X f Y overall =(3)Y輸入層隱藏層輸出層圖13 一層隱藏層的前饋式網路首先,本研究認為輸入層中的神經元只有接收輸入變數的功能,而其輸出值就是輸入變數,不具有運算的功能,所以輸入層的輸出值為X 。

將輸出值X 傳送到隱藏層各神經元內,當作隱藏層神經元的輸入變數,接著,經由隱藏層神經元的處理後,隱藏層各神經元的輸出值分別為)(1111,11B X f +⋅ω、)(1211,21B X f +⋅ω與)(1311,31B X f +⋅ω,其中)(1∙f 代表隱藏層的轉換函數。

再將隱藏層各神經元的輸出值傳送到輸出層,當成輸出層神經元的輸入變數,在經由輸出層神經元的處理後,便可得到一個網路輸出值,其值為])()()([211311,3123,11211,2122,11111,1121,12B B X f B X f B X f f Y ++⋅⋅++⋅⋅++⋅⋅=ωωωωωω(4)在式(2-4)中,[]∙2f 代表輸出層神經元的轉換函數。

上述的運算過程中,假如網路輸出值與目標值的誤差過大,可依據學習法則來調整各配重值與偏移量,使得網路輸出值與目標值的誤差可以達到要求。

f (n )-1.0-0.50.00.51.0-0.20.00.20.40.60.81.01.2n 圖2.2 硬限制函數f (n )-1.0-0.50.00.51.0-1.2-0.8-0.40.00.40.81.2n 圖2.3 對稱硬限制函數f (n )-0.20.00.20.40.60.81.01.2-0.20.00.20.40.60.81.01.2N圖2.4 飽和線性函數f (n )-1.2-0.60.00.61.2-1.2-0.8-0.40.00.40.81.2n圖2.5 對稱飽和線性函數f (n )-0.40.00.40.81.2-0.20.00.20.40.60.81.01.2n 圖2.6 正線性函數f (n )-1.0-0.50.00.51.0-1.0-0.50.00.51.0n 圖2.7 線性函數f (n )-6.0-3.00.03.06.0-0.20.00.20.40.60.81.01.2n 圖2.8 S 形函數f (n )-4.0-2.00.02.04.0-1.2-0.8-0.40.00.40.81.2n圖2.9 雙曲正切函數f (n )-1.6-0.80.00.81.6-0.20.00.20.40.60.81.01.2n圖2.10 三角基函數f (n )-4.0-2.00.02.04.0-0.20.00.20.40.60.81.01.2n 圖2.11 高斯函數。

相关主题