深度學習究竟是個啥?
“當我每次解雇一名語言學家的時候,那么語音識別的性能就在上升”。
——IBM的Frederick Jelinek
如果說語言學家代指機器學習和固定的模型結構,那么深度學習意味著專家整體性能的提高。
深度學習是一個本質上引人入勝的主題,非常令人憧憬。Michel Herszak在LinkedIn寫了一篇 博客 ,談到了其對于深度學習的理解。
深度學習簡述
深度學習已經在計算機視覺、語言識別和自然語言理解等多個領域取得了巨大的成就。深度學習的概念源于人工神經網絡的研究。深度學習結構包含一個多隱層的多層感知器。深度學習通過組合低層特征形成更加抽象的高層表示屬性類別或特征,以發現數據的分布式特征表示。
深度學習的概念由Hinton等人于2006年提出。基于深度信念網絡(DBN)提出非監督貪婪逐層訓練算法,為解決深層結構相關的優化難題帶來希望,隨后提出多層自動編碼器深層結構。此外Lecun等人提出的卷積神經網絡是第一個真正多層結構學習算法,它利用空間相對關系減少參數數目以提高訓練性能。
深度學習是機器學習研究中的一個新的領域,其動機在于建立、模擬人腦進行分析學習的神經網絡,它模仿人腦的機制來解釋數據,例如圖像,聲音和文本。深度學習就是一種特征學習方法,把原始數據通過一些簡單的但是非線性的模型轉變成為更高層次的,更加抽象的表達。
深入介紹深入學習
深入研究深度學習,發現其包含三個核心概念:多層組合、端到端的學習和分布式表示。
多層組合
多層表示更符合人類的學習方式,神經網絡作為其中的一種,可以從一個單一的感知輸入中產生多種理解,例如一個單詞的發言(與其類比,深度學習具有驚人的相似)。從一個單詞的發音到大腦的理解之間存在多個隱層,這與深度學習的過程很一致。多層表示中最令人興奮的一件事情就是,原來在處理數據分類任務的時候,是通過數據科學家建模神經網絡,而現在他們可以自動生成數據模型。
當前多數分類、回歸等學習方法為淺層結構算法,很多情況下只有一層表示,其局限性在于有限樣本和計算單元情況下對復雜函數的表示能力有限,針對復雜分類問題其泛化能力受到一定制約。深度學習可通過學習一種深層非線性網絡結構,實現復雜函數逼近,表征輸入數據分布式表示,并展現了強大的從少數樣本集中學習數據集本質特征的能力。(多層的好處是可以用較少的參數表示復雜的函數)
端到端的學習
在早期的深度學習中,關于語音識別的很多早期工作都存在一個問題,即各層表示之間的連接太密集。這個問題,Google的語音API也遇到過,它會導致系統的過擬合問題。
今天,深度學習是一種端到端的學習方式,整個學習過程中不需要中間的和顯著的人類參與。直接把海量數據投放到算法中,讓數據自己說話,系統會自動從數據中學習。從輸入到輸出是一個完全自動的過程。
同樣,可以再次將其再次與人類大腦隨著時間的發展進行類比,這些變化影響了人們對于信息的提取方式。
分布式表示
深度學習算法本質上是分布式概念的應用。分布式表示背后的想法是,觀察到的信息是眾多因素協同工作所產生的結果。它將堆積如山的數據轉化為數據流的組合。
這里舉一個簡單的例子:假如你想用一臺電腦存儲有關車輛的數據。
- 首先,你有一輛大的藍色福特汽車。
- 其次,你有一個巨大的白色大眾汽車。
- 第三,你有一輛閃亮的McQueen汽車。
- 第四,你有一個大的紅色的Vauxhal汽車。
通過這種方式,你需要將所有數據存儲到一個單一的存儲單元中。當有一臺新的車輛數據要加入的時候,需要加載數據單元的整個負載。這似乎不是很高效。
那么想象一下存儲這些車輛的一種新方式。事實上,可以使用三個存儲單元:一個用來描述尺寸(小型、中型、大型燈),一個用來存儲顏色,最后一個存儲品牌。這樣就可以存儲想要的所有車輛,都有非常相同的三個存儲內存單元。這種工作方法是分布式表示的一個例子。從最基本的意義上講,這代表了神經元一起工作的方式。而且它是深度機器學習的一個高效的例子。
總之,深度學習是關于自動學習要建模的數據的潛在(隱含)分布的多層(復雜)表達的算法。換句話來說,深度學習算法自動的提取分類需要的低層次或者高層次特征。Deep learning能夠得到更好地表示數據的特征,同時由于模型的層次、參數很多,能夠具備足夠強的表示能力。當然,deep learning本身也不是完美的,也不是解決世間任何機器學習問題的利器。
感謝杜小芳對本文的審校。
給InfoQ中文站投稿或者參與內容翻譯工作,請郵件至editors@cn.infoq.com。也歡迎大家通過新浪微博(@InfoQ,@丁曉昀),微信(微信號: InfoQChina )關注我們,并與我們的編輯和其他讀者朋友交流(歡迎加入InfoQ讀者交流群 (已滿),InfoQ讀者交流群(#2)
)。
來自: http://www.infoq.com/cn/news/2016/01/Deep-Learning