- BackPropagation
在[ANN] Perceptron這一篇我們可以得知沒有隱藏層的Perceptron是無法解決XOR的問題,就算我們自行加了隱藏層也沒有對應的演算法去計算隱藏層的值,Paul Werbos於1974提出了BackPropagation Neural Network並解決隱藏層演算的問題。

- X1,X2 :輸入層,兩個inputs
- H1,H2 :隱藏層,兩個hidden nodes
- Y:輸出層,一個output
- thetaxh1,thetaxh2 :隱藏層的bias
- thetahy:輸出層的bias
各參數意義如下:
而使用BackPropagation的網路時通常會搭配著以下兩種Transfer Function:

重複上述的運算直到收斂到目標值為止,依據上述的公式我分別使用了C,Java,Perl來實做BackPropagation
Download: BackPropagation.c BackPropagation.java BackPropagation.pl
除了可以比較運行的速度之外,也可以探討精準度,速度方面當然是c語言佔上風,但是精準度卻沒有Java跟Perl,詳細的資料你可以參考下面的網頁。
http://www.adahome.com/History/Steelman/steeltab.htm
在學習速率方面筆者我並沒有讓他們給固定,我使用了下面這行程是碼:
No comments:
Post a Comment