本節將介紹倒傳遞類神經網路的發展,首先是自然界的腦神經網路的 運作,再來則是類神經網路如何模倣腦神經網路的運作而建立的運作模 式,最後則是介紹倒傳遞類神經網路的演算法及其在財務上的應用。
3.1.1 腦神經網路
神經網路(Neural Network)是用來指明連接各個神經元(Neuron)的網 路。神經元主要由神經細胞核(Soma)、神經軸(Axon)、神經樹(Dendrites)、
及神經節(Synapses)所構成。人腦中主管思考辨識的大腦皮層中,大約含 有 10 的 11 次方個神經細胞,細胞間利用神經樹相連,相接的點即為神經 節,每個細胞大約有一千個神經節,神經節可說是神經網路上的記憶體,
神經網路上的知識是貯存在這節點上的,而兩細胞間的信號係經由神經樹 所傳遞。神經網路俱有學習的功能,當外界刺激神經細胞而產生的信號電 流通過兩神經樹上的神經節時,會去改變節點上的權重(是一種化學能),
在人的認知及辨識學習過程中,外界變化的剌激所產生的電流反覆在網路 上流動時,節點上的權重會隨之改變,然而會慢慢的趨向穩定,此時學習 即告完成。往後當外界進入的信號電流值與貯存在神經網路上的權值相符 時,外界的事物便會為神經網所辨識出來。大腦因為有這樣複雜連結架構,
所以被公認為世界上最複雜的生物機械。
3.1.2 類神經網路
類神經網路(Artificial Neural Networks, ANN)是從生物學上所得到 的靈感,主要是模仿腦神腦網路(Neural networks, NN)的架構,利用簡單 神經元式的處理器(Neural Processor),組成大量平行計算架構(Massive Parallel Architecture)。主要的想法是來自於人腦在圖型及語音辨識方 面遠比數位電腦來的優秀,科學家認為人腦中必定有某種計算原理,才能 完成這種高速的圖型及語音辨識。類神經網路即是要了解這種計算原理,
以設計出功能強大的計算系統。隨著神經解剖學及神經生理學、心理學的 進步,科學家可以利用有關腦神經組織的運作方式,建立數學模型及學習 法則,來模擬腦神經的功能。在 1943 年,McCulloch 和 Pitts 首次提出類 神經網路之系統研究。在 1947 年,他們以圖形辨職作為網路探討之範例。
他們所研究的系統架構,大都如下圖所示之簡單神經元模式2。
臨界值
輸出
: :
圖 2 簡單神經元模式
類神經網路架構中存在了所謂的類神經元(Artificial Neuron),用以 模仿腦神經元簡單的特性,當信號傳入神經元,每個輸入的信號皆乘上其 所對應出的已訓練權衡值,所有經過權衡值的信號相加後,即可以進行辨 別工作。在 1949 年時,Hebb 提出了學習法則(Learning Algorithm),在 當時是最早且唯一用科學方法證明類神經網路具學習能力的學者,為類神
2有關類神經網路的發展史更詳細的介紹,請見盧炳勳等(民國 81 年)著之「類神經網路理論與應 用」以及靳蕃等(民國 81 年)著之「神經網路與神經計算機」。
X1
X2
X
nW1
W2
W
n∑
經網路訓練法則的鼻祖,今天大部分更複雜更有效率的訓練法則都是從 Hebb 所提出的學習法則所演變而來。該法則介紹了權衡值會根據來源及目 的神經元的輸出而進行調整,其調整方式如下式所示:
( n
+)
=W ( ) n
+α
W
ij 1 ij OUTiOUTj 其中,( ) n
W
ij :調整之前第 i 個神經原至第 j 個神經原之間的權衡值,( n
+1)
W
ij :調整之後第 i 個神經原至第 j 個神經原之間的權衡值,α :學習速率常數,
OUTi:第 i 個神經原的輸出,同時它也是第 j 個神經原的輸入,
OUTj:第 j 個神經原的輸出。
類神經網路架構上可分為單層網路( Single Layer Artificial Neural Networks)及多層網路(Multilayer Artificial Neural Nerworks)。雖然 單一個類神經元具有簡單的圖樣辨識能力,然而真正具有神經計算功能則 必須將類神經元連接成類神經網路,最簡單的網路是由一群類神經元組成 單層網路,如【圖 3】所示,此為一層的類神經網路,由下至上看似乎是 兩層網路,但下邊的圓點其作用只是負責分配輸入信號,並無計算的能力,
所謂的一層是指一組權衡值與其後所連接的神經元而言因此在類神經網路 的定義中,輸入層不可算為一層,在此為方便說明,故標為輸入層。若輸 出向量 Y 沒有再經特定函數轉換,則將等於輸入向量 X 乘以加權值向量 W。
輸入向量融入權衡值後即提供為輸出層的輸入值,而由於輸出層已是最後 一層,故此輸入值將等於輸出層的輸出值,由圖中可見每個輸入向量皆會 參與輸出層上各節點的計算。
輸出向量 Y
輸出層
加權值向量 W
輸入層 輸入向量 X
圖 3 單層類神經網路架構
多層類神經網路係將類神經元排列,以模仿腦神經分層式的結構,這 些多層類神經網路的能力已經被證明比單層類神經網路具備有更強大的計 算能力。多層類神經網路可以由兩個以上的單層網路串接而成,將前一層 的輸出信號作為下一層的輸入信號,經處理後再次輸出信號。以兩層類神 經網路為例,可如【圖 4】所示,由輸入向量至隱藏層為一層,由隱藏層 至輸出層為第二層,同樣地,在圖中的輸入層只是為方便說明輸入向量的 位置,其並不代表為一層。輸入向量中的每一個成分皆參與隱藏層中各節 點上輸入值的計算,此輸入值又將作為隱藏層中各節點的輸出值,隱藏層 的各輸出值又繼續參與下一層,亦即輸出層各節點上輸入值的計算,此第 二個輸入值又將等於輸出層的最後輸出值。
輸出向量
輸出層
隱藏層
輸入層
輸入向量
圖 4 兩層類神經網路架構
類神經網路在訓練上可分為監督式訓練(Supervised Training)及非 監督式訓練(Unsupervised Training),監督式的訓練必須事先知道目標向 量(Target Vector),將輸入向量跟目標向量兩者稱為一個訓練對
(Training Pair)。一個類神經網路的訓練經常需要很多的訓練對,當一組 輸入向量放進去之後,就可以計算網路的輸出,並比較目標向量,而計算 兩者之間的誤差。此誤差會由後往前一層一層的傳遞,權衡矩陣就會依據 某種學習法則來調整,以便達到誤差最小。訓練對一組組餵進去,每次計 算其誤差並調整權衡矩陣,一直到全部的訓練對都餵進去之後,計算全體 的誤差總和,若低於某一容忍值則訓練完成,否則需重複此一程序一直到 收斂為止。雖然監督式的訓練已經有很多成功的運用例,但是它仍被批評 在生物學上很難實行,因為很難想像腦子裡面的訓練機構能夠比較正確的
輸出跟真實的輸出,並將誤差往後傳遞回去。如果腦子裡面有這種機構,
那目標向量又從何而來呢?非監督式訓練比較接近生物神經系統的學習方 式,它是由 Kohonen 等科學家所研究出來,它不需要目輸出向量,因此不 用跟實際輸出向量比較,訓練資料純粹由輸入信號組成。訓練的法則是修 正網路的權衡矩陣以產一致的輸出向量,所謂一致的輸出向量就是不論是 輸入訓練向量或接近訓練向量都會得到相同的輸出向量。這種訓練的方式 是將訓練資料及與其統計性質相類似的向量歸為一類,將某一類的訓練資 料輸入,會得到一個輸出向量,但是訓練之前無法得知該訓練資料會產生 怎樣的輸出向量。因此,在完成網路的訓練之後,必須將網路轉換成較易 理解的型式,而這工作並不難,確認一個網路的輸入-輸出之間的關係非常 簡單。
3.1.3 倒傳遞學習法
在倒傳遞法(Back-propagation)出現以前,1970 年代至 1980 年代初 期類神經網路的研究領域曾陷入低潮,原因是當時研究的單層的類神經網 路不能求解許多用普通方法就可以解得的簡單問題。當時也曾考慮以多層 的類神經網路來求解,但在訓練上卻苦無合理的學習法則,因為必須有目 標向量才能進行訓練,但多層網路中的隱藏層卻無目標向量,以致無法以 那時的學習法則進行訓練,一直到倒傳遞學習法的發明才解決這個問題。
倒傳遞學習法的出現,對於類神經網路的復甦扮演極重要的角色,它對於 多層網路的訓練不愧是一種非常有系統的方法,唯一的限制是其數學式較 難理解。但不可否認的是該學習法的成就是非常顯著的,其延伸了類神經 網路的應用範圍,非常多的運用已被各種研究領域所開發出來。倒傳遞學 習法目的是調整權衡值,使得一群輸入加進去後能夠產生想要的輸出。其 利用縮小誤差為依據以調整權衡值,而縮小誤差的方法則是所謂的「最陡 坡降法(The Gradient Steepest Descent Method)」。此外,為了能在模型 中應用最陡坡降法,倒傳遞法將輸出值以平滑可微分的轉換函數進行轉 換。以下將詳細介紹倒傳遞法3。
3 倒傳遞法的介紹及數學推導參考自葉怡成(民國 82 年)所著「類神經網路模式應用與實作」。
1.網路架構
倒傳遞類神經網路的架構同樣地如【圖四】所示,包括了以下各層:
輸入層:用以表現網路的輸入變數,其處理單元數目依問題而定。使用線 性轉換函數,即 f
( )
x =x。在此為方便說明,把輸入層亦視為一 層。隱藏層:用以表現輸入處理單元間的交互影響,其處理單元數目並無標準 方法可以決定,經常需以試驗方式決定其最佳數目。使用非線性 轉換函數。網路可以不只一層隱藏層,也可以沒有隱藏層。
輸出層:用以表現網路的輸出變數,其處理單元數目依問題而定。使用非 線性轉換函數。
倒傳遞網路最常用於轉換輸出值的非線性轉換函數為雙彎曲函數 (Sigmoid Function),
( )
xx e
f
−= + 1
1 ,函數圖形如【圖 5】所示,此函數 當自變數趨於正負無限大時,函數值趨於常數,其函數值域在[0, 1]之間。
圖 5 雙彎曲函數圖形
1
0
2.訓練步驟概述
在一個包含了一個輸入層、多個隱藏層、及一個輸出層的多層網路中,
訓練倒傳遞網路需要以下步驟:
(1)從被訓練組中選擇一個訓練對(一對輸入向量和目標向量),送到網 路的輸入層。
(2)計算網路的輸出
(2)計算網路的輸出