超參數調優


在神經網絡中,有許多超參數需要設置,比如學習率,網絡層數,神經元節點數

所謂超參數,就是不需要訓練的參數,需要人為設定的參數。

這些超參數對模型的訓練和性能都有很大影響,非常重要,那么這些超參數該怎么設定呢?

一般我們可以根據經驗來設定,但是經驗畢竟有限,而且也不科學。

 

驗證數據

在模型訓練時,我們通常會有訓練數據和測試數據,訓練數據用來訓練,測試數據用來測試,但是這兩個數據都不能用來調參,為什么呢?因為如果用訓練數據來調參,很容易過擬合,如果用測試數據來調參,模型的泛華能力很難保障。

所以只能用驗證數據來調參。測試數據是用來評估模型的,而且最好只用一次。

在選取驗證數據時要打亂數據,原因如下:

1. 使得類別分布均勻,避免選取數據中只有某些類別

2. 如果不打亂,比如樣本按類別順序0-10排列,那么剛開始模型很快找到類別0的權重,但是到類別1時,又成了類別1的權重,最后成了類別10的權重,當然沒有這么極端,但是模型肯定會存在“偏向”

 

超參數的優化

超參數優化總體思路是重復探索,並且不斷縮小探索范圍。

具體怎么理解呢?

就是剛開始設置一個較大的范圍,然后隨機選擇某個值,訓練並評估模型的效果,然后重復該操作,從多個結果中選擇效果好的對應的參數區間,這就縮小了探索范圍,

然后重復上述操作,再次縮小范圍,直到取到合適范圍。(研究表明隨機取值效果比有規律取值效果好)

此過程注意以下幾點:

1. 初始范圍設定以10的階乘為尺度,如 10-3到104

2. 每次訓練迭代次數不能太大,因為神經網絡訓練本來就比較慢,在優化過程中需要多次訓練,如果每次訓練迭代次數很多,總耗時會非常長,

而且我們只是為了選參數,如果參數合適,會很快收斂,只要收斂效果就會不錯,沒必要非得收斂到最小值

 

總結一下步驟

1. 設定初始范圍,每個參數一個范圍

2. 隨機選擇參數值

3. 訓練模型驗證精度

4. 重復2 3步,根據精度來縮小取值范圍

5. 返回步驟1

 

圖示如下

上圖是多次試驗后,按精度高低順序畫出的效果圖,可以看到前5次准確率在0.8以上,從第6次開始,精度跌倒0.6以下

 

前5個圖對於的參數如圖

這個結果可以看出,學習率在 0.001 到0.01之間,等等

 

總結

其實無論是機器學習還是深度學習,調參思路都差不多,在實際項目中,要結合實際情況靈活運用。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM