第二章 文獻回顧
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