一頁紙說清楚“什麼是深度學習?”

http://blog.sciencenet.cn/blog-4099-785174.html 

深度學習:像人腦一樣深層次地思考

從上一篇我們可以看出,個性化推薦系統確實很會“察言觀色”,針對不同的用戶,主動推送不同的3D打印內容。但如果你認爲它真正有了“人工智能”,那你就錯了。其實,這些推薦系統背後的運行原理主要基於概率統計、矩陣或圖模型,計算機對這些數值運算確實很擅長,但由於採用的只是“經驗主義”的實用方法(也即管用就行),而非以“理性主義”的原則真正探求智能產生的原理,所以距離真正的人工智能還很遠。AI(Artificial Intelligence),也就是人工智能,就像長生不老和星際漫遊一樣,是人類最美好的夢想之一。雖然計算機技術已經取得了長足的進步,但是到目前爲止,還沒有一臺計算機能產生“自我”的意識。

提示:

圖靈測試(Turing Testing),是計算機是否真正具有人工智能的試金石。“計算機科學之父”及“人工智能之父”英國數學家阿蘭·圖靈(1912—1954)在1950年的一篇著名論文《機器會思考嗎?》裏,提出圖靈測試的設想。即把一個人和一臺計算機分別隔離在兩間屋子,然後讓屋外的一個提問者對兩者進行問答測試。如果提問者無法判斷哪邊是人,哪邊是機器,那就證明計算機已具備人的智能。

直到深度學習(Deep Learning)的出現,讓人們看到了一絲曙光,至少,(表象意義下的)圖靈測試已不再是那麼遙不可及了。2013年4月,《麻省理工學院技術評論》雜誌將深度學習列爲2013年十大突破性技術(Breakthrough Technology)之首。有了深度學習,推薦系統可以更加深度地挖掘你內心的需求,並從海量的3D模型庫中挑選出最合適的供你打印。

讓我們先來看看人類的大腦是如何工作的。1981年的諾貝爾醫學獎,頒發給了David Hubel和Torsten Wiesel,以及Roger Sperry。前兩位的主要貢獻是,發現了人的視覺系統的信息處理是分級的。如圖4-45所示,從視網膜(Retina)出發,經過低級的V1區提取邊緣特徵,到V2區的基本形狀或目標的局部,再到高層的整個目標(如判定爲一張人臉),以及到更高層的PFC(前額葉皮層)進行分類判斷等。也就是說高層的特徵是低層特徵的組合,從低層到高層的特徵表達越來越抽象和概念化,也即越來越能表現語義或者意圖。

圖4-45  人腦的視覺處理系統 (圖片來源:blogspot)

這個發現激發了人們對於神經系統的進一步思考。大腦的工作過程,或許是一個不斷迭代、不斷抽象概念化的過程,如圖4-46所示。例如,從原始信號攝入開始(瞳孔攝入像素),接着做初步處理(大腦皮層某些細胞發現邊緣和方向),然後抽象(大腦判定眼前物體的形狀,比如是橢圓形的),然後進一步抽象(大腦進一步判定該物體是張人臉),最後識別眼前的這個人──正是大明星劉德華。這個過程其實和我們的常識是相吻合的,因爲複雜的圖形,往往就是由一些基本結構組合而成的。同時我們還可以看出:大腦是一個深度架構,認知過程也是深度的。

圖4-46  視覺的分層處理結構 (圖片來源:Stanford)

而深度學習(Deep Learning),恰恰就是通過組合低層特徵形成更加抽象的高層特徵(或屬性類別)。例如,在計算機視覺領域,深度學習算法從原始圖像去學習得到一個低層次表達,例如邊緣檢測器、小波濾波器等,然後在這些低層次表達的基礎上,通過線性或者非線性組合,來獲得一個高層次的表達。此外,不僅圖像存在這個規律,聲音也是類似的。比如,研究人員從某個聲音庫中通過算法自動發現了20種基本的聲音結構,其餘的聲音都可以由這20種基本結構來合成!

在進一步闡述深度學習之前,我們需要了解什麼是機器學習(Machine Learning)。機器學習是人工智能的一個分支,而在很多時候,幾乎成爲人工智能的代名詞。簡單來說,機器學習就是通過算法,使得機器能從大量歷史數據中學習規律,從而對新的樣本做智能識別或對未來做預測。

