在BP神經網絡的實驗中,我發現對於attribute很大,或者instance很多,累加到神經元處遠遠大於1。導致最終結果總是不對勁。
最開始想到的是換激活函數,找好函數的時候突然發現,本身BP神經網絡的后向傳播就是利用了sigmoid函數求導可以用原函數表示的特性。
那既然不能動激活函數的情況下,我想到最快的方法就是對輸入數據進行歸一化。
(不過現在還沒想清楚歸一化還有對不同量級的輸入進行歸一化是否會影響結果)
歸一化和標准化:
最大最小歸一化——Matlab中使用mapminmax函數
標准歸一化——Matlab中使用mapstd函數
摘自知乎——https://www.zhihu.com/question/20455227
歸一化和標准化本質上就是對向量
按照比例壓縮再進行平移,也就是一種線性變換。
線性變換保持線性組合與線性關系式不變,這保證了特定模型不會失效。
歸一化標准化區別:
數據歸一化后,最優解的尋優過程明顯會變得平緩,更容易正確的收斂到最優解。
什么時候用歸一化,什么時候用標准化?