深度學習: 推進人工智能的夢想

摘要:深度學習帶來了機器學習的新浪潮,推動“大數據+深度模型”時代的來臨,以及人工智能和人機交互大踏步前進。如果我們能在理論、建模和工程方面突破深度學習面臨的一系列難題,人工智能的夢想不再遙遠。

2012年6月,《紐約時報》披露了Google Brain項目,吸引了公衆的廣泛關注。這個項目是由著名的斯坦福大學機器學習教授Andrew Ng和在大規模計算機系統方面的世界頂尖專家Jeff Dean共同主導,用16000個CPU Core的並行計算平臺訓練一種稱爲“深層神經網絡”(DNN,Deep Neural Networks)的機器學習模型,在語音識別和圖像識別等領域獲得了巨大的成功。2012年11月,微軟在中國天津的一次活動上公開演示了一個全自動的同聲傳譯系統,講演者用英文演講,後臺的計算機一氣呵成自動完成語音識別、英中機器翻譯,以及中文語音合成,效果非常流暢。據報道,後面支撐的關鍵技術也是DNN,或者深度學習(DL,Deep Learning)。

2013年1月,在百度的年會上,創始人兼CEO李彥宏高調宣佈要成立百度研究院,其中第一個重點方向就是深度學習,併爲此而成立Institute of Deep Learning(IDL)。這是百度成立十多年以來第一次成立研究院。2013年4月,《麻省理工學院技術評論》雜誌將深度學習列爲2013年十大突破性技術(Breakthrough Technology)之首。

讀者一定非常好奇,什麼是深度學習?爲什麼深度學習受到學術界和工業界如此廣泛的重視?深度學習技術研發面臨什麼樣的科學和工程問題?深度學習帶來的科技進步將怎樣改變人們的生活?

機器學習的兩次浪潮:從淺層學習到深度學習

在解釋深度學習之前,我們需要了解什麼是機器學習。機器學習是人工智能的一個分支,而在很多時候,幾乎成爲人工智能的代名詞。簡單來說,機器學習就是通過算法,使得機器能從大量歷史數據中學習規律,從而對新的樣本做智能識別或對未來做預測。從1980年代末期以來,機器學習的發展大致經歷了兩次浪潮:淺層學習(Shallow Learning)和深度學習(Deep Learning)。需要指出是,機器學習歷史階段的劃分是一個仁者見仁,智者見智的事情,從不同的維度來看會得到不同的結論。這裏我們是從機器學習模型的層次結構來看的。


第一次浪潮:淺層學習

1980年代末期,用於人工神經網絡的反向傳播算法(也叫Back Propagation算法或者BP算法)的發明,給機器學習帶來了希望,掀起了基於統計模型的機器學習熱潮。這個熱潮一直持續到今天。人們發現,利用BP算法可以讓一個人工神經網絡模型從大量訓練樣本中學習出統計規律,從而對未知事件做預測。這種基於統計的機器學習方法比起過去基於人工規則的系統,在很多方面顯示出優越性。這個時候的人工神經網絡,雖然也被稱作多層感知機(Multi-layer Perceptron),但實際上是一種只含有一層隱層節點的淺層模型。

90年代,各種各樣的淺層機器學習模型相繼被提出,比如支撐向量機(SVM,Support Vector Machines)、Boosting、最大熵方法(例如LR, Logistic Regression)等。這些模型的結構基本上可以看成帶有一層隱層節點(如SVM、Boosting),或沒有隱層節點(如LR)。這些模型在無論是理論分析還是應用都獲得了巨大的成功。相比較之下,由於理論分析的難度,加上訓練方法需要很多經驗和技巧,所以這個時期淺層人工神經網絡反而相對較爲沉寂。

2000年以來互聯網的高速發展,對大數據的智能化分析和預測提出了巨大需求,淺層學習模型在互聯網應用上獲得了巨大成功。最成功的應用包括搜索廣告系統(比如Google的AdWords、百度的鳳巢系統)的廣告點擊率CTR預估、網頁搜索排序(例如Yahoo!和微軟的搜索引擎)、垃圾郵件過濾系統、基於內容的推薦系統等。

