當前位置:
首頁 > 科技 > 為什麼數據科學家需要掌握「遷移學習」?一文詳解

為什麼數據科學家需要掌握「遷移學習」?一文詳解

圖:pixabay

原文來源:medium

作者:Lars Hulstaert

「雷克世界」編譯:嗯~是阿童木呀

在接下來的這篇文章中,你將了解到什麼是遷移學習?它的應用有哪些?以及為什麼它應該是數據科學家所需擁有的關鍵技能?

實際上,遷移學習並不是機器學習模型,也不是機器學習領域內的相關技術,它是機器學習中的一種「設計方法論」。而另一種類型的「設計方法論」就是像主動學習(active learning)這樣的。

這篇文章是關於遷移學習系列文章的第一篇,如果感興趣的話你可以點擊鏈接查看其中的第二篇文章,其中討論了遷移學習的兩種應用。

在後續的文章中,我將解釋該如何將主動學習與遷移學習相結合使用,從而最佳地利用現有(和新的)數據。從廣義上說,機器學習應用往往在利用外部信息以提高性能或泛化能力時會使用遷移學習。

遷移學習的定義

遷移學習的總體思路是使用從任務中所學到的知識,在那些只有少量已標註數據可用的環境中,獲得大量可用的已標註數據。通常來說,創建已標註數據的成本很大,所以充分利用現有數據集是關鍵所在。

在傳統的機器學習模型中,主要目標將從訓練數據中學習到的模式泛化到不可見數據中。通過遷移學習,你可以嘗試從已經學習到不同任務的模式開始,啟動這個泛化過程。從本質上說,我們應該從一個已經學習能夠解決不同任務的模式開始,而不是從頭開始(通常是隨機初始化的)進行該學習過程。

相較於必須從原始像素值著手,能夠從圖像中區分線條和形狀(左)使得更容易確定某物是否是「汽車」。遷移學習使得你能夠利用來自其他計算機視覺模型的學習模式。

在NLP中,存在多種不同的方法用以表示單詞(像左側所表示的詞嵌入,右側表示所表示的)。通過遷移學習,機器學習模型可以充分利用不同單詞之間存在的關係。

在多種領域中,知識和模式的遷移都是有可能的。而本文將通過查看幾個不同領域的若干個示例對遷移學習加以說明。最終目標是激勵數據科學家在他們的機器學習項目中使用遷移學習,並讓他們意識到其優缺點。

我之所以認為對遷移學習的理解是數據科學家應該具備的關鍵技能,原因有三,如下所示:

?遷移學習在任何一種學習中都是至關重要的。可以這樣說,對於人生中每一個任務或是難題,我們沒有被授以解決方法以獲得該事件的成功。每個人都會遇到從未遇到過的情況,我們仍然設法以特殊的方式解決問題。從大量的經驗中學習,並將「知識」導入到新的環境中,這正是遷移學習的全部意義所在。從這個角度來看,遷移學習和泛化在概念層面上是非常相似的,兩者的主要區別在於遷移學習經常被用於「跨任務遷移知識,而不是在一個特定的任務中進行泛化」。因此,遷移學習與所有機器學習模型所必需的泛化概念,兩者之間有著內在的聯繫。

?遷移學習是確保在存含有大量小數據環境下實現深度學習技術突破的關鍵所在。在研究中,深度學習幾乎是無處不在,但是在很多實際生活場景,我們通常沒有數百萬個標記數據點用以對模型進行訓練。深度學習技術需要大量的數據以調整神經網路中的數百萬個參數。特別是在監督學習的情況下,這意味著你需要大量(非常昂貴的)已標記數據。標記圖像聽起來微不足道,但是對於自然語言處理(NLP)中的樣本來說,需要專家知識才能創建大型標記數據集。例如,賓州樹庫(Penn treebank)是一個詞性標記語料庫,已經有7年的歷史了,需要許多具備專業知識的語言學家密切合作對其加以改進和完善。遷移學習是減少數據集所需大小的一種方法,以使神經網路成為可行的選擇。其他可行的選擇正朝著具有更多概率性啟發的模型發展,這些模型通常更適合於處理有限的數據集。

