遷移學習將會是引領下一次機器學習熱潮的驅動力。 —吳恩達
一些相關資源:
計算機應用技術博士王晉東關於遷移學習的歸納整理:http://transferlearning.xyz
綜述遷移學習 A Survey on Transfer Learning:https://www3.ntu.edu.sg/home/sinnopan/publications/TLsurvey_0822.pdf
遷移學習簡明手冊:http://jd92.wang/assets/files/transfer_learning_tutorial_wjd.pdf
起源
隨着機器學習領域的發展,我們的神經網絡設計變得越來越多,深度越來越深,訓練越來越費時,導致了越來越大的工作量。但是我們如果能運用已有的資源,站在巨人的肩膀上,這將會大大提高我們學習的效率。
當我們在做一個CV的應用時,需要從頭開始訓練每個層的權重,或者說從隨機初始化權重開始。但是如果我們下載其他計算機視覺研究者花費了很久做出來的開源的權重參數,把它當作一個很好的初始化用在你自己的神經網絡上,我們就規避了許多不必要的優化過程,同時得到了更好的模型。
定義
- 遷移學習是什么
遷移學習是一種機器學習方法,就是把為任務A開發的模型作為初始點,重新使用在為任務B開發模型的過程中
- 遷移學習應用領域
遷移學習主要用於需要大量計算能力的計算機視覺和自然語言處理任務
- 遷移學習優勢
遷移學習的主要優點是節省訓練時間,在大多數情況下神經網絡不需要大量數據就能得到更好的性能
- 遷移學習什么時候用
- 當前任務缺乏訓練數據
- 已經存在近似領域內采用大量數據訓練好的神經網絡學習器
過程
因為遷移學習有很多細致的分支,將在后來一一嘗試,在這里筆者只是簡單介紹遷移學習的基礎方式。

圖中所述即為遷移學習的中心思想
遷移學習的兩種策略:

- 微調(finetuning)——其中包括使用基礎數據集上的預訓練網絡以及在目標數據集中訓練所有層;
- 凍結與訓練(freeze and train)——其中包括凍結除最后一層的所有層(權重不更新)並訓練最后一層。也可以凍結前面幾層,然后微調其余層;
使用場景:
-
小目標集,圖像相似:當目標數據集與基礎數據集相比較小,且圖像相似時,建議采取凍結和訓練,只訓練最后一層。
-
大目標集,圖像相似:建議使用微調。
-
小目標集,圖像不同:建議采取凍結和訓練,訓練最后一層或最后幾層。
-
大目標集,圖像不同:建議使用微調。

例如上圖,我們固定前面若干層的參數,只針對我們的任務微調后面若干層。這樣,網絡訓練速度會極大地加快,而且對提高我們任務的表現也具有很大的促進作用。
在未來幾周,筆者會更深入的研究遷移學習,以及嘗試實操。