2013-09-16 46 views
2

我有一個使用RPOP下面神經網絡 -輸出值expeceted是從0到1,但有時會產生超過1

NetCore = new BasicNetwork(); 
NetCore.AddLayer(new BasicLayer(null, false, 32)); 
NetCore.AddLayer(new BasicLayer(new ActivationTANH(), true, 65)); 
NetCore.AddLayer(new BasicLayer(new ActivationTANH(), true, 65)); 
NetCore.AddLayer(new BasicLayer(new ActivationSigmoid(), false, 1)); 
NetCore.Structure.FinalizeStructure(); 
NetCore.Reset(); 

(我已經發布的代碼只是爲了是輕快反向傳播請確保我做得對,如果沒有人會指出,我希望)

在訓練網絡後,錯誤率最小化爲1%左右,我通過測試數據和大部分時間的輸出是產生了這樣的「5,07080020755566E-10」,其中我期望從0到1的數字,還應該注意的是,當這種情況發生時,它們總是正數(沒遇到負數還沒有產出)。

我想問的第二個問題如下:神經網絡是爲了預測足球比賽,所以考慮到我有32個輸入。 16個輸入球隊1的性能數據和16是球隊2.

準備套,像這樣的訓練:說我們有1000場比賽和所有的訓練集輸出的是1

所以在訓練集反轉比賽的準備加上additonaly,輸出爲0,當然第一組和第二組輸入分別改變。

,當測試中,我得到下面的結果爲同一場比賽

Output 0,0125940938512236 Desired 1 direct 
Output 0,0386960820583483 Desired 0 reversed 

問題是爲什麼? :)

我會感謝任何幫助。傳播這個問題的燈光會指向我應該挖掘的方向。 在此先感謝。

回答

2

訓練完網絡後,錯誤率最小化到1%左右,我通過測試數據,大部分時間產生的輸出是這樣的「5,07080020755566E-10」,其中我期望的數字0到1,還應該注意的是,當發生這種情況時,它們總是正數(尚未遇到負輸出)。

5,07080020755566E-10 數字0和1之間。這是一個非常小的數目 - 僅只是一點點高於0.1(我假設你的文化使用逗號作爲小數點分隔符。 )它是0,00000000050708(...) - E-10的意思是「向右移動10個小數位」。

我沒有真正關注你的第二個問題 - 我建議你單獨提問,並提供更多細節 - 假設它確實是一個編程問題。 (目前很難說)