而深度學習又是機器學習研究中的一個新的領域,其動機在於建立可以模擬人腦進行分析學習的神經網絡,它模仿人腦的機制來解釋數據,例如,圖像、聲音和文本。深度學習是無監督學習的一種(解釋見下文)。

深度學習之所以被稱爲“深度”,是因爲之前的機器學習方法都是淺層學習。深度學習可以簡單理解爲傳統神經網絡(Neural Network)的發展。大約二三十年前,神經網絡曾經是機器學習領域特別熱門的一個方向,這種基於統計的機器學習方法比起過去基於人工規則的專家系統,在很多方面顯示出優越性。如圖4-47所示,深度學習與傳統的神經網絡之間有相同的地方。二者的相同之處在於,深度學習採用了與神經網絡相似的分層結構:系統是一個包括輸入層、隱層(可單層、可多層)、輸出層的多層網絡,只有相鄰層節點之間有連接,而同一層以及跨層節點之間相互無連接。這種分層結構,比較接近人類大腦的結構(但不得不說,實際上相差還是很遠的,考慮到人腦是個異常複雜的結構,很多機理我們目前都是未知的)。

圖4-47  傳統的神經網絡與深度神經網絡

提示:

神經網絡包含輸入層、輸出層以及中間的若干隱層(Hidden Layer),每層都有若干結點及連接這些點的邊,在訓練數據集上會學習出邊的權值,從而建立模型。隨着邊所表徵的函數的不同,可以有各種不同的神經網絡。這種源於人工智能中聯結主義學派(Connectionism)的方法在上世紀七八十年代盛極一時。

但是後來,因爲理論分析的難度,加上訓練方法需要很多經驗和技巧,以及巨大的計算量和優化求解難度,神經網絡慢慢淡出了科研領域的主流方向。值得指出的是,神經網絡(如採用誤差反向傳播算法:Back Propagation,簡稱BP算法)在層次深的情況下性能變得很不理想(傳播時容易出現所謂的梯度彌散Gradient Diffusion,根源在於非凸目標代價函數導致求解陷入局部最優,且這種情況隨着網絡層數的增加而更加嚴重),所以只能轉而處理淺層結構(小於等於3),從而限制了性能。於是,20世紀90年代,有更多各式各樣的淺層模型相繼被提出,比如只有一層隱層節點的支撐向量機(SVM,Support Vector Machine)和Boosting,以及沒有隱層節點的最大熵方法(例如LR,Logistic Regression)等,在很多應用領域取代了傳統的神經網絡。

顯然,這些淺層結構算法有很多侷限性:在有限樣本和計算單元情況下對複雜函數的表示能力有限,針對複雜分類問題其泛化能力受到一定的制約。更重要的是,淺層模型有一個特點,就是需要依靠人工來抽取樣本的特徵。然而,手工地選取特徵是一件非常費力的事情,能不能選取好很大程度上靠經驗和運氣。既然手工選取特徵不太好,那麼能不能自動地學習一些特徵呢?

提示:

實際生活中,人們爲了實現對象的分類,首先必須做的事情是如何來表達一個對象,即必須抽取一些特徵來表示一個對象。例如,區分人和猴子的一個重要特徵是是否有尾巴。特徵選取的好壞對最終結果的影響非常大。

答案是能!深度學習框架將特徵和分類器結合到一個框架中,用數據去學習特徵,在使用中減少了手工設計特徵的巨大工作量。看它的一個別名:無監督特徵學習(Unsupervised Feature Learning),就可以顧名思義了。無監督(Unsupervised)學習的意思就是不需要通過人工方式進行樣本類別的標註來完成學習。因此,深度學習是一種可以自動地學習特徵的方法。

提示:

準確地說,深度學習首先利用無監督學習對每一層網絡進行逐層預訓練(Layerwise Pre-Training);每次用無監督學習只訓練一層,並將訓練結果作爲更高一層的輸入;最後用監督學習去調整所有層。

