• 沒有找到結果。

倒傳遞類神經網路之架構

第二章 文獻回顧

2.5 類神經網路

2.5.2 倒傳遞類神經網路之架構

類神經網路( Artificial Neural Network )是一種模擬生物神經網 路的平行計算系統,使用大量相連之人工神經元作資訊處理。而其中 最基本的運算單元為人工神經元(Neuron),其主要分成三個部分:(1)

權重-主要是模擬不同生物神經元間的連結強弱。(2)輸入訊號疊 加器-輸入訊號經過不同的權重加權後,在疊加器作線性的疊加。(3)

轉移函數(Transfer Function)-大部分是用來轉化輸入訊息疊加後的

15

輸出值範圍。處理單元的工作包含兩部分:第一部分是將所有傳遞至 此神經元的權重信號值做加總;第二部分的工作是將第一部分加總值 作非線性的轉換,而此部分就稱為轉移函數(圖 2-2)。

感知器(Perceptron)(圖 2-3)是一個最簡單最早提出的單層神經 網路模型。感知器神經元的每一個輸入值𝑃𝑖都對應一個相應的權重值 𝑤𝑛,所有的輸入值與其相對應權重值之乘積加總後再輸入一個閥值 單元,此外閥值單元另一個輸入為權重值恆為 1 的偏權值 b,而閥值 單元將上述兩個輸入丟進轉移函數 f 之後,最終感知器將輸出一個純 量 t,至此便是一個人工神經網路之基礎型式。

在各種不同的類神經網路模式中,本研究選用的是多層感知器

(Multilayer perceptron,MLP)(圖 2-4),也就是將多個感知器連接在 一起,而形成一串函數連結網路,輸入訊號以前饋(feedforward)的 方式由輸入層一直遞傳計算,經過一個或多個隱藏層後到達輸出層,

這種多層的架構在類神經網路中是為了解決非線性的問題。

多層感知器中常被使用的網路學習模式是倒傳遞類神經網路

(Back-Propagation Network, BPN)【26】,由於它的簡單性,也是目 前廣泛應用的類神經網路學習模式,以 1992 到 1998 年之間為例,約 有 78%的類神經網路分析是採用倒傳遞類神經網路。

BPN 的網路架構(圖 2-4)包含了一層輸入層、一或多層隱藏層以 及一層輸出層。而每一層之節點皆與其鄰層的節點相連接。輸入層為 接受資料傳入類神經網路,輸入節點依問題變數多寡而定。隱藏層的 層數依問題複雜度由一層增加到數層,而神經元數目依試誤法決定,

該層主要為接收輸入層的資料,對資料進行處理。輸出層則將接收網 路處理後的資料,並將結果傳到外面。通常隱藏層之結點數目越多收

16

斂越慢,但可使系統誤差值更小,當超過一定數目後,再增加則對降 低系統誤差幾乎沒有幫助,只是徒然增加執行時間。Hecht-Nielsen【27】

在其研究中證明,一層的隱藏層已足夠解決大部分實際應用上的問題。

因此,於本報告中之神經網路將只使用一層的隱藏層。在神經網路能 夠使用之前,它必須先經過訓練的過程。利用 BP 學習演算法的訓練 過程,一般包含三個階段。第一階段稱之為資料前饋(data feedforward)

前向運算主要是利用連結各層之權重值來計算每個神經元的輸出值 及誤差函數。輸出層中第 i 個節點的計算輸出值𝑦𝑖茲定義如下:

𝑦𝑖 = 𝑔{∑𝑁𝑗=1 [𝑊𝑖𝑗𝑔(∑𝑁𝑘=1𝑖 𝑉𝑗𝑘𝑋𝑘 + 𝜃𝑣𝑗) + 𝜃𝑤𝑖]} 𝑖 = 1,2, … 𝑁𝑜 (2-1) 其中𝑊𝑖𝑗為隱藏層及輸出層節點之間的連接權重值;𝑉𝑗𝑘為輸入層 及隱藏層節點之間的連接權重值;𝜃𝑤𝑖與𝜃𝑣𝑗為轉移函數𝑔之門檻值;𝑋𝑘 為輸入層第 k 個節點的輸入值。而𝑁𝑖、𝑁、及𝑁𝑜則分別為輸入層、

