Day01 Transfer Learning 遷移式學習


Day01 Transfer Learning 遷移式學習

前言


就像人類將過去學習到的經驗運用在認識新東西上,遷移式學習將之前訓練好已經學習過的預模型繼承到其他領域的預訓練模型,可以省去重新從頭訓練所需要的工作,好處是降低訓練時特徵提取時間與淺層網絡訓練時間也可以避免訓練資料太少造成的過擬和,壞處是訓練準確率和泛化能力得不到保證。


擴展之前預訓練的複雜深度網絡(第一行大藍框),我們替換倒數第二層對圖像的輸出特徵作為新的訓練輸入。使用這個輸入,我們再訓練一個迷你的淺層網絡(第二行綠底網絡),就可以應用在其他領域。

實際訓練步驟:

  1. 用之前預訓練的網絡對所有當前訓練圖片提取特徵(這些圖片是新的領域問題),把所有圖片對應的特徵存儲起來,作為新的訓練輸入
  2. 構造一個新的淺層網絡,使用第一步中得到的訓練輸入,訓練新的網絡,得到結果。

Tensorflow官網所給的實際用代碼跑的範例

翻譯文章內容

出處:"A Survey on Deep Transfer Learning",6 Aug 2018, arXiv:1808.01974v1

0.摘要

新的分類平台,越來越受到關注的深度學習最近被學者應用在許多領域。例如生物資訊和機器人技術,由於資料建立成本高而且標記困難導致發展受限,這些很難使用大規模且可以被良好標註的數據集。遷移式學習能夠解決訓練資料和測試資料必須滿足獨立同分布(i.i.d.)的條件,這可以讓我們能使用遷移式學習解決訓練資料不充足的問題。本篇調查內容著重於基於深度遷移式學習使用到的技術,檢視現今用深部學習網路與應用在遷移式學習的研究。

1.介紹

深度學習已經成功地被應用於許多實際層面。深度學習在機器學習之上,深度學習演算法旨在從巨量數據學習高階特徵值。自動的從非監督式與半監督式特徵學習演算法和階梯式提取數據特徵。相對的,傳統機器學習方法需要人工設計特徵,增加許多使用者的負擔。也可以說,深度學習代表著演算法基於大尺度數據集下的機器學習。

數據依賴(data dependence)是深度學習其中一項嚴重的問題。相對於傳統機器學習,深度學習強烈依賴巨量數據,因為需要大量數據了解數據的潛在結構。發現有趣的現象,模型的規模跟所需要的數據尺寸大小呈線性關係。合理的解釋這個特殊的問題,模型的表現空間必須足夠大以探索數據內的圖案。模型的預定層可以辨別高階的訓練資料,而且接下來的層數可以辨別資訊,幫助最終的判定。

在某些領域中,不充足的訓練資料是無可避免的問題。收集資料的昂貴且複雜造成要建置一個大規模、高質量被標註的數據集極度困難。例如,在生物資訊中,每一個樣品通常代表一個診斷測試或是一個病人。除此之外,即使我們以昂貴的價格獲得訓練數據集,也非常容易過時,因此無法有效地應用於新任務。

遷移式學習解決了訓練和測試資料必須滿足獨立同分布(i.i.d.)的假說,這促進了我們使用轉移學習來解決訓練數據不足的問題。在轉移學習中,不需要訓練數據和測試數據為獨立同分布(i.i.d.),並且不需要從頭訓練目標域中的模型,這可以大大減少目標域中對訓練數據和訓練時間的需求。

過去,大多數有關遷移學習的研究都是以傳統機器學習方法。由於深度學習的主導地位現代機器學習方法,深度遷移學習及其調查應用尤為重要。本調查文件的貢獻如下面所述:
-我們首先定義了四種深度遷移學習。
-我們回顧了每個類別有關深度遷移學習的當前研究工作,並給出了遷移的標準化描述和每個類別的示意圖。

2.深度遷移式學習

遷移學習是機器學習中解決培訓數據不足這一基本問題的重要工具。試圖通過放寬訓練數據和測試數據必須是獨立同分布(i.i.d.)的假設,將知識從源領域轉移到目標領域。這將對許多由於訓練數據不足而難以改進的領域產生巨大的正向影響。
遷移學習的學習過程如圖1所示。
圖1.遷移式學習學習流程
圖1.遷移式學習學習流程