深度學習通過學習一種深層非線性網絡結構,只需簡單的網絡結構即可實現複雜函數的逼近,並展現了強大的從大量無標註樣本集中學習數據集本質特徵的能力。深度學習能夠獲得可更好地表示數據的特徵,同時由於模型的層次深(通常有5層、6層,甚至10多層的隱層節點)、表達能力強,因此有能力表示大規模數據。對於圖像、語音這種特徵不明顯(需要手工設計且很多沒有直觀的物理含義)的問題,深度模型能夠在大規模訓練數據上取得更好的效果。尤其是在語音識別方面,深度學習使得錯誤率下降了大約30%,取得了顯著的進步。相比於傳統的神經網絡,深度神經網絡作出了重大的改進,在訓練上的難度(如梯度彌散問題)可以通過“逐層預訓練”來有效降低。注意,深度學習不是萬金油,像很多其他方法一樣,它需要結合特定領域的先驗知識,需要和其他模型結合才能得到最好的結果。當然,還少不了需要針對自己的項目去仔細地調參數,這也往往令人詬病。此外,類似於神經網絡,深度學習的另一侷限性是可解釋性不強,像個“黑箱子”一樣不知爲什麼能取得好的效果,以及不知如何有針對性地去具體改進,而這有可能成爲產品升級過程中的阻礙。

深度學習通過很多數學和工程技巧增加隱層的層數,如果隱層足夠多(也就是深),選擇適當的連接函數和架構,就能獲得很強的表達能力。但是,常用的模型訓練算法反向傳播(Back Propagation)仍然對計算量有很高的要求。而近年來,得益於大數據、計算機速度的提升、基於MapReduce的大規模集羣技術的興起、GPU的應用以及衆多優化算法的出現,耗時數月的訓練過程可縮短爲數天甚至數小時,深度學習纔在實踐中有了用武之地。

值得一提的是,深度學習的誕生並非一帆風順。雖然Yahn Lecun在1993年提出的卷積神經網絡(Convolutional Neural Network:CNN)是第一個真正成功訓練多層網絡結構的學習算法,但應用效果一直欠佳。直到2006年,Geoffrey Hinton基於深度置信網(Deep Belief Net:DBN)——其由一系列受限波爾茲曼機(Restricted Boltzmann Machine:RBM)組成,提出非監督貪心逐層訓練(Layerwise Pre-Training)算法,應用效果才取得突破性進展,其與之後Ruslan Salakhutdinov提出的深度波爾茲曼機(Deep Boltzmann Machine:DBM)重新點燃了人工智能領域對於神經網絡(Neural Network)和波爾茲曼機(Boltzmann Machine)的熱情,才由此掀起了深度學習的浪潮。

2012年6月,《紐約時報》披露了Google Brain項目,吸引了公衆的廣泛關注。這個項目是由著名的斯坦福大學的機器學習教授Andrew Ng和在大規模計算機系統方面的世界頂尖專家Jeff Dean共同主導,用16,000個CPU Core的並行計算平臺去訓練含有10億個節點的深度神經網絡(DNN,Deep Neural Networks),使其能夠自我訓練,對2萬個不同物體的1,400萬張圖片進行辨識。在開始分析數據前,並不需要向系統手工輸入任何諸如“臉、肢體、貓的長相是什麼樣子”這類特徵。Jeff Dean說:“我們在訓練的時候從來不會告訴機器:‘這是一隻貓’(即無標註樣本)。系統其實是自己發明或領悟了‘貓’的概念。”

2014年3月,同樣也是基於深度學習方法,Facebook的 DeepFace 項目使得人臉識別技術的識別率已經達到了 97.25%,只比人類識別 97.5% 的正確率略低那麼一點點,準確率幾乎可媲美人類。該項目利用了 9 層的神經網絡來獲得臉部表徵,神經網絡處理的參數高達1.2億。

最後我們再回到大數據這個時代背景上來。當坐擁海量的大數據,我們無論是做推薦系統還是3D模型檢索(見第6章的6.4節“衆裏尋她千百度──海量3D模型的檢索”),以前用簡單的線性數學模型,一般也能獲得還不錯的結果。因此我們沾沾自喜起來,認爲還是大數據更重要,而智能算法用簡單直接的就OK了,不需要也沒必要弄得很複雜。而當深度學習出現後,它的一系列輝煌戰績讓我們意識到:也許是時候該“鳥槍換炮”了。簡而言之,在大數據情況下,也許只有比較複雜的模型,或者說表達能力強的模型,才能充分發掘海量數據中蘊藏的有價值信息。更重要的是,深度學習可以自動學習特徵,而不必像以前那樣還要請專家手工構造特徵,極大地推進了智能自動化。

深度學習應大數據而生,給大數據提供了一個深度思考的大腦,而3D打印給了智能數字化一個強健的軀體,三者共同引發了“大數據+深度模型+3D打印”浪潮的來臨。

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