關于BP神經網絡,你不得不注意的問題1.模型超參數
***BP神經網絡我在學習的過程中模型參數主要覺得這幾個需要關注(學習率,隱藏層神經元個數,隱藏層層數【默認為1】)
***學習率一般范圍是0.01-0.25,學習率太大容易過擬合,太小容易欠擬合,這里可以利用for循環,挨個試試,選取一個最好的參數。
***隱藏層神經元有很多的經驗公式確定,但是經驗公式并不一定具有代表性,可以根據某個經驗公式利用for進行嘗試確定。
***隱藏層層數這里就感覺要是模型輸入參數復雜的話需要多設立一些,之前看的文獻好像是十幾個隱藏層,每層60個神經元,但是感覺有時候一層效果就整挺好。
2.過擬合問題
有很多方法,像提前終止法,正則化方法(L1或L2正則化)等,最直接的是增大訓練樣本,數據質量感覺還是最主要的影響因素。
3.模型構建
主要函數
net = newff(,,S1);
% 訓練集輸入
% 訓練集輸出
%S1 隱藏層神經元個數
4.結果
這里可以用RMSE或者R2或者其他精度評價標準,在這里不太會用得分什么的,沒有太仔細研究。
5.一些原理問題及個人感受
BP神經網絡屬于反向傳播的網絡,即誤差反向傳播,每一次訓練都會根據訓練結果不斷的優化上一次得到的權值和閾值,但是也造成了模型的不確定性,建議固定訓練樣本的選取可能會更好一些。BP神經網絡也由于這個調整權值
閾值,當數據量很大時,運行時間也大大增加,這里應該有很多加速方法神經網絡權值直接確定法,不過沒有嘗試,有時間再試試。
要注意的問題
1.數據輸入時要歸一化,防止擬合極端化,同樣最后經度對比時要反歸一化
2.個人覺得隨機采樣挺好用的,建議多嘗試采樣方式,選擇效果最好的
3.可以用交叉驗證對比模型效果
如果有理解的不到位的地方,希望批評指正神經網絡權值直接確定法,一起交流學習。