第二次浪潮:深度學習

2006年,加拿大多倫多大學教授、機器學習領域泰斗——Geoffrey Hinton和他的學生Ruslan Salakhutdinov在頂尖學術刊物《科學》上發表了一篇文章,開啓了深度學習在學術界和工業界的浪潮。這篇文章有兩個主要的信息:1. 很多隱層的人工神經網絡具有優異的特徵學習能力,學習得到的特徵對數據有更本質的刻畫,從而有利於可視化或分類;2. 深度神經網絡在訓練上的難度,可以通過“逐層初始化”(Layer-wise Pre-training)來有效克服,在這篇文章中,逐層初始化是通過無監督學習實現的。

自2006年以來,深度學習在學術界持續升溫。斯坦福大學、紐約大學、加拿大蒙特利爾大學等成爲研究深度學習的重鎮。2010年,美國國防部DARPA計劃首次資助深度學習項目,參與方有斯坦福大學、紐約大學和NEC美國研究院。支持深度學習的一個重要依據,就是腦神經系統的確具有豐富的層次結構。一個最著名的例子就是Hubel-Wiesel模型,由於揭示了視覺神經的機理而曾獲得諾貝爾醫學與生理學獎。除了仿生學的角度,目前深度學習的理論研究還基本處於起步階段,但在應用領域已顯現出巨大能量。2011年以來,微軟研究院和Google的語音識別研究人員先後採用DNN技術降低語音識別錯誤率20%~30%,是語音識別領域十多年來最大的突破性進展。2012年,DNN技術在圖像識別領域取得驚人的效果,在ImageNet評測上將錯誤率從26%降低到15%。在這一年,DNN還被應用於製藥公司的Druge Activity預測問題,並獲得世界最好成績,這一重要成果被《紐約時報》報道。
正如文章開頭所描述的,今天Google、微軟、百度等知名的擁有大數據的高科技公司爭相投入資源,佔領深度學習的技術制高點,正是因爲它們都看到了在大數據時代,更加複雜且更加強大的深度模型能深刻揭示海量數據裏所承載的複雜而豐富的信息,並對未來或未知事件做更精準的預測。

大數據與深度學習

在工業界一直有個很流行的觀點:在大數據條件下,簡單的機器學習模型會比複雜模型更加有效。例如,在很多的大數據應用中,最簡單的線性模型得到大量使用。而最近深度學習的驚人進展,促使我們也許到了要重新思考這個觀點的時候。簡而言之,在大數據情況下,也許只有比較複雜的模型,或者說表達能力強的模型,才能充分發掘海量數據中蘊藏的豐富信息。運用更強大的深度模型,也許我們能從大數據中發掘出更多有價值的信息和知識。

爲了理解爲什麼大數據需要深度模型,先舉一個例子。語音識別已經是一個大數據的機器學習問題,在其聲學建模部分,通常面臨的是十億到千億級別的訓練樣本。在Google的一個語音識別實驗中,發現訓練後的DNN對訓練樣本和測試樣本的預測誤差基本相當。這是非常違反常識的,因爲通常模型在訓練樣本上的預測誤差會顯著小於測試樣本。因此,只有一個解釋,就是由於大數據裏含有豐富的信息維度,即便是DNN這樣的高容量複雜模型也是處於欠擬合的狀態,更不必說傳統的GMM聲學模型了。所以從這個例子中我們看出,大數據需要深度學習。

