遷移學習和微調

2021-08-26 15:18:55 字數 843 閱讀 3013

什麼是遷移學習?

即一種學習對另一種學習的影響,它廣泛地存在於知識、技能、態度和行為規範的學習中。任何一種學習都要受到學習者已有知識經驗、技能、態度等的影響,只要有學習,就有遷移。遷移是學習的繼續和鞏固,又是提高和深化學習的條件,學習與遷移不可分割。

換句話說,對於乙個具體的深度學習訓練任務,如:人臉識別,訓練資料當然是用人臉庫啦,你會覺得是廢話,但是,呵呵,要是你的人臉庫不夠大怎麼辦?要是你沒錢買資料怎麼辦?而且,你又沒有足夠的時間收集乙個足夠大的人臉庫怎麼辦?這個時候,你可以試試遷移學習(transfer learning),用別人已經訓練好的imagenet的模型來做。

你可以將已經訓練好了的alexnet、googlenet、vggnet等網路中的某些層直接抽出來,化為己用。具體的來說,你可以將alexnet中的最一層特徵層抽出來,然後自己設計乙個分類器或者直接用svm分類器,分類。當然你也可以抽取多個網路中的網路層,然後進行融合。總而言之,就是將已經學到了的「知識」化為己用。在最後,你要用自己的資料集進行一下微調(fine-tune)。這就好比,使用「吸星**」吸收了別人的功力之後,好歹也得打坐盤膝,調理一下不是?

看到別人乙個很好的模型,雖然針對的具體問題不一樣,但是也想試試看,看能不能得到很好的效果,而且自己的資料也不多,怎麼辦?沒關係,把別人現成的訓練好了的模型拿過來,換成自己的資料,調整一下引數,在訓練一遍,這就是微調(fine-tune)。

遷移學習更像是「吸星**」,將別人修煉的功力直接吸過來,但是因為原先針對的具體任務有所不同,有可能走火入魔?這時候,就需要盤膝打坐調理一番,疏通自己的經脈,努力使自己的功力更上一層樓(也有可能一點提公升也沒有,否則就不用研究遷移學習啦)。從某意義上來說,微調應該是遷移學習中的一部分。

遷移學習 微調

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

遷移學習與微調的關係

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

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

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