深度學習中的超引數優化

2021-10-02 06:09:43 字數 786 閱讀 7958

構建深度學習模型時,你必須做出許多看似隨意的決定:應該堆疊多少層?每層包含多少個單元或過濾器?啟用函式應該使用relu還是其他函式?在某一層之後是否應該使用batchnormalization?應該使用多大的dropout比率?還有很多,這些在架構層面的引數叫做超引數(hyperparameter),以便將其與模型引數區分開來,後者通過反向傳播進行訓練。

在實踐中,經驗豐富的實戰者憑著直覺能夠判斷上述選擇哪些可行、哪些不可行。但是調節超引數並沒有正式成文的規則。如果想要在某項任務上達到最佳效能,就不能滿足於乙個容易犯錯的人隨意做出的選擇。即使你擁有很好的直覺,最初的選擇也幾乎不可能是最優的。

因此,我們需要制定乙個原則,系統性的自動探索可能的決策空間。超引數優化過程通常如下所示。

1)選擇一組超引數(自動選擇)。

2)構建相應的模型。

3)將模型在訓練資料上擬合,並衡量其在驗證資料上的最終效能。

4)選擇要嘗試的下一組超引數(自動選擇)。

5)重複上述過程。

6)最後,衡量模型在測試資料上的效能。

訓練模型權重相對簡單:在小批量資料上計算損失函式,然後用反向傳播演算法讓權重向正確的方向移動。與此相反,更新超引數則非常具有挑戰性。

1)計算反饋訊號(這組超引數在這個任務上是否得到了乙個高效能的模型)的計算代價可能非常高,他需要在資料集上建立乙個新模型並從頭開始訓練。

2)超引數空間通常由許多離散的決定組成,因而既不是連續的,也不是可微的。因此,你通常不能在超引數空間中做梯度下降。相反,你必須依賴不使用梯度的優化方法,而這些方法的效率比梯度下降要低很多。

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

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

引數學習 深度學習超引數調整

1 batchsize 每批資料量的大小。dl通常用sgd的優化演算法進行訓練,也就是一次 1 個iteration 一起訓練batchsize個樣本,計算它們的平均損失函式值,來更新引數。2 iteration 1個iteration即迭代一次,也就是用batchsize個樣本訓練一次。3 epo...

深度學習(四) knn 超引數

best score 0.0 設定當前我們已經找到的準確率最好的值,初始化為0 bestk k 1 我們找到的最好的k,初始化為 1 for k in range 1,11 我們傳入10個k,看哪個k最適合鳶尾花 knn clf kneighborsclassifier n neighbors k ...