當前位置:
首頁 > 最新 > 當深度學習成為過去,遷移學習才是真正的未來?

當深度學習成為過去,遷移學習才是真正的未來?

導語NIPS 2016:吳恩達表示,「在繼深度學習之後,遷移學習將引領下一波機器學習技術。」

但是!今天的深度學習演算法仍然欠缺的,是在新情況(不同於訓練集的情況)上的泛化能力和訓練模型所必須的海量數據難以獲取。

一、 深度學習的局限性

在深度學習熱火朝天,全民深度的時候說深度學習的壞話,而且對於那些沒有看完本文的標題黨,會不會打我。但是我還是要鼓足勇氣說一下深度學習目前面臨的困難:

1.表達能力的限制。因為一個模型畢竟是一種現實的反映,等於是現實的鏡像,它能夠描述現實的能力越強就越準確,而機器學習都是用變數來描述世界的,它的變數數是有限的,深度學習的深度也是有限的。另外它對數據的需求量隨著模型的增大而增大,但現實中有那麼多高質量數據的情況還不多。所以一方面是數據量,一方面是數據裡面的變數、數據的複雜度,深度學習來描述數據的複雜度還不夠複雜。

2. 缺乏反饋機制。目前深度學習對圖像識別、語音識別等問題來說是最好的,但是對其他的問題並不是最好的,特別是有延遲反饋的問題,例如機器人的行動,AlphaGo下圍棋也不是深度學習包打所有的,它還有強化學習的一部分,反饋是直到最後那一步才知道你的輸贏。還有很多其他的學習任務都不一定是深度學習才能來完成的。

3. 模型複雜度高以下是一些當前比較流行的機器學習模型和其所需的數據量,可以看到隨著模型複雜度的提高,其參數個數和所需的數據量也是驚人的。

OK,從上面的闡述,我們可以得出目前傳統的機器學習方法(包括深度學習)三個待解決的關鍵問題:

1. 隨著模型複雜度的提高,參數個數驚人。

2. 在新情況下模型泛化能力有待提高。

3. 訓練模型的海量的標記費時且昂貴。

4. 表達能力有限且缺乏反饋機制。

遷移學習幫你搞定一切,讓你的模型小而輕,還能舉一反三!

二、 到底什麼是遷移學習?

「你永遠不能理解一種語言——除非你至少理解兩種語言」。

任何一個學過第二語言的人,對英國作家傑弗里·威廉斯的這句話應該都會「感同身受」。但為什麼這樣說呢?其原因在於學習使用外語的過程會不可避免地加深一個人對其母語的理解。事實上,歌德也發現這一理念的強大威力,以至於他不由自主地做出了一個與之類似但更為極端的斷言:

「一個不會外語的人對其母語也一無所知」。

這種說法極為有趣,但令人驚訝的是恐怕更在於其實質——對某一項技能或心理機能的學習和精進能夠對其他技能或心理機能產生積極影響——這種效應即為遷移學習。它不僅存在於人類智能,對機器智能同樣如此。如今,遷移學習已成為機器學習的基礎研究領域之一,且具有廣泛的實際應用潛力。

一些人也許會很驚訝,計算機化的學習系統怎樣能展現出遷移學習的能力。Google通過一項涉及兩套機器學習系統的實驗來思考了這個問題,為了簡單起見,我們將它們稱為機器A和機器B。機器A使用全新的DNN,機器B則使用已經接受訓練並能理解英語的DNN。現在,假設我們用一組完全相同的普通話錄音及對應文本來對機器A和B進行訓練,大家覺得結果會怎樣?令人稱奇的是,機器B(曾接受英語訓練的機器)展現出比機器A更好的普通話技能,因為它之前接受的英語訓練將相關能力遷移到了普通話理解任務中。

不僅如此,這項實驗還有另一個令人更為驚嘆的結果:機器B不僅普通話能力更高,它的英語理解能力也會提高!看來威廉斯和歌德確實說對了一點——學習第二語言確實能夠加深對兩種語言的理解,即使機器也不例外。

其實這就是計算機化的遷移學習。然而在我們身邊,遷移學習的例子太多太多,一個精通吉他的人會比那些沒有音樂基礎的人能更快地學習鋼琴;一個會打乒乓球的人比沒有經驗的人更容易接受網球;會騎自行車的人能更快學習騎電動車,等等,遷移學習就在你身邊。

三、 遷移學習和傳統機器學習的差別

在機器學習的經典監督學習場景中,如果我們要針對一些任務和域A 訓練一個模型,我們會假設被提供了針對同一個域和任務的標籤數據(也就是說訓練集和測試集的數據必須是iid的,即獨立同分布)。我們可以在下圖中清楚地看到這一點,其中我們的模型 A 在訓練數據和測試數據中的域和任務都是一樣的(後面我會詳細地定義什麼是任務(task),以及什麼是域(domain))。

