大數據時代下的遷移學習

在這篇博文中,你將了解到什麼是遷移學習,它的一些應用以及它為什麼能夠成為數據科學家應具備的關鍵技能。

遷移學習不是機器學習的一個模型或技術,它是機器學習中的一種「設計方法論」,還有一些其他的設方法論,比如說主動學習。

本文是AI科技大本營編譯的遷移學習系列的第一篇文章。第二篇文章也會在近期放送給大家,其中討論了遷移學習的兩種應用。

在後續的文章中,作者將解釋如何結合主動學習與遷移學習來最優地利用現有(或者新的)數據。 從廣義上說,在利用外部信息來提高性能或泛化能力時,可以使用遷移學習來實現一些機器學習的應用。

遷移學習的定義

遷移學習的總體思路是:對於帶大量標籤數據及可用參數設置的源任務,遷移已學習的知識,處理帶少量標籤的目標任務。因為標記數據的成本是昂貴的,最佳地利用現有數據集來解決目標任務是關鍵。

在傳統的機器學習模型中,主要目標是將訓練數據中學習到的模式,推廣到未知的數據。 通過遷移學習,你可以嘗試從已經學習的任務模式開始,啟動這個泛化過程。本質上,這不是從無到有地(通常是隨機初始化的)開始學習過程,而是在學會了其他任務模式的基礎上開始學習新任務。

能夠從圖像中區分線條和形狀(左),這些特徵能夠更容易確定圖中是否是「汽車」。可以運用遷移學習來學習其他計算機視覺模型中的模式,而不必從圖像的原始像素值開始。

存在不同的方法來表示自然語言中的單詞(詞嵌入像左、右側的詞表示)。藉助詞嵌入演算法,機器學習模型就可以利用不同單詞之間存在的關係。

知識和模式的遷移在各種領域都是有可能實現的。這篇文章將通過幾個不同領域的例子來說明遷移學習是如何工作的。我們的目標是鼓勵數據科學家在機器學習項目中使用遷移學習,並讓他們意識到這種方法的優缺點。

對於遷移學習的理解,以下這三個方面是我認為數據科學家都應具備的關鍵技能:

在任何一種學習模式中,遷移學習的應用都是至關重要的。為了獲得成功,人類不可能學習到每一個任務或問題。每個人都會遇到從未遇到過的情況,但我們仍然希望以特殊的方式解決問題。從大量的經驗中學習,並將「知識」轉移到新環境中的能力正是遷移學習的關鍵所在。從這個角度來看,遷移學習和泛化能力在概念層面上是非常相似的。它們的主要區別在於遷移學習經常被用於「跨任務遷移知識,而不是在一個特定的任務中進行概括」。因此,遷移學習與所有機器學習模型所必需的泛化能力概念有著內在聯繫。

對於小數據量情況下深度學習技術,應用遷移學習是取得成功的關鍵。在實際研究中,深度學習幾乎是無處不在,但是對於很多現實生活場景來說,通常都沒有數百萬個帶標籤的數據來訓練模型。而深度學習技術需要大量的數據來調整神經網路中的數百萬個參數,特別是在監督式學習的情況下。這就意味著你需要大量帶標籤數據來訓練模型,而標註數據則需要昂貴的人工成本。標記圖像聽起來很平常的,但是在諸如自然語言處理(NLP)任務中,需要專家知識才能創建大型標記數據集。例如,Penn treebank是一個詞性標註語料庫,至今已有7年的歷史了,它需要與多位語言學專家的密切合作才能完成。為保證小數據量上的神經網路能夠正常運行,遷移學習是一種可行的方法。而其他可行的選擇正朝著更多概率啟發的模式發展,這些模式通常更適合處理有限的小數據集。

遷移學習有著顯著的優點和缺點。了解這些缺點對於機器學習應用程序的成功是至關重要。知識遷移只有在「適當」的情況下才有可能。這種情況下,確切地定義「適當」的概念是不容易的,需要點經驗知識來幫助確定。例如,你不應該相信一個在玩具車裡開車的孩子能夠開上法拉利。遷移學習的原理也是一樣的:雖然它很難被量化,但遷移學習也是有上限的,也就是說它不是一個適合所有問題的解決方案。

