2009年5月13日 星期三

工作行為感測-演算法之類神經網路-初稿

從古至今,大腦究竟是如何運作,如何從事思考的確實步驟方法一直是科學界最大的謎團之一。直到十九世紀末,西班牙的神經組織學家拉蒙-卡哈爾(S.R.y Cajal)才提出了在現代較廣為人知的神經元學說。
所謂神經元(neuron),是包括大腦在內的所有神經系統組織的基本單元。每個神經元都由一個包含細胞核的細胞體組成。而從其本體擴展出來得分支有被稱為樹突(dentrites)的細小纖維束與軸突(axon)的單一長纖維束。信號透過複雜的電化學反應在神經元間傳輸。首先進入樹突,提高或降低細胞的電位。當達到臨界值時,就沿著軸突傳送一個電波。電波在沿著軸突擴展開來並傳到其他神經元。因此在這個地方,可以將樹突看成是一種輸入。並將軸突看成是輸出。

此圖可以概略描述一個神經元的架構,其中軸突的長度約為細胞體直徑的一百倍

而在本章要介紹的類神經網路,可看成是一種演算系統。是使用大量的人工神經元來模仿生物神經網路的架構及能力。它從外在環境或其他人工神經元取得資訊,經過運算後,將其結果輸出到外在環境或其他人工神經元。在此,人工神經元也稱為類神經元(artificial neuron)。
一個類神經網路是由多個單元(units),以鏈結(links)連結在一起。其中,每個鍊結都有一個對應的數字權重(weight, W)。權重是類神經網路做儲存的重要方法,類神經網路通常藉由更新權重來達成學習的目的



類神經單元模型

上圖為一個類神經單元的簡單模型,其中W代表權重,In為輸入,而Y代表輸出。T則會下面的段落詳加解釋。由多個像這樣的類神經元組成的網路,即是類神經網路。



圖為類神經網路模型與一般生物神經網路模型之比較


圖1為類神經網路的簡單模型,最左邊一列稱為輸入層(input layer)。最右邊的一列稱為輸出層(output layer)。而中間被稱為隱藏層(hidden layer)。在類神經網路中,隱藏層可以有多層,但通常習慣只用一層。而隱藏層的鏈結越多,整個網路的非線性就越顯著。另外,在輸出層的部分有個值得一提的地方。一般為人所知的神經元模型就如同前面描述過的,輸出是會擴展示其他多的神經元的。以圖來看,意思就是輸出不應該只有一個。但注意到,在類神經網路中,每個輸出單元是彼此獨立的。而且每個權重只影響到一個輸出,因此在模型表示上可以將研究限定在單一一個輸出單元。

執行一個類神經網路演算法的所期望達到的目標是,使網路的輸出輸入行為與提供輸入的環境行為更加一致。因此,把前面未定義的T定義為正確的輸出,並將上圖模型中的O定義為輸出單元的預期輸出。有了這兩個要素,即可定義誤差值Err。其數學式表示如下


Err=T-O


當誤差產生時,網路就開始藉由小幅度調整權重以降低O值與T值之間的差異並更新網路。這個步驟可能會重複多次以達到收斂性。然而,該如何蒐尋收斂於正確的權重,就必須透過適當的搜尋演算法了。一般而言,類神經網路所使用來搜尋權重的整體最小值(global minimun)的方法是利用坡度遞降法(gradient descent)。但此法有個缺點是所得到的解可能只是區域最小值而非整體最小值。
區域最小值(local minimum)與整體最小值(global minimum)的比較
類神經網路演算法有幾個在使用時必須要注意的項目,第一個是過度訓練與訓練不足的問題。一般在學習的過程中,若是連雜訊也一起學習進去,就會造成過度訓練。此狀況的發生將導致對新資料有不良的預測結果。若訓練不足,也同樣無法對新資料產生良好的預測。但通常比較為人所重視的往往是訓練不足的問題,因為若能收斂,則表示此網路已有相當程度的學習。
另一個是隱藏成數目與神經元數目的決定。一般而言,大都問題最多只需兩個隱藏層即可解決,層數越多,整體運算就會越複雜。前面段落所提到的區域最小值問題也越容易發生。至於神經元數的決定,一般皆採用錯誤嘗試法來找到最佳的數目。
最後,參考類神經網路演算法的特性。可得知此種演算法可建構非線性的模型,準確度高。且本身具有推理能力,可適用的領域相當廣。而其缺點為準備工作費時(須決定層數與神經元數以及設定學習參數),以及計算量大,相當耗費電腦資源。

沒有留言:

張貼留言