1. 你好!我在利用BP神經網路時,我的訓練集和預測集的誤差都還可以,只是測試集的誤差很大,怎麼解決
這肯定是出現了過擬合了,你可以做一下改進。1.處理一下數據集,也就是說重新劃分訓練集和測試集2.換一個誤差檢驗函數3.調整一下隱節點個數4.控制學習次數
2. MATLAB神經網路BP,誤差超大,怎樣調試是誤差更接近目標值主要調試哪些參數謝謝。。。
被推薦的答案倒是沒說錯,基本上和沒說一樣…… 就好比問怎麼安排時間,回答一個「合理安排時間」……
誤差大,第一步需要嘗試的是做歸一化處理。有線性歸一化,有對數函數歸一化等等,這個你可以去網上搜索數據歸一化方法,有相關的代碼,應該。
第二部需要做出的改動是隱層節點數量,如果節點數量太多,那麼結果的隨機性就會很大,如果太少,那麼復雜數據的規律計算不出來。多少層節點最合適,這個目前除了一個一個試沒有更好的辦法。但是你會發現每一個相同的結構計算出的結果卻不盡相同,這個時候就需要考慮後續的問題。
第三步嘗試,變換transfer function。麻煩你查查字典,因為我不是用中文學的神經網路。我姑且翻譯成傳輸函數。傳輸函數在matlab中內建了3中 pureline logsig tansig。分別有不同的應用范圍。因為沒看到你的數據,我也不清楚具體應該推薦你用哪一種。不過你可以去網上搜索一下三種傳輸函數的特點。
一般情況下,前三步已經可以解決問題了。
如果不行,那麼你需要嘗試的就是比較高級的內容了。嘗試一下,不行再追問。