What is being transferred in transfer learning?
文章目錄
概
遷移學習到底遷移了什麼?
主要內容
- T: 普通訓練的模型
- P: 預訓練的模型
- RI: 隨機初始化的模型
- RI-T: 隨機初始化再經過普通訓練的模型
- P-T: 在預訓練的基礎上再fine-tuning的模型
本文的預訓練都是在ImageNet上, 然後在CheXpert和DomainNet(分為real, clipart, quickdraw)上測試.
feature reuse
大家認為遷移學習有用的一個直覺就是遷移學習通過特徵的複用來樣本少的資料提供一個較好的特徵先驗.
通過上面的圖可以看到, P-T總是能夠表現優於RI-T, 這能夠支撐我們的觀點. 但是, 為什麼資料差別特別大的時候, 預訓練還是有用呢(此時feature reuse的作用應該不是很明顯)? 作者將圖片按照不同的block size打亂(就像最開始的那些亂七八糟的圖片). 這個時候, 模型應該只能抓住淺層的特徵, 抽象的特徵是沒法被很好提取的, 結果如下圖所示.
- 當打亂的程度加劇(block size變小), 任務越發困難;
- 相對正確率差距 ( A P − T − A R I − T ) / A P − T % (A_{P-T}-A_{RI-T})/A_{P-T} \% (AP−T−ARI−T)/AP−T%隨著block size減小而減小(clipart, real), 這說明feature reuse很有效果, quickdraw 相反是由於其資料集和預訓練的資料集相差過大, 但是即便如此, 在quickdraw上預訓練還是有效的, 說明存在除了feature reuse外的因素;
- P-T的訓練速度(右圖)一直很穩定, 而RI-T的訓練速度則在block size下降的時候有一個急劇的下降, 這說明feature reuse並不是影響P-T訓練速度的主要因素.
mistakes and feature similarity
這部分通過探究不同模型有哪些common和uncommon的mistakes來揭示預訓練的作用.
P-T在簡單樣本上的成功率很高, 而在比較模糊難以判斷的樣本上比較難(而此時RI-T往往比較好), 這說明P-T有著很強的先驗.
通過 centered kernel alignment (CKA) 來衡量特徵之間的相似度:
可以發現, 基於預訓練的模型之間的特徵相似度很高, 而RI-T與別的模型相似度很低, 即便是兩個相同初始化的RI-T. 說明預訓練模型之間往往是在重複利用相同的特徵.
下表為不同模型的引數的
ℓ
2
\ell_2
ℓ2距離, 同樣能夠反映上面一點.
loss landscape
用
Θ
,
Θ
~
\Theta, \tilde{\Theta}
Θ,Θ~表示兩個checkpoint的引數, 通過線性插值
{
Θ
λ
=
(
1
−
λ
)
Θ
+
λ
Θ
~
:
λ
∈
[
0
,
1
]
}
,
\{\Theta_{\lambda} = (1- \lambda) \Theta + \lambda \tilde{\Theta}: \lambda \in [0, 1]\},
{Θλ=(1−λ)Θ+λΘ~:λ∈[0,1]},
考量模型在
Θ
λ
\Theta_{\lambda}
Θλ下的表現.
上圖, 左為DomainNET real, 右為quickdraw, 可見預訓練模型之間的loss landscape是很光滑的, 不同於RI-T.
module criticality
如果我們將訓練好後的模型的某一層引數替換為其初始引數, 然後觀察替換前後的正確率就能一定程度上判斷這個層在整個網路中的重要性, module criticality就是一個這樣的類似的指標.
下圖反映了不同模型的不同層的criticality.
下圖反映了RI-T的訓練後的引數 θ \theta θ其實加了擾動反而效能更好? 而P-T的就相當穩定.
pre-trained checkpoint
我們選pre-trained模型的時候, 往往是通過正確率指標來判斷的, 但是事實上, 這個判斷並不十分準確, 事實上我們可以早一步地選取checkpoint (直觀上理解, 大概是隻要引數進入了那個光滑的盆地就行了).
相關文章
- 論文筆記:What makes instance discrimination good for transfer learning?筆記Go
- Transfer Learning 核心技術研修
- 遷移學習(Transfer Learning)遷移學習
- Deep Transfer Learning綜述閱讀筆記筆記
- being
- 機器學習:詳解遷移學習(Transfer learning)機器學習遷移學習
- (AAAI2020 Yao) Graph Few-shot Learning via knowledge transferAI
- 論文解讀(SGDA)《Semi-supervised Domain Adaptation in Graph Transfer Learning》AIAPT
- 深度學習不得不會的遷移學習Transfer Learning深度學習遷移學習
- The online basketball universe is being redesigned
- No need to add that my being happy in Forks is an impossibility.APP
- How to prevent your jar packages from being decompiled?JARPackageCompile
- What is wrong?
- what is life?
- What is WebpackWeb
- What is maven?Maven
- What is Babel?Babel
- 關於舉辦“遷移學習(Transfer Learning)核心技術開發與應用研修班”的通知遷移學習
- 樹8 File Transfer
- What is a service mesh?
- What is rate limiting?MIT
- WHAT IS PPM Encoder ?
- What is an SQL relation?SQL
- [Information Security] What is WEPORM
- What are the benefits of using an proxy?
- What is dbo in SQL Server?SQLServer
- CISO之What & How
- what is the Mixin method in Python?Python
- What is the "WF - Contention'' Enqueue ?ENQ
- What does -> do in clojure?
- What is the difference between a Homemaker and a Housewife?
- What does "xargs grep" do?
- Overview-(概述 What is Kubernetes)View
- 2.2.4.3.1 What Makes a Grant Common
- What is the Average Cost of Doing a Diploma?
- What is the difference Put and Post and Get?
- What's New in MariaDB 10.4
- What’s new in RxSwift 5Swift