隱藏層、及輸出層的節點數目。而𝑔為轉移函數,轉移函數之採用可 取線性或非線性。

第二階段為反向運算稱為誤差倒傳遞(error back-propagation)。在 訓練的過程中,以一系統誤差函數來監測網路的學習表現。而此函數 茲定義如下:

𝐸(𝑊) = 2𝑝1𝑃𝓅=1(𝑌̃ − 𝑌𝓅 𝓅)(𝑌̃ − 𝑌𝓅 𝓅)Τ (2-2)

其中 P 為學習的案例數。𝑌̃ = 𝑦̃, 𝑦1 ̃, . . 𝑦2 ̃ ;𝑌 = 𝑦𝑁0 1, 𝑦2, . . 𝑦𝑁0,𝑦̃為1 輸出節點 i 之期望值,而

17

𝑊

= (𝑉11𝑉12… 𝑉𝑗𝑘… 𝑉𝑁𝑁𝑖𝜃𝑣1𝜃𝑣2… 𝜃𝑣𝑁𝑊11𝑊12… 𝑊𝑖𝑗… 𝑊𝑁0𝑁𝜃𝑤1𝜃𝑤2… 𝜃𝑤𝑁0) (2-3) 訓練的最後階段為權值的修正。標準 BP 演算法係基於最陡梯度 法(gradient descent method)並使用固定的搜尋步幅(step length)或 學習速率(learning ratio)來訓練網路。其權值的修正如下:

𝑊(𝑘+1) = 𝑊(𝑘) + ∆𝑊(𝑘) (2-4)

∆𝑊(𝑘) = −𝜂𝜕𝑊𝜕𝐸(𝑘) (2-5) 其中η為學習率,一般介於 0~1 之間。上標(k)表示迭代第 k 次,

亦即網路經過 k 次的學習。BP 演算法中最小化搜尋方向是由負的誤 差函數梯度決定,這種搜尋方向上的搜尋步幅由固定的學習速率決定,

因此常常導致學習之系統誤差不穩定以及學習速度緩慢之困擾。

類神經網路訓練的目的,就是讓類神經網路的輸出越接近目標值。

亦即,相同的輸入進入到系統與類神經網路,得到的輸出值亦要相同。

類神經網路未訓練前,其輸出是凌亂的,隨著訓練次數的增加,類神 經網路的鍵結值會逐漸的被調整,使得目標值與神經網路的輸出兩者 誤差越來越小。當兩者的誤差幾乎不再變化時,我們稱此類神經網路 已收斂(convergence),此時類神經網路便訓練完成。通常我們會定 義一個價值函數(cost function)作為神經網路收斂的指標,價值函 數將會隨著網路的訓練次數越變越小最後幾乎不再變化。

學習率(learning rate),在類神經網路的訓練過程中是一個非常 重要的參數。學習率影響著類神經網路收斂的速度,若學習率選擇較

18

大則類神經網路收斂的速度將變得較快,反之,較小的學習率會使得 類神經網路的收斂速度變慢。選擇太大或太小的學習率對類神經網路 的訓練都有不良的影響。

當類神經網路經由訓練樣本訓練完成後,雖然神經網路的輸出已 經與我們所要求的數值接近,但對於不是由訓練樣本所產生的輸入,

我們並不知道會得到何種輸出。因此,我們必須使用另一組類神經網 路從未見過樣本進入到類神經網路中,測試其推廣性(generalization), 看看是否與所要求的值接近,而此樣本則稱之為測試樣本(testing pattern)。推廣性亦是類神經網路中的一項優點,當類神經網路訓練 完成後,對於與訓練樣本相近的輸入,類神經網路亦能給予一個合理 的輸出,但是如果測試樣本與訓練樣本的差異過大,類神經網路仍是 無法給予正確的數值。

19