Skip to content

從James D. McCaffrey在微軟部落格上的C#開放原始碼修改而來。

Notifications You must be signed in to change notification settings

mosdeo/NeuralNetwork

Repository files navigation

Neural Network

沿革與動機
這個類別從James D. McCaffrey在微軟部落格上的C#開放原始碼修改而來的C++版本。
我的碩士論文原本是使用這個程式碼的C#版本。進公司後為了能夠將過去的研究成果沿用在Linux上,因此必須將NeuralNetwork類別修改成C++版本。

Demo說明
main.cpp 裏面是一個測試範例,對sin(x)在0~2pi之間隨機取樣,讓類神經網路從這些樣本去學習,嘗試訓練成一個能夠在[0,2pi]區間準確regression出sin(X)的神經網路。

NN架構說明
Input Layer: 輸入節點數可以任意設定。
Hidden Layer: 目前限定一層,寬度可以任意設定。
Output Layer: 輸出節點數可以任意設定,此層單純加總,無活化函數
倒傳遞: 採用梯度下降法。

如何修改為Classifier Model?
本類別預設為Regression Model,亦可修改為Classifier Model。
只要把output layer加上活化函數Softmax,輸出數值即可滿足下述兩大機率公設。
Softmax在本類別的成員函式有,直接將輸出傳入即可。

  • 0 <= P <= 1
  • Σ(P) == 1

About

從James D. McCaffrey在微軟部落格上的C#開放原始碼修改而來。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages