1. 程式人生 > >深度學習引數怎麼調優,這12個trick告訴你

深度學習引數怎麼調優,這12個trick告訴你

1:優化器。機器學習訓練的目的在於更新引數,優化目標函式,常見優化器有SGD,Adagrad,Adadelta,Adam,Adamax,Nadam。其中SGD和Adam優化器是最為常用的兩種優化器,SGD根據每個batch的資料計算一次區域性的估計,最小化代價函式。

學習速率決定了每次步進的大小,因此我們需要選擇一個合適的學習速率進行調優。學習速率太大會導致不收斂,速率太小收斂速度慢。因此SGD通常訓練時間更長,但是在好的初始化和學習率排程方案的情況下,結果更可靠。

Adam優化器結合了Adagrad善於處理稀疏梯度和RMSprop善於處理非平穩目標的優點,能夠自動調整學習速率,收斂速度更快,在複雜網路中表現更優。

2:學習速率。學習速率的設定第一次可以設定大一點的學習率加快收斂,後續慢慢調整;也可以採用動態變化學習速率的方式(比如,每一輪乘以一個衰減係數或者根據損失的變化動態調整學習速率)。

3:dropout。資料第一次跑模型的時候可以不加dropout,後期調優的時候dropout用於防止過擬合有比較明顯的效果,特別是資料量相對較小的時候。

4:變數初始化。常見的變數初始化有零值初始化、隨機初始化、均勻分佈初始值、正態分佈初始值和正交分佈初始值。一般採用正態分佈或均勻分佈的初始化值,有的論文說正交分佈的初始值能帶來更好的效果。實驗的時候可以才正態分佈和正交分佈初始值做一個嘗試。

5:訓練輪數

。模型收斂即可停止迭代,一般可採用驗證集作為停止迭代的條件。如果連續幾輪模型損失都沒有相應減少,則停止迭代。

原文連結