現在我們可以在這個數據集上訓練一個模型 A,並期望它在同一個任務和域中的未知數據上表現良好。在另一種情況下,當給定一些任務或域 B 的數據時,我們還需要可以用來訓練模型 B 的有標籤數據,這些數據要屬於同一個任務和域,這樣我們才能預期能在這個數據集上表現良好。

但是,現實往往很殘酷,當我們沒有足夠的來自於我們關心的任務或域的標籤數據來訓練可靠的模型時(新的標籤數據很難獲取,或者很費時),傳統的監督學習範式就支持不了了。

但傳統的監督學習方法也會失靈——在缺乏某任務/領域標記數據的情況下,它往往無法得出一個可靠的模型。舉個例子,如果我們想要訓練出一個模型,對夜間的行人圖像進行監測,我們可以應用一個相近領域的訓練模型——白天的行人監測。理論上這是可行的。但實際上,模型的表現效果經常會大幅惡化,甚至崩潰。這很容易理解,模型從白天訓練數據獲取了一些偏差,不知道怎麼泛化到新場景。

如果我們想要執行全新的任務,比如監測自行車騎手,重複使用原先的模型是行不通的。這裡有一個很關鍵的原因:不同任務的數據標籤不同。但是遷移學習就允許我們通過借用已經存在的一些相關的任務或域的標籤數據來處理這些場景,充分利用相近任務/領域的現有數據我們嘗試著把在源域中解決源任務時獲得的知識存儲下來,並將其應用在我們感興趣的目標域中的目標任務上去,如下圖所示。

四、 遷移學習的概念、定義及分類

1.遷移學習的基本概念:域和任務,源和目標

一個域D由一個特徵空間X和特徵空間上的邊際概率分布P(X)組成,其中 X=x1,…, xn∈X。對於有很多詞袋錶征(bag-of-words representation)的文檔分類,X 是所有文檔表徵的空間,xi是第i個單詞的二進位特徵,X是一個特定的文檔。對我來說,通俗的理解就是域D就是特徵的空間及分布。

給定一個域D=,一個任務T由一個標籤空間y以及一個條件概率分布P(Y|X)構成,這個條件概率分布通常是從由特徵——標籤對xi∈X,yi∈Y 組成的訓練數據中學習得到。在我們的文檔分類的例子中,Y是所有標籤的集合(即真(True)或假(False)),yi要麼為真,要麼為假。

源域 Ds,一個對應的源任務Ts,還有目標域 Dt,以及目標任務Tt,這個就很好理解了,源就是對應的我們的訓練集,目標就是對應我們的測試集。

2.遷移學習的定義:

在Ds≠Dt和/或Ts≠Tt的情況下,讓我們在具備來源於Ds 和Ts的信息時,學習得到目標域Dt中的條件概率分布P(Yt|Xt)。絕大多數情況下,假設可以獲得的有標籤的目標樣本是有限的,有標籤的目標樣本遠少於源樣本。

3.遷移學習的分類:

1. XS≠XT,即源域和目標域的特徵空間不同,舉個例子,文檔是用兩種不同的語言寫的。在自然語言處理的背景下,這通常被稱為跨語言適應(cross-lingual adaptation),我們將這種情況稱為異構遷移學習(Heterogeneous TL)。

2. XS=XT,即源域和目標域的特徵空間相同,稱為同構遷移學習(Homogenrous TL)

3. P(Xs)≠P(Xt),源域和目標域的邊際概率分布不同,例如,兩個文檔有著不同的主題。這種情況通常被稱為域適應(domain adaptation)。

4. P(Ys|Xs)≠P(Yt|Xt),源任務和目標任務的條件概率分布不同,例如,兩個不同數據集的標籤規則是不一樣的。

5. YS≠YT,兩個任務的標籤空間不同,例如源域是二分類問題,目標域是4分類問題,因為不同的任務擁有不同的標籤空間,但是擁有相同的條件概率分布,這是極其罕見的。

借用一張之前自己做的幻燈片:

4.遷移學習的四種常見解決方法:

四種方法分別為:基於樣本的遷移學習、基於特徵的遷移學習、基於參數/特徵的遷移學習和基於關係的遷移學習。

(1) 基於樣本的遷移學習

第一種為樣本遷移,就是在數據集(源領域)中找到與目標領域相似的數據,把這個數據的權值進行調整,使得新的數據與目標領域的數據進行匹配(將分布變成相同)。樣本遷移的特點是:1)需要對不同例子加權;2)需要用數據進行訓練,上圖的例子就是找到源領域的例子3,然後加重該樣本的權值,使得在預測目標領域時的比重加大。

(2) 基於特徵的遷移學習