需要明確定義本調查中使用的一些符號。首先,我們分別給出一個域和一個任務的定義:一個域可以用D = {χ,P(X)}表示,它包含兩部分:特徵空間χ和邊緣概率分佈P(X ),其中X = {x1,...,xn}∈χ。任務可以用T = {y,f(x)}表示。 它由兩部分組成:標籤空間y和目標預測函數f(x)。f(x)也可以視為條件概率函數P(y | x)。然後,可以將轉移學習正式定義如下:

定義1.(遷移式學習)。 基於Dt的學習任務Tt,我們可以從Ds獲得有關學習任務Ts的幫助。遷移學習旨在通過以下方式提高學習任務Tt的預測函數fT(·)的性能:發現和繼承來自Ds和Ts的潛在知識,其中Ds不等於Dt和/或Ts不等於Tt。另外,在大多數情況下,Ds的大小比Dt的大小多了許多,Ns>>Nt。

Pan和Weiss的調查,根據源域和目標域之間的關係將轉移學習方法分為三大類,這一點已被廣泛接受。這些內容很好地總結了過去有關遷移學習的著作,其中介紹了許多經典的遷移學習方法。此外,最近提出了許多更新更好的方法。近年來,遷移學習研究社群主要專注在這兩個方面:領域適應和多源領域遷移。

近年來,深度學習已在許多研究領域中佔據主導地位。 重要的是找到如何通過深度神經網絡有效地繼承知識,這稱為深度轉移學習,其定義如下:

定義2.(深度遷移學習).給定由hDs,Ts,Dt,Tt,fT(·)i定義的轉移學習任務。 fT(·)是反映深層神經網絡的非線性函數,是一項深度遷移學習任務。

3.分類

深度遷移學習研究如何通過深度神經網絡利用其他領域的知識。由於深度神經網絡已在各個領域中流行起來,因此大量的深度遷移學習方法被提出來,對它們進行分類和總結非常重要。基於深度遷移學習中使用的技術,本文將深度遷移學習分為四類:基於實例的深度遷移學習,基於映射的深度遷移學習,基於網絡的深度遷移學習和基於對抗的深度遷移學習。 如表1所示。

3.1基於實例的深度遷移學習

基於實例的深度遷移學習是指使用特定的權重調整策略,通過為這些選定實例分配適當的權重值,從源域中選擇部分實例作為對目標域中訓練集的補充。 它基於以下假設:“儘管兩個域之間存在差異,但目標域可以適當的權重利用源域中的部分實例。” 基於實例的深度遷移學習如圖2所示。

圖2.基於實例的深度遷移學習的示意圖。訓練數據集中排除了源域中含義與目標域不同的淺藍色實例;源域中具有深藍色的實例與目標域具有相似的含義,並且包含在具有適當權重的訓練數據集中。

Dai提出的TrAdaBoost使用基於AdaBoost的技術來篩選出與源域中的目標域不同的實例。在源域中對實例進行加權,以組成類似於目標域的分佈。最後,通過使用來自源域的重新加權實例和來自目標域的原始實例來訓練模型。它可以減少保留AdaBoost屬性的不同分佈域上的加權訓練誤差。Yao提出的TaskTrAdaBoost是一種快速算法,可促進對新目標進行快速再訓練。不同於TrAdaBoost是為分類問題設計的,Pardoe提出了ExpBoost.R2和TrAdaBoost.R2來解決回歸問題。Wan提出的雙加權域自適應(BIW)可以將兩個域的特徵空間對準公共坐標系,然後從源域中分配適當的實例權重。Li提出了一種增強的TrAdaBoost,以處理區域間砂岩顯微圖像分類的問題。Xu提出了一種度量轉移學習框架,以在並行框架中學習實例權重和兩個不同域的距離,以使跨域的知識轉移更加有效。Liu將集成轉移學習引入到可以利用源域實例的深度神經網絡。

3.2映射式的深度遷移學習

