2012-01-16 59 views
0

我目前有,我一直無法弄清楚幾天與Java中的自我實現的神經網絡有問題。我的網絡有兩個輸入神經元,分別對應給定灰度圖像中一個像素的x和y座標,以及一個表示像素色調的輸出。我使用的學習算法是RPROP。我遇到的問題是,在用整個訓練數據集餵養網絡的許多次迭代之後,它收斂到離期望距離很遠的點,並且在分析了融合網絡的重量結構之後,我可以看到所有神經元在隱藏層中具有完全相同的輸入權重集合。這與隱藏層中神經元的數量無關。是否由於我使用相同的值初始化網絡中的所有權重?我嘗試隨機化權重,但它並沒有讓事情變得更好。我在除輸出圖層外的所有圖層中使用S形(tanh)激活函數。我不知道我是否在實現中犯了一個錯誤,或者是否誤解了神經網絡學習過程的某些數學描述。有誰知道什麼可能會導致這種奇怪的行爲?自我實現的神經網絡奇怪convergance

回答

0

是否使用偏置單位?我會查找神經網絡中偏置單元的使用。另外,如果您正在做一個簡單的開箱即用的實現,您可能需要根據已知的NN庫來測試您的工作的迭代結果。

0

嘗試打印出網絡正在進行的調試。如果您的單位數量很少,則可以打印激活,增量,權重和對權重的更改。如果你有很多 - 你可以嘗試打印出絕對值的平均值。

這可能會導致您遇到問題。

此外 - 你有沒有嘗試玩的學習率/勢頭?