第二種為特徵遷移,就是通過觀察源領域圖像與目標域圖像之間的共同特徵,然後利用觀察所得的共同特徵在不同層級的特徵間進行自動遷移,上圖左側的例子就是找當兩種狗在不同層級上的共同特徵,然後進行預測。

(3) 基於參數/模型的遷移學習

第三種為模型遷移,其原理時利用上千萬的狗狗圖象訓練一個識別系統,當我們遇到一個新的狗狗圖象領域,就不用再去找幾千萬個圖象來訓練了,可以原來的圖像識別系統遷移到新的領域,所以在新的領域只用幾萬張圖片同樣能夠獲取相同的效果。模型遷移的一個好處是我們可以區分,就是可以和深度學習結合起來,我們可以區分不同層次可遷移的度,相似度比較高的那些層次他們被遷移的可能性就大一些。

(4) 基於關係的遷移學習

五、 遷移學習到底可以解決哪些問題

遷移學習主要可以解決兩大類問題:小數據問題個性化問題

小數據問題:比方說我們新開一個網店,賣一種新的糕點,我們沒有任何的數據,就無法建立模型對用戶進行推薦。但用戶買一個東西會反應到用戶可能還會買另外一個東西,所以如果知道用戶在另外一個領域,比方說賣飲料,已經有了很多很多的數據,利用這些數據建一個模型,結合用戶買飲料的習慣和買糕點的習慣的關聯,我們就可以把飲料的推薦模型給成功地遷移到糕點的領域,這樣,在數據不多的情況下可以成功推薦一些用戶可能喜歡的糕點。這個例子就說明,我們有兩個領域,一個領域已經有很多的數據,能成功地建一個模型,有一個領域數據不多,但是和前面那個領域是關聯的,就可以把那個模型給遷移過來。

個性化問題:比如我們每個人都希望自己的手機能夠記住一些習慣,這樣不用每次都去設定它,我們怎麼才能讓手機記住這一點呢?其實可以通過遷移學習把一個通用的用戶使用手機的模型遷移到個性化的數據上面。我想這種情況以後會越來越多。

六、 遷移學習的應用

1. 我到底是什麼顏色?

大家一看這幅圖就知道,這裡以此前網上流行的一個連衣裙圖片為例。如圖所示,如果你想通過深度學習判斷這條裙子到底是藍黑條紋還是白金條紋,那就必須收集大量的包含藍黑條紋或者白金條紋的裙子的圖像數據。參考上文提到的問題規模和參數規模之間的對應關係,建立這樣一個精準的圖像識別模型至少需要140M個參數,1.2M張相關的圖像訓練數據,這幾乎是一個不可能完成的任務。

現在引入遷移學習,用如下公式可以得到在遷移學習中這個模型所需的參數個數:

No. of parameters = [Size(inputs) + 1] * [Size(outputs) + 1] = [2048+1]*[1+1]~4098parameters

可以看到,通過遷移學習的引入,針對同一個問題的參數個數從140M減少到了4098,減少了10的5次方個數量級!這樣的對參數和訓練數據的消減程度是驚人的。

這裡給大家介紹一個遷移學習的工具NanoNets,它是一個簡單方便的基於雲端實現的遷移學習工具,其內部包含了一組已經實現好的預訓練模型,每個模型有數百萬個訓練好的參數。用戶可以自己上傳或通過網路搜索得到數據,NanoNets將自動根據待解問題選擇最佳的預訓練模型,並根據該模型建立一個NanoNets(納米網路),並將之適配到用戶的數據。以上文提到的藍黑條紋還是白金條紋的連衣裙為例,用戶只需要選擇待分類的名稱,然後自己上傳或者網路搜索訓練數據,之後NanoNets就會自動適配預訓練模型,並生成用於測試的web頁面和用於進一步開發的API介面。如下所示,圖中為系統根據一張連衣裙圖片給出的分析結果。具體使用方法詳見NanoNets官網:http://nanonets.ai/ 。

2. Deepmind的作品 progressive neural network(機器人)

Google的Deepmind向來是大家關注的熱點,就在去年,其將三個小遊戲Pong, Labyrinth, Atari通過將已學其一的遊戲的parameter通過一個lateral connection feed到一個新遊戲。外牆的可以看youtub的視頻:https://www.youtube.com/watch?v=aWAP_CWEtSI,與此同時,DeepMind最新的成果Progressive Neural Networks終於伸向真正的機器人了!

它做了什麼事情呢?就是在模擬環境中訓練一個機械臂移動,然後訓練好之後,可以把知識遷移到真實的機械臂上,真實的機械臂稍加訓練也可以做到和模擬一樣的效果!視頻在這:https://www.youtube.com/watch?v=YZz5Io_ipi8

3. 輿情分析

