Transfer Learning / Domain Adaptation 筆記 === # Content [TOC] # I. Basic Concept ### Negative Transfer 指的是:在 source domain 上學到的 knowledge,對 target domain 產生 negative effect #### 該方向的研究 - Transitive transfer learning, 2015, SIGKDD - 傳統 transfer learning 踩一個石頭過河,他們踩很多個 - Distant domain transfer learning, 2017, AAAI - 領域不相似時,仍然可以 transfer learning,踩一連串石頭過河 # II. Transfer Learning 研究領域 ## 以 target domain 的 label 分類 1. Supervised Transfer Learning 2. Semi-Supervised Transfer Learning 3. Unsupervised Transfer Learning ## 以 學習方法 分類 1. Instance based - reuse weight ? - 相似的 instance,給他高權重 - 簡單直接 2. Feature based - 想辦法把 source 和 target 的 feature 變換到同個 space - 應該是最熱門的研究方向 3. Model based - 建立 share parameter 的模型,在NN系列用得特別多,例如 finetune 4. Relation based - 0.0 ## 以 feature 分類 1. Homogeneous (同構) Transfer Learning - 例如 image 之間的 transfer 2. Heterogeneous (異構) Transfer Learning - 例如 image 到 text 的 transfer ## 以 online 或 offline 分類 1. Offline Transfer Learning - 目前大多數研究屬於此類 2. Online Transfer Learning # IV. Basic Knowledge ## Formatting the Problem - $\mathcal D$: domain - $P$: 機率分布 - $x$: data - $X$: 某 domain 的 data - $\mathcal X$: feature space ## Metrics ### Distance 1. Euclidean Distance 2. Minkowski Distance 3. Mahalanobis Distance ### Similarity 1. cosine similarity 2. mutual information 3. Pearson correlation 4. Jaccard correlation - $J = \dfrac{X\cap Y}{X\cup Y}$ # V. Basic Method of Transfer Learning ## Instance-based 本類方法通常假定 $P(x_s)\neq P(x_t)$,而 CV 領域的 dimension 都很大,因此直接對 $P(x_s)$ 或 $P(X_t)$ 做估計並不可行。故許多 work 是對 source 及 domain 機率分布的比值進行估計。估計得出的比值即為樣本的權重。例如: - Adapting instance weights for unsupervised domain adaptation using quadratic mutual information and subspace learning. ICPR 2016 - 而這些方法通常假設 $P(x_t)/P(x_s)<\infty$ 且條件機率相同 $P(y|x_s)=P(y|x_t)$ ### methods - TrAdaboost - 提高有利於 target task 的權重,降低不利於 target task 的權重 - Kernal Mean Matching (KMM) - 目標是使得加權後的 source domain 和 target domain 的 distribution 盡可能相近 - Transitive Transfer Learning - Distant Domain Transfer Learning 只在 domain 間差異較小時有效 ***(last2???)*** ,對 CV 領域不甚理想。 ## Feature-based 這類的方法通常假設 source domain 及 target domain 有一些交叉的 feature 典型方法 - (Transfer Component Analysis, TCA) Domain adaptation via transfer component analysis. 2011 對於 source 和 target domain 各自訓練不同的變換矩陣,以 transfer learning - Joint geometrical and statistical alignment for visual domain adaptation. CVPR 2017 以下研究同時學習 feature 和 model 的 transfer learning (和 NN 結合) - Learning transferable features with deep adaptation networks. 2015, ICML - Deep learning of transferable representation for scalable domain adaptation. 2016 - Deep transfer learning with joint adaptation networks. 2017, ICML - Learning transferrable representations for unsupervised domain adaptation. 2016 ## Parameter/Model-based 這類方法假設某些參數可以共享 Cross-people mobile-phone based activity recognition. IJCAI 2011 - 提出了 TransEMDT 方法。先針對 labeled data 利用 decision tree 構建 robust 的 action recognition 模型,然後對 unlabeled data 利用 K-means clustering 尋找 optimized 標定參數。 Instilling social to physical: Co-regularized heterogeneous transfer learning. AAAI 2016 - 將社交訊息加入 transfer learning 方法的 regularization term,對方法進行了改良 在 NN 中加入機率分布適配層 - Learning transferable features with deep adaptation networks. ICML 2015 - Deep learning of transferable representation for scalable domain adaptation. 2016 IEEE Transaction on Knowledge and Engineering - Deep transfer learning with joint adaptation networks. ICML 2017 以下研究同時學習 feature 和 model 的 transfer learning - Learning transferable features with deep adaptation networks. 2015, ICML - Deep learning of transferable representation for scalable domain adaptation. 2016 - Deep transfer learning with joint adaptation networks. 2017, ICML ## Relation-based 0.0 # V. method 1: Distribution Adaptation 主要分三類: 1. Marginal Distribution Adaptation 2. Conditional Distribution Adaptation 3. Joint Distribution Adaptation ## Marginal Distribution Adaptation 目標為減小 source 和 target domain 的 marginal distribution $P(x)$,以 $P(x_s)$ 和 $P(x_t)$ 之間的距離來近似兩個 domain 的差異 核心方法 Transfer Component Analysis (TCA) TCA 的假設: - 存在一個 feature mapping $\phi$ 使得 mapping 後的 distribution $P(\phi(x_s))\approx P(\phi(x_t))$ - 若 marginal distribution 接近,則 conditional distribution ($P(y_s|\phi(x_s))\approx P(y_t|\phi(x_t))$) 也會接近 因此目標是:找到一個合適的 $\phi$ 使得 feature transform 之後的 marginal distribution 最接近 - 使用 maximum mean discrepancy (MMD) 來衡量 domain 之間的距離 - $DISTANCE(x_s, x_t) = ||\frac{1}{n_1}\sum_\limits{i=1}^{n_1}\phi(x_i) - \frac{1}{n_2}\sum_\limits{j=1}^{n_2}\phi(x_j)||_{\mathcal H}$ - $\phi(\cdot)$ 是將 variable 映射到 Reproducing Kernel Hilbert Space, RKHS - 引入了 kernel matrix $K$ - TCA 最後的優化目標:![](https://i.imgur.com/8JanHM0.png) ## Conditional Distribution Adaptation 用 $P(y_s|x_s)$ 和 $P(y_t|x_t)$ 的距離來近似兩個 domain 之間的差異 $DISTANCE(D_s, D_t)\approx ||P(y_s|x_s) - P(y_t|x_t)||$ 不過單純用這類的方法不多,主要可以在以下 paper 找到 - Asymmetric tri-training for unsupervised domain adaptation. ICML 2017 Stratified Transfer Learning 提出了 Intra-class Transfer 的思想,指出大多數方法只是學習一個 Global Domain Shift,而忽略了 intra-class 的相似性 - Stratified transfer learning for cross-domain activity recognition. 2018 - 計算每個 class 的 MMD distance ## Joint Distribution Adaptation JDA 方法:Transfer feature learning with joint distribution adaptation. 2013, ICCV $DISTANCE(D_s, D_t)\approx ||P(x_s)-P(x_t)|| + ||P(y_s|x_s)-P(y_t|x_t)||$ 然而 Marginal Distribution Adaptation 和 Conditional Distribution Adaptation 並不是同樣重要,depends on domain distribution 的差異,因此 Balanced distribution adaptation for transfer learning. 2017, ICDM 提出了 BDA,採用 balance factor $\mu$ 來動態調整兩個 distribution 的距離。 ## 小結 1. 精度比較:BDA > JDA > TCA > Conditional Distribution Adaptation 2. 某圖顯示,將 prob distr 加入 DNN 中,往往取得比 非deep方法 更好的結果 # VII. method 2. Feature Selection --- # VIII. method 3. Subspace Learning --- # IX. method 4. Deep Transfer Learning 該如何決定 transfer 哪些 layer,固定哪些 layer? - How transferable are features in deep neural networks? 2014, NIPS - 前三層基本 general feature ## 3 Deep Network Adaptation finetune 的基本假設是 training data 和 testing data 服從相同的 distribution,然而這在 transfer learning (domain adaptation) 中不成立,**fine tune 無法處理 training data 和 testing data 的 distribution 不同的情況。** 因此需要更進一步開發出更好的方法。 絕大多數 Deep Transfer Learning 方法都採用了以下的 loss definition - $l = l_c(D_s, y_s) + \lambda l_A(D_s, D_t)$ - $l_c(D_s, y_s)$ 表示 labeled data (通常是 source domain) 上的 loss - $l_A(D_s, D_t)$ 表示 network 的 adaptation loss,這裡與之前提到的 distribution 差異,道理相同 以下方法開發出了 **Adaptation Layer** - (**DDC**) Deep domain confusion: Maximizing for domain invariance. 2014 - 圖為 DDC 方法示意圖 ![](https://i.imgur.com/dJ5t9of.png) - 為何選倒數第二層? 實驗表明,在 classifier 前一層加入 adaptation 可以達到最好的效果 - loss function: $l = l_c(D_s, y_s) + \lambda MMD^2(D_s, D_t)$ 使用 MMD 作為衡量標準 - (**DAN**) Learning transferable features with deep adaptation networks. 2015 ICML - 相較於 DDC 只加入一層 Adaptation Layer,DAN 同時加入了三個 Adaptation Layer (classifier 前三層) - 相較於 DDC 使用 MMD,DAN 使用 Multi-Kernel MMD (MK-MMD) - 比 DDC 更強 - network 結構如下圖 ![](https://i.imgur.com/JocAj1E.png) ### 3. 同時 transfer domain & task 的方法 - Simultaneous deep transfer across domains and tasks. 2015, ICCV - 針對的情況:target domain 的部分 class 有少量 label,剩下 class 無 label - 作者提出方法名為 joint CNN architecture for domain and task transfer - 現有方法都只做 domain confusion,而這樣不夠,因為忽略了 class 之間的聯繫,因此提出了要再加 soft label loss - ![](https://i.imgur.com/9vvYUnN.png) - 如下圖 ![](https://i.imgur.com/Blm6GS7.png) - $L_C$ 是普通的 loss - $L_{conf}$ 是一般的 domain adaptation - $L_{soft}$ 是 soft label 的 loss,只作用於 target 上 - ***什麼是 soft label loss? 在 network 對 source 訓練時,把 source 每個 sample 的每個 class 機率都記下來,(???)*** - soft label 示意圖 ![](https://i.imgur.com/giqaOS7.png) ### 4. Deep Joint Distribution Adaptation - (**JAN**) Deep transfer learning with joint adaptation networks. ICML 2017 - 提出了 Joint MMD (JMMD) - JAN 示意圖 ![](https://i.imgur.com/ZD2pQSQ.png) ### 5. AdaBN (Adaptive Batch Normalization) - Adaptive batch normalization for practical domain adaptation. 2018 - 在 normalization layer 加入統計 feature 的 adaptation - 實現簡單、方法本身不帶有任何額外 parameter - AdaBN 示意圖 ![](https://i.imgur.com/VMWobSx.png) #### 小結 Deep Transfer Learning 的研究 - Deep learning of transferable representation for scalable domain adaptation. 2016 - Deep unsupervised convolutional domain adaptation. 2017 - Supervised representation learning: Transfer learning with deep autoencoders. 2015, IJCAI - Deep coral: Correlation alignment for deep domain adaptation. 2016, ECCV - Deep nonlinear feature coding for unsupervised domain adaptation. 2016, IJCAI - Label efficient learning of transferable representations acrosss domains and tasks. 2017, NIPS - Autodial: Automatic domain alignment layers. 2017, ICCV - 這方法很容易被加入現有的 DNN 中,使 deep transfer learning 更方便 ## 9.4 Deep Adversaial Network Transfer ### 1. DANN (Domain-Adversarial Neural Network) Domain-adversarial training of neural networks. 2016, JMLR ![](https://i.imgur.com/IJPu9Xu.png) - $l = l_c(D_s, y_s) + \lambda l_d(D_s, D_t)$ - $l_c$ 是 NN 的 loss;$l_d$ 是 domain 的 loss - **domain loss:** $l_d = \max [-\frac{1}{n}\sum_\limits{i=1}^n \mathcal L_d^i(W, b, u, z) - \frac{1}{n'}\sum_\limits{i= n+1}^N \mathcal L_d^i(W, b, u, z)]$ - $u, z$ ***是???*** - ***不懂這個式子在幹嘛*** - $\mathcal L_d(G_d(G_f(x_i)), d_i) = d_i\log\dfrac{1}{G_d(G_f(x_i))} + (1-d_i)\log\dfrac{1}{G_d(G_f(x_i))}$ - $G_d$ 是 discriminator;$G_f$ 是 feature extractor ### 2. DSN (Domain Separation Networks) Domain Separation Networks. 2016, NIPS DSN 認為,source 和 target domain 都由兩部分組成:shared & private,對 DANN 進行了擴展。 ![](https://i.imgur.com/HxHz4V2.png) - loss function: $l = l_{task} + \alpha l_{recon} + \beta l_{difference} + \gamma l_{similarity}$ - $l_{recon}$: reconstruction loss,確保 private 部分仍然對 learning 的目標有用 - **為什麼 reconstruction loss 會對 learning 目標有用?** 個人理解為:能夠將 feature 給 reconstruct 回來就代表這個 feature 幾乎保留了 data 的所有訊息 - $l_{difference}$: shared & private 部分的 difference loss - 應該是希望兩個 feature 差越多越好 - $l_{similarity}$: source & target domain 在 shared 部分的 similarity loss - 應該是希望兩個 feature 越相似越好 #### ADDA, Adversarial Discriminative Domain Adaptation (不知為何被寫在 DSN 下面 - Adversarial discriminative domain adaptation. 2017, CVPR - 可視為一個通用的框架,現有的很多方法都可被看做 ADDA 的特例 - 以下 work 似乎都照之前思路進行 - 利用 WGAN 進行 transfer learning - Wasserstein distance guided representation learning for domain adaptation. 2018, AAAI - Coupled GAN 用於 transfer learning - Coupled generative adversarial networks. 2016, NIPS ### 3. SAN **Partial Transfer Learning** 動機:source domain 通常非常豐富,常常會出現 target domain 的 class 只是 source domain 的一小部分 class。這樣會有一個問題:只存在於 source domain 的 class 在 transfer 時,會對結果產生 **negative transfer** 的影響。 這種情況非常普遍,因此就要求 transfer learning 方法能對 target domain 選擇相似的 source domain sample(class),**然而實際使用的時候,target domain 通常沒有 label,不知道 (target domain 的某個 instance?) 和 source domain 的什麼 class 更相似**。作者指出這個問題叫 partial transfer learning,也就是 「只 transfer source domain 中某部分和 target domain 相關的 sample」。 ![](https://i.imgur.com/Q5fCnTC.png) Partial Transfer Learning 的 idea 示意圖如上 Selective Adversarial Networks (SAN) - Partial transfer learning with selective adversarial networks. 2017 - 在 partial problem 中,傳統的 adversarial network 不再適用,因此需要修改使之適用於 partial problem - ***下面這裡沒懂*** - instance level 的 loss $L_d' = \dfrac{1}{n_s+n_t}\sum_\limits{k=1}^{|C_s|}\sum_\limits{x_i\in D_s+D_t} \hat y_i^kL_d^k(G_d^k(G_f(x_i)), d_i)$ - 或者 class level 的 loss ![](https://i.imgur.com/yonjb2s.png) - 為了消除 過於依賴每個 instance 的 prediction probability 的影響,作者又在 target domain 上加了一項 minimize entropy - $E = \frac{1}{n_t}\sum_\limits{x_i\in D_t}H(G_y(G_f(x_i)))$ ### Deep Adversarial Network Transfer 小結 使用 adversarial network 進行 transfer learning 是近年熱門的研究方向。 ## Cutting Edge of Transfer Learning ### TL with Human Knowledge - 不需要 label,取而代之的是將 knowledge 教給 network - Label-free supervision of neural networks with physics and domain knowledge. 2017, AAAI - task: 預測枕頭落下軌跡 - 不需要 label,給予 knowledge: 拋出的物體通常會沿著拋物線的軌跡運動 ### Transitive Transfer Learning 兩個看起來不相似的 domain A & B,是否能找到中間的 domain C,和 A&B 都有一定程度的相似,使得 A 可以先 transfer 到 C 再到 B。 - Transitive transfer learning. 2015, SIGKDD - 在 A 與 B 中間 transfer 一個 domain - Distant domain transfer learning. 2017, AAAI - 在 A 與 B 中間 transfer 多個 domain ### Life-long Learning System - (L2T) Learning to Transfer. 2017 ### Online Transfer Learning - 第一篇 OTL(Online Transfer Learning) 的 paper - Otl: A framework of online transfer learning. ICML 2010 - 在多個 source domain 和 target domain 上的 OTL - Online transfer learning by leveraging multiple source domains. 2017 - Online heterogeneous transfer by hedge ensemble of offline and online decisions. 2017 - Online Feature Selection - Online feature selection and its applications. 2014 - Online feature transformation learning for cross-domain object category recognition. - Online Transfer Ensemble - Online transfer boosting for object tracking. - Knowledge transfer using cost sensitive online learning classification. - Application - Online bayesian transfer learning for sequential data modeling. ICLR 2017 ### Transfer Reinforcement Learning - Transfer learning for reinforcement learning domains: A survey. 發展空間還很大 ### Explainable Transfer Learning 為什麼 domain A 和 domain B 更相似,而不是 domain C? - 只有經驗,缺乏理論 - **Understanding how feature structure transfers in transfer learning. 2017, IJCAI** - **本篇 paper 有助於理解 feature 如何 transfer** ### Understanding how features structure transfers in transfer learning. 2017, IJCAI 這篇 paper 定義某個 domain 的 **feature structure** 為一個 bases 的 set,這個 set 可以重構該 domain 的所有 observation,並且定義 source domain 到 target domain 的 **feature structure**轉換 為 **feature structure transfer learning** - 例如 self-taught learning algorithm 就是一種 feature structure transfer learning algorithm # Others ## Journals and Conferences about Transfer Learning ### Journals ![](https://i.imgur.com/7R7JapE.png) ### Conferences ![](https://i.imgur.com/XZewlWd.png) <!-- ## Transfer Learning 很猛的學者 - [Qiang Yang @ HKUST](https://scholar.google.com.tw/citations?user=1LxWZLQAAAAJ&hl=zh-TW&oi=ao) - [Sinno J. Pan @ NTU](https://scholar.google.com.tw/citations?user=P6WcnfkAAAAJ&hl=zh-TW&oi=ao) - [Ben Tan @ 騰訊](https://scholar.google.com.tw/citations?user=aBOqAicAAAAJ&hl=zh-TW&oi=sra) - Transitive Transfer Learning - Distant Domain Transfer Learning 等等 --> # 參考資料 - [《迁移学习简明手册》](http://jd92.wang/assets/files/transfer_learning_tutorial_wjd.pdf) ###### tags: `transfer learning` `domain adaptation`