綜合實踐指南:遷移學習及在深度學習中的應用
AI 前線導讀:在任務間遷移知識是人類與生具有的能力。通過完成某個任務所獲得的知識,同樣可用於解決其他相關的任務。傳統機器學習和深度學習演算法通常在設計上是獨立工作的,這些演算法訓練用於解決特定的問題。一旦特徵空間的分佈發生變化,就需要從頭開始重新構建模型。遷移學習設計用於解決這些相互隔離的學習方式,並使用從其它任務獲取的知識去解決相關的問題。本文全面介紹了遷移學習的理念、範圍和真實世界應用,並給出遷移學習在深度學習中的應用例項。
更多幹貨內容請關注微信公眾號“AI 前線”(ID:ai-front)
應用例項:
-
如何駕駛騎摩托車 ⇒ 如何駕駛汽車;
-
彈奏古典鋼琴 ⇒ 彈奏爵士樂鋼琴;
-
掌握數學和統計學知識 ⇒ 掌握機器學習。
在上面列出的各個場景中,我們並非從零開始學習新的知識域,而是遷移並利用了我們過往學習到的知識!
目前為止,傳統機器學習和深度學習演算法通常在設計上是獨立工作的,這些演算法訓練用於解決特定的問題。一旦特徵空間的分佈發生變化,就需要從頭開始重新構建模型。遷移學習設計用於解決這類相互隔離的學習方式,並使用從其它任務獲取的知識去解決相關的問題。在本文中,我們將全面覆蓋遷移學習的理念、範圍和真實世界應用,並給出一些動手例項。具體而言,本文的內容涉及:
-
遷移學習的提出動機;
-
理解遷移學習;
-
遷移學習策略;
-
在深度學習中使用遷移學習;
-
深度遷移學習策略;
-
深度遷移學習型別;
-
遷移學習的應用;
-
遷移學習的優點;
-
遷移學習面對的挑戰;
-
結論和展望。
如果將遷移學習視為一種通用的高層概念,我們認為它是和機器學習、統計建模同一時代出現的。儘管如此,本文中我們將更加關注深度學習本身。
注意:文中所有的案例研究都給出了包括程式碼和輸出的分步驟細節。這些案例研究和結果完全基於我們撰寫的《Python 遷移學習實戰》( ofollow,noindex">Hands on Transfer Learning with Python ) 一書中的實際操作實驗。該書實現和測試了這些模型,文末將詳細介紹該書。
鑑於網路上存在資訊過載的問題,本文旨在涵蓋一些理論概念,一併給出深度學習應用的一些實際動手例項。所有例項均採用 Python 語言,使用基於 Tensorflow 後端的 Keras 實現。這對於機器學習新手或剛剛著手深度學習的人而言,無疑是很完美的匹配!如果讀者對 PyTorch 感興趣,儘可隨意轉換這些示例程式。我將在本文和 GitHub 上展示大家給出的可行工作!
遷移學習的動機
上面我們簡單介紹了人們如何從零開始學習所有事情,並如何將他們的知識從已學習的領域利用和遷移到新的領域和任務上。在推動 真實人工通用智慧(AGI,True Artificial General Intelligence) 的熱潮中,資料科學家和研究人員認為,遷移學習可以促進我們在 AGI 方面取得進步。事實上在近期的 NIPS 2016 上,吳恩達(Andrew Ng),一位與 Google Brain、百度、斯坦福大學和 Coursera 有密切聯絡的著名教授兼資料科學家,做了一個非常好的教程,名為“使用深度學習構建 AI 應用的具體細節”( Nuts and bolts of building AI applications using Deep Learning )。 其中提到:
繼有監督學習之後,遷移學習將成為機器學習取得成功的下一個驅動因素。
對此教程感興趣的讀者,推薦閱讀 NIPS 2016 提供的 教程視訊 )。
事實上在 2010 年之前,遷移學習並未作為一個概念出現。NIPS 1995 的研討會“Learning to Learn: Knowledge Consolidation and Transfer in Inductive Systems ”被認為是最初提出該領域的研究。此後,“學會學習”(Learning to Learn)、“知識整合”(Knowledge Consolidation)和“歸納遷移(”Inductive Transfer)等術語成為可以互換使用的概念。不同的研究人員和學術論文,總是會對遷移學習給出不同背景下的定義。在著名的《深度學習》一書中,Goodfellow 等著者基於泛化(generaliztion)定義了遷移學習。他們給出的定義如下:
從一個場景中學習到的條件,可通過改進泛化用於另一個場景。
因此遷移學習提出的主要動機,尤其是考慮到深度學習的背景,是大多數用於解決複雜問題的模型需要大量的資料。並且從標記資料點所需的時間和精力上看,為有監督模型提供大量的標記資料事實上非常困難。一個基本的例子是 ImageNet 資料集,它提供了具有多個類別的數百萬影象,其中凝聚了斯坦福大學研究團隊多年的辛勤工作!
但是,對每個領域都建立此類資料集是非常困難的。此外,大多數深度學習模型都非常專注於特定的領域,甚至是特定的任務。儘管深度學習可能給出了目前最先進的模型,具有非常高的準確性,並在全部基準測試上表現優異。但是這些模型僅適用於非常特定的資料集,當應用於新任務時會給出顯著的效能損失,即便新任務與所訓練的任務非常相似。這些問題是推動遷移學習發展的動力。遷移學習超越了特定的任務和域,它試圖給出的方法可利用預訓練的模型中的知識,並用於解決新域中的問題!
理解遷移學習
首先應指出,遷移學習並非一個特定專用於深度學習的新概念。遷移學習的方式,完全不同於使用傳統方法構建和訓練機器學習模型。
傳統的機器學習是孤立的,純粹基於特定的任務和資料集訓練各自孤立的模型,學習中並未保留任何可從一種模型遷移到另一種模型上的知識。在遷移學習中,使用者可以利用先前訓練模型中的知識(即特徵、權重等)訓練新的模型,甚至可以解決諸如新任務具有較少資料等問題!
為理解上面的說法,我們給出一個例子。假設我們的任務是識別餐館某片受限區域影象中的物件。我們將針對定義範圍的任務標記為 T1。如果給定了該任務的資料集,那麼我們可以訓練並微調模型。該模型很好地適用來自同一域(即餐廳)的未見資料點,即泛化。如果我們不具有所需的足夠訓練樣例可用於處理給定領域的任務,那麼傳統的有監督機器學習演算法就會崩潰。假設我們現在必須從公園或咖啡館的影象中檢測物體,該任務稱為 T2。在理想情況下,我們應該能夠將針對 T1 訓練的模型用於 T2。但實際上,我們會面臨效能下降以及模型不能很好泛化的問題。導致問題的原因很多,可統稱為模型對訓練資料和領域存在偏差(bias)。
遷移學習使得我們能夠利用前期學習任務中的知識,並將這些知識應用於新的相關任務。如果任務 T1 具有更多的資料,那麼我們可以利用它所學習的模型(特徵、權重等),泛化並應用於顯著缺少資料的任務 T2。對於計算機視覺領域的一些問題,某些低層特徵(如邊緣、形狀、邊角和強度等)是可以跨任務共享的,從而實現任務間的知識轉移!正如我們在前面給出的圖中所描述的,來自現有任務的知識,可作為學習新目標任務時的額外輸入。
形式化定義
為理解不同的遷移學習策略,下面我們給出遷移學習的形式化定義。在綜述論文“ A Survey on Transfer Learning ”) 中,Sinno Jialin Pan 和楊強教授使用域、任務和邊緣概率定義了一種用於理解遷移學習的框架。該框架的定義如下:
域 D 定義為由特徵空間ꭕ和邊緣概率 P(Χ) 組成雙元素元組。其中Χ是抽樣資料點。域可以形式化表示為 D = {ꭕ, P(Χ)}。
上式中,xᵢ表示特定向量。而任務 T 可定義為標籤空間γ和目標函式η的雙元素元組。從概率角度看,目標函式可表示為 P(γ|Χ)。
Sebastian Ruder 撰寫了一篇 很好的文章 , 他使用上述定義和表示將遷移學習定義如下:
場景(Scenario)
基於上面給出的定義,我們列出如下涉及遷移學習的典型場景:
為進一步澄清“域”(domain)和“任務”(task)二者間的差異,下圖給出了一些例子:
要點
正如我們已經介紹的,遷移學習能夠利用源學習器對目標任務的現有知識。在遷移學習的過程中,必須回答如下三個重要的問題:
-
遷移什麼?: 該問題是整個遷移學習過程中第一步,也是最重要的一步。為提高目標任務的效能,我們力圖尋求哪些知識可以從源遷移到目標。在回答這個問題時,我們會試圖確定哪些知識是特定於源的,哪些知識在源和目標之間的是共同的。
-
何時遷移?: 在某些場景中,遷移知識可能要比改進知識更糟糕(該問題也稱為“負遷移”)。我們的目標是通過遷移學習改善目標任務的效能或結果,而不是降低它們。我們需要注意何時需要遷移,何時不需要遷移。
-
如何遷移?: 一旦回答了“遷移什麼”和“何時遷移”的問題,我們就可以著手確定跨域或跨任務實現知識實際遷移的方法。該問題涉及如何改進現有的演算法和各種技術,我們將在本文隨後的章節中介紹。此外,為更好地理解如何遷移,文中還給出了具體的案例研究。
上述問題有助於我們定義可應用遷移學習的各種場景,以及可採用的技術。下一章將對此展開介紹。
遷移學習的策略
根據域、任務和資料的可用性不同,我們可以應用不同的遷移學習策略和技術。我個人特別推薦論文“ A Survey on Transfer Learning ”中給出的下圖:
參考上圖,根據所使用的傳統機器學習演算法,遷移學習方法可分類為: 歸納式遷移學習(Inductive Transfer learning):在該場景中,源域和目標域相同,但源任務和目標任務彼此不同。演算法嘗試利用來自源域的歸納偏差幫助改進目標任務。根據源域中是否包含標記資料,歸納式遷移學習可以進一步分為類似於多工學習(multitask)和自學習(self-taught)這兩類方法。
-
無監督遷移學習(Unsupervised Transfer Learning):該場景類似於歸納式遷移學習,重點關注目標域中的無監督任務。其中,源域和目標域類似,但是任務不同。在該場景中,任一域都沒有可用的標記資料。
-
直推式遷移學習(Transductive Transfer Learning):在該場景中,源任務和目標任務之間存在一些相似之處,但相應的域不同。源域具有大量標記資料,而目標域沒有。根據特徵空間或邊緣概率的設定不同,直推式遷移學習可進一步分類為多個子類。
下表總結了上述技術的不同設定和場景。
上面介紹的三種遷移類別,詳細列出了可應用和研究遷移學習的不同設定。下列方法可回答在類別間遷移什麼的問題:
-
基於樣本的遷移學習(Instance transfer):通常,理想場景是源域中的知識可重用到目標任務。但是在大多數情況下,源域資料是不能直接重用的。然而,源域中的某些例項是可以與目標資料一起重用,達到改善結果的目的。對於歸納式遷移,已有一些研究利用來自源域的訓練例項來改進目標任務,例如 Dai 及其合作研究者對 AdaBoost 的改進工作。
-
基於特徵表示的遷移學習(Feature-representation transfer): 該類方法旨在通過識別可以從源域應用於目標域的良好特徵表示,實現域差異最小化,並降低錯誤率。根據標記資料的可用性情況,基於特徵表示的遷移可採用有監督學習或無監督學習。
-
基於引數的遷移學習(Parameter transfer): 該類方法基於如下假設:針對相關任務的模型間共享部分引數,或超引數的先驗分佈。不同於同時學習源和目標任務的多工學習,在遷移學習中我們可以對目標域應用額外的權重以提高整體效能。
-
基於關係知識的遷移學習(Relational-knowledge transfer): 與前面三類方法不同,基於關係知識的遷移意在處理非獨立同分布(i.i.d)資料即每個資料點均與其他資料點存在關聯。例如,社交網路資料就需要採用基於關係知識的遷移學習技術。
下表清晰地總結了不同遷移學習策略間的關係,以及遷移什麼的問題。
下一章中,我們將使用上述理解,學習如何應用遷移學習到深度學習場景中。
將遷移學習應用於深度學習
上一章中介紹的策略,是可應用於機器學習技術的一般方法。這為我們提出了一個問題,遷移學習是否的確可應用於深度學習的場景?
深度學習模型是所謂 歸納學習 (inductive learning)的一種代表性方法。歸納學習演算法的目標是從一組訓練樣例中推理出對映。例如,對於分類問題,模型學習的是輸入元素和類標籤間的對映關係。為將學習器很好地泛化到未見資料上,學習演算法使用了與訓練資料分佈相關的一組假設,我們稱這些假設為“ 歸納偏差 ”(inductive bias)。歸納偏差或假設可使用多種因素表徵,例如,限定偏差的假設空間,假設空間的搜尋過程等。這些偏差會影響模型在特定任務和域中學習的方式以及學習的內容。
歸納遷移技術(Inductive transfer techniques)利用源任務的歸納偏差輔助目標任務。這可以通過多種不同方式實現。例如,通過限制模型空間和縮小假設空間調整目標任務的歸納偏差,或者藉助源任務的知識對搜尋過程本身進行調整。下圖給出上述過程的視覺化描述。
為改進目標任務的學習和效能,除了使用歸納遷移技術之外,歸納學習演算法還可使用貝葉斯和層次傳遞技術。
深度遷移學習策略
近年來,深度學習在可解決的複雜問題型別上取得了長足的進步,其成果令人驚訝。然而,深度學習系統所需的訓練時間和訓練資料的量級,要遠大於傳統的機器學習系統。目前人們已經提出了各種深度學習網路,它們具有最先進的效能,有時甚至優於人類的表現。一些深度網路已經在計算機視覺和自然語言處理等領域得到開發和測試,並且其中大多數網路已完全共享給團隊和研究人員使用。這些預訓練的網路和模型構成了在深度學習環境中遷移學習的基礎,我稱其為“ 深度遷移學習 ”的基礎。下面給出兩種廣為使用的深度遷移學習策略。
以現成可用的預訓練模型作為特性抽取器
深度學習的系統和模型採用了分層架構,在不同的層上學習不同的特徵,即分層特徵的層次表示。各層最終連線到最後一層(對於分類任務而言,通常是完全連線層),並給出最終輸出。這種分層架構可不使用預訓練網路(例如 Inception V3 或 VGG)的最終層,作為其他任務的固定特徵抽取器。
這裡的關鍵理念是,僅利用預訓練模型的加權層提取特徵,而不是在使用新資料訓練新任務期間更新模型層的權重。
例如,使用不包括最終分類層的 AlexNet,可基於影象的隱藏狀態將影象從一個新域任務轉換為一個 4096 維的向量,從而能夠利用來自於源域任務的知識從新域任務中提取特徵。這是使用深度神經網路進行遷移學習中最廣為使用的方法之一。
現在可能會出現一個問題,這些現成可用的預訓練特性對現實中不同任務的執行情況如何?
從上圖結果可見,該方法對於現實世界的任務的確執行得非常好。如果上圖給出圖表還不能清楚地說明問題,那麼下圖清晰地給出了該方法在基於計算機視覺的任務中的表現,結論十分清楚!
從上圖給出的紅色和粉紅色資料條可以清楚地看到,預訓練模型的特徵始終優於特定以任務為中心的深度學習模型。
良好微調的現成可用預訓練模型
這是一種更為複雜的技術,我們不僅要替換最後一層(用於分類或迴歸任務),而且還要有選擇地重新訓練一些先前的層。深度神經網路是一種具有多種超引數的高度可配置架構。如前所述,初始層可視為捕獲通用特性,隨後的層更多地關注所針對的特定任務。下圖給出的是一個人臉識別問題的示例,其中網路初始的較低層學習非常通用的特徵,而較高層則學習非常特定於任務的特徵。
基於上述觀察,我們可以在對某些層重新訓練時凍結它們(即固定層的權重),或者對其餘的層進行微調以滿足我們的需要。這時,我們利用了網路整體架構上的知識,並以該狀態作為重新訓練步驟的出發點,進而有助於以更少的訓練時間實現更好的效能。
凍結(Freezing),還是微調(Fine-tuning)?
這就引出了一個問題,我們是否應該凍結某些層以充當特徵提取器,還是應該在此過程中對層做微調?
對於瞭解每個策略的具體內容,以及何種情況下應該使用這些策略,該問題給出了一個很好的視角。
預訓練模型
給出在源任務上表現良好的模型,是遷移學習的基本要求之一。幸運的是,深度學習社群是樂於分享的。已有多個團隊公開分享了許多最先進的深度學習框架,跨越了多個不同的領域。其中包括計算機視覺和自然語言處理,這是深度學習得到最廣泛應用的兩個領域。預訓練模型通常是以訓練達到穩定狀態的數百萬引數或權重的形式共享,可供研究人員以不同的方式使用。例如,著名的深度學習 Python 庫 Keras 提供了下載介面,可下載一些廣為使用的模型。人們還可以通過網路訪問一些預訓練的模型,因為大多數模型都是開源的。
對於計算機視覺,可使用下列廣為使用的模型:
對於自然語言處理任務,因為自然語言處理任務本質上存在很大差異,事情則變得更為複雜。可使用的字嵌入模型包括:
稍等,這並非全部!最近,遷移學習在自然語言處理中的應用上取得了一些很好的進展。一些最
新研究成功包括:
-
谷歌提出的 Universal Sentence Encoder
-
谷歌提出的 BERT(Bidirectional Encoder Representations from Transformers
這些研究具有很好的前景。我確信它們將很快在現實世界應用中得到廣泛地使用。
深度遷移學習的型別
正如我們一開始就提到的,遷移學習的相關文獻已經歷了多輪迭代,相關的術語使用寬泛,並通常互換使用。因此,如何區分遷移學習、領域適應性和多工學習時常會令人感到困惑。但我們大可放心,上述概念都是一脈相承的,它們試圖解決類似的問題。一般說來,遷移學習應始終視為一種通用的概念或原則。其中,我們嘗試使用源任務域的知識去解決目標任務。
域適用性(Domain Adaptation)
域適用性通常用於源域和目標域間的邊緣概率不同的情況,即 P(Xₛ) ≠ P(Xₜ)。如果源域和目標域的資料分佈存在固有的轉變或漂移,那麼需要做出微調才能做遷移學習。例如,標記為正向或負向的電影評論語料庫,是不同於儲存產品評論情感的語料庫。如果將針對電影評論情感而訓練的分類器用於對產品評論進行分類,那麼我們將得到不同的分佈。因此在這些場景中,需要將域適用性技術用於實現遷移學習。
域混淆(Domain Confusion)
上面我們已經介紹了不同的遷移學習策略,還討論了從源到目標遷移什麼、何時遷移、如何遷移知識這三個問題。特別是,我們介紹了特徵表示遷移的有用之處。值得再次強調的是,深度學習網路的不同層捕獲了不同的特徵集。我們可以利用這一事實去學習域的不變特徵,並提高跨域的可遷移性。我們不是讓模型學習所有表示,而是要讓兩個域的表示儘可能地相似。這可以通過對錶示本身直接應用某些預處理步驟實現。Baochen Sun、Jiashi Feng 和 Kate Saenko 在他們的論文“ Return of Frustratingly Easy Domain Adaptation ” 中,討論了其中的一些問題。Ganin 等人也在論文“ Domain-Adversarial Training of Neural Networks 中提出了一種推動表示上相似性的方法。該方法背後的基本思想是在源模型中新增另一個目標函式,通過混淆域本身來鼓勵相似性,進而實現域混淆。
多工學習(Multitask Learning)
遷移學習的另一類解決方法是多工學習。多工學習同時學習若干任務,並不區分源和目標。與遷移學習相比,多工學習的學習器最初並不知道目標任務,它一次接收多個任務的相關資訊,如下圖所示。
One-shot 學習(One-shot Learning)
深度學習系統本質上需要大量的資料,因此係統通過大量地訓練樣本學習權重。這是深度神經網路的一個侷限性,儘管人類學習並非如此。例如,一旦一個孩子看到了蘋果的樣子,他就可以根據一個或數個訓練樣本很容易地識別出不同種類的蘋果。但是機器學習和深度學習演算法並非如此。One-shot 學習是遷移學習的一種變體,它試圖僅根據一個或幾個訓練樣本而推斷所需的輸出。這在實際場景中非常有用。在一些實際場景的分類任務中,不可能為每個可能的類和一些需要經常新增新類的場景提供標記資料。李飛飛及其合作研究者的標誌性論文“ One Shot Learning of Object Categories ” 被認為創立了“One-shot 學習”這一術語以及該子領域的研究。該論文提出了一種貝葉斯框架的變異,用於物件分類的表徵學習(representation learning)。此後該方法得到了進一步改進,並通過深度學習系統得以應用。
Zero-shot 學習(Zero-shot Learning)
Zero-shot 學習是遷移學習的另一種變體,它依賴於未標記的樣本學習任務。這可能聽上去令人難以置信,尤其是大多數有監督學習演算法都是使用樣本進行學習的。Zero-shot 學習(或稱為 zero-short 學習)在訓練階段中設計了一些巧妙的調整,利用一些其他資訊去理解未見資料。在《深度學習》一書中,Goodfellow 及其他和著者將 Zero-shot 學習描述為一種學習三個變數的場景,即傳統的輸入變數 x、傳統的輸出變數 y 和描述任務的額外隨機變數 T。因此,模型的訓練過程就是學習條件概率分佈 P(y | x, T)。Zero-shot 學習十分適用於機器翻譯等場景,我們甚至可能不需要標記的目標語言。
遷移學習的應用
深度學習絕對是能凸顯遷移學習優點的一類特定演算法。下面給出幾個例子:
-
在自然語言學習中使用遷移學習:文字資料對機器學習和深度學習提出了各種各樣的挑戰。通常需要使用各種技術對文字做轉換或向量化。Word2vec 和 FastText 等嵌入需要使用不同的訓練資料集給出。這些嵌入可通過從源任務傳遞知識而用於不同的任務,例如情感分析和文件分類等。此外,Universal Sentence Encoder 和 BERT 等新模型無疑為未來增添了多種可能。
-
在語音識別中使用遷移學習:和自然語言處理和計算機視覺等領域一樣,深度學習已成功應用於許多基於音訊資料的任務。例如,為英語開發的自動語音識別(ASR、Automatic Speech Recognition)模型已成功地用於提高對德語等語言的語音識別效能。此外,演講者自動識別是遷移學習發揮很大作用的又一個例子。
-
在計算機視覺中使用遷移學習:深度學習已成功地用於各種計算機視覺任務,例如使用不同的 CNN 架構實現物件的檢測和識別。Yosinski 及其合作研究者在他們的 論文 ) 中,展示了他們對特徵在深層神經網路中遷移方式上的發現。該研究結果表明了網路低層是如何充當傳統的計算機視覺特徵提取器(例如,作為邊緣檢測器),最終層是如何實現面向特定任務的功能。
這些研究發現不同於一開始就針對特定任務而訓練模型,有助於使用 VGG、AlexNet 和 Inceptions 等現有最先進模型實現風格遷移(style transfer)和麵部檢測等目標任務。
遷移學習的優點
我們已在前面幾章中提及了遷移學習的幾個優點。通常,遷移學習可使我們構建更強大的模型,支援我們執行各種各樣的任務。其中包括:
-
有助於解決具有多個約束的複雜真實世界問題。
-
解決具有很少或幾乎沒有標註資料的問題。
-
易於實現模型間基於領域和任務的知識遷移。
-
為有朝一日實現 AGI 提供了一條途徑!
遷移學習所面對的挑戰
遷移學習是對現有學習演算法所存在的一些普遍問題的增強,前景無量。 然而,遷移學習依然存在一些相關問題需要做進一步研究和探索。除了遷移什麼、何時遷移以及如何遷移這三個問題依然難以回答之外,負遷移(negative transfer,也稱干擾)和遷移界限(transfer bounds)也是主要的挑戰。
-
負遷移(Negative Transfer):我們目前給出的案例,闡述瞭如何根據源任務的知識遷移去改進目標任務。在某些情況下,遷移學習會導致效能下降。負遷移就是從源到目標的知識遷移並不會導致任何改進,而是會導致目標任務的整體效能下降。導致負遷移可能存在多種原因,例如源任務與目標任務間並沒有充分的關聯關係,或者遷移方法無法很好地利用源任務和目標任務之間的關係。避免出現負遷移是非常重要的,我們需要做仔細的調查。Rosenstien 及其合作研究者在他們的研究工作中憑經驗指出,蠻力遷移是如何在源和目標並太不相似的情況下降低了目標任務的效能。一些避免出現負遷移的研究工作正在開展中。例如 Bakker 及其合作研究者提出了一種貝葉斯方法,還有其它一些探索基於聚類的解決方案以識別相關性的技術。
-
遷移界限(Transfer Bounds): 對遷移學習中的遷移做量化分析是非常重要的,量化分析可給出遷移的質量,以及遷移的可行性。為了衡量遷移的總量,Hassan Mahmud 及其合作研究者使用 Kolmogorov 複雜度證明了一個理論界限,可用於分析遷移學習和衡量任務之間的相關性。Eaton 及其合作研究者提出了一種基於圖表的新方法對知識遷移進行衡量。對這些技術的詳細討論超出了本文的範圍,我們鼓勵讀者進一步閱讀本章中介紹的一些公開發表論文,進而探索該主題的更多相關資訊!
結論和展望
本文大概是我撰寫的最長篇幅文章之一,文中全面涵蓋了遷移學習的概念和策略,並重點介紹了深度遷移學習及其挑戰與優勢。為使讀者更好地瞭解如何實現這些技術,文中還給出了兩個真實案例研究。如果讀到此節,感謝通讀該長篇大論!
遷移學習必將成為機器學習和深度學習成功取得業界主流應用的關鍵驅動因素之一。我特別希望能看到使用該理念和方法的更多預訓練模型和創新案例研究。我計劃未來推出的文章中,有望介紹如下內容:
-
在自然語言識別中使用遷移學習;
-
在音訊資料上使用遷移學習;
-
在生成深度學習中使用遷移學習;
-
處理影象描述(Image Captioning)等更復雜的計算機視覺問題。
希望能看到遷移學習和深度學習相關的更多成功案例。這些案例將推動建立更智慧的系統,讓世界變得更美好,並有助於實現每個人的個人目標!
檢視英文原文:
12 月 20-21,將於北京開幕,在這裡可以學習來自 Google、微軟、BAT、360、京東、美團等 40+AI 落地案例,與國內外一線技術大咖面對面交流。