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

2021-10-01 19:54:35 字數 775 閱讀 6699

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

(2)iteration:1個iteration即迭代一次,也就是用batchsize個樣本訓練一次。

(3)epoch:1個epoch指用訓練集中的全部樣本訓練一次,此時相當於batchsize 等於訓練集的樣本數。

最初訓練dnn採用一次對全體訓練集中的樣本進行訓練(即使用1個epoch),並計算一次損失函式值,來更新一次權值。當時資料集較小,該方法尚可。後來隨著資料集迅速增大,導致這種方法一次開銷大進而占用記憶體過大,速度過慢。

目前常用隨機梯度下降sgd來訓練,相當於上述兩個「極端」方法的折中:將訓練集分成多個mini_batch(即常說的batch),一次迭代訓練乙個minibatch(即batchsize個樣本),根據該batch資料的loss更新權值。這相比於全資料集訓練,相當於是在尋找最優時人為增加了一些隨機雜訊,來修正由區域性資料得到的梯度,盡量避免因batchsize過大陷入區域性最優。

這種方法存在兩對矛盾。由於一次只分析的一小部分資料,因此整體優化效果與batchsize有關:

根據現有的調參經驗,加入正則化項bn後,在記憶體容量允許的情況下,一般來說設定乙個較大的batchsize值更好,通常從128開始調整。

為了能夠使得梯度下降法有更好效能需要把學習率的值設定在合適的範圍內,因為學習率決定了引數能否移動到最優值,決定引數移動到最優值的快慢。

深度學習 超引數調整總結

1 學習率 學習率 learning rate或作lr 是指在優化演算法中更新網路權重的幅度大小。學習率可以是恆定的 逐漸降低的,基於動量的或者是自適應的。不同的優化演算法決定不同的學習率。當學習率過大則可能導致模型不收斂,損失loss不斷上下 學習率過小則導致模型收斂速度偏慢,需要更長的時間訓練。...

深度學習(四) 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 ...

機器學習 調整kNN的超引數

1 問題 以knn演算法為例 平票 如果k個點中,不同型別的樣本數相等,怎麼選取?如果選取的k個點中,數量多的一類樣本點距離測試樣本較遠,數量少的一類樣本點距離測試樣本較近,此時選取數量較多的型別作為輸出結果,不具說服力 2 knn演算法中,除了k值外的另乙個超引數 距離的權重 1 距離 sciki...