淺層模型有一個重要特點,就是假設靠人工經驗來抽取樣本的特徵,而強調模型主要是負責分類或預測。在模型的運用不出差錯的前提下(如假設互聯網公司聘請的是機器學習的專家),特徵的好壞就成爲整個系統性能的瓶頸。因此,通常一個開發團隊中更多的人力是投入到發掘更好的特徵上去的。要發現一個好的特徵,就要求開發人員對待解決的問題要有很深入的理解。而達到這個程度,往往需要反覆地摸索,甚至是數年磨一劍。因此,人工設計樣本特徵,不是一個可擴展的途徑。
深度學習的實質,是通過構建具有很多隱層的機器學習模型和海量的訓練數據,來學習更有用的特徵,從而最終提升分類或預測的準確性。所以“深度模型”是手段,“特徵學習”是目的。區別於傳統的淺層學習,深度學習的不同在於:1. 強調了模型結構的深度,通常有5層、6層,甚至10多層的隱層節點;2. 明確突出了特徵學習的重要性,也就是說,同過逐層特徵變換,將樣本在原空間的特徵表示變換到一個新特徵空間,使分類或預測更加容易。

與人工規則構造特徵的方法相比,利用大數據來學習特徵,更能刻畫數據豐富的內在信息。所以,在未來的幾年裏,我們將看到越來越多的例子:深度模型應用於大數據,而不是淺層的線性模型。

深度學習的應用

語音識別

語音識別系統長期以來,在描述每個建模單元的統計概率模型時,大多采用的是混合高斯模型(GMM)。這種模型由於估計簡單,適合海量數據訓練,同時有成熟的區分度訓練技術支持,長期以來,一直在語音識別應用中佔有壟斷性地位。但這種混合高斯模型本質上是一種淺層網絡建模,不能充分描述特徵的狀態空間分佈。另外,GMM建模的特徵維數一般是幾十維,不能充分描述特徵之間的相關性。最後,GMM建模本質上是一種似然概率建模,雖然區分度訓練能夠模擬一些模式類之間的區分性,但能力有限。

微軟研究院語音識別專家鄧立和俞棟從2009年開始和深度學習專家Geoffery Hinton合作。2011年微軟宣佈基於深度神經網絡的識別系統取得成果並推出產品,徹底改變了語音識別原有的技術框架。採用深度神經網絡後,可以充分描述特徵之間的相關性,可以把連續多幀的語音特徵並在一起,構成一個高維特徵。最終的深度神經網絡可以採用高維特徵訓練來模擬。由於深度神經網絡採用模擬人腦的多層結果,可以逐級地進行信息特徵抽取,最終形成適合模式分類的較理想特徵。這種多層結構和人腦處理語音圖像信息時,是有很大的相似性的。深度神經網絡的建模技術,在實際線上服務時,能夠無縫地和傳統的語音識別技術相結合,在不引起任何系統額外耗費情況下,大幅度提升了語音識別系統的識別率。其在線的使用方法具體如下:在實際解碼過程中,聲學模型仍然是採用傳統的HMM模型,語音模型仍然是採用傳統的統計語言模型,解碼器仍然是採用傳統的動態WFST解碼器。但在聲學模型的輸出分佈計算時,完全用神經網絡的輸出後驗概率乘以一個先驗概率來代替傳統HMM模型中的GMM的輸出似然概率。百度在實踐中發現,採用DNN進行聲音建模的語音識別系統相比於傳統的GMM語音識別系統而言,相對誤識別率能降低25%。最終在2012年11月,百度上線了第一款基於DNN的語音搜索系統,成爲最早採用DNN技術進行商業語音服務的公司之一。

國際上,Google也採用了深層神經網絡進行聲音建模,是最早突破深層神經網絡工業化應用的企業之一。但Google產品中採用的深度神經網絡只有4-5層,而百度採用的深度神經網絡多達9層。這種結構差異的核心其實是百度更好地解決了深度神經網絡在線計算的技術難題,因此百度線上產品可以採用更復雜的網絡模型。這將對於未來拓展海量語料的DNN模型訓練有更大的優勢。

圖像識別

