深度學習-網絡調參技巧


最近在做深度學習實驗,跑一次實驗輕則以小時計、重則以天計,實在沒有那么多的時間可以等待,因此想想用盡可能少的實驗次數,得到盡可能好的實驗效果。這樣的話,問題就可以歸結為如何設計合適的網絡結構、如何設計合適的訓練策略,主要就是:

  1. 層數、每一層卷積核個數、卷積權重初始化方式、dropout ratio、BN、全連接層神經元個數、Relu等網絡結構參數應該如何選?
  2. 學習率、decay等solver參數又該如何設置?

 

在參考煉丹實驗室的基礎上,並結合自己的體會,談談對調參的理解,大家如果有其他技巧,也歡迎多多交流。

  • 網絡結構設計

如果我們在Cifar10數據集上進行實驗,最好能夠找幾個在該數據集上效果較好的網絡結構,看看別人的網絡超參數是如何設置的,有什么共性(比如每一層卷積核的個數、大小、層數等)。原則就是“盡可能采用成熟的網絡結構,近可能少改動網絡結構”。

  • 實驗的輸出

一般情況下,在實驗的時候會有,train loss、test loss、訓練集准確率、測試集准確率,根據它們的特點,我們大致可以得出網絡的狀態。訓練集准確率高、測試集准確率低,過擬合;訓練集准確率低、測試集准確率低,欠擬合;訓練集、測試集上的准確率和初始狀態相比,沒有明顯的變化,網絡在“徘徊”。

  • “過擬合”

這時候需要提高網絡的泛化能力,例如引入dropout、或者增大已有dropout ration等。

  • “欠擬合”

這時候需要增強模型的擬合能力,,例如增加網絡層數、增加節點數,減少dropout等。

  • “徘徊”

我現在面對的就是這樣的狀態,現在還沒有明確的“應對指導思想”。


免責聲明!

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



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