遷移學習也可應用在輿情分析中,如用戶評價方面。以電子產品和視頻遊戲留言為例,上圖中綠色為好評標籤,而紅色為差評標籤。我們可以從上圖左側的電子產品評價中找到特徵,促使它在這個領域(電子產品評價)建立模型,然後利用模型把其遷移到視頻遊戲中。這裡可以看到,輿情也可以進行大規模的遷移,而且在新的領域不需要標籤。

4. 個性化對話

訓練一個通用型的對話系統,該系統可能是閑聊型,也可能是一個任務型的。但是,我們可以根據在特定領域的小數據修正它,使得這個對話系統適應不同任務。比如,一個用戶想買咖啡,他並不想回答所有繁瑣的問題,例如是要大杯小杯,熱的冷的?

5. 基於遷移學習的推薦系統

在線推薦系統中利用遷移學習,可以在某個領域做好一個推薦系統,然後應用在稀疏的、新的垂直領域。(影像資料——>書籍資料)

6. 遷移學習在股票中的預測

香港科技大學楊強教授的學生就把遷移學習應用到大家公認的很難的領域中——預測股市走勢。下圖所示為A股裡面的某個股票,用過去十年的數據訓練該模型。首先,運用數據之間的連接,產生不同的狀態,讓各個狀態之間能夠互相遷移。其次,不同狀態之間將發生變化,他們用了一個強化學習器模擬這種變化。最後,他們發現深度學習的隱含層裡面會自動產生幾百個狀態,基本就能夠對這十年來的經濟狀況做出一個很完善的總結。

楊強教授也表示,這個例子只是在金融領域的一個小小的試驗。不過,一旦我們對一個領域有了透徹的了解,並掌握更多的高質量數據,就可以將人工智慧技術遷移到這個領域來,在應用過程中對所遇到的問題作清晰的定義,最終能夠實現通用型人工智慧的目的。

遷移學習的應用越來越廣泛,這裡僅僅介紹了冰山一角,例如生物基因檢測、異常檢測、疾病預測、圖像識別等等。

七、 風頭正勁的遷移學習

當今全世界都在推動遷移學習,當今 AAAI 中大概有 20 多篇遷移學習相關文章,而往年只有五六篇。與此同時,如吳恩達等深度學習代表人物也開始做遷移學習。正如吳恩達在 NIPS 2016 講座上畫了一副草圖,大致的意思如下圖所示:

有一點是毋庸置疑的:迄今為止,機器學習在業界的應用和成功,主要由監督學習推動。而這又是建立在深度學習的進步、更強大的計算設施、做了標記的大型數據集的基礎上。近年來,這一波公眾對人工智慧技術的關注、投資收購浪潮、機器學習在日常生活中的商業應用,主要是由監督學習來引領。但是,該圖在吳恩達眼中是推動機器學習取得商業化成績的主要驅動技術,而且從中可以看出,吳恩達認為下一步將是遷移學習的商業應用大爆發

最後,借鑒香港科技大學計算機與工程系主任,全球第一位華人AAAI Fellow楊強教授在2016年底騰訊暨KDD China 大數據峰會上的一頁膠片來作為結束。

昨天我們在深度學習上有著很高成就。但我們發現深度學習在有即時反饋的領域和應用方向有著一定的優勢,但在其他領域則不行。打個比方:就像我在今天講個笑話,你第二天才能笑得出來,在今天要解決這種反饋的時延問題需要強化學習來做。而在明天,則有更多的地方需要遷移學習:它會讓機器學習在這些非常珍貴的大數據和小數據上的能力全部釋放出來。做到舉一反三,融會貫通。


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

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


請您繼續閱讀更多來自 騰訊課堂 的精彩文章:

程序員十大誡律:如何進入編程的「無我之境」?
心理減壓有10招 考研輕鬆來備考
計算機科學之父阿蘭·圖靈誕辰105周年

TAG:騰訊課堂 |

您可能感興趣

深度學習的過去,現在和未來
學習習慣不正確,再努力也沒有好成績,白忙活!
到底什麼才是真正的學習
學習習慣的好與壞,決定了孩子將來能走多遠!
不要再讓學習方法,去影響你的學習
神經進化是深度學習的未來
相比於深度學習,機器學習沒落了嗎?
向自己的過去學習
學習習慣不改正,孩子再努力也學不會!
那些學起來毫不費力,成績卻好到逆天的同學到底怎麼學習的?
夢想,從學習開始!
還糾結選機器學習還是深度學習?看完你就有數了
就反潛巡邏機來說,我們真的不如印度,應該向他們虛心學習
什麼是深度學習?
學習從來不輕鬆
學習,就是一個不斷接近「真相」的過程
孩子,你以為學習成績好,就真的可以為所欲為嗎?
孩子學習成績差,未來的前途將如何
當機器都會「學習」了,你還想不學習么?
讓孩子的學習純粹起來,才能讓孩子真正愛上學習