基於映射的深度傳輸學習是指將實例從源域和目標域映射到新的數據空間。在這個新的數據空間中,來自兩個域的實例類似,並且適用於聯合深度神經網絡。它基於以下假設:“儘管兩個原始域之間存在差異,但在精心設計的新數據空間中它們可能會更相似。” 圖3顯示了基於實例的深度遷移學習的示意圖。

圖3.基於映射的深度遷移學習的示意圖。同時,來自源域和目標域的實例也更相似地映射到新的數據空間。將新數據空間中的所有實例視為神經網絡的訓練集。

Pan和基於TCA的方法將Zhang引入的轉移成分分析(TCA)已被廣泛用於傳統轉移學習的許多應用中。一個自然的想法是將TCA方法擴展到深度神經網絡。Tzeng通過引入適應層和額外的域混淆損失來學習一種在語義上有意義且領域不變的表示形式,從而將MMD擴展為比較深層神經網絡中的分佈。在這項工作中使用的MMD距離定義為

而損失函數被定義為

Long通過用Gretton提出的多核變體MMD(MK-MMD)距離替換MMD距離,改進了以前的工作。卷積神經網絡(CNN)中與學習任務相關的隱藏層被映射到再生核希爾伯特空間(RKHS)中,並且通過多核優化方法將不同域之間的距離最小化。Long提出聯合最大平均差異(JMMD)來測量聯合分佈的關係。JMMD用於概括深度神經網絡(DNN)的傳遞學習能力,以適應不同領域中的數據分佈並改進以前的工作。由Arjovsky提出的Wasserstein距離可以用作域的新距離測量以找到更好的映射。

3.3網絡式的深度遷移學習

基於網絡的深度遷移學習是指對源域中經過預訓練的局部網絡(包括其網絡結構和連接參數)進行重用,將其轉變為目標域中使用的深度神經網絡的一部分。 它基於以下假設:“神經網絡類似於人腦的處理機制,並且是一個迭代且連續的抽象過程。 網絡的前層可以被當作特徵提取器,提取的特徵是通用的。” 基於網絡的深度遷移學習的示意圖如圖4所示。

圖4.基於網絡的深度轉移學習的示意圖。首先,使用大規模訓練數據集在源域中對網絡進行了訓練。其次,將針對源域進行預訓練的部分網絡轉移為針對目標域設計的新網絡的一部分。最後,可以以微調策略來更新所傳送的子網。

Huang將網絡分為兩部分,前一部分是與語言無關的特徵轉換,最後一層是相對於語言的分類器。與語言無關的特徵變換可以在多種語言之間傳遞。Oquab重用CNN在ImageNet數據集上訓練的前層,以計算其他數據集中的圖像的中間圖像表示,訓練CNN以學習圖像表示,這些圖像表示可以有效地轉移到數量有限的訓練數據的其他視覺識別任務中。Long提出了一種從源域中的標記數據和目標域中的未標記數據聯合學習自適應分類器和可傳遞特徵的方法,該方法通過將幾層插入到深度網絡中來明確地學習目標分類器的殘差函數。Zhu在DNN中同時學習域自適應和深度哈希功能。Chang提出了一種新穎的多尺度卷積稀疏編碼方法。該方法可以以聯合方式自動地以不同的規模學習濾波器組,並具有所學習模式的增強規模專用性,並為學習可轉移的基礎知識並將其針對目標任務進行微調提供了一種無監督的解決方案。George應用深度轉移學習將知識從現實世界的對象識別任務轉移到故障分類器,以用於多個重力波信號的檢測器。它證明了DNN可以用作無監督聚類方法的優秀特徵提取器,從而基於它們的形態來識別新類,而無需任何標記示例。

另一個非常值得注意的結果是Yosinski指出了網絡結構和可傳輸性之間的關係。結果表明,某些模塊可能不會影響域內準確性,但會影響可傳遞性。它指出了在深層網絡中哪些功能可以轉移,以及哪種類型的網絡更適合轉移。得出的結論是LeNet,AlexNet,VGG,Inception,ResNet是基於網絡的深度傳輸學習的不錯選擇。

3.4對抗式的深度遷移學習