?遷移學習有著顯著的優點,同時缺點也是顯而易見的。了解這些缺點對於成功的機器學習應用來說具有至關重要的作用。知識遷移只有在「適當」的情況下才有可能實現。在這個上下文下,對「適當」進行確切的定義並不是一件容易的事情,並且通常需要進行實驗。你不應該相信一個開著玩具車孩子能夠駕馭一輛法拉利。對遷移學習來說道理是一樣的:雖然很難對其進行量化,但遷移學習是有上限的,它並不是一個適合於解決所有問題的「萬金油」。

遷移學習的通用概念

?遷移學習的要求

顧名思義,遷移學習需要具備將知識從一個領域遷移到另一個領域的能力。我們可以在一個較高層次上對遷移學習進行解釋。一個例子就是,NLP中的體系結構可以在序列預測問題中得以重用,因為很多NLP問題本質上可以歸結為序列預測問題。當然,遷移學習也可以在較低層次上進行解釋,實際上,你可以在不同的模型中重用來自一個模型的參數(skip-gram、連續詞袋(continuous bag-of-words)等)。遷移學習的要求一方面是特定的問題,另一方面是特定的模型。接下來的兩節將分別討論遷移學習所使用的高層次和低層次方法。儘管你會發現在不同的文獻中這些概念的名稱各有不同,但是遷移學習的總體概念是仍然存在的。

?多任務學習

在多任務學習中,你可以同時在不同的任務上對一個模型進行訓練。我們通常使用深度學習模型,因為它們可以靈活地進行調整。

網路體系結構是以這樣一種方式進行調整的,即在不同的任務使用第一層,隨後對於不同的任務,使用特定於不同任務的層和輸出。總的思路是,通過在不同任務上對網路進行訓練,網路將會得到更好的泛化,因為模型應該能夠在需要類似「知識」或「處理」的任務上表現良好。

自然語言處理中的示例是一個模型,其最終目標是執行實體識別。除了在實體識別任務中對模型進行純粹的訓練,你還可以用它進行語音分類,下一個單詞預測……因此,模型將從這些任務和不同數據集的結構中獲益。

?Featuriser

深度學習模型的一大優點是特徵提取是「自動化」的。基於標記數據和反向傳播,網路能夠確定用於任務的有用特徵。例如,為了對圖像進行分類,網路能夠「計算出」輸入的哪一部分是重要的。這意味著特徵定義的手動工作被抽象出來了。深度學習網路可以在其他問題中得以重複使用,因為所提取的特徵類型通常對於對其他問題來說也是有用的。本質上,在一個featuriser中,你可以使用網路的第一層來確定有用的特徵,但是你不使用網路的輸出,因為它是特定於任務的。

鑒於深度學習系統擅長特徵提取,我們該如何重用現有網路以執行其他任務的特徵提取呢?我們可以將數據樣本饋送到網路中,並將網路中的一個中間層作為輸出。這個中間層可以被闡述為一個固定的長度,原始數據的處理表示。典型地,featuriser的概念也往往用於計算機視覺任務中。然後將圖像饋送到預訓練網路中(例如,VGG或AlexNet),並且在新的數據表示上使用不同的機器學習方法。提取中間層作為圖像的表示顯著地減少了原始數據大小,使得它們更適合於傳統的機器學習技術。例如,相較於具有一個類似128x128 = 16384維度的圖像表徵來說,具有一個較小的圖像表徵,如128維度的邏輯回歸或支持向量機能夠運行得更好。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷克世界 的精彩文章:

紐約大學指出AlphaZero被誇大,強調重視人工智慧先天因素

TAG:雷克世界 |