0

我已經完成了用於多層,前饋,反向傳播結構的Python中的神經網絡編碼。在這個網絡結構中,輸入層有24個節點,隱藏層有18個節點,輸出層有1個節點。對於小數據集,我獲得了良好的訓練結果,但對於大數據輸入,我無法設置常量參數的值,如學習率,動量率等。 我輸入樣本的輸入值爲:大數據樣本的神經網絡參數值應該是多少?

[[1,0,1,0,1,0,1,0,1,1,1,1,0,0,0,0,0,1,1,1,0,1,0,1] 
[1,0,1,0,1,0,1,0,1,1,1,1,0,0,0,0,0,1,1,1,0,1,0,1] 
[1,0,1,0,1,0,1,0,1,1,1,1,0,0,0,0,0,1,1,1,0,1,0,1] 
. 
. .........................      ] 

而對於目標值作爲輸入樣本:

[[-20.0] 
[-10.0] 
[30.0] 
    . 
    .....] 

樣品的總數爲5000左右。 我已經訓練使用

learning_rate = 0.01 
momentum_rate = 0.07 
01這個網絡

它給出了很好的結果,但花費了大量的時間和迭代大約500000. 有沒有什麼好的建議,以設置學習率和動量率,所以我可以快速得到我的結果。或者我應該引入提高學習率比率,如果我介紹學習率那麼應該是什麼值?

+0

你如何確定你的結果有多好?你有驗證集嗎?一個測試集?如果你這樣做了,並且使用一些小數據集,你會得到比使用大量數據更好的結果,那麼數據可能有問題 – cruvadom 2014-10-16 23:50:36

回答

0

這很可能是一個試驗和錯誤的過程,以便更快地學習神經網絡。

如果你想更快地獲得結果,那麼你可能會增加學習率(更大的權重調整),丟棄一些隱藏層神經元或輸入(減少計算)或者減少迭代次數,但是這個也可能會降低測試和驗證集性能。

如果您有時間,可以對這些選項進行測試和比較,以確定是否可以針對您的問題實現更快的學習。