基於對抗的深度轉移學習是指引入對抗性技術,該技術受生成對抗性網絡(GAN)的啟發,以找到適用於源域和目標域的可繼承展示。它基於這樣的假設:“對於有效的遷移,良好的展示應於主要學習任務有區別性,並且在源域和目標域之間無區別性。” 基於對抗的深度遷移學習的示意圖如圖5所示。

圖5.基於對抗的深度遷移學習的示意圖。在源域的大規模數據集訓練過程中,網絡的前層被視為特徵提取器。它從兩個域中提取特徵,並將其發送到對抗層。對抗層嘗試區分要素的來源。如果對抗網絡的性能較差,則意味著這兩種功能之間的差異很小,並且可傳遞性更好,反之亦然。在下面的訓練過程中,將考慮對抗層的性能,以迫使遷移網絡發現具有更高可遷移性的一般特徵。

基於對抗的深度遷移學習由於其良好的效果和較強的實用性,近年來獲得了長足的發展。Ajakan引入對抗技術,通過在損失函數中使用域適應正則項來遷移學習以進行域適應。Ganin提出了一種對抗訓練方法,該方法通過增加很少的標準層和簡單的新的梯度反轉層而適用於大多數任何前饋神經模型。Tzeng提出了一種方法,用於稀疏標記的目標域數據的知識跨域和跨任務同時性。在這項工作中使用了特殊的聯合損失函數來強制CNN來優化定義為LD = Lc +λLadver的兩個域之間的距離,其中Lc是分類損失,Ladver是域對抗損失。由於這兩個損耗彼此直接相對,因此引入了一種迭代優化算法來在固定另一個損耗時更新一個損耗。Tzeng提出了一種新的GAN丟失,並與判別建模相結合,從而提出了一種新的域自適應方法。Long提出了一種基於隨機多線性對手的多特徵隨機層和分類器層的隨機多線性對抗網絡。
進行深刻而有區別的對抗適應。Luo利用領域對抗性損失,並使用基於度量學習的方法將嵌入推廣到新穎任務中,以在深度轉移學習中找到更易處理的特徵。

總結

在本調查報告中,我們對深度遷移學習的當前研究進行了回顧和分類。深度遷移學習首先分為四類:加權式的深度遷移學習,映射式的深度遷移學習,網絡式的深度遷移學習和對抗式的深度遷移學習。在大多數實際應用中,通常將上述多種技術結合使用以獲得更好的效果。當前大多數研究集中在監督式學習上,如何通過轉移知識到無監督或半監督學習的深度神經網絡可能會在未來引起越來越多的關注。負遷移和可遷移性測量是傳統遷移學習中的重要問題。這兩個問題的影響在深度遷移學習還需要我們進行進一步的研究。此外,一個非常有吸引力的研究領域是為深度神經網絡中的遷移知識找到更強大的物理支持,這需要物理學家、神經科學家和計算機科學家的合作。可以預見,在深度神經網絡的發展中,深度遷移學習將被廣泛應用於解決許多具有挑戰性的問題。

參考文件

Chuanqi Tan, Fuchun Sun, Tao Kong, Wenchang Zhang, Chao Yang, and Chunfang Liu,"A Survey on Deep Transfer Learning"
李弘毅上課講義
遷移學習101

#Transfer Learning #Deep Learning #AI #Pretrained Learning #TensorFlow
深度學習中影像辨識技術用於捕捉人體動作姿態,所用到的一些技術原理還有應用模型方法,其中包含VGGNet, 物件偵測YOLOv3, 姿態Openpose, Pose Proposal Networks, 3D pose baseline; 再加上應用在3D動畫會用到的技術: MMD






Related Posts

Day01_Origami學習筆記

Day01_Origami學習筆記

Python Table Manner - 程式碼風格

Python Table Manner - 程式碼風格

該來理解 JavaScript 的原型鍊了

該來理解 JavaScript 的原型鍊了

打造你專屬的 CLI - iTerm2 + zsh

打造你專屬的 CLI - iTerm2 + zsh

Leetcode 刷題雜談 - 該如何每天都刷題

Leetcode 刷題雜談 - 該如何每天都刷題

Day02 典型統計應用在社群媒體分析(Classical statistics applied to social data) part 2

Day02 典型統計應用在社群媒體分析(Classical statistics applied to social data) part 2



Comments