深度學習-超參數調整總結

在深度神經網絡中,超參數的調整是一項必備技能,經過觀察在訓練過程當中的監測指標如損失loss和準確率來判斷當前模型處於什麼樣的訓練狀態,及時調整超參數以更科學地訓練模型可以提升資源利用率。在本研究中使用瞭如下超參數,下面將分別介紹並總結了不一樣超參數的調整規則。

 

(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是使用最多的激活函數,簡單又避免了梯度消失。io

相關文章
相關標籤/搜索