2013-04-23 55 views
2

我一直在玩神經網絡。我從近似XOR函數開始,沒有太多問題。但是,然後我攻擊了近似sqrt函數的問題。如何處理神經網絡中的實數?

的問題是輸入和輸出可以是任何實數,不僅號碼0,1] [

有沒有一種方法,我可以處理,神經網絡,使其能直接輸出實數?

或者我必須將輸入和輸出數據標準化爲0,1 [範圍?這不是精確度的損失嗎?

謝謝

回答

1

最後,我發現最合理和最通用的解決方案是對輸入進行歸一化,然後對輸出進行非規格化。

用戶必須設置輸入/輸出範圍,然後一切正常。

這是大多數神經網絡框架所做的。

2

您可以在輸出圖層中選擇另一個激活函數,例如, g(a)= a(身份)。但是,您應該有一個隱藏層,具有非線性激活函數(tanh,logistic)以近似非線性函數。

+0

我剛剛嘗試過。如果我使用tanh或sigmoid作爲隱藏層的激活函數,然後使用輸出圖層中的身份激活函數,那麼我的權重正在變成無窮大時遇到了一些問題......這可能是我的反向傳播算法的一個問題。 – 2013-04-24 07:09:13

+1

這是我能想到這樣一個簡單問題的唯一原因。也許這有助於看到正確的實現,例如https://github.com/AlexanderFabisch/OpenANN/blob/master/src/FullyConnected.cpp(函數:forwardPropagate和backpropagate;帶有矩陣運算) – alfa 2013-04-24 07:59:48