深度學習(Deep Learning)算法簡介
深度(Depth)
本文引用地址:http://m.butianyuan.cn/article/201612/342181.htm從一個輸入中產(chǎn)生一個輸出所涉及的計算可以通過一個流向圖(flow graph)來表示:流向圖是一種能夠表示計算的圖,在這種圖中每一個節(jié)點表示一個基本的計算并且一個計算的值(計算的結(jié)果被應用到這個節(jié)點的孩子節(jié)點的值)。考慮這樣一個計算集合,它可以被允許在每一個節(jié)點和可能的圖結(jié)構(gòu)中,并定義了一個函數(shù)族。輸入節(jié)點沒有孩子,輸出節(jié)點沒有父親。
這種流向圖的一個特別屬性是深度(depth):從一個輸入到一個輸出的最長路徑的長度。
傳統(tǒng)的前饋神經(jīng)網(wǎng)絡能夠被看做擁有等于層數(shù)的深度(比如對于輸出層為隱層數(shù)加1)。SVMs有深度2(一個對應于核輸出或者特征空間,另一個對應于所產(chǎn)生輸出的線性混合)。
深度架構(gòu)的動機
學習基于深度架構(gòu)的學習算法的主要動機是:
不充分的深度是有害的;
大腦有一個深度架構(gòu);
認知過程是深度的;
不充分的深度是有害的
在許多情形中深度2就足夠(比如logical gates, formal [threshold] neurons, sigmoid-neurons, Radial Basis Function [RBF] units like in SVMs)表示任何一個帶有給定目標精度的函數(shù)。但是其代價是:圖中所需要的節(jié)點數(shù)(比如計算和參數(shù)數(shù)量)可能變的非常大。理論結(jié)果證實那些事實上所需要的節(jié)點數(shù)隨著輸入的大小指數(shù)增長的函數(shù)族是存在的。這一點已經(jīng)在logical gates, formal [threshold] neurons 和rbf單元中得到證實。在后者中Hastad說明了但深度是d時,函數(shù)族可以被有效地(緊地)使用O(n)個節(jié)點(對于n個輸入)來表示,但是如果深度被限制為d-1,則需要指數(shù)數(shù)量的節(jié)點數(shù)O(2^n)。
我們可以將深度架構(gòu)看做一種因子分解。大部分隨機選擇的函數(shù)不能被有效地表示,無論是用深地或者淺的架構(gòu)。但是許多能夠有效地被深度架構(gòu)表示的卻不能被用淺的架構(gòu)高效表示(see the polynomials example in the Bengio survey paper)。一個緊的和深度的表示的存在意味著在潛在的可被表示的函數(shù)中存在某種結(jié)構(gòu)。如果不存在任何結(jié)構(gòu),那將不可能很好地泛化。
大腦有一個深度架構(gòu)
例如,視覺皮質(zhì)得到了很好的研究,并顯示出一系列的區(qū)域,在每一個這種區(qū)域中包含一個輸入的表示和從一個到另一個的信號流(這里忽略了在一些層次并行路徑上的關(guān)聯(lián),因此更復雜)。這個特征層次的每一層表示在一個不同的抽象層上的輸入,并在層次的更上層有著更多的抽象特征,他們根據(jù)低層特征定義。
需要注意的是大腦中的表示是在中間緊密分布并且純局部:他們是稀疏的:1%的神經(jīng)元是同時活動的。給定大量的神經(jīng)元,任然有一個非常高效地(指數(shù)級高效)表示。
認知過程看起來是深度的
人類層次化地組織思想和概念;
人類首先學習簡單的概念,然后用他們?nèi)ケ硎靖橄蟮?
工程師將任務分解成多個抽象層次去處理;
學習/發(fā)現(xiàn)這些概念(知識工程由于沒有反省而失敗?)是很美好的。對語言可表達的概念的反省也建議我們一個稀疏的表示:僅所有可能單詞/概念中的一個小的部分是可被應用到一個特別的輸入(一個視覺場景)。
學習深度架構(gòu)的突破
2006年前,嘗試訓練深度架構(gòu)都失敗了:訓練一個深度有監(jiān)督前饋神經(jīng)網(wǎng)絡趨向于產(chǎn)生壞的結(jié)果(同時在訓練和測試誤差中),然后將其變淺為1(1或者2個隱層)。
2006年的3篇論文改變了這種狀況,由Hinton的革命性的在深度信念網(wǎng)(Deep Belief Networks, DBNs)上的工作所引領(lǐng):
Hinton, G. E., Osindero, S. and Teh, Y., A fast learning algorithm for deep belief nets .Neural Computation 18:1527-1554, 2006
Yoshua Bengio, Pascal Lamblin, Dan Popovici and Hugo Larochelle, Greedy Layer-Wise Training of Deep Networks, in J. Platt et al. (Eds), Advances in Neural Information Processing Systems 19 (NIPS 2006), pp. 153-160, MIT Press, 2007
Marc’Aurelio Ranzato, Christopher Poultney, Sumit Chopra and Yann LeCun Efficient Learning of Sparse Representations with an Energy-Based Model, in J. Platt et al. (Eds), Advances in Neural Information Processing Systems (NIPS 2006), MIT Press, 2007
在這三篇論文中以下主要原理被發(fā)現(xiàn):
表示的無監(jiān)督學習被用于(預)訓練每一層;
在一個時間里的一個層次的無監(jiān)督訓練,接著之前訓練的層次。在每一層學習到的表示作為下一層的輸入;
用無監(jiān)督訓練來調(diào)整所有層(加上一個或者更多的用于產(chǎn)生預測的附加層);
DBNs在每一層中利用用于表示的無監(jiān)督學習RBMs。Bengio et al paper 探討和對比了RBMs和auto-encoders(通過一個表示的瓶頸內(nèi)在層預測輸入的神經(jīng)網(wǎng)絡)。Ranzato et al paper在一個convolutional架構(gòu)的上下文中使用稀疏auto-encoders(類似于稀疏編碼)。Auto-encoders和convolutional架構(gòu)將在以后的課程中講解。
從2006年以來,大量的關(guān)于深度學習的論文被發(fā)表,一些探討了其他原理來引導中間表示的訓練,查看Learning Deep Architectures for AI
評論