知識貼:深度學習的起源、核心思想、動機和結構

jopen 8年前發布 | 39K 次閱讀 深度學習

知識貼:深度學習的起源、核心思想、動機和結構 | 36大數據

深度學習的起源

深度學習(Deep Learning)是機器學習中一個非常接近AI的領域,其動機在于建立、模擬人腦進行分析學習的神經網絡。深度學習屬于無監督學習。

深度學習的概念源于人工神經網絡的研究。深度學習是相對于簡單學習而言的,目前多數分類、回歸等學習算法都屬于簡單學習,其局限性在于有限樣本和計算單元情況下對復雜函數的表示能力有限,針對復雜分類問題其泛化能力受到一定制約。深度學習可通過學習一種深層非線性網絡結構,實現復雜函數逼近,表征輸入數據分布式表示,并展現了強大的從少數樣本集中學習數據集本質特征的能力。含多隱層的多層感知器就是一種深度學習結構。深度學習模擬更多的神經層神經活動,通過組合低層特征形成更加抽象的高層表示屬性類別或特征,以發現數據的分布式特征表示,深度學習的示意圖如圖1所示。

深度學習的概念由Hinton等人于2006年提出。基于深信度網(DBN)提出非監督貪心逐層訓練算法,為解決深層結構相關的優化難題帶來希望,隨后提出多層自動編碼器深層結構。此外Lecun等人提出的卷積神經網絡是第一個真正多層結構學習算法,它利用空間相對關系減少參數數目以提高訓練性能。

知識貼:深度學習的起源、核心思想、動機和結構 | 36大數據

圖1 深度學習示意圖

什么是深度學習

研究人員通過分析人腦的工作方式發現:通過感官信號從視網膜傳遞到前額大腦皮質再到運動神經的時間,推斷出大腦皮質并未直接地對數據進行特征提取處理,而是使接收到的刺激信號通過一個復雜的層狀網絡模型,進而獲取觀測數據展現的規則。也就是說,人腦并不是直接根據外部世界在視網膜上投影,而是根據經聚集和分解過程處理后的信息來識別物體。因此視皮層的功能是對感知信號進行特征提取和計算,而不僅僅是簡單地重現視網膜的圖像。人類感知系統這種明確的層次結構極大地降低了視覺系統處理的數據量,并保留了物體有用的結構信息。深度學習正是希望通過模擬人腦多層次的分析方式來提高學習的準確性。

實際生活中,人們為了解決一個問題,如對象的分類(對象可是文檔、圖像等),首先必須 做的事情是如何來表達一個對象,即必須抽取一些特征來表示一個對象,因此特征對結果的影響非常大。在傳統的數據挖掘方法中,特征的選擇一般都是通過手工完成的,通過手工選取的好處是可以借助人的經驗或者專業知識選擇出正確的特征;但缺點是效率低,而且在復雜的問題中,人工選擇可能也會陷入困惑。于是,人們就在尋找一種能夠自動的選擇特征,而且還能保證特征準確的方法。DeepLearning就是能實現這一點,它能夠通過多層次通過組合低層特征形成更抽象的高層特征,從而實現自動的學習特征,而不需要人參與特征的選取。

深度學習的核心思想

假設我們有一個系統S,它有n層(S1,…Sn),它的輸入是I,輸出是O,形象地表示為: I=>S1=>S2=>…..=>Sn =>O,如果輸出O等于輸入I,即輸入I經過這個系統變化之后沒有任何的信息損失,保持了不變,這意味著輸入I經過每一層Si都沒有任何的信息損失,即在任何一層Si,它都是原有信息(即輸入I)的另外一種表示。現在回到我們的主題DeepLearning,我們需要自動地學習特征,假設我們有一堆輸入I(如一堆圖像或者文本),假設我們設計了一個系統S(有n層),我們通過調整系統中參數,使得它的輸出仍然是輸入I,那么我們就可以自動地獲取得到輸入I的一系列層次特征,即S1,…,Sn。

另外,前面是假設輸出嚴格地等于輸入,這個限制太嚴格,我們可以略微地放松這個限制,例如我們只要使得輸入與輸出的差別盡可能地小即可。

深度學習的動機

學習基于深度架構的學習算法的主要動機是:

①不充分的深度是有害的;

