訓練深度學習(xi) 模型需要付出大量的努力和時間,深度學習(xi) 調參是需要人工參與(yu) ,且需要大量人工經驗。
深度學習(xi) 專(zhuan) 家與(yu) 入門學習(xi) 者在經驗上存在較大差異,本文將介紹深度學習(xi) 調參的基礎流程。
步驟1:選擇網絡結構
在開始一個(ge) 新項目時,嚐試重用一個(ge) 已經可用的模型。
- 選擇完善的、常用的模型架構開始工作,然後開始構建自定義模型;
- 設置模型架構的各種超參數,用於確定模型的大小和其他細節;
- 網絡結構應該考慮選擇模型超參數的問題。可以一篇類似論文中推薦的網絡結構;
步驟2:選擇優化器
從(cong) 問題類型代碼中最流行的優(you) 化器開始。
- 在所有問題和網絡模型中,沒有優化器是絕對最好的。
- 建議使用成熟、流行的優化器,尤其是在開始新項目時。
- 從簡單的優化器開始,然後逐步調整優化器超參數。
步驟3:選擇批大小
批量大小決(jue) 定訓練速度,不應該直接用來調整驗證集的性能。
- 理想的批量大小將是可用硬件支持的最大批量大小,批量大小是決定訓練時間和計算資源消耗的關鍵因素。
- 增加批大小可以減少開發周期,可以測試更多想法,批量大小不應被視為驗證集性能的可調超參數。
- 大部分情況下,隻要超參數都經過良好調整並且訓練步數足夠,使用任何批量大小都應該可以獲得相同的最終性能。
步驟4:初始化超參數
找到一個(ge) 簡單、相對快速、資源消耗相對較低的初始化方法,以獲得“合理”的結果。
- 確定初始化將需要一些手動配置,避免花裏胡哨的東西
- 選擇快速且消耗最少資源的初始配置
- 可以減少訓練周期來嚐試更多實驗
步驟5:調整並優化模型
從(cong) 一個(ge) 簡單的配置開始,逐步進行改進,同時深入了解問題,確保任何改進都有效。
- 可以通過使用自動搜索追求性能最大化,但這不是一個實用的選擇。
- 大多數自動搜索算法都依賴於手動設計的搜索空間,該搜索空間定義了要搜索的配置集,搜索空間非常重要。
- 隨著不斷嚐試,會找到越來越好的配置,因此“最佳”模型將不斷改進。
步驟6:分析實驗結果
除了努力實現每組實驗外,如果發現問題,需要分析實驗結果
- 每組實驗都有一個特定的目標,如果我們提出正確的問題,我們通常會需要改進的地方。
- 實驗結果取決於實驗是否充足,如搜索空間是否足夠大?樣本量是否足夠?
參考資料
-
https://github.com/google-research/tuning_playbook
-
https://neptune.ai/blog/hyperparameter-tuning-in-python-complete-guide
-
https://www.coursera.org/learn/deep-neural-network
評論已經被關(guan) 閉。