1. 程式人生 > >深度學習,神經網路為人工智慧展示了新希望

深度學習,神經網路為人工智慧展示了新希望

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

                深度學習,神經網路為人工智慧展示了新希望 2013年09月05日  ⁄ 計算機視覺 ⁄ 共 7655字  ⁄ 暫無評論
 ⁄ 被圍觀 114 views+

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

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這樣的複雜機器學習任務也得到顯著提升。如果我們能在理論、建模和工程方面,突破深度學習技術面臨的一系列難題,人工智慧的夢想將不再遙遠。

返回

作者: willard

           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述