在許多情形中深度2就足夠(比如logicalgates, formal[threshold] neurons, sigmoid-neurons, Radial Basis Function [RBF]units like in SVMs)表示任何一個帶有給定目標精度的函數。但是其代價是:圖中所需要的節點數(比如計算和參數數量)可能變的非常大。理論結果證實那些事實上所需要的節點數隨著輸入的大小指數增長的函數族是存在的。這一點已經在logicalgates,formal [threshold] neurons和rbf單元中得到證實。在后者中Hastad說明了但深度是d時,函數族可以被有效地(緊地)使用O(n)個節點(對于n個輸入)來表示,但是如果深度被限制為d-1,則需要指數數量的節點數O(2^n)。

我們可以將深度架構看做一種因子分解。大部分隨機選擇的函數不能被有效地表示,無論是用深地或者淺的架構。但是許多能夠有效地被深度架構表示的卻不能被用淺的架構高效表示(seethe polynomials example in the Bengio survey paper)。一個緊的和深度的表示的存在意味著在潛在的可被表示的函數中存在某種結構。如果不存在任何結構,那將不可能很好地泛化。

②大腦有一個深度架構;

例如,視覺皮質得到了很好的研究,并顯示出一系列的區域,在每一個這種區域中包含一個 輸入的表示和從一個到另一個的信號流(這里忽略了在一些層次并行路徑上的關聯,因此更復雜)。這個特征層次的每一層表示在一個不同的抽象層上的輸入,并在層次的更上層有著更多的抽象特征,他們根據低層特征定義。

需要注意的是大腦中的表示是在中間緊密分布并且純局部:他們是稀疏的:1%的神經元是同時活動的。給定大量的神經元,仍然有一個非常高效地(指數級高效)表示。

③認知過程是深度的;

人類層次化地組織思想和概念;

人類首先學習簡單的概念,然后用他們去表示更抽象的;

工程師將任務分解成多個抽象層次去處理;

深度學習結構

目前深度學習按照結構和技術應用的方式,可以把結構分為三類:

生成性深度結構

該結構描述數據的高階相關特性,或觀測數據和相應類別的聯合概率分布。與傳統區分型神經網絡不同,可獲取觀測數據和標簽的聯合概率分布,這方便了先驗概率和后驗概率的估計,而區分型模型僅能對后驗概率進行估計。論文Afast learning algorithm for deep learning中采用的深度信念網(DBN)就屬于生成性深度結構。DBN解決傳統BP算法訓練多層神經網絡的難題:1)需要大量含標簽訓練樣本集;2)較慢的收斂速度;3)因不合適的參數選擇陷入局部最優。

DBN由一系列受限波爾茲曼機(RBM)單元組成。RBM是一種典型神經網絡,該網絡可視層 和隱層單元彼此互連(層內無連接),隱單元可獲取輸入可視單元的高階相關性。相比傳統sigmoid信度網絡,RBM權值的學習相對容易。為了獲取生成性權值,預訓練采用無監督貪心逐層方式來實現。在訓練過程中,首先將可視向量值映射給隱單元;然后可視單元由隱層單元重建;這些新可視單元再次映射給隱單元,這樣就獲取了新的隱單元。通過自底向上組合多個RBM可以構建一個DBN。應用高斯—伯努利RBM或伯努利—伯努利RBM,可用隱單元的輸出作為訓練上層伯努利—伯努利RBM的輸入,第二層伯努利和伯努利的輸出作為第三層的輸入等,如圖2所示。

知識貼:深度學習的起源、核心思想、動機和結構 | 36大數據

區分性深度結構

目的是提供對模式分類的區分性能力,通常描述數據的后驗分布。卷積神經網絡(Convolutional neural network,CNNs)是第一個真正成功訓練多層網絡結構的學習算法,與DBNs不同,它屬于區分性訓練算法。受視覺系統結構的啟示,當具有相同參數的神經元應用于前一層的不同位置時,一種變換不變性特征就可獲取了。后來LeCun等人沿著這種思路,利用BP算法設計并訓練了CNNs。CNNs作為深度學習框架是基于最小化預處理數據要求而產生的。受早期的時間延遲神經網絡影響。CNNs靠共享時域權值降低復雜度。CNNs是利用空間關系減少參數數目以提高一般前向BP訓練的一種拓撲結構,并在多個實驗中獲取了較好性能。在CNNs中被稱作局部感受區域的圖像的一小部分作為分層結構的最底層輸入。信息通過不同的網絡層次進行傳遞,因此在每一層能夠獲取對平移、縮放和旋轉不變的觀測數據的顯著特征。

混合型結構