圖像是深度學習最早嘗試的應用領域。早在1989年,Yann LeCun (現紐約大學教授) 和他的同事們就發表了卷積神經網絡(Convolution Neural Networks, 簡稱CNN)的工作。CNN是一種帶有卷積結構的深度神經網絡,通常至少有兩個非線性可訓練的卷積層,兩個非線性的固定卷積層(又叫Pooling Laye)和一個全連接層,一共至少5個隱含層。CNN的結構受到著名的Hubel-Wiesel生物視覺模型的啓發,尤其是模擬視覺皮層V1和V2層中Simple Cell和Complex Cell的行爲。在很長時間裏,CNN雖然在小規模的問題上,如手寫數字,取得過當時世界最好結果,但一直沒有取得巨大成功。這主要原因是,CNN在大規模圖像上效果不好,比如像素很多的自然圖片內容理解,所以沒有得到計算機視覺領域的足夠重視。這個情況一直持續到2012年10月,Geoffrey Hinton和他的兩個學生在著名的ImageNet問題上用更深的CNN取得世界最好結果,使得圖像識別大踏步前進。在Hinton的模型裏,輸入就是圖像的像素,沒有用到任何的人工特徵。

這個驚人的結果爲什麼在之前沒有發生? 原因當然包括算法的提升,比如dropout等防止過擬合技術,但最重要的是,GPU帶來的計算能力提升和更多的訓練數據。百度在2012年底將深度學習技術成功應用於自然圖像OCR識別和人臉識別等問題,並推出相應的桌面和移動搜索產品,2013年,深度學習模型被成功應用於一般圖片的識別和理解。從百度的經驗來看,深度學習應用於圖像識別不但大大提升了準確性,而且避免了人工特徵抽取的時間消耗,從而大大提高了在線計算效率。可以很有把握地說,從現在開始,深度學習將取代“人工特徵+機器學習”的方法而逐漸成爲主流圖像識別方法。

自然語言處理

除了語音和圖像,深度學習的另一個應用領域問題是自然語言處理(NLP)。經過幾十年的發展,基於統計的模型已經成爲NLP的主流,但作爲統計方法之一的人工神經網絡在NLP領域幾乎沒有受到重視。最早應用神經網絡的NLP問題是語言模型。加拿大蒙特利爾大學教授Yoshua Bengio等人於2003年提出用embedding的方法將詞映射到一個矢量表示空間,然後用非線性神經網絡來表示N-Gram模型。世界上最早的最早的深度學習用於NLP的研究工作誕生於NEC美國研究院,其研究員Ronan Collobert和Jason Weston從2008年開始採用embedding和多層一維卷積的結構,用於POS Tagging、Chunking、Named Entity Recognition、Semantic Role Labeling等四個典型NLP問題。值得注意的是,他們將同一個模型用於不同任務,都能取得與業界最前沿相當的準確率。最近以來,斯坦福大學教授Chris Manning等人在將深度學習用於NLP的工作也值得關注。

總的來說,深度學習在NLP上取得的進展沒有在語音圖像上那麼令人影響深刻。一個很有意思的悖論是:相比於聲音和圖像,語言是唯一的非自然信號,是完全由人類大腦產生和處理的符號系統,但模仿人腦結構的人工神經網絡卻似乎在處理自然語言上沒有顯現明顯優勢? 我們相信,深度學習在NLP方面有很大的探索空間。從2006年圖像深度學習成爲學術界熱門課題到2012年10月Geoffery Hinton在ImageNet上的重大突破,經歷了6年時間。我們需要有足夠的耐心。

搜索廣告CTR預估

搜索廣告是搜索引擎的主要變現方式,而按點擊付費(Cost Per Click,CPC)又是其中被最廣泛應用的計費模式。在CPC模式下,預估的CTR(pCTR)越準確,點擊率就會越高,收益就越大。通常,搜索廣告的pCTR是通過機器學習模型預估得到。提高pCTR的準確性,是提升搜索公司、廣告主、搜索用戶三方利益的最佳途徑。

傳統上,Google、百度等搜索引擎公司以Logistic Regression(LR)作爲預估模型。而從2012年開始,百度開始意識到模型的結構對廣告CTR預估的重要性:使用扁平結構的LR嚴重限制了模型學習與抽象特徵的能力。爲了突破這樣的限制,百度嘗試將DNN作用於搜索廣告,而這其中最大的挑戰在於當前的計算能力還無法接受1011級別的原始廣告特徵作爲輸入。作爲解決,在百度的DNN系統裏,特徵數從1011數量級被降到了103,從而能被DNN正常地學習。這套深度學習系統已於2013年5月開始服務於百度搜索廣告系統,每天爲數億網民使用。

