深度學習 Fine tune 技巧總結

2021-09-28 06:33:32 字數 1031 閱讀 1349

深度學習中需要大量的資料和計算資源(乞丐版都需要12g視訊記憶體的gpu - -)且需花費大量時間來訓練模型,但在實際中難以滿足這些需求,而使用遷移學習則能有效

降低資料量、計算量和計算時間,並能定製在新場景的業務需求,可謂一大利器。

遷移學習不是一種演算法而是一種機器學習思想,應用到深度學習就是微調(fine-tune)。通過修改預訓練網路模型結構(如修改樣本類別輸出個數),選擇性載入預訓練網路模型權重(通常是載入除最後的全連線層的之前所有層 ,也叫瓶頸層)

再用自己的資料集重新訓練模型就是微調的基本步驟。 微調能夠快速訓練好乙個模型,用相對較小的資料量,還能達到不錯的結果。

微調的具體方法和技巧有很多種,這裡總結了在不同場景下的微調技巧:

1)新資料集比較小且和原資料集相似。因為新資料集比較小(比如<5000),如果fine-tune可能會過擬合;又因為新舊資料集類似,我們期望他們高層特徵類似,可以使用預訓練網路當做特徵提取器,用提取的特徵訓練線性分類器。

2)新資料集大且和原資料集相似。因為新資料集足夠大(比如》10000),可以fine-tune整個網路。

3)新資料集小且和原資料集不相似。新資料集小,最好不要fine-tune,和原資料集不類似,最好也不使用高層特徵。這時可是使用前面層的特徵來訓練svm分類器。

4)新資料集大且和原資料集不相似。因為新資料集足夠大,可以重新訓練。但是實踐中fine-tune預訓練模型還是有益的。新資料集足夠大,可以fine-tine整個網路。

fine-tune實踐建議:

1)預訓練模型的限制。使用預訓練模型,受限於其網路架構。例如,不能隨意從預訓練模型取出卷積層。但是因為引數共享,可以輸入任意大小的影象;卷積層和池化層對輸入資料大小沒有要求;全連線層對輸入大小沒有要求,輸出大小固定。

2)學習率。與重新訓練相比,fine-tune要使用更小的學習率。因為訓練好的網路模型權重已經平滑,我們不希望太快扭曲(distort)它們(尤其是當隨機初始化線性分類器來分類預訓練模型提取的特徵時)。

深度學習 Fine tune 技巧總結

遷移學習不是一種演算法而是一種機器學習思想,應用到深度學習就是微調 fine tune 通過修改預訓練網路模型結構 如修改樣本類別輸出個數 選擇性載入預訓練網路模型權重 通常是載入除最後的全連線層的之前所有層 也叫瓶頸層 再用自己的資料集重新訓練模型就是微調的基本步驟。微調能夠快速訓練好乙個模型,用...

遷移學習 Fine tune

在傳統的機器學習的框架下,學習的任務就是在給定充分訓練資料的基礎上來學習乙個分類模型 然後利用這個學習到的模型來對測試文件進行分類與 然而,我們看到機器學習演算法在當前的web挖掘研究中存在著乙個關鍵的問題 一些新出現的領域中的大量訓練資料非常難得到。我們看到web應用領域的發展非常快速。大量新的領...

深度學習調參技巧

模型引數的一般設定 epoch迭代幾十到幾百次。mini batch size從幾十到幾百,為了更好的利用硬體加速,通常取8的倍數,例如128,256。learning rate取0.1 資料集越大,模型越複雜,應取值越小 weight decay取0.005,momentum取0.9。dropou...