遷移學習的一般概念

遷移學習的要求

正如它的名字,遷移學習需要將知識從一個領域遷移到另一個領域的能力。通常,遷移學習可以在高層級上進行解釋。例如,自然語言處理任務中的體系結構可以在序列預測問題中重複使用,因為很多自然語言處理問題本質上都可以歸結為序列預測問題。遷移學習也可以在低層級上進行解釋,例如在實際中你經常會重複使用不同模型中的參數(跳過片語,連續詞袋等)。遷移學習的要求,一方面是針對具體的問題而定,另一方面則是由具體的模型決定。接下來的兩節將分別討論遷移學習在高層級和低層級的應用方法。儘管在文獻中通常會用不同的名字來闡述這些概念,但是遷移學習的總體概念仍然存在。

多任務學習

在多任務學習中,你可以同時在不同的任務上訓練模型,通常這些都是深度學習模型,因為它們可以靈活地進行調整。

網路體系結構是這樣調整的:第一層跨越不同的任務使用,隨後為不同的任務指定特定的任務層和輸出。總體的思路是,通過對不同任務的網路進行訓練,網路將更好地推廣,因為模型需要在相似的「知識」或「處理」任務上表現良好。

例如,自然語言處理任務的最終目標是執行實體識別的模型,而不是在實體識別任務純粹地訓練模型。你還用它來處理一部分語音分類,詞語聯想等任務......因此,模型將從不用的結構、不同的任務和不同的數據集的學習中獲益。如果你想學習更多關於多任務學習的內容,強烈建議你閱讀Sebastian Ruder的關於多任務學習的博文(ruder.io/multi-task/)。

特徵提取

深度學習模型的一大優點是能夠「自動化」地提取特徵。基於標記的數據和反向傳播法則,網路能夠捕捉到對任務有用的特徵。例如,對於圖像分類任務,網路會計算出輸入的哪一部分是重要的。這意味著手動定義的特徵是很抽象的,而深度神經網路學習到的特徵可以在其他問題中重複地使用。因為網路所提取的特徵類型,常常對其他問題也是有用。本質上,你可以使用網路的第一層來確定有用的特徵,但是你不能在其他任務上使用網路的輸出,因為這些輸出是針對特定任務的。

考慮到深度學習系統強大的特徵提取能力,如何重複使用現有網路來執行其他任務的特徵提取?

這裡有一個方法,可以將新的數據樣本饋送到網路中,並將網路中的一個中間層作為輸出。這個中間層可以被設置為一個固定的長度,來表示原始數據的輸出。特別地,在計算機視覺領域使用圖像特徵,饋送到預訓練好的網路(例如,VGG或AlexNet),並在新的數據表示上使用不同的機器學習方法。提取中間層作為圖像的表示能夠顯著地減少了原始數據大小,以便它們更適合於傳統的機器學習技術(例如,對於一個128×128的小圖像:大小為128x128=16384像素,邏輯回歸演算法或支持向量機通常有更好的演算法性能)。

Bingdata優網助幫匯聚多平台採集的海量數據,通過大數據技術的分析及預測能力為企業提供智能化的數據分析、運營優化、投放決策、精準營銷、競品分析等整合營銷服務。

北京優網助幫信息技術有限公司(簡稱優網助幫)是以大數據為基礎,並智能應用於整合營銷的大數據公司,隸屬於亨通集團。Bingdata是其旗下品牌。優網助幫團隊主要來自阿里、騰訊、百度、金山、搜狐及移動、電信、聯通、華為、愛立信等著名企業的技術大咖,兼有互聯網與通信運營商兩種基因,為大數據的演算法分析提供強大的技術支撐。


推薦閱讀:

TAG:AI技術 | 遷移學習TransferLearning | 大數據 |