遷移學習和fine tuning的區別

2021-08-19 07:35:37 字數 1366 閱讀 4064

舉個例子,假設今天老闆給你乙個新的資料集,讓你做一下分類,這個資料集是關於flowers的。問題是,資料集中flower的類別很少,資料集中的資料也不多,你發現從零訓練開始訓練cnn的效果很差,很容易過擬合。怎麼辦呢,於是你想到了使用transfer learning,用別人已經訓練好的imagenet的模型來做。

做的方法有很多:

把alexnet裡卷積層最後一層輸出的特徵拿出來,然後直接用svm分類。這是transfer learning,因為你用到了alexnet中已經學到了的「知識」

把vggnet卷積層最後的輸出拿出來,用貝葉斯分類器分類。思想基本同上。

甚至你可以把alexnet、vggnet的輸出拿出來進行組合,自己設計乙個分類器分類。這個過程中你不僅用了alexnet的「知識」,也用了vggnet的「知識」。

最後,你也可以直接使用fine-tune這種方法,在alexnet的基礎上,重新加上全連線層,再去訓練網路。

綜上,transfer learning關心的問題是:什麼是「知識」以及如何更好地運用之前得到的「知識」。這可以有很多方法和手段。而fine-tune只是其中的一種手段。

簡單來說

transfer learning可以看成是一套完整的體系,是一種處理流程

目的是為了不拋棄從之前資料裡得到的有用資訊,也是為了應對新進來的大量資料的缺少標籤或者由於資料更新而導致的標籤變異情況

至於說fine-tune,在深度學習裡面,這僅僅是乙個處理手段

之所以現在大量採用fine-tune,是因為有很多人用實驗證實了:單純從自己的訓練樣本訓練的model,效果沒有fine-tune的好

學術界的風氣本就如此,乙個被大家證實的行之有效的方法會在短時間內大量被採用。

所以很多人在大資料下面先按照標準引數訓練乙個模型,比如在imagenet下面訓練好乙個

這個模型中,那些卷積層的濾波器,其實已經具備了一些初始的形狀資訊了,有很強的泛用性,比起你自己單獨訓練,隨機初始化一大堆濾波器效果更好。

然後在那些基於imagenet的濾波器的基礎上,你再進行自己的一些梯度下降的優化,收斂的方向以及準確性理論上就會更靠譜一些。

這個很難用理論去證明(因為如果你能理論證明了,那麼相當於你就已經快要搞懂深度學習的本質了),但是有大量的實驗來背書,所以主流學術界都是這麼做

#####

從範圍上來說,transfer learning是大於fine-tune的。

fine-tune只是實現手段,transfer learning卻是乙個很大的體系

遷移學習和fine tuning區別

遷移學習 transfer learning 遷移學習是一種思想,並不是一種特定的演算法或者模型,目的是將已學習到的知識應用到其他領域,提高在目標領域上的效能 fine tuning 在深度學習裡,這僅僅是乙個處理手段,之所以現在大量採用fine tuning,是因為有很多人用實驗證實了 單純從自己...

遷移學習和fine tuning 的關係

一 什麼是遷移學習?遷移學習 transfer learning 顧名思義就是把已訓練好的模型引數遷移到新的模型來幫助新模型訓練。考慮到大部分資料或任務都是存在相關性的,所以通過遷移學習我們可以將已經學到的模型引數 也可理解為模型學到的知識 通過某種方式來分享給新模型從而加快並優化模型的學習效率不用...

遷移學習與fine tuning有什麼區別

假設你要處理乙個新資料集,讓你做分類,這個資料集是關於flowers的,問題是,資料集中flower的類別很少,資料集中的資料也不多,你發現從零開始訓練cnn的效果很差,很容易過擬合,怎麼辦呢,於是你想到了使用transfer learning,用別人已經訓練好的imagenet的模型來做。做的方法...