我已經通過了我的所有代碼,如果它真的是問題,那麼我不知道它是如何避開我。發帖太久了,所以我會告訴你我的問題,我想要解決的問題,如果你有任何想法,我還可以尋找什麼,我會非常感激!好吧,所以首先按照haykin的指示,用平均零和方差等於該神經元輸入數量的1 /平方根初始化權重。MLP神經網絡不會學習
我已經餵它一個簡單的正弦波首先學習。隱藏層中的權重似乎會收斂,從而爲該層內的每個神經元提供相同的輸出......這使得輸出神經元給出幾乎固定的輸出。
那麼,可能是什麼原因?首先,我檢查了網絡學習率是否導致它陷入局部最小值並增加了它,並且還嘗試着沒有動力的&。我發現它在一定程度上糾正了這個問題,因爲網絡產生了正弦波。但是,不正確! :(
網絡輸出的振幅大約是離中心軸高度的三分之一,並且不會下移,看起來有點像你選擇了正弦波,擠壓了三分之一,並將其提升到坐在它的軸上的最低峯,此外,頂峯都是平坦的...此外,頂點都是平坦的...
我試着改變網絡拓撲結構,因此如果我添加另一個隱藏的神經元(總共3個)它突然只給出一個固定的輸出。
雖然你的代碼可能太長,沒有代碼,但很難知道你的問題是什麼。也許你可以發佈你的輸出圖片和你認爲會導致問題的部分代碼。您的激活功能是否與有限的域名一起使用?例如,Sigmoid輸出被限制爲[0,1]。這聽起來像你可能需要改變你的功能或擴大你的數據,然後再送入網絡(並重新調整輸出)。 – 2013-04-28 23:58:32