一千萬個為什麽

搜索

非線性回歸。具有深度神經網絡的通用函數逼近

要解決的問題是非線性函數的非線性回歸。我的實際問題是模擬函數“找到多個二次形式的最大值”:max(wHT Q w),但是為了開始並進一步了解神經網絡,我創建了一個玩具示例一個非線性回歸任務,使用Pytorch。問題是網絡永遠不會以令人滿意的方式學習該功能,即使我的模型有很多層(見下文)。或者它不夠大還是太大?如何改進網絡或甚至簡化網絡以獲得更小的訓練錯誤?

我嘗試了不同的網絡架構,但結果永遠不會令人滿意。通常在0左右的輸入間隔內誤差非常小,但是網絡無法在間隔邊界處獲得良好的權重(參見下面的圖)。在一定數量的時期之後,損失並沒有改善。我可以生成更多的訓練數據,但我還沒有完全理解,如何改進訓練(調整參數,如批量大小,數據量,層數,歸一化輸入(輸出?)數據,神經元數量,時代等)

我的神經網絡有8層,具有以下數量的神經元:1,80,70,60,40,40,20,1

目前我並不太關心過度擬合,我的目標是理解為什麽需要選擇某種網絡架構/某些超級參數。當然,同時避免過度擬合將是一個獎勵。

我特別感興趣的是將神經網絡用於回歸任務或函數逼近器。原則上我的問題應該能夠通過單層神經網絡逼近任意精度,根據通用逼近定理,這不是正確的嗎?

Difference between trained model and original data

Loss value vs iterations

Difference between trained model and original data

最佳答案

神經網絡在大輸入範圍內學習很差。將輸入縮放到較小的範圍,例如-2到2,並轉換為/從此範圍轉換為一致地表示您的函數間隔。

轉載註明原文: 非線性回歸。具有深度神經網絡的通用函數逼近