DNN在搜索廣告系統中的應用還遠遠沒有成熟,其中DNN與遷移學習的結合將可能是一個令人振奮的方向。使用DNN,未來的搜索廣告將可能借助網頁搜索的結果優化特徵的學習與提取;亦可能通過DNN將不同的產品線聯繫起來,使得不同的變現產品不管數據多少,都能互相優化。我們認爲未來的DNN一定會在搜索廣告中起到更重要的作用。

深度學習研發面臨的重大問題

理論問題 

理論問題主要體現在兩個方面,一個是統計學習方面的,另一個是計算方面的。我們已經知道,深度模型相比較於淺層模型有更好的對非線性函數的表示能力。具體來說,對於任意一個非線性函數,根據神經網絡的Universal Approximation Theory,我們一定能找到一個淺層網絡和一個深度網絡來足夠好地表示。但深度網絡只需要少得多的參數。但可表示性不代表可學習性。我們需要了解深度學習的樣本複雜度,也就是我們需要多少訓練樣本才能學習到足夠好的深度模型。從另一方面來說,我們需要多少計算資源才能通過訓練得到更好的模型?理想的計算優化方法是什麼?由於深度模型都是非凸函數,這方面的理論研究極其困難。

建模問題

在推進深度學習的學習理論和計算理論的同時,我們是否可以提出新的分層模型,使其不但具有傳統深度模型所具有的強大表示能力,還具有其他的好處,比如更容易做理論分析。另外,針對具體應用問題,我們如何設計一個最適合的深度模型來解決問題?我們已經看到,無論在圖像深度模型,還是語言深度模型,似乎都存在深度和卷積等共同的信息處理結構。甚至對於語音聲學模型,研究人員也在探索卷積深度網絡。那麼一個更有意思的問題是,是否存在可能建立一個通用的深度模型或深度模型的建模語言,作爲統一的框架來處理語音、圖像和語言?

工程問題

需要指出的是,對於互聯網公司而言,如何在工程上利用大規模的並行計算平臺來實現海量數據訓練,是各家公司從事深度學習技術研發首先要解決的問題。傳統的大數據平臺如Hadoop,由於數據處理的Latency太高,顯然不適合需要頻繁迭代的深度學習。現有成熟的DNN訓練技術大都是採用隨機梯度法(SGD)方法訓練的。這種方法本身不可能在多個計算機之間並行。即使是採用GPU進行傳統的DNN模型進行訓練,其訓練時間也是非常漫長的,一般訓練幾千小時的聲學模型所需要幾個月的時間。而隨着互聯網服務的深入,海量數據訓練越來越重要,DNN這種緩慢的訓練速度必然不能滿足互聯網服務應用的需要。Google搭建的DistBelief,是一個採用普通服務器的深度學習並行計算平臺,採用異步算法,由很多計算單元獨立地更新同一個參數服務器的模型參數,實現了隨機梯度下降算法的並行化,加快了模型訓練速度。與Google採用普通服務器不同,百度的多GPU並行計算平臺,克服了傳統SGD訓練的不能並行的技術難題,神經網絡的訓練已經可以在海量語料上並行展開。可以預期,未來隨着海量數據訓練的DNN技術的發展,語音圖像系統的識別率還會持續提升。

總結

深度學習帶來了機器學習的一個新浪潮,受到從學術界到工業界的廣泛重視,也導致了“大數據+深度模型”時代的來臨。在應用方面,深度學習使得語音圖像的智能識別和理解取得驚人進展,從而推動人工智能和人機交互大踏步前進。同時,pCTR這樣的複雜機器學習任務也得到顯著提升。如果我們能在理論、建模和工程方面,突破深度學習技術面臨的一系列難題,人工智能的夢想將不再遙遠。

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