遷移學習中的模型微調(fine tune)問題

2021-09-25 04:44:59 字數 841 閱讀 2287

模型訓練過程中,很少有人會在資料量不夠充足的時候從頭開始訓練整個卷積網路。通常情況下,一般會使用乙個大的資料集對卷積網路進行預訓練(例如使用資料集imagenet,它包含120萬張,共1000個類別)然後將訓練的模型作為預訓練模型初始化卷積網路,或者將提取特徵的卷積層引數固定,然後再進行訓練。

1)固定特徵提取層的卷積引數。使用imagenet對卷積網路進行預訓練,然後修改最後面的全連線層,同時固定特徵提取層的卷積引數,進行新資料集的訓練。

2)微調卷積網路。可以微調所有卷積層,也可以將頭幾層卷積層引數固定(防止過擬合),只微調高維部分的卷積。網路機構當中頭幾層卷積層包含更多的一般特徵(日邊沿檢測和顏色檢測),這些特徵在許多任務中都非常有用,但是後面的卷積就會變得更加注重類別間的細節。(我的理解是,網路結構從資料輸入層開始,頭幾層卷積層包含的資訊更加具有普適性,而越是往後,卷積層學習到的特徵就更加注重類別之間的特徵);

3)預訓練模型

怎樣確定使用那種遷移學習?儘管因素眾多,但是有兩個最終要的因素:a)新資料集的數量;b)是否和原始資料集相似(也就是影象內容和類別是否不同);但是請銘記於心:頭幾層卷積層包含的資訊更加具有普適性,而越是往後,卷積層學習到的特徵就更加注重類別之間的特徵,下面有四個主要的策略:

2)新資料集和原始資料集分布相似,且數量較大:可微調整個網路;

3)新資料集和原始資料集分布不相似,且數量較小:由於資料量小最好只微調fc層,又由於不相似,所以最好不要微調後幾層卷積(top layers)。但是如果是使用svm分類器進行訓練可以從網路的前幾層(bottom layer)就開始微調;

4)新資料集和原始資料集分布不相似,且數量較大:直接微調整個網路;

1)限制預訓練模型

2)學習率:使用小的學習率;

遷移學習 微調

場景 假設我們想從影象中識別不同種類的椅子,然後將購買鏈結推薦給使用者,一種可能的方法是 1 先找出100中常見的椅子,然後對椅子從各個角度進行拍照 2 通過該資料集訓練乙個深度學習模型 然而這個資料集的規模會遠遠小於imagenet樣本數,這種情況下會導致適用於imagenet的模型在現有的資料集...

遷移學習和微調

什麼是遷移學習?即一種學習對另一種學習的影響,它廣泛地存在於知識 技能 態度和行為規範的學習中。任何一種學習都要受到學習者已有知識經驗 技能 態度等的影響,只要有學習,就有遷移。遷移是學習的繼續和鞏固,又是提高和深化學習的條件,學習與遷移不可分割。換句話說,對於乙個具體的深度學習訓練任務,如 人臉識...

遷移學習與微調的關係

遷移學習與微調的關係 來看一下cs231n對於遷移學習的解釋吧。在實際中,因為資料量小的緣故,很少有人會去從零開始去訓練出乙個cnn train from scratch 相反,普遍的做法都是在乙個大的資料集上 比如imagenet,包含120萬張來自1000的類的資料集 進行預訓練乙個cnn模型,...