2014-11-08 428 views
14

我有5184倍的值(兩位數字的值,換算成字節的圖像)的22個輸入的神經網絡,並且我試圖設置2個輸出具有值0或1,如:我的神經網絡有多少個輸出神經元?

<input data line with 5184 values> 
0 1 
<input data line with 5184 values> 
1 0 
<input data line with 5184 values> 
. 
. 
. 

而且,當我做這樣的訓練,我得到如下結果:

Epochs   1. Current error: 0.3750000000. Bit fail 33. 

那麼,這一點失敗了? The documentation says

失敗位數;意味着 不同於失敗極限的輸出神經元數量。

但是,如果我只有2個輸出,我怎麼能有33個輸出神經元失效?

--update

我想象這33可以是從總44個輸出(2從各22個輸入)的。但是文檔中沒有什麼可以證實這一點...

回答

9

數字'33'是神經網絡訓練期間輸出與預期目標輸出之間的「差異」以上的數量。這只是表示你的神經網絡偏離了期望輸出的33位'太多'。請注意,它計算了所有的輸出,並給出了一個當前的「錯誤率」,這對你來說是37.5%。根據文檔,標準錯誤率容差爲0.35,因此假設這是33%40 = 1320位輸出中的錯誤位數相當於33位的2.5%。或者至少這是我從這些文檔頁面瞭解到的。

您可能意外地有超過2個輸出。 1320/22 = 60.

+0

感謝您的回答!我不明白這個'33 * 40',你的意思是'33 * 44'?或者這個'40'來自哪裏? 此外,如果我打印'fann_num_output_train_data',我得到'2',所以看起來像輸出是正確的。無論如何,你確實幫助澄清了一些失敗的東西,謝謝! – 2014-11-17 22:20:55

+0

40來自2.5%。 2.5 * 40 = 100%,這應該是你的全部。從這三個事實我可以用一些基本的數學計算最後的值。當然,我假設錯誤信息是正確的。 – aphid 2014-11-18 07:53:24

+0

我明白'1320'爲'(33/2.5)* 100 = 1320'。但是我仍然試圖弄清楚這個「40」......如果我做了1320/33我得到了40個,但是這40個真的意味着什麼? – 2014-11-30 20:01:38