遷移學(xué)習(xí)全面概述:從基本概念到相關(guān)研究
將在一個場景中學(xué)習(xí)到的知識遷移到另一個場景應(yīng)用中一直是人工智能研究領(lǐng)域的一個熱門領(lǐng)域,本文從遷移學(xué)習(xí)的基本概念談起,介紹了遷移學(xué)習(xí)的技術(shù)、應(yīng)用和方法。
目錄:
1.什么是遷移學(xué)習(xí)?
2.為什么現(xiàn)在需要遷移學(xué)習(xí)?
3.遷移學(xué)習(xí)的定義
4.遷移學(xué)習(xí)的場景
5.遷移學(xué)習(xí)的應(yīng)用
- 從模擬中學(xué)習(xí)
- 適應(yīng)到新的域
- 跨語言遷移知識
6.遷移學(xué)習(xí)的方法
- 使用預(yù)訓(xùn)練的 CNN 特征
- 學(xué)習(xí)域不變的表征
- 讓表征更加相似
- 混淆域
7.相關(guān)的研究領(lǐng)域
- 半監(jiān)督學(xué)習(xí)
- 更有效地使用可用的數(shù)據(jù)
- 提高模型的泛化能力
- 讓模型更加穩(wěn)健
- 多任務(wù)學(xué)習(xí)
- 持續(xù)學(xué)習(xí)
- zero-shot 學(xué)習(xí)
8.總結(jié)
近年來,我們越來越擅長訓(xùn)練深度神經(jīng)網(wǎng)絡(luò),使其能從大量的有標(biāo)簽的數(shù)據(jù)中學(xué)習(xí)非常準(zhǔn)確的輸入到輸出的映射,無論它們是圖像、語句還是標(biāo)簽預(yù)測。
我們的模型仍舊極度缺乏泛化到不同于訓(xùn)練的環(huán)境的能力。什么時候需要這種能力呢?就是你每一次將你的模型用到現(xiàn)實世界,而不是精心構(gòu)建的數(shù)據(jù)集的時候?,F(xiàn)實世界是混亂的,并且包含大量全新的場景,其中很多是你的模型在訓(xùn)練的時候未曾遇到的,因此這又使得模型不足以做出好的預(yù)測。將知識遷移到新環(huán)境中的能力通常被稱為遷移學(xué)習(xí)(transfer learning),這就是本文將討論的內(nèi)容。
在這篇文章中,我首先會將遷移學(xué)習(xí)與機器學(xué)習(xí)的最普遍和成功的范式——監(jiān)督學(xué)習(xí)——做一下對比。然后我會概括一下遷移學(xué)習(xí)值得我們?nèi)リP(guān)注的原因。隨后,我會給出一個更加技術(shù)性的定義以及介紹多個不同的遷移學(xué)習(xí)的場景。然后,我會提供一些遷移學(xué)習(xí)的應(yīng)用的例子,再探究一些可以被用來遷移知識的實際方法。最后,我會概述一下相關(guān)的研究方向,并展望一下未來的前景。
一、什么是遷移學(xué)習(xí)?
在機器學(xué)習(xí)的經(jīng)典監(jiān)督學(xué)習(xí)場景中,如果我們要針對一些任務(wù)和域 A 訓(xùn)練一個模型,我們會假設(shè)被提供了針對同一個域和任務(wù)的標(biāo)簽數(shù)據(jù)。我們可以在圖 1 中清楚地看到這一點,其中我們的模型 A 在訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)中的域和任務(wù)都是一樣的(后面我會詳細地定義什么是任務(wù)(task),以及什么是域(domain))?,F(xiàn)在,讓我們假設(shè),一個任務(wù)就是我們的模型要去執(zhí)行的目標(biāo),例如,識別圖片中的物體;而域就是數(shù)據(jù)的來源,例如,來自于舊金山的咖啡店的照片。
圖 1:機器學(xué)習(xí)領(lǐng)域中傳統(tǒng)監(jiān)督學(xué)習(xí)的設(shè)置
現(xiàn)在我們可以在這個數(shù)據(jù)集上訓(xùn)練一個模型 A,并期望它在同一個任務(wù)和域中的未知數(shù)據(jù)上表現(xiàn)良好。在另一種情況下,當(dāng)給定一些任務(wù)或域 B 的數(shù)據(jù)時,我們還需要可以用來訓(xùn)練模型 B 的有標(biāo)簽數(shù)據(jù),這些數(shù)據(jù)要屬于同一個任務(wù)和域,這樣我們才能預(yù)期能在這個數(shù)據(jù)集上表現(xiàn)良好。
當(dāng)我們沒有足夠的來自于我們關(guān)心的任務(wù)或域的標(biāo)簽數(shù)據(jù)來訓(xùn)練可靠的模型時,傳統(tǒng)的監(jiān)督學(xué)習(xí)范式就支持不了了。
如果我們要訓(xùn)練一個模型來檢測在夜間拍攝的照片上的行人,我們可以用一個在相似的域中訓(xùn)練的模型,例如白天拍攝的圖片。然而,實際上,我們經(jīng)常會遭遇表現(xiàn)上的衰退或者崩潰,因為模型已經(jīng)繼承了它的訓(xùn)練數(shù)據(jù)中的偏差,不知道如何泛化到新的域中。
如果我們要訓(xùn)練一個模型來執(zhí)行新的任務(wù),例如檢測騎自行車的人,我們甚至不能夠使用已有的模型,因為任務(wù)之間的標(biāo)簽都是不一樣的。
遷移學(xué)習(xí)允許我們通過借用已經(jīng)存在的一些相關(guān)的任務(wù)或域的標(biāo)簽數(shù)據(jù)來處理這些場景。我們嘗試著把在源域中解決源任務(wù)時獲得的知識存儲下來,并將其應(yīng)用在我們感興趣的目標(biāo)域中的目標(biāo)任務(wù)上去,如圖 2 所示。
圖 2:遷移學(xué)習(xí)的設(shè)置
在實踐中,我們力求將盡可能多的知識從源環(huán)境遷移到目標(biāo)任務(wù)和域中。依據(jù)數(shù)據(jù)的不同,這種知識有不同的形式:它可以涉及物體是如何組成的,以允許我們更加容易地識別新的對象;也可以是關(guān)于人們用來表達觀點的普通詞匯,等等。
二、為什么現(xiàn)在需要遷移學(xué)習(xí)?
前百度首席科學(xué)家、斯坦福的教授吳恩達(Andrew Ng)在廣受流傳的 2016 年 NIPS 會議的教程中曾經(jīng)說過:「遷移學(xué)習(xí)將會是繼監(jiān)督學(xué)習(xí)之后的下一個機器學(xué)習(xí)商業(yè)成功的驅(qū)動力」。
圖 3:吳恩達在 2016 年 NIPS 上談?wù)撨w移學(xué)習(xí)
特別地,他在白板上畫了一個圖表,我盡可能忠實地將它復(fù)制在如下所示的圖 4 中(抱歉坐標(biāo)軸沒有詳細的標(biāo)注)。據(jù)吳恩達說,遷移學(xué)習(xí)將成為機器學(xué)習(xí)在產(chǎn)業(yè)界取得成功的一個關(guān)鍵驅(qū)動力。
圖 4:吳恩達心中機器學(xué)習(xí)產(chǎn)業(yè)成功的驅(qū)動力
不容置疑,機器學(xué)習(xí)在產(chǎn)業(yè)界的應(yīng)用和成功主要是受監(jiān)督學(xué)習(xí)的驅(qū)動。受到深度學(xué)習(xí)中的進步、更強大的計算資源以及大量的標(biāo)簽數(shù)據(jù)集的推動,監(jiān)督學(xué)習(xí)是人們對人工智能的興趣復(fù)蘇浪潮、多輪融資以及收購的主要原因,尤其是我們近年來看到的機器學(xué)習(xí)的應(yīng)用,它們已經(jīng)成為了我們生活的一部分。如果我們忽視關(guān)于另一個人工智能寒冬的懷疑和傳言,并且相信吳恩達的預(yù)見,這種成功很可能會持續(xù)下去。
然而,不太清楚為什么已經(jīng)存在了大約幾十年并且至今在產(chǎn)業(yè)界很少被使用的遷移學(xué)習(xí)會出現(xiàn)吳恩達所預(yù)言的那種爆炸式增長。更有甚者,與機器學(xué)習(xí)的其他領(lǐng)域(如無監(jiān)督學(xué)習(xí)和強化學(xué)習(xí)等)相比,遷移學(xué)習(xí)目前受到的關(guān)注更少。而且那些領(lǐng)域也正越來越受歡迎:無監(jiān)督學(xué)習(xí)是實現(xiàn)通用人工智能的關(guān)鍵成分(如圖 5 中 Yann LeCun 所說),人們對此興趣已經(jīng)復(fù)蘇,尤其是在生成對抗網(wǎng)絡(luò)(GAN)的推動下。反過來,強化學(xué)習(xí)在 Google DeepMind 的牽頭下已經(jīng)實現(xiàn)游戲 AI 的進步,AlphaGo 的成功堪稱典范,并且也早已在現(xiàn)實世界中實現(xiàn)了成功,例如將 Google 數(shù)據(jù)中心的冷卻費用降低了 40%。這兩個領(lǐng)域雖然很有希望,但是在可預(yù)見的未來可能只會有著相對較小的商業(yè)影響力,并且大部分還停留在前沿研究論文的范圍之內(nèi),因為它們?nèi)匀幻媾R著許多挑戰(zhàn)。
圖 5:顯然遷移學(xué)習(xí)沒有出現(xiàn)在 Yann LeCun 的蛋糕成分問題中
什么使得遷移學(xué)習(xí)與眾不同呢?下面我們會看一下在我看來驅(qū)使了吳恩達的預(yù)見的因素,并且總結(jié)一下現(xiàn)在正是重視遷移學(xué)習(xí)的時機的原因。
目前產(chǎn)業(yè)界對機器學(xué)習(xí)的應(yīng)用分為兩類:
一方面,在過去幾年中,我們已經(jīng)獲得了訓(xùn)練越來越準(zhǔn)確的模型的能力。我們現(xiàn)在所處的階段,對很多任務(wù)而言,最先進的模型已經(jīng)達到了這樣的水平:它們的表現(xiàn)是如此的好以至于對使用者來說不再有障礙了。有多么好呢?最新的 ImageNet 上的殘差網(wǎng)絡(luò) [1] 在進行物體識別時實現(xiàn)了超越人類的性能;Google 的 Smart Reply 系統(tǒng) [2] 可以處理所有移動手機中的回復(fù)的 10%;語音識別的錯誤率在持續(xù)降低,并且比鍵盤輸入更加準(zhǔn)確 [3];我們已經(jīng)實現(xiàn)了和皮膚科醫(yī)師一樣好的自動皮膚癌識別;Google 的神經(jīng)機器翻譯系統(tǒng)(NMT)[4] 已被用在了超過 10 種以上的語言對的生產(chǎn)中;百度可以實時地生成逼真的語音;類似的還有很多很多。這種成熟度允許將這些模型大規(guī)模地部署到數(shù)百萬的用戶上,并且已經(jīng)得到了廣泛的采用。
另一方面,這些成功的模型都是極其地重視數(shù)據(jù)的,依靠大量的標(biāo)簽數(shù)據(jù)來實現(xiàn)它們的性能。對一些任務(wù)和域而言,經(jīng)過了多年的精心收集,這種數(shù)據(jù)是可以得到的。在少數(shù)情況下,數(shù)據(jù)是公開的,例如 ImageNet[5],但是在很多語音或者 MT 的數(shù)據(jù)集中,大量的標(biāo)簽數(shù)據(jù)都是有專利的,或者是很昂貴的,因為它們在競爭中提供了前沿參考。
同時,把機器學(xué)習(xí)的模型應(yīng)用在自然環(huán)境中時,模型會面臨大量之前未曾遇到的條件,它不知道如何去處理;每一個用戶都有他們自己的偏好,也需要處理和生成不同于之前用來訓(xùn)練的數(shù)據(jù);要求模型執(zhí)行很多和訓(xùn)練相關(guān)但是不相同的任務(wù)。在所有這些情況下,盡管我們最先進的模型在它們被訓(xùn)練的任務(wù)和域上展示出了和人類一樣甚至超越人類的性能,然而還是遭遇了明顯的表現(xiàn)下降甚至完全失敗。
遷移學(xué)習(xí)可以幫助我們處理這些全新的場景,它是機器學(xué)習(xí)在沒有大量標(biāo)簽數(shù)據(jù)的任務(wù)和域中規(guī)?;瘧?yīng)用所必須的。到目前為止,我們已經(jīng)把我們的模型應(yīng)用在了能夠容易獲取數(shù)據(jù)的任務(wù)和域中。為了應(yīng)對分布的長尾,我們必須學(xué)會把已經(jīng)學(xué)到的知識遷移到新的任務(wù)和域中。
為了做到這個,我們需要理解遷移學(xué)習(xí)所涉及到的概念?;谶@個原因,我會在下面的內(nèi)容中給出更加技術(shù)性的定義。
三、遷移學(xué)習(xí)的定義
為了這個定義,我會緊密地遵循 Pan 和 Yang(2010) 所做的杰出的綜述 [6],并以一個二元文檔分類為例。
遷移學(xué)習(xí)涉及到域和任務(wù)的概念。一個域 D 由一個特征空間 X 和特征空間上的邊際概率分布 P(X) 組成,其中 X=x1,…, xn∈X。對于有很多詞袋表征(bag-of-words representation)的文檔分類,X 是所有文檔表征的空間,xi 是第 i 個單詞的二進制特征,X 是一個特定的文檔。(注:這里的 X 有兩種不同的形式,這里不太好呈現(xiàn),具體請參考原文。)
給定一個域 D={X,P(X)},一個任務(wù) T 由一個標(biāo)簽空間 y 以及一個條件概率分布 P(Y|X) 構(gòu)成,這個條件概率分布通常是從由特征—標(biāo)簽對 xi∈X,yi∈Y 組成的訓(xùn)練數(shù)據(jù)中學(xué)習(xí)得到。在我們的文檔分類的例子中,Y 是所有標(biāo)簽的集合(即真(True)或假(False)),yi 要么為真,要么為假。
給定一個源域 Ds,一個對應(yīng)的源任務(wù) Ts,還有目標(biāo)域 Dt,以及目標(biāo)任務(wù) Tt,現(xiàn)在,遷移學(xué)習(xí)的目的就是:在 Ds≠Dt,Ts≠Tt 的情況下,讓我們在具備來源于 Ds 和 Ts 的信息時,學(xué)習(xí)得到目標(biāo)域 Dt 中的條件概率分布 P(Yt|Xt)。絕大多數(shù)情況下,假設(shè)可以獲得的有標(biāo)簽的目標(biāo)樣本是有限的,有標(biāo)簽的目標(biāo)樣本遠少于源樣本。
由于域 D 和任務(wù) T 都被定義為元組(tuple),所以這些不平衡就會帶來四個遷移學(xué)習(xí)的場景,我們將在下面討論。
四、遷移學(xué)習(xí)的場景
給定源域和目標(biāo)域 Ds 和 Dt,其中,D={X,P(X)},并且給定源任務(wù)和目標(biāo)任務(wù) Ts 和 Tt,其中 T={Y,P(Y|X)}。源和目標(biāo)的情況可以以四種方式變化,我們?nèi)匀灰晕覀兊奈臋n分類的例子在下面描述:
- XS≠XT。源域和目標(biāo)域的特征空間不同,例如,文檔是用兩種不同的語言寫的。在自然語言處理的背景下,這通常被稱為跨語言適應(yīng)(cross-lingual adaptation)。
- P(Xs)≠P(Xt)。源域和目標(biāo)域的邊際概率分布不同,例如,兩個文檔有著不同的主題。這個情景通常被稱為域適應(yīng)(domain adaptation)。
- YS≠YT。兩個任務(wù)的標(biāo)簽空間不同,例如,在目標(biāo)任務(wù)中,文檔需要被分配不同的標(biāo)簽。實際上,這種場景通常發(fā)生在場景 4 中,因為不同的任務(wù)擁有不同的標(biāo)簽空間,但是擁有相同的條件概率分布,這是極其罕見的,
- P(Ys|Xs)≠P(Yt|Xt)。源任務(wù)和目標(biāo)任務(wù)的條件概率分布不同,例如,源和目標(biāo)文檔在類別上是不均衡的。這種場景在實際中是比較常見的,諸如過采樣、欠采樣以及 SMOTE[7] 這些方法被廣泛應(yīng)用。
在明白了與遷移學(xué)習(xí)相關(guān)的概念和常被用到的一些場景之后,我們將要介紹一些能夠說明它的潛力的應(yīng)用。
五、遷移學(xué)習(xí)的應(yīng)用
1. 從模擬中學(xué)習(xí)
一個非常令我興奮并且我認為我們在將來會見到更多的遷移學(xué)習(xí)應(yīng)用就是從模擬中學(xué)習(xí)。對很多依靠硬件來交互的機器學(xué)習(xí)應(yīng)用而言,在現(xiàn)實世界中收集數(shù)據(jù)、訓(xùn)練模型,要么很昂貴,要么很耗時間,要么只是太危險。所以最好能以某些風(fēng)險較小的其他方式來收集數(shù)據(jù)。
模擬是針對這個問題的首選工具,在現(xiàn)實世界中它被用來實現(xiàn)很多先進的機器學(xué)習(xí)系統(tǒng)。從模擬中學(xué)習(xí)并將學(xué)到的知識應(yīng)用在現(xiàn)實世界,這是遷移學(xué)習(xí)場景 2 中的實例,因為源域和目標(biāo)域的特征空間是一樣的(僅僅依靠像素),但是模擬和現(xiàn)實世界的邊際概率分布是不一樣的,即模擬和目標(biāo)域中的物體看上去是不同的,盡管隨著模擬的逐漸逼真,這種差距會消失。同時,模擬和現(xiàn)實世界的條件概率分布可能是不一樣的,因為模擬不會完全復(fù)制現(xiàn)實世界中的所有反應(yīng),例如,一個物理引擎不會完全模仿現(xiàn)實世界中物體的交互。
圖 6:谷歌的自動駕駛車輛(來源: Google Research 博客)
從模擬中學(xué)習(xí)有利于讓數(shù)據(jù)收集變得更加容易,因為物體可以容易地被限制和分析,同時實現(xiàn)快速訓(xùn)練,因為學(xué)習(xí)可以在多個實例之間并行進行。因此,這是需要與現(xiàn)實世界進行交互的大規(guī)模機器學(xué)習(xí)項目的先決條件,例如自動駕駛汽車。谷歌無人車的技術(shù)主管 Zhaoyin Jia 說,「如果你真的想做無人駕駛車,模擬是必需的」。Udacity 已經(jīng)開源了它用來進行無人駕駛汽車工程納米學(xué)位教學(xué)的模擬器,在圖 7 中可以看到,OpenAI 的 Universe 平臺將可能允許用《俠盜飛車 5(GTA 5)》或者其他視頻游戲來訓(xùn)練無人駕駛汽車。
圖 7:Udacity 的無人駕駛汽車模擬器
另一個必需從模擬中學(xué)習(xí)的領(lǐng)域是機器人:在實際的機器人上訓(xùn)練模型是非常緩慢和昂貴的。從模擬中學(xué)習(xí)并且將知識遷移到現(xiàn)實世界的機器人上的方式能緩解這個問題,并且這種方面最近正得到越來越多的關(guān)注 [8]。圖 8 中可以看到一個在現(xiàn)實世界和模擬中操作數(shù)據(jù)的一個例子。
圖 8:機器人和模擬圖片 (Rusu et al., 2016)
最后,另一個方向是通向通用人工智能的途徑,其中模擬會是一個必需的組成部分。在現(xiàn)實世界中直接訓(xùn)練一個代理來實現(xiàn)通用人工智能的代價太高,并且不必要的復(fù)雜度還會在初始的時候阻礙訓(xùn)練。相反,如果基于諸如 CommAI-env [9] 的模擬環(huán)境的話,學(xué)習(xí)也許會更加成功,如圖 9 所示。
圖 9:Facebook 人工智能研究院的 CommAI-env (Mikolov et al., 2015)
2. 適應(yīng)到新的域
盡管從模擬中學(xué)習(xí)是域適應(yīng)的一個特例,總結(jié)一些域適應(yīng)的其他例子也是有價值的。
域適應(yīng)在視覺中是一個常規(guī)的需求,因為標(biāo)簽信息易于獲取的數(shù)據(jù)和我們實際關(guān)心的數(shù)據(jù)經(jīng)常是不一樣的,無論這涉及到如圖 11 所示的識別自行車還是自然界中的其他物體。即使訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)看起來是一樣的,訓(xùn)練數(shù)據(jù)也仍然可能包含人類難以察覺的偏差,而模型能夠利用這種偏差在訓(xùn)練數(shù)據(jù)上實現(xiàn)過擬合 [10]。
圖 10:不同的視覺域 (Sun et al., 2016)
另一個常見的域適應(yīng)場景涉及到適應(yīng)不同的文本類型:標(biāo)準(zhǔn)的自然語言處理工具(例如詞性標(biāo)簽器或者解析器)一般都是在諸如華爾街日報這種新聞數(shù)據(jù)上進行訓(xùn)練,這種新聞數(shù)據(jù)在過去都是用來評價這些模型的。然而,在新聞數(shù)據(jù)上訓(xùn)練出的模型面臨挑戰(zhàn),難以應(yīng)對更加新穎的文本形式,例如社交媒體信息。
圖 11:不同的文本類型/風(fēng)格
即使在產(chǎn)品評價這樣的域中,人們采用不同的詞匯和短語去表達同樣的觀點。因此,在一種類型的評論上訓(xùn)練出的模型應(yīng)該能夠解決人們使用的通用和特定領(lǐng)域的意見詞,以免被域的變化所混淆。
圖 12:不同的主題
最后,盡管以上的挑戰(zhàn)都是處理一般的文本或者圖像類型,如果我們考慮涉及到單個用戶或者用戶組的域,問題就被放大了:以自動語音識別(ASR)為例。語音指定會成為下一個大平臺,據(jù)預(yù)測,到 2020 年,我們所有搜索的 50% 將會通過語音執(zhí)行。大多數(shù)自動語音識別系統(tǒng)都在由 500 位說話人組成的標(biāo)準(zhǔn)數(shù)據(jù)集上進行傳統(tǒng)測試。如此一來,大多數(shù)擁有標(biāo)準(zhǔn)口音的人則是幸運的,然而,移民、非標(biāo)準(zhǔn)口音的人、語音障礙的人以及兒童則會不容易被理解。現(xiàn)在比以往任何時候都需要能夠適應(yīng)個體用戶和少數(shù)群體的系統(tǒng),以確保每個人的聲音都能被聽懂。
圖 13:不同的口音
3. 跨語言遷移知識
最后,在我看來,遷移學(xué)習(xí)的另一個殺手級別的應(yīng)用是將知識從一種語言遷移到另一種語言,我曾經(jīng)在此處寫過一篇關(guān)于跨語言環(huán)境的嵌入式模型的文章(博文鏈接:http://sebastianruder.com/cross-lingual-embeddings/index.html)。可靠的跨語言域的方法會允許我們借用大量的已有的英文標(biāo)簽數(shù)據(jù)并將其應(yīng)用在任何一種語言中,尤其是沒有足夠服務(wù)且真正缺少資源的語言。已有的最先進的方法看起來仍然太過理想,但是以 zero-shot 翻譯 [11] 為例的最近的進展已在這個領(lǐng)域取得了快速的進步。
雖然到目前為止我們已經(jīng)考慮過一些遷移學(xué)習(xí)的特殊應(yīng)用,但是現(xiàn)在我們要研究一下文獻中那些解決了一些挑戰(zhàn)的實際方法和方向。
六、遷移學(xué)習(xí)的方法
在解決前文提及的四種遷移學(xué)習(xí)場景上,遷移學(xué)習(xí)擁有悠久的研究和技術(shù)的歷史。深度學(xué)習(xí)的出現(xiàn)導(dǎo)致了一系列遷移學(xué)習(xí)的新方法,我們下面將會概覽其中的一些。參考文獻 [6] 可以看到一些早期方法的綜述。
1. 使用預(yù)訓(xùn)練的 CNN 特征
為了了解目前應(yīng)用中最常見的遷移學(xué)習(xí)方式,我們必須理解在 ImageNet 上大型卷積神經(jīng)網(wǎng)絡(luò)所取得的杰出成功 [12]。
2. 理解卷積神經(jīng)網(wǎng)絡(luò)
雖然這些模型工作方式的許多細節(jié)仍然是一個謎,但我們現(xiàn)在已經(jīng)意識到,較低的卷積層捕獲低級圖像特征,例如邊緣(見圖 14),而較高的卷積層捕獲越來越復(fù)雜的細節(jié),例如身體部位、面部和其他組合性特征。
圖 14:AlexNet 學(xué)習(xí)得到的實例濾波器 (Krizhevsky et al., 2012)
最后的全連接層通常被認為是捕獲了與解決相應(yīng)任務(wù)相關(guān)的信息,例如 AlexNet 的全連接層可以指出哪些特征與在 1000 個物體類中分類一張圖片相關(guān)的。
然而,盡管知道一只貓有胡須、爪子、毛皮等是將一個動物識別為貓所必需的(參見圖 15),但它并不能幫助我們識別新物體或解決其他共同的視覺任務(wù)(如場景識別、細粒度識別、屬性檢測和圖像檢索)。
圖 15:這篇博文的標(biāo)志貓
然而,能夠幫助我們的是捕獲關(guān)于一幅圖像是如何組成的以及它包括什么樣的邊緣和形狀組合的通用信息。正如我們之前所描述的,這種信息被包含在在 ImageNet 上訓(xùn)練出的卷積神經(jīng)網(wǎng)絡(luò)的最后卷積層或者最后一層之前的全連接層。
所以,對于一個新任務(wù),我們可以簡單地使用這種由最先進的卷積神經(jīng)網(wǎng)絡(luò)在 ImageNet 上預(yù)訓(xùn)練出的現(xiàn)成特征,并在這些抽象的特征上面訓(xùn)練出新的模型。在實際中,我們要么保持預(yù)訓(xùn)練的參數(shù)固定不變,要么以一個較小的學(xué)習(xí)率來調(diào)節(jié)它們,以保證我們不會忘記之前學(xué)習(xí)到的知識。這個方法已經(jīng)被證明可以在一系列的視覺任務(wù) [13] 以及一些依靠圖像作為輸入的任務(wù)(例如看圖說話)上實現(xiàn)出色的結(jié)果。在 ImageNet 上訓(xùn)練出的模型似乎能夠捕獲到關(guān)于動物以及物體的構(gòu)造和組成方式的細節(jié),這種方式通常在處理圖像的時候是有價值的。因此,ImageNet 上的任務(wù)似乎對于一般的計算機視覺問題來說是一個很好的代理(proxy),因為在其中所需的相同知識也與許多其他任務(wù)相關(guān)。
3. 學(xué)習(xí)圖像的隱含結(jié)構(gòu)
一個類似的假設(shè)被用來推動生成模型:當(dāng)訓(xùn)練一個生成模型的時候,我們假設(shè)生成逼真圖像的能力需要對圖像隱含結(jié)構(gòu)的理解,它反過來可以被用在很多其他任務(wù)中。這個假設(shè)本身也依賴一個前提,即所有圖像都由一個低維度的流形結(jié)構(gòu)決定,這就是說,可以用一個模型來抽象出圖像的隱含結(jié)構(gòu)。利用生成對抗網(wǎng)絡(luò)來生成逼真圖片的最新進展揭示,這種模型或許真的存在,如圖 16 所示,臥室空間的點之間的逼真過渡證明了這個模型的能力。
圖 16:行走在臥室的圖像流形中
預(yù)訓(xùn)練的特征在視覺之外的領(lǐng)域有用嗎?
現(xiàn)成的卷積神經(jīng)網(wǎng)絡(luò)特征在視覺任務(wù)上有著無出其右的結(jié)果,但是問題在于,使用其它的數(shù)據(jù),在其它領(lǐng)域(例如語言)能否復(fù)制這種成功?目前,對自然語言處理而言沒有能夠?qū)崿F(xiàn)與圖像領(lǐng)域一樣令人驚嘆結(jié)果的現(xiàn)成特征。為什么呢?這樣的特征是否存在呢?如果不存在,那為什么視覺比語言更有利于這種形式的遷移呢?
諸如詞性標(biāo)注或分塊這類低級別任務(wù)的輸出就可以被比作現(xiàn)成的特征,但是在沒有語法學(xué)的幫助下,不能采集到更細粒度的特征。正如我們看到的,可概括的現(xiàn)成特征似乎存在似乎存在于眾多任務(wù)中原型任務(wù)中。在視覺中,物體識別就占據(jù)了這樣的地位。在語言中,最接近的類似物可能是語言建模:為了預(yù)測給定詞匯序列中的下一個單詞或者句子,模型需要處理語言是如何構(gòu)造的知識,需要理解那些單詞很可能是相關(guān)的,那些單詞很可能是彼此跟隨出現(xiàn)的,需要對長期依賴關(guān)系進行建模,等等。
盡管最先進的語言模型越來越接近人類的水平 [15],但是它們的功能使用是有限的。同時語言建模方面的進步已經(jīng)為其他任務(wù)也帶來了正面的結(jié)果:用語言模型的目標(biāo)函數(shù)對一個模型進行預(yù)訓(xùn)練能夠提升性能 [16]。此外,在一個大規(guī)模的無標(biāo)簽的語料庫上用一個近似的語言模型目標(biāo)函數(shù)進行預(yù)訓(xùn)練的單詞嵌入已經(jīng)變得普遍 [17]。雖然它們不如視覺中的現(xiàn)成特征那樣有效,但仍然能夠帶來相當(dāng)大的收益 [18],并且它們可以被看做是從大規(guī)模的無標(biāo)簽的語料庫向通用域知識的一種簡單形式的遷移。
盡管自然語言處理領(lǐng)域的通用代理任務(wù)(general proxy)在當(dāng)前似乎是無法企及的,但是輔助任務(wù)可以采用局部代理的形式。不管是通過多任務(wù)目標(biāo) [19] 還是綜合任務(wù)目標(biāo) [20,21],它們都可以被用來為模型增加更多的相關(guān)知識。
使用預(yù)訓(xùn)練特征是目前做遷移學(xué)習(xí)的最直接、最常用的方式。然而,到目前為止它并不是唯一的一種。
4. 學(xué)習(xí)域不變的表征
在實際中,預(yù)訓(xùn)練特征通常被用在我們想適應(yīng)的新任務(wù)的場景適應(yīng)中 3。對其他場景而言,另一個由深度學(xué)習(xí)實現(xiàn)知識遷移的方式是學(xué)習(xí)基于域而不會改變的表征。這個方法在概念上和我們思考過的使用預(yù)訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)特征非常相似:兩者都只編碼關(guān)于域的一般知識。然而,給非視覺任務(wù)創(chuàng)建基于特定域的不變表征要比為所有任務(wù)生成有用的表征要更加經(jīng)濟,更加可行。ImageNet 已經(jīng)花費了多年、數(shù)千個小時來創(chuàng)建,然而為了創(chuàng)建域不變的表征,我們通常只需要每個域中的無標(biāo)簽數(shù)據(jù)。這種表征通常用大量的去噪自動解碼器學(xué)習(xí)得到,而且已經(jīng)在自然語言處理中取得了和視覺中一樣的成功 [22,23]。
5. 讓表征更加相似
為了提高學(xué)到的表征從源域到目標(biāo)域的可遷移性,我們希望兩個域之間的表征盡可能相似,這樣一來,我們就不用考慮可能阻礙遷移的特定域的特征,只需要考慮域之間的共同點。
與其僅僅讓我們的自動解碼器學(xué)到一些表征,不如積極地激勵以讓兩個域中的表征和彼此變得更加相似。我們可以像預(yù)處理步驟一樣把這個直接應(yīng)用在我們的數(shù)據(jù)表證過程中 [25,26],然后把新的表征用來訓(xùn)練。我們也可以促使我們的模型中的表征變得更加相似 [27,28]。
6. 混淆域
另一個最近變得流行的、用來確保兩個域的表征之間相似性的方式就是在現(xiàn)有的模型上增加一個目標(biāo)函數(shù)來鼓勵兩個域的混淆 [29,30]。這個域混淆的損失函數(shù)就是常規(guī)的分類損失函數(shù),模型嘗試預(yù)測輸入樣例的類別。然而,又和常規(guī)的損失函數(shù)有所不同,如圖 17 所示,從損失函數(shù)到網(wǎng)絡(luò)的剩余部分的流動是反向的。
圖 17:用一個梯度反向?qū)?gradient reversal layer)來混淆域。
梯度反向?qū)訒?dǎo)致模型最大化誤差,而不是學(xué)著去最小化域分類的損失函數(shù)的誤差。在實際中,這意味著該模型會學(xué)習(xí)那些允許最小化原目標(biāo)函數(shù)的表征,同時不允許區(qū)分兩個域,這樣有利于知識遷移。如圖 18 所示,盡管僅僅使用常規(guī)的目標(biāo)函數(shù)訓(xùn)練的模型可以基于它學(xué)到的表征清晰地區(qū)分兩種域,但是用域方法增強的目標(biāo)函數(shù)訓(xùn)練得到的模型卻不能做到這一點。
圖 18:常規(guī)模型和域混淆模型的域分類得分比較 (Tzeng et al, 2015)
六、相關(guān)的研究領(lǐng)域
盡管這篇博文是關(guān)于遷移學(xué)習(xí)的,但是到今天為止,遷移學(xué)習(xí)并不是唯一一個試圖利用有限的數(shù)據(jù)、在新的任務(wù)上使用學(xué)到的知識、并讓模型在新環(huán)境上具有較好的泛化能力的機器學(xué)習(xí)領(lǐng)域。所以,在下面的內(nèi)容中,我們會介紹一些其他的與遷移學(xué)習(xí)相關(guān)或者能夠補充遷移學(xué)習(xí)目標(biāo)的方向。
1. 半監(jiān)督學(xué)習(xí)
遷移學(xué)習(xí)力圖最大效率地使用某些任務(wù)或者域中的無標(biāo)簽數(shù)據(jù)。這也是半監(jiān)督學(xué)習(xí)所恪守的準(zhǔn)則,半監(jiān)督學(xué)習(xí)遵循經(jīng)典機器學(xué)習(xí)的設(shè)定,但是它僅僅采用有限數(shù)量的標(biāo)簽數(shù)據(jù)來訓(xùn)練。如此,半監(jiān)督域適應(yīng)本質(zhì)上就是在域變化的情況下進行半監(jiān)督學(xué)習(xí)。許多來自于半監(jiān)督學(xué)習(xí)的教訓(xùn)和思想同樣地適用于遷移學(xué)習(xí)。文獻 [31] 是一個很不錯的關(guān)于半監(jiān)督學(xué)習(xí)的綜述。
2. 更有效地使用可用的數(shù)據(jù)
另外一個與遷移學(xué)習(xí)和半監(jiān)督學(xué)習(xí)相關(guān)的方向是讓模型在有限數(shù)量的數(shù)據(jù)上運行得更好。
這個可以用幾種方式實現(xiàn):你可以使用無監(jiān)督學(xué)習(xí)或者半監(jiān)督學(xué)習(xí)從無標(biāo)簽數(shù)據(jù)中抽取信息,以減少對有標(biāo)簽樣本的依賴;你可以允許模型能夠獲取一些數(shù)據(jù)的固有屬性,同時減輕正則化過程中的過擬合傾向;最后,你還可以使用至今仍然被忽視或者位于不明顯的地方的一些數(shù)據(jù)。
作為用戶生成內(nèi)容的意外結(jié)果,這種巧合的數(shù)據(jù) [32] 可能會被創(chuàng)建,例如能夠提升命名實體和詞性標(biāo)注的超鏈接;它也可能作為注釋的副產(chǎn)品存在,例如注釋器不一致(annotator disagreement) 可能改進標(biāo)注或者解析;或者來源于用戶行為的數(shù)據(jù),例如視線追蹤或者鍵入變化,可以影響自然語言處理的任務(wù)。雖然這些數(shù)據(jù)只是以有限的方式被利用,但是這樣的例子鼓勵我們在意外的地方查找數(shù)據(jù),并研究檢索數(shù)據(jù)的新方法。
3. 提高模型的泛化能力
讓模型更好地泛化也是與此相關(guān)的一個方向。為了實現(xiàn)更好的泛化能力,我們首先必須理解大規(guī)模神經(jīng)網(wǎng)絡(luò)的行為和錯綜復(fù)雜的結(jié)構(gòu),并且去研究它們泛化的原因和方式。最近的工作已經(jīng)朝著這個目標(biāo)邁出了大有希望的步伐 [33],但是很多問題仍然等待解答。
4. 讓模型更加穩(wěn)健(robust)
盡管提升我們的模型的泛化能力這方面已經(jīng)比較成功了,在類似的例子上面我們也許泛化得很好,但是在出乎意料或者者非典型的輸入情況下仍然會失敗。所以,一個關(guān)鍵的補充目標(biāo)就是讓我們的模型更加穩(wěn)健。在近來對抗學(xué)習(xí)的進步的推動下,這個方向越來越受關(guān)注,并且,最近的方法研究了很多讓模型在最糟糕的情況下或者面對不同設(shè)置的對抗樣本時變得更加穩(wěn)健的方式 [34,35]。
5. 多任務(wù)學(xué)習(xí)
在遷移學(xué)習(xí)中,我們主要關(guān)心在我們的目標(biāo)任務(wù)和域上友好的表現(xiàn)。相反,多任務(wù)學(xué)習(xí)中的目標(biāo)是在所有可用的任務(wù)上都要表現(xiàn)良好,盡管某個標(biāo)簽數(shù)據(jù)通常都被假定在一個任務(wù)上。雖然多任務(wù)學(xué)習(xí)的方法沒有直接用在遷移學(xué)習(xí)上,但是對多任務(wù)學(xué)習(xí)有利的關(guān)于任務(wù)的思想 [19] 仍然能夠指引遷移學(xué)習(xí)的決策。
6. 持續(xù)學(xué)習(xí)
雖然多任務(wù)學(xué)習(xí)允許我們在許多任務(wù)中保留知識,而不會對我們的源任務(wù)造成性能損失,但只有在所有任務(wù)都處于訓(xùn)練時間的情況下,這才是可能的。對于每個新任務(wù),我們通常需要重新訓(xùn)練我們所有任務(wù)的模型。
然而,在現(xiàn)實世界中,我們希望一個代理能夠通過使用它以往的一些經(jīng)驗來處理逐漸變得復(fù)雜的任務(wù)。為了達到這個目的,我們需要讓一個模型在不忘記的情況下持續(xù)地學(xué)習(xí)。這個機器學(xué)習(xí)的領(lǐng)域被稱為學(xué)會學(xué)習(xí) [36]、元學(xué)習(xí)、終生學(xué)習(xí),或者持續(xù)學(xué)習(xí)。持續(xù)學(xué)習(xí)在最近的強化學(xué)習(xí) (強化學(xué)習(xí)以 Google DeepMind 對通用學(xué)習(xí)代理的探索而著稱) 上已經(jīng)取得了成功 [37,38,39],也正在被用于序列到序列的模型上 [40]。
7. zero-shot 學(xué)習(xí)
最后,如果我們把遷移學(xué)習(xí)使用到極限,并且想要僅僅從很少的(一個,甚至 0 個)實例中學(xué)習(xí),這就分別得到了 few-shot、one-shot 以及 zero-shot 學(xué)習(xí)。讓模型執(zhí)行 one-shot 和 zero-shot 學(xué)習(xí),無疑屬于機器學(xué)習(xí)中最艱難的問題。而另一方面,這卻是我們?nèi)祟愄焐蜁模河啄甑臅r候,為了讓我們能夠認出任何狗狗,我們僅僅需要被告知一次「這是一條狗」,然而成年人可以僅通過在文中閱讀就理解一個東西的本質(zhì),不需要事先見過它。
one-shot 學(xué)習(xí)的新進展利用了這樣的思想,即為了在測試的時候?qū)崿F(xiàn)好的性能,模型需要顯式地被訓(xùn)練,從而進行 one-shot 學(xué)習(xí) [41,42]。但更加逼真、具有概括性的 zero-shot 學(xué)習(xí)設(shè)置在最近已經(jīng)引起了注意,在零點學(xué)習(xí)中訓(xùn)練類別出現(xiàn)在測試的時候 [43]。
七、總結(jié)
總之,遷移學(xué)習(xí)提供了很多令人興奮的研究方向,特別是許多應(yīng)用需要能夠?qū)⒅R遷移到新的任務(wù)和域中的模型。希望我在這篇博客中為你們給出了關(guān)于遷移學(xué)習(xí)的概述并且激發(fā)了你們的興趣。
本文作者為 Insight Research Centre for Data Analytics 的自然語言處理與深度學(xué)習(xí)博士生 Sebastian Ruder,他同時也是愛爾蘭都柏林的文本分析創(chuàng)業(yè)公司 AYLIEN 的研究科學(xué)家。
【本文是51CTO專欄機構(gòu)機器之心的原創(chuàng)譯文,微信公眾號“機器之心( id: almosthuman2014)”】