它的目標是區分性的,但通常利用了生成型結構的輸出會更易優化。混合型結構的學習過程包含兩個部分,即生成性部分和區分性部分。現有典型的生成性單元通常最終用于區分性任務,生成性模型應用于分類任務時,預訓練可結合其他典型區分性學習算法對所有權值進行優化。這個區分性尋優過程通常是附加一個頂層變量來表示訓練集提供的期望輸出或標簽。BP算法可用于優化DBN權值,它的初始權值通過在RBM和DBN預訓練中得到而非隨機產生,這樣的網絡通常會比僅通過BP算法單獨訓練的網絡性能優越。可以認為BP對DBNs訓練僅完成局部參數空間搜索,與前饋型神經網絡相比加速了訓練和收斂時間。

里程碑式的論文

目前,深度學習的成果主要集中在計算機視覺和語音識別方面,并且相關成果已經被Google,Microsoft等公司采用。除此之外,自然語言處理、信息檢索等領域也對深度學習產生了濃厚的興趣,但是目前還沒有突出的成果。

計算機視覺

ImageNetClassification with Deep Convolutional Neural Networks, Alex Krizhevsky, IlyaSutskever, Geoffrey E Hinton, NIPS 2012.

LearningHierarchical Features for Scene Labeling, Clement Farabet, Camille Couprie,Laurent Najman and Yann LeCun, IEEE Transactions on Pattern Analysis andMachine Intelligence, 2013.

LearningConvolutional Feature Hierachies for Visual Recognition, Koray Kavukcuoglu,Pierre Sermanet, Y-Lan Boureau, Karol Gregor, Michaël Mathieu and YannLeCun, Advances in Neural Information Processing Systems (NIPS 2010), 23, 2010.

語音識別

Dahl,George E., et al. Large vocabulary continuous speech recognition withcontext-dependent DBN-HMMs. Acoustics, Speech and Signal Processing (ICASSP),2011 IEEE International Conference on. IEEE, 2011.

Mohamed,A-R., et al. Deep belief networks using discriminative features for phonerecognition. Acoustics, Speech and Signal Processing (ICASSP), 2011 IEEEInternational Conference on. IEEE, 2011.

Fasel,Ian, Jeff Berry. Deep belief networks for real-time extraction of tonguecontours from ultrasound during speech. Pattern Recognition (ICPR), 2010 20thInternational Conference on. IEEE, 2010.

Deng,Li, et al. Binary coding of speech spectrograms using a deep auto-encoder.Proc. Interspeech. 2010.

自然語言處理

DESELAERST,HASANS, BENDERO, et al. A deep learning approach to machine transliteration[C].Proc of the 4th Workshop on Statistical Machine Translation. 2009:233-241.

開發工具

Theano 是一個 Python 的擴展庫,用來定義、優化和模擬數學表達式計算,可以高效的解決多維數組的計算問題。利用Theano更容易的實現深度學習模型。

使用Theano要求首先熟悉Python和numpy(如果你不了解,可以先看看這里:python、numpy)。接下來學習Theano建議先看Theano basic tutorial,然后按照Getting Started 下載相關數據并用gradient descent的方法進行學習。

學習了Theano的基本方法后,可以練習寫以下幾個算法:

有監督學習:

  1. Logistic Regression – using Theano for something simple
  2. Multilayer perceptron – introduction to layers
  3. Deep Convolutional Network – a simplified version of LeNet5

無監督學習:

  • Auto Encoders, Denoising Autoencoders – description of autoencoders
  • Stacked Denoising Auto-Encoders – easy steps into unsupervised pre-training for deep nets
  • Restricted Boltzmann Machines – single layer generative RBM model
  • Deep Belief Networks – unsupervised generative pre-training of stacked RBMs followed by supervised fine-tuning

參考文獻

[1] http://deeplearning.net

[2] 機器學習前沿熱點–Deep Learning

[3] 深度學習(Deep Learning, DL)的相關資料總結

[4] UFLDL教程

[5] Hinton, Geoffrey E., Simon Osindero, Yee-Whye Teh. A fast learning algorithm for deep belief nets. Neural computation 18.7 (2006): 1527-1554.

[6] 孫志軍, 薛磊, 許陽明, 王正. (2012). 深度學習研究綜述. 計算機應用研究,29(8), 2806-2810.

End.

知識貼:深度學習的起源、核心思想、動機和結構 | 36大數據來自: http://www.36dsj.com/archives/38995

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!