餘凱在清華的講座筆記

2014.4.4,餘凱在清華FIT樓做了“Deep Learning Unfolds the Big Data Era”的講座。感覺這個講座還是比較high-level的,畢竟90分鐘也很難把這麼大的問題講清楚。


根據我的理解,講座主要分成4部分:

1. Deep Learning怎樣被工業界看重併火得一塌糊塗;

2. 分析了一下shallow model和deep model的區別;

3. 介紹了百度在DL方面的研究和產品;

4. DL的發展趨勢,百度可能的發展方向。


第一部分:DL是怎麼火起來的


餘凱首先以百度爲例講了深度學習的重要性:百度的商業模式是搜索引擎+賣廣告,而機器學習算法能夠將廣告與潛在用戶進行精準匹配,幫百度賺錢,turn data into value。在這方面百度需要解決的問題包括:自然圖像中的光學字符識別(OCR in natural images)、語音識別(speech recognition and understanding)、基於內容的圖像檢索(content-based image retrieval。尤其是鑑於最近可穿戴設備的快速發展,語音識別可能在未來扮演非常重要的角色。


隨後他又畫了那張很出名的技術發展的曲線,即先升後降再穩步提升。現在處於第一個上升期的代表包括3D打印、自動駕駛等等,第二個上升期的則是虹膜識別等等。


現在DL爲什麼這麼火呢?06年Hinton的文章通過pre-training較好地解決了多層網絡難以訓練的問題,重新喚起了人們對於neural network的興趣。但更重要的是在隨後的幾年裏,人們利用DL模型在語音識別和圖像分類上獲得了突破性的進展。之所以說是突破性的,是因爲其性能提升之大是以往小修小補遠不能及的。尤其是在圖像領域,DL算法甚至不需要human engineered feature,直接以原始像素作爲輸入就行。這改變了以往人們對於特徵提取的認識。套用鄧侃的一句話就是:這個領域離錢太近了。(這裏還講了一個小八卦:最早用DL在語音上取得學術成果的是微軟,但最先將其產品化的卻是谷歌,隨後是百度。)


第二部分:shallow model和deep model的比較


餘凱將機器學習的模型歸爲三類:shallow model,包括linear regression、logistic regression等;shallow model with one hidden layer,包括SVM、boosting、MLP等;還有就是deep model。


其中shallow model with one hidden layer,其實都可以認爲(是餘凱認爲)是將數據用某種方法投影到隱含的特徵空間中。學習過程就是學習這種映射關係,對隱層的不同假設就形成了不同的模型。餘凱將manifold learning和semi-supervised learning也歸爲這一類,我可以理解;但是他將PCA也歸爲這一類,我沒太明白爲什麼。


淺層的線性模型在以往獲得了很大的成功(我記得Andrew Ng在Machine Learning課上講完linear regression和logistic regression之後說:OK,你們現在已經比硅谷大部分工程師都牛逼了),不過說白了,淺層模型研究的問題是:已經有了好的特徵我們怎麼分類。問題是好的特徵哪裏來?過去人們靠專家拍腦袋想特徵,比如SIFT。但是當數據變得更復雜、數據量更大的時候這種辦法就不行了,所以要讓模型自動提取特徵。


餘凱給了一幅圖像處理的流程圖,從左到右依次爲:low-levelsensing -> pre-processing -> featureextraction -> featureselection -> prediction/classification  etc.。前面的4個環節都屬於dirty work,但這些工作又對最後的結果影響極大。實踐中這些環節是最耗費時間的,且往往是通過人工選取的方式,典型的例子就是SIFT和MFCC。正如前面所說,在圖像領域我們已經能讓模型自動地選取特徵,但是在語音領域我們還沒到這個程度。


DL能夠自動習得從信號到語義的層次化的數據表示(參考谷歌的貓臉),這就是最吸引人的部分


第三部分:百度在DL方面的工作


這塊比較有意思,有研究也有產品。餘凱非常自豪得說,現在用戶在百度上的每一個query、每一次點擊都會用NN處理。成果方面,百度把語音識別的相對出錯率降低了25%,OCR的相對錯誤率降低了30%,圖像檢索則是世界最好的,“way better than Google”。從給出的幾個例子上來看確實是這樣。


然後講了一點怎樣把DL 應用於文本檢索,這塊也是我一直比較好奇的。大致結構是(在網上沒找到圖,讀者腦補一下吧……):先將query和document映射成向量,要求這個向量可以反映出語義上的相關性(有沒有參考谷歌的word2vec?);分別對兩個向量做pooling;將pooling後的向量送入DNN進行打分,得到query和doc的相關度。對於有標記的訓練集,我們可以知道類似score( query, doc1 ) > score( query, doc2 )這樣的數據,所以只要定義一個合適的cost function就可以愉快地訓練了。


作爲搜索服務提供者,百度當然不缺數據。據餘凱說,百度使用的圖片大概有100 million,用於OCR的數據也差不多,語音是10 billion,CTR(點擊預估)甚至達到100 billion。怪不得去百度實習過的同學都看不上學術圈這點玩具一樣的數據集……


之後的東西就很水了,提了一下百度的分佈式學習框架PADDLE,強調他們最看重的就是scalability。


講到這裏餘凱又總結了一下爲什麼DL現在會這麼成功,包括:

○ Big data解決了vanishing gradient的問題,一定程度上緩解了local optimal的問題(能fit這麼多數據說明這個local optimal還是足夠好的)
○ GPU
○ Large scale parallel computation
○ pre-training(現在不重要,如第一條所述,數據足夠就行了)
○ RELU,drop out,normalization等等trick


第四部分:深度學習和百度的未來


從生物學的角度分析,高等動物相比低等動物,在神經元連接稠密程度上增長不大,但神經元數量要多得多。因此DL下一步的發展方向也許還是更大規模的網絡。


從技術角度講,需要解決的問題包括:1. 大規模海量數據並行訓練平臺;2. 對於結構和非結構數據的深度學習建模技術;3. 對於語言、語義、知識的建模、學習、表示、集成;4. 線上模型壓縮加速技術,軟件+硬件。這些不光要靠算法的改進,也依賴於高性能計算、腦科學的發展。


從研究哲學的角度,餘凱強調了兩點:1. DL不是一個blackbox;2. DL不是AI。在他看來,DL是一種語言、一種框架,就像graphical model。我們只有在先驗知識的指導下才能更好的設計網絡的結構,以期反映問題的本質。與過去不同的是,過去我們將先驗知識應用於feature engineering,現在則是用於model structure。同時需要認識到,一個完整的AI應該包括四方面的能力:利用知識,學習,解決問題,創造。機器學習僅僅是學習的一部分,而DL也只是機器學習的一部分。


第五部分:提問環節


只有一個比較有意思的問題,是一個不知道是研究生還是老師的漂亮姐姐問的:對於一個已經訓練好的模型,如果出現了一個新的需要識別的類別,怎樣將其快速加入到模型中?餘凱給出的解決方法是保留下面幾層,只重新訓練接近輸出層的幾層。這也是可以理解的,輸入的底層特徵都差不多,應該避免重複勞動。


以上就是我梳理的筆記。這麼寫一遍感覺又加深了自己的理解,以後多來幾次。






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章