1. 程式人生 > >遷移學習(transfer learning)和微調(fine-tune)的幾點認識

遷移學習(transfer learning)和微調(fine-tune)的幾點認識

遷移學習和微調的區別

  • 什麼是遷移學習?
    即一種學習對另一種學習的影響,它廣泛地存在於知識、技能、態度和行為規範的學習中。任何一種學習都要受到學習者已有知識經驗、技能、態度等的影響,只要有學習,就有遷移。遷移是學習的繼續和鞏固,又是提高和深化學習的條件,學習與遷移不可分割。
    換句話說,對於一個具體的深度學習訓練任務,如:人臉識別,訓練資料當然是用人臉庫啦,你會覺得是廢話,但是,呵呵,要是你的人臉庫不夠大怎麼辦?要是你沒錢買資料怎麼辦?而且,你又沒有足夠的時間收集一個足夠大的人臉庫怎麼辦?這個時候,你可以試試遷移學習(transfer learning),用別人已經訓練好的Imagenet的模型來做。
    你可以將已經訓練好了的Alexnet、googlenet、vggnet等網路中的某些層直接抽出來,化為己用。具體的來說,你可以將Alexnet中的最一層特徵層抽出來,然後自己設計一個分類器或者直接用SVM分類器,分類。當然你也可以抽取多個網路中的網路層,然後進行融合。總而言之,就是將已經學到了的“知識”化為己用。在最後,你要用自己的資料集進行一下微調(fine-tune)。這就好比,使用“吸星大法”吸收了別人的功力之後,好歹也得打坐盤膝,調理一下不是?
  • 什麼是微調(fine-tune)?
    看到別人一個很好的模型,雖然針對的具體問題不一樣,但是也想試試看,看能不能得到很好的效果,而且自己的資料也不多,怎麼辦?沒關係,把別人現成的訓練好了的模型拿過來,換成自己的資料,調整一下引數,在訓練一遍,這就是微調(fine-tune)。

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