深度學習 如何系統地除錯並選擇超引數

2021-08-15 06:20:46 字數 950 閱讀 2128

我們都知道,在深度學習乃至機器學習過程中,有很多超引數需要除錯。本文主要介紹深度學習超引數除錯方法。

各引數重要性排序(由重要到不重要),排序根據吳恩達所述:

學習率、隱藏層單元數、mini batch大小、隱層數、學習率衰減係數。

根據博主除錯**的經驗,重要性排序如下:

隱層數、隱藏層單元數、mini batch大小、學習率、學習率衰減係數。

andrew ng說的情況適用於資料很多特徵很多,我說的情況適用於資料不大(千級別資料)且特徵較少(十級別特徵)。

那麼如何除錯呢?

假設只有兩個超引數需要除錯,常見的做法為取乙個網格:

均勻取樣,例如各取5個數值,總共25種情況,每一種都試一遍,取最優情況。

但在深度學習中,最好隨機取值:

原因很簡單,因為深度學習的超引數很多,這樣的話兩種引數都可以同時嘗試25種數值,更容易對比出哪一種引數對結果的影響更大。

如果有三個超引數需要除錯,則取三維網格,以此類推。

而當你找到乙個最優值的時候,放大這塊區域,更加精確化地在此區域周圍進行搜尋:

至於超引數如何如何隨機取值呢?這個比較講究了。

比如學習率,你認為取值範圍為0.001到1之間,但是如果直接線性random的話,90%的值都會集中在0.1到1之間。而0.001到0.1之間只佔很小的比值。

那怎麼辦呢?取對數。以10為底數,0.001取對數為4,1取對數為0,然後你再在0到4之間線性取值,再以10指數還原,便得到理想的隨機值了。

深度學習網路優化與超引數選擇

過擬合 在訓練資料上得分很高,在測試資料上得分相對比較低 欠擬合 在訓練資料上得分很低,在測試資料上得分相對比較低 與網路中的可訓練引數成正比。網路中的神經單元數越多,層數越多,神經網路的擬合能力越強。但是訓練速度 難度越大,越容易產生過擬合。所謂超引數,也就是搭建神經網路中,需要我們自己如選擇 不...

AI開發 深度學習如何選擇GPU?

機器推理在深度學習的影響下,準確性越來越高 速度越來越快。深度學習對人工智慧行業發展的貢獻巨大,這得益於現階段硬體計算能力的提公升 網際網路海量訓練資料的出現。本篇文章主要介紹深度學習過程中如何選擇合適的gpu顯示卡,如果你是深度學習新手,希望這篇文章對你有幫助。推理用到的硬體分兩種,一種是專業ai...

如何讓深度學習模型更高效地執行

1.bottleneck或者depthwise或者winograd bottleneck或者depthwise這兩種方法可以大大降低參數量和計算量,winograd是降低卷積的乘法量 沒有任何精度損失 詳見我的另外三篇部落格 需要注意的是winograd fft卷積不一定有利於模型加速 2.稀疏化 ...