深度學習 超引數調整總結

2022-03-28 04:07:21 字數 882 閱讀 4702

(1)學習率

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

(2)批次大小batch_size

批次大小是每一次訓練神經網路送入模型的樣本數,在卷積神經網路中,大批次通常可使網路更快收斂,但由於記憶體資源的限制,批次過大可能會導致記憶體不夠用或程式核心崩潰。bath_size通常取值為[16,32,64,128]

(3)優化器optimizer

目前adam是快速收斂且常被使用的優化器。隨機梯度下降(sgd)雖然收斂偏慢,但是加入動量momentum可加快收斂,同時帶動量的隨機梯度下降演算法有更好的最優解,即模型收斂後會有更高的準確性。通常若追求速度則用adam更多。

(4)迭代次數

迭代次數是指整個訓練集輸入到神經網路進行訓練的次數,當測試錯誤率和訓練錯誤率相差較小時,可認為當前迭代次數合適;當測試錯誤率先變小後變大時則說明迭代次數過大了,需要減小迭代次數,否則容易出現過擬合。

(5)啟用函式

在神經網路中,啟用函式不是真的去啟用什麼,而是用啟用函式給神經網路加入一些非線性因素,使得網路可以更好地解決較為複雜的問題。比如有些問題是線性可分的,而現實場景中更多問題不是線性可分的,若不使用啟用函式則難以擬合非線性問題,測試時會有低準確率。所以啟用函式主要是非線性的,如sigmoid、tanh、relu。sigmoid函式通常用於二分類,但要防止梯度消失,故適合淺層神經網路且需要配備較小的初始化權重,tanh函式具有中心對稱性,適合於有對稱性的二分類。在深度學習中,relu是使用最多的啟用函式,簡單又避免了梯度消失。

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

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

機器學習 調整kNN的超引數

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

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