因為研究的關係,需要neural network(註1)的技術。
基本上我們可以使用neural network,透過一組dataset讓它學習其中的規則
然後靠著這個規則來判斷我們想要知的答案。
如何使用neural network在我們程式之中或是使用什麼樣的tool可以達到目標
以下所提方法皆為JAVA-base的tool有:
一, Weka
Weka是開放源始碼的data minging的工具,功能強大且又是免費的
有GUI的介面和commandline介面。如果你所撰寫的程式是JAVA的話
可以透過Weka.jar的呼叫,直接使用其API,非常方便。
PS: Weka API http://weka.sourceforge.net/doc.stable/
透過建立MultilayerPerceptron物件(weka.classifiers.functions.MultilayerPerceptron)
而不需要去實作該如何建立neural network(好比需要幾個neuron, 或者weight設定, layer數
等參數問題), 使用它的buildClassifier的method就能建立。
PS: MultilayerPerceptron 為 feedforward artificial neural network
說明請看 http://en.wikipedia.org/wiki/Multilayer_perceptron
更具體的作法,請參考
http://weka.wikispaces.com/Use+Weka+in+your+Java+code
(內無實作MultilayerPerceptron的例子, 但您可以仿照其它的classify tool,
來建立MultilayerPerceptron model).
另外也可以參考另一篇GUI上的做法, 雖然這篇是以Decision Trees為例子的。
http://maya.cs.depaul.edu/~classes/ect584/WEKA/classify.html
二, Introduction to Neural Networks for Java這本書
這一位作者用了分別用了JAVA、C#實作neural networ
目前有出了第二版。書中會一步一步如何建構neural network,以及介紹相
關的議題。內容蠻豐富的,但也不一定要買書,作者有錄教學影片放在
youtube上 http://www.youtube.com/user/HeatonResearch
(影片的順序並沒有排序)
三, JOONE(Java Object Oriented Neural Engine)
它是一個GUI介面的工具,可以透過這個tool
設定nueral network的層數、參數等等。
在Introduction to Neural Networks for Java第一版裡
也有介紹這個工具. 不過以我的經驗來說, 比較不好上手, 我也沒有成功過 @@"
除了資料少外,討論的人也不多就是。所以當有問題時候,就很麻煩。
http://sourceforge.net/projects/joone/
註1:關於neural的方面可參考 http://en.wikipedia.org/wiki/Neural_network
或是Data mining or machine learing的書. 基於大部份在解說ANN太過於
理論, 此網站 http://www.ai-junkie.com/ann/evolved/nnt1.html 作者
試著用簡單的理論和程式例子(C++, VB .NET, DELPHI等版本)來說明
keyword : JAVA neural network, neural network tool
