《深度學習調優指南.系統性優化模型》中文版 熱消息
向AI轉型的程序員都關注了這個號
(資料圖片僅供參考)
PDF獲取地址:
關注微信公眾號 datayx 然后回復指南 即可獲取。
提高模型性能的科學方法機器學習開發的最終目標是最大化模型的效用。盡管不同應用場景的開發流程有所不同(例如時間長度、可用計算資源、模型類型等),基本步驟和原則都是相似的。
接下來的指南中我們做出了這些假設:
已有能運行且得到不錯結果的訓練工作流。
有足夠的計算資源來進行調參實驗,至少能夠并行發起數個訓練流程。
增量調整策略總結:從簡單的配置開始,循序漸進,同時進一步了解問題。確保任何改進都有據可循,以避免增加不必要的復雜度。
我們的最終目標是找到一種訓練配置來最大化我們模型的性能。
在某些情況下,我們的目標是在固定截止日期(例如提交給競賽)之前最大限度地改進模型。
在其他情況下,我們希望無限期地改進模型(例如,不斷改進生產中使用的模型)。
原則上,我們可以使用算法自動搜索整個配置空間來最大化性能,但實踐中這往往不實際。
配置空間可能非常大,目前還沒有任何算法可以在沒有人工指導的情況下有效地搜索這個空間。
大多數自動搜索算法依賴于人工設計的搜索空間,這些搜索空間往往非常重要。
更有效的方法是從簡單的配置開始,逐步添加功能并進行改進,同時深化對問題的理解。
我們在每一輪調整中都使用自動搜索算法,并隨著我們理解的深度不斷更新我們的搜索空間。
隨著我們的探索,我們自然會找到越來越好的配置,因此我們的“最佳”模型將不斷改進。
當我們更新我們的最佳配置時,我們稱之為上線(這不一定對應線上模型的實際上線)。
對于每次上線,我們必須確保更改是有據可循的——而不僅僅是碰運氣找到的配置——以避免給訓練工作流增加不必要的復雜性。
綜上所述,我們的增量調優策略需要重復以下四個步驟:
為下一輪實驗確定適當的目標。
設計并展開實驗,朝著這個目標取得進展。
從實驗結果中獲取經驗。
考慮是否上線新的最佳配置。
本節的其余部分將更詳細地講解增量調優策略。
探索與利用總結:大多數時候,我們的目標是更深入地理解問題。
盡管有些人認為我們會花大部分時間來提升驗證集的指標,實際上我們把重心放在進一步理解問題上,而不是降低驗證集錯誤率。
也就是說,我們大部分時間都花在了“探索”上,只有一小部分時間花在了“利用”上。
從長遠來看,如果我們想最大化我們的最終效果,深入理解問題是至關重要的。將深化理解置于短期收益之上可以幫助我們:
避免僅因歷史原因而表現良好的不必要更改。
確定驗證集效果對哪些超參數最敏感,哪些超參數交互最多,因此需要一起重新調整,以及哪些超參數對其他變化相對不敏感,因此可以在未來的實驗中固定住。
發現潛在的新方向,例如在出現過擬合問題時使用新的正則化器。
確定無效的方向并將其刪除,從而降低后續實驗的復雜度。
判斷超參數的優化空間是否已經飽和。
圍繞最佳值縮小我們的搜索空間,以提高調整效率。
最終,我們可以集中提升驗證集效果,即便我們無法從新的實驗中進一步了解問題的結構了。
選擇下一輪實驗的目標總結:每輪實驗都應該有一個明確的目標,并且范圍要足夠小,這樣實驗才能真正朝著目標取得進展。
每輪實驗都應該有一個明確的目標,并且范圍要足夠小,這樣實驗才能真正朝著目標取得進展:如果我們試圖一次添加多個特征或回答多個問題,我們可能無法理清各自的影響。
舉個例子,目標可以包括:
嘗試對訓練流程進行改進(例如,新的正則化器、預處理方法等)。
了解特定模型超參數(例如激活函數)的影響
最大化驗證集指標。
設計下一輪實驗總結:根據實驗目標,將超參數分為三類:目標超參數、冗余超參數和固定超參數。創建一系列研究以比較目標超參數的不同值,同時優化冗余超參數。注意選擇冗余超參數的搜索空間,以平衡資源成本與科學價值。
識別目標超參數、冗余超參數和固定超參數對于給定的目標,所有超參數都將是目標超參數、冗余超參數或固定超參數。
因為實驗固定了某些超參數,從實驗得出的結論可能對固定超參數的其他值無效。換句話說,固定的超參數對我們的實驗結論做了限定。
目標超參數是指,我們希望測量出其對于模型由何種影響的參數。
冗余超參數是指,必須優化才能公平比較不同目標超參數值的參數。類似于統計中的冗余參數。
固定超參數是指,在當前輪次實驗中取固定值的參數。在比較目標超參數的不同值時,固定超參數的值不需要(或者我們不希望它們)改變。
舉個例子,如果我們的目標是“確定更深的模型是否會減少驗證集錯誤”,那么模型層數就是目標超參數。
學習率是一個冗余超參數,如果我們要公平對比不同深度的模型,我們必須分別調整學習率(通常情況下最優學習率和模型結構有關)。
激活函數是一個固定超參數。我們可能通過過去的實驗發現最優激活函數和模型深度無關。或者我們接受實驗得到的最優深度的僅在某個激活函數上有效。或者我們也可以將激活函數作為一個冗余超參數和深度一起調優。
一個超參數是目標超參數、冗余超參數還是固定超參數是根據實驗目標來決定的。
比如,激活函數的選擇可以是一個目標超參數(對于當前問題,ReLU 或 tanh 是更好的選擇嗎?),一個冗余超參數(允許使用不同的激活函數,最好的 5 層模型是否優于最好的 6 層模型?),或一個固定超參數(對于一個由 ReLU 構成的網絡,在特定位置添加批標準化是否有幫助?)。
在設計新一輪實驗時,我們根據實驗目的確定目標超參數。
在此階段,我們將所有其他超參數視為冗余超參數。
接下來,我們將一些冗余超參數轉作為固定超參數。
一個冗余超參數和目標超參數的相互影響越多,固定這個參數所帶來的限制就越多。例如,權重衰減強度的最佳值通常取決于模型大小,因此固定權重衰減的強度來比較不同的模型大小,往往得不出有效的結論。
如下文所述,我們可以通過增加計算資源來應對這種風險,但通常我們的最大資源預算低于調整所有非目標超參數所需的計算資源。
如果有無限的計算資源,我們會將所有非目標超參數保留為冗余超參數,這樣我們從實驗中得出的結論就不會受到固定超參數的限定。
然而,冗余超參數越多,我們沒能充分針對每個目標超參數調優冗余超參數的風險就越高,從而我們從實驗中得出錯誤結論的風險也越高。
當我們判斷將一個冗余超參數轉換為固定超參數所帶來的限制少于調優它所需的計算資源時,我們可以進行這種轉換。
盡管超參數的類型取決于實驗目標,但對于某些類別的超參數,我們有以下經驗法則:
例如,網絡層數通常是一個目標或固定的超參數,因為它往往會對訓練速度和內存使用產生巨大影響。
例如,dropout 增加了代碼的復雜性,因此在決定是否包含它時,我們會將“no dropout”與“dropout”作為一個目標超參數,而將 dropout 率作為一個冗余超參數。
如果我們決定根據這個實驗將 dropout 添加到我們的訓練流程中,那么在未來的實驗中,dropout 率將是一個冗余超參數。
如果我們的實驗目標涉及在兩個或多個不同的優化器之間進行公平比較(例如“確定哪個優化器在給定的步數中產生最低的驗證錯誤”),那么它就是一個目標超參數。
或者,我們可能出于各種原因將其設為固定超參數,包括(1)先前的實驗表明最好的優化器和當前的目標超參數無關;(2)當前優化器的訓練曲線更容易理解 (3) 當前優化器比其他優化器使用更少的內存。
它們很少是目標超參數,因為像“訓練流程的最佳學習率是多少?”這樣的目標沒有什么意義——最優學習率很容易隨著下一次訓練流程的改變而改變。
盡管當資源有限或有強力的證據表明它們不影響目標超參數時,我們可能固定其中一些參數,但通常應該假設優化器超參數必須單獨調整,以在不同設置之間進行公平比較目標超參數。
此外,我們沒有優化器超參數值的先驗傾向(例如,它們通常不會以任何方式影響前向傳遞或梯度的計算成本)。
在各種優化器超參數(例如學習率、動量、學習率調度參數、Adam優化器的beta等)中,至少有一些是冗余超參數,因為它們往往與其他變化相互影響。
相比之下,優化器的選擇通常是一個目標超參數或固定超參數。
正則化技術引入的超參數通常是冗余超參數,但是否使用正則化技術往往是目標或固定超參數。
模型結構超參數通常是目標或固定超參數,因為模型結構變化會影響服務和訓練成本、延遲和內存需求。
在某些情況下,一個超參數是冗余還是固定超參數將取決于目標超參數的值。
例如,假設我們想知道 Nesterov momentum 和 Adam 中哪個優化器的驗證錯誤率更低。目標超參數是optimizer,它的值是{"Nesterov_momentum", "Adam"}。值optimizer="Nesterov_momentum"引入了冗余/固定超參數{learning_rate, momentum},但值optimizer="Adam"引入了冗余/固定超參數{learning_rate, beta1, beta2, epsilon}。
僅針對目標超參數的某些值存在的超參數稱為條件超參數。
我們不應該僅僅因為兩個條件超參數具有相同的名稱就認為它們是相同的!在上面的示例中,learning_rate對于optimizer="Nesterov_momentum"與optimizer="Adam"是不同的條件超參數. 它在兩種算法中的作用相似(盡管不完全相同),但在每個優化器中運行良好的值范圍通常相差幾個數量級。
機器學習算法AI大數據技術
搜索公眾號添加:datanlp
長按圖片,識別二維碼
閱讀過本文的人還看了以下文章:
TensorFlow 2.0深度學習案例實戰
基于40萬表格數據集TableBank,用MaskRCNN做表格檢測
《基于深度學習的自然語言處理》中/英PDF
Deep Learning 中文版初版-周志華團隊
【全套視頻課】最全的目標檢測算法系列講解,通俗易懂!
《美團機器學習實踐》_美團算法團隊.pdf
《深度學習入門:基于Python的理論與實現》高清中文PDF+源碼
《深度學習:基于Keras的Python實踐》PDF和代碼
特征提取與圖像處理(第二版).pdf
python就業班學習視頻,從入門到實戰項目
2019最新《PyTorch自然語言處理》英、中文版PDF+源碼
《21個項目玩轉深度學習:基于TensorFlow的實踐詳解》完整版PDF+附書代碼
《深度學習之pytorch》pdf+附書源碼
PyTorch深度學習快速實戰入門《pytorch-handbook》
【下載】豆瓣評分8.1,《機器學習實戰:基于Scikit-Learn和TensorFlow》
《Python數據分析與挖掘實戰》PDF+完整源碼
汽車行業完整知識圖譜項目實戰視頻(全23課)
李沐大神開源《動手學深度學習》,加州伯克利深度學習(2019春)教材
筆記、代碼清晰易懂!李航《統計學習方法》最新資源全套!
《神經網絡與深度學習》最新2018版中英PDF+源碼
將機器學習模型部署為REST API
FashionAI服裝屬性標簽圖像識別Top1-5方案分享
重要開源!CNN-RNN-CTC 實現手寫漢字識別
yolo3 檢測出圖像中的不規則漢字
同樣是機器學習算法工程師,你的面試為什么過不了?
前海征信大數據算法:風險概率預測
【Keras】完整實現‘交通標志’分類、‘票據’分類兩個項目,讓你掌握深度學習圖像分類
VGG16遷移學習,實現醫學圖像識別分類工程項目
特征工程(一)
特征工程(二) :文本數據的展開、過濾和分塊
特征工程(三):特征縮放,從詞袋到 TF-IDF
特征工程(四): 類別特征
特征工程(五): PCA 降維
特征工程(六): 非線性特征提取和模型堆疊
特征工程(七):圖像特征提取和深度學習
如何利用全新的決策樹集成級聯結構gcForest做特征工程并打分?
Machine Learning Yearning 中文翻譯稿
螞蟻金服2018秋招-算法工程師(共四面)通過
全球AI挑戰-場景分類的比賽源碼(多模型融合)
斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)
python+flask搭建CNN在線識別手寫中文網站
中科院Kaggle全球文本匹配競賽華人第1名團隊-深度學習與特征工程
不斷更新資源
深度學習、機器學習、數據分析、python
搜索公眾號添加:datayx
關鍵詞:
您可能也感興趣:
為您推薦
烏茲的壓制力Uzi盧錫安下路十五分鐘狂壓50刀_環球快播報
當前觀點:很多人都誤解了“愛自己”
債市行情速遞丨國債期貨各主力合約微漲 天天觀點
排行
最近更新
- 《深度學習調優指南.系統性優化模型》中文版 熱消息
- 用于小斷面隧道開挖的施工平臺可伸縮式機動臺車_關于用于小斷...
- 聽聲辨生熟 每天拍瓜上萬個 拍瓜師火了 西瓜種植行業現狀趨勢
- 新手海竿線組組裝圖解 雙釣(新手海竿線組組裝圖解)
- 世界速遞!唯和惟的區別是什么意思(唯和惟的區別是什么)
- 張少杰哎上課_張少杰 微速訊
- 數字魔方游戲java_數字魔方 今熱點
- 端午節假期 河南高速全時段全路段禁止危險貨物運輸車輛通行-...
- 快報:女子因瑣事將農藥倒入父親的止咳糖漿瓶內 涉故意殺人...
- 項目為王丨臨潁:鉚足干勁 跑出項目建設“加速度”|全球實時
- 梅耶馬斯克中國行!背后大贏家竟是這家中國手機品牌
- iOS 17.0 beta 2 即將上線,準備好了嗎?_全球看熱訊
- 液化氣高壓鍋燉牛肉要多久? 當前頭條
- 豬肉的熱量是多少?
- 世界速讀:首日超10萬人次網友“扇動中國風” 助力傳統文化...
- 【報資訊】公司丟失勞動合同的案例分析
- 一切都是馬腚問題:為啥軍隊沒有普遍裝備60發彈匣 環球快看
- 【全球快播報】【新聞早餐】威力很猛!紹興人挺住,今天來了
- 案例:210萬存款不翼而飛,銀行卻說與我無關
- 硅谷銀行的外國儲戶慘了:存款被“清零”,貸款卻必須還!
- 村民阻攔拖拉機通過自家屋前水泥路,爭執中手卷入輪中受傷,...
- ?國家新聞出版署:6月共89款國產網絡游戲獲批 當前播報
- 現代汽車CEO:考慮加入特斯拉超級充電站網絡 正研究客戶需求
- 基爍股份擬向銀行申請3000萬授信 實際控制人王勇、陶莎莎提供擔保
- 文明之火長燃不熄
- 包含9個項目表,4張項目地圖及5份年度報告!亞化咨詢半導體數...
- 第一季度,哈薩克斯坦居民餐桌發生了哪些變化?
- 手機網貸有哪些好下款?這10個用戶評價很高-天天快報
- 安逸花逾期三年的后果是什么?會從別的銀行卡強制劃扣嗎?
- 世界速訊:STAYREAL線下店再現西單,五月天阿信重回北京掘金