# 論文筆記—A Survey on Deep Transfer Learning ## 介紹 深度學習演算法試圖從大量資料中學習高維特徵,使得深度學習勝過機器學習。但反過來說,大量資料對深度學習來說是不可或缺的,模型大小與需要的訓練資料量幾乎呈線性關係。缺乏訓練資料在某些特定領域是無法避免的問題,數據的取得太過複雜又困難,使那個領域要建構大型的標注資料集極為困難。 遷移學習就是為了補足這一缺憾,不限制訓練資料必須與測試資料獨立同分布(independent and identically distributed),而目標領域中的模型也不需要從頭開始訓練,這一特性顯著減少我們需要的訓練資料和訓練時間。 這篇論文將定義深度遷移學習並且提出四種分類,然後回顧各個分類中的研究成果,給予每個類別標準化描述和示意圖。 ## 深度遷移學習 遷移學習主旨是將來源領域的知識轉換進目標領域,靠的是不限制訓練資料必須與測試資料獨立同分布,學習流程圖如下: ![](https://i.imgur.com/p7x31B5.png) 接下來介紹與遷移學習有關的定義: * 一個領域可以被表示為$\mathcal{D} = \{\chi, P(X)\}$ * $\chi$為特徵空間 * $P(X)$為edge probability distribution (邊緣機率分布),表示$X = \{x_1,...,x_n\} \in \chi$ * 一項任務可以被表示為$\mathcal{T} = \{y, f(x)\}$ * $y$為標籤空間 * $f(x)$為目標預測函數,也可以看作是條件機率函數$P(y|x)$ 根據以上條件,遷移學習可以被定義如下: 1. 給予一個基於$\mathcal{D}_t$(領域t)的學習任務$\mathcal{T}_t$,我們可以從$\mathcal{D}_s$(領域s)的學習任務$\mathcal{T}_s$得到幫助。遷移學習的目標是藉著發現並遷移隱含在$\mathcal{D}_s$以及$\mathcal{T}_s$之中的潛在知識,提升函數$f_{\mathcal{T}}(\cdot)$在學習任務$\mathcal{T}_t$的預測能力,其中$\mathcal{D}_S \neq \mathcal{D}_t$且/或$\mathcal{T}_s \neq \mathcal{T}_t$。除此之外,大部分情況下$\mathcal{D}_s$的大小會大於$\mathcal{D}_t$,記作$N_s \gg N_t$。 有兩篇論文[[19]](https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5288526)、[[25]](https://journalofbigdata.springeropen.com/articles/10.1186/s40537-016-0043-6#Sec3)將遷移學習的方法分為三種主要類別,依據來源領域和目標領域的關係來區分。近期的遷移學習研究主要聚焦在兩個方面:領域適應(domain adaption)和多來源領域遷移(multi-source domains transfer)。 遷移學習加上深度學習,稱為深度遷移學習,可以定義如下: 2. 給予一個被$\langle \mathcal{D}_s, \mathcal{T}_s, \mathcal{D}_t, \mathcal{T}_t, f_{\mathcal{T}}(\cdot)\rangle$定義的遷移學習任務,當$f_{\mathcal{T}}(\cdot)$是一個能夠對應為深度神經網路的非線性函數,這個遷移學習就是深度遷移學習。 ## 分類 深度遷移學習研究如何靠著深度神經網路利用其他領域的知識,基於使用到的技術,這篇論文將深度遷移學習分為四種類別: * 基於實例的深度遷移學習 * 基於映射的深度遷移學習 * 基於網路的深度遷移學習 * 基於對抗的深度遷移學習 ![](https://i.imgur.com/Ey1gWYb.png) ### Instances-based deep transfer learning 基於實例的深度遷移學習 此方法指的是使用特定的權重調整策略,從來源領域中取用部分實例並給定適當的權重,然後補充進目標領域的訓練集。這個方法的條件是來源領域的部份實例是能夠在目標領域中使用的,示意圖如下: ![](https://i.imgur.com/L3G4dLP.png) 淺藍色實例代表目標領域的實例不同,被排除在外;深藍色代表只要有特定的權重,就能與目標領域的實例相近,能夠被加進訓練資料。 [Dai, W., Yang, Q., Xue, G.R., Yu, Y.](https://cse.hkust.edu.hk/~qyang/Docs/2007/tradaboost.pdf)等人提出TrAdaBoost的方法去找出與目標領域不同的來源領域實例,使用AdaBoost(adaptive boosting)演算法來完成,AdaBoost(adaptive boosting)是一種迭代演算法,將前一個分類器分錯的樣本加重權重並應用到下一輪,以及每過一輪新增一個弱分類器,直到訓練結束。AdaBoost的特性在於準確率高(與SVM相近),訓練時間短且不用調參數,又幾乎不overfitting。[介紹網站](https://medium.com/@houyitong/adaboost%E4%BB%8B%E7%B4%B9-%E4%B8%8A-%E6%BC%94%E7%AE%97%E6%B3%95%E4%BB%8B%E7%B4%B9-894fe049ad76) 回到TrAdaBoost,他們藉由重新設定來源領域實例的權重,組成近似於目標領域的分布,而模型使用這個新的來源領域資料和目標領域的資料進行訓練,就結果來說,他們降低了不同領域上的訓練誤差,還保留AdaBoost的特性。 在TrAdaBoost之後也衍生出各種不同的演算法 * TaskTrAdaBoost能夠快速的訓練新的目標 * ExpBoost.R2和TrAdaBoost.R2用於解決回歸問題 * Bi-weighting domain adaptation (BIW)將來源和目標領域對齊到共同的座標系統,然後調整來源領域的實例權重 另外則有研究實際運用在: * 砂岩顯微圖像分類 ### Mapping-based deep transfer learning 基於映射的深度遷移學習 此方法將來源領域和目標領域的實例都映射到新的資料空間,兩個領域的實例在這個空間中會很相似,並且適合給深度神經網路訓練。這個方法的條件是在精心設計的資料空間中能讓兩個原本有差異的領域有相似的表現。示意圖如下: ![](https://i.imgur.com/dcxaZRA.png) 新的資料空間中所有實例都能拿來訓練。 [Pan, S.J., Tsang, I.W., Kwok, J.T., Yang, Q.](https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5640675)等人提出Transfer component analysis (TCA)方法,並讓這個方法應用於遷移學習中。TCA是一種特徵提取方法,他能讓來源領域和目標領域投影到新空間時,我們稱它RKHS(Reproducing kernel Hilbert space),兩者的數據群集不會離太遠,下圖是那篇論文的領域合成展示: ![](https://i.imgur.com/xfKaQOk.png) ![](https://i.imgur.com/hcPlRbj.png) 其中最左一行的是原始的數據分布,(c)、(f)、(h)、(k)是屬於TCA方法,(i)、(l)、(n)、(o)是SSTCA,也是同一篇論文提出的方法,是半監督版本的TCA。 其他應用於映射空間的研究包含: * 加入maximum mean discrepancy(MMD,最大平均差)來計算領域彼此的距離 * 也有再對MMD改良的multiple kernel variant MMD(MK-MMD) * 以及用joint maximum mean discrepancy(JMMD,聯合最大平均差)來計算聯合分布,聯合分布在機率學中指的是同時對於兩個變數的機率分布 * 將CNN中的隱藏層映射到RKHS的研究,讓兩個領域的距離最小化 * Wasserstein distance被用作一種距離指標,已找到更好的映射方式 ### Network-based deep transfer learning 基於網路的深度遷移學習 此方法目標在重新使用(reuse)一部分在來源領域訓練完的網路,其中包含網路結構和參數,將之運用到目標領域的深度神經網路。條件是神經網路的處理機制像是人類的腦袋,屬於迭代、連續的抽象過程,網路前半要能夠提取特徵,且特徵是有用的。示意圖如下: ![](https://i.imgur.com/2p5JdED.png) 上半部的網路已經經過大量資料,在來源領域學習完畢,被藍色線段框住的部分會被拿來用在新的網路上,最後經過微調完成新的網路。 [Huang, J.T., Li, J., Yu, D., Deng, L., Gong, Y.](http://staff.ustc.edu.cn/~jundu/Publications/publications/ISCSLP2014_Xu.pdf)提出的網路模型分為兩半部,分別是與語言無關的特徵轉換(language-independent feature transform),以及有關於語言的分類器(language-relative classifier),前者可以在不同語言下使用,也就是被拿來遷移的部分。 [Oquab, M., Bottou, L., Laptev, I., Sivic, J.](https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6909618)是應用在圖像上的研究,他們把用ImageNet訓練過的CNN部分層拿出來,協助抓取其他資料量少的資料集裡面的主角(重點)範圍。 ![](https://i.imgur.com/tEwjdc7.png) 這類方法搭配無監督式學習被廣泛運用在各種不同的專業領域,濾波器、重力波訊號分類......。特別被作者提出來的是[Yosinski, J., Clune, J., Bengio, Y., Lipson, H.](https://proceedings.neurips.cc/paper/2014/file/375c71349b295fbe2dcdca9206f20a06-Paper.pdf)提出網路結構和可遷移性的關係,他們說有些模組可能不會影響領域內的準確性,但會影響到可遷移性。另外也點出哪些特徵在深度網路能夠被遷移,以及什麼樣的網路適合遷移,其中包含LeNet、AlexNet、VGG、Inception、ResNet。 ### Adversarial-based deep transfer learning 基於對抗的深度遷移學習 此方法引入GAN的概念,藉由對抗式方法找出同時適用於來源領域和目標領域的可遷移表示法。這個方法的條件在於,有效的遷移應該要有好的表示法,意思是他同時要對主要學習任務有辨識度,又不會將來源和目標領域區隔開來(領域適應)。示意圖如下: ![](https://i.imgur.com/4eW2UD7.png) 在來源領域訓練大量數據的階段中,網路的前幾層被視為特徵提取器,會將兩個領域的特徵萃取並送到對抗層,對抗層會試著分辨特徵是來自何處。如果對抗網路辨識得很差,就代表兩種領域的特徵差異很小,適合用作遷移。而在接下來的訓練階段中,會根據對抗層的表現來尋找最適合遷移的特徵。 基於對抗的深度遷移學習因為有著良好的效果和實用性而得到蓬勃的發展 * 有將它應用在領域適應(domain adaption)的遷移學習 * 也有提出對抗性訓練方法,透過增加網路層數和梯度反轉層(gradient reversal layer),使他能夠適用於大多數的前饋式神經網路 * 可跨領域跨任務,同時遷移知識的方法,其中使用到特殊的損失函數 * 使用不同的損失值並結合判別器完成新的領域適應方法 * 以隨機多線性對抗網路找出不同領域的適應方式 * 基於度量學習(metric learning)找到更好控制的特徵 ### 結論 這篇論文回顧並分類了各種深度遷移學習的研究,遷移方式被分成四大類,許多應用結合了複數個類型中的方法。而負向遷移(negative transfer)和可遷移性(transferability)一直是傳統遷移學習的重要問題,最後還提到知識轉移需要物理學家、神經科學家和計算機科學家的合作。 ## 延伸閱讀 [[25]](https://journalofbigdata.springeropen.com/articles/10.1186/s40537-016-0043-6#Sec3)根據來源領域和目標領域的關係分為: 1. Homogeneous transfer learning 2. Heterogeneous transfer learning 3. Negative transfer 領域適應(domain adaption)感覺效果跟基於映射得遷移學習方式相同,都是讓兩個領域的元素互相靠近,讓兩個領域的元素都能用來訓練。 度量學習(metric learning)也可以被稱為相似度學習,會根據樣本的相似度將他歸類到不同群體。 負向遷移(negative transfer)指的是舊有的學習經驗對新的學習任務造成負面影響。 ###### tags: `論文`