?
深度學習的概念源于人工
神經(jīng)網(wǎng)絡的研究。含多隱層的多層感知器就是一種深度學習結(jié)構(gòu)。深度學習通過組合低層特征形成更加抽象的高層表示屬性類別或特征,以發(fā)現(xiàn)數(shù)據(jù)的分布式特征表示。
?
深度學習的概念由Hinton等人于2006年提出?;谏疃戎眯?a href="http://m.brongaenegriffin.com/v/tag/1722/" target="_blank">
網(wǎng)絡(DBN)提出非監(jiān)督貪心逐層訓練
算法,為解決深層結(jié)構(gòu)相關(guān)的優(yōu)化難題帶來希望,隨后提出多層自動編碼器深層結(jié)構(gòu)。此外Lecun等人提出的卷積神經(jīng)網(wǎng)絡是第一個真正多層結(jié)構(gòu)學習算法,它利用空間相對關(guān)系減少
參數(shù)數(shù)目以提高訓練性能。 [1]
?
深度學習是
機器學習中一種基于對數(shù)據(jù)進行表征學習的方法。觀測值(例如一幅圖像)可以使用多種方式來表示,如每個像素強度值的向量,或者更抽象地表示成一系列邊、特定形狀的區(qū)域等。而使用某些特定的表示方法更容易從實例中學習任務(例如,人臉識別或面部表情識別)。深度學習的好處是用非監(jiān)督式或半監(jiān)督式的特征學習和分層特征提取高效算法來替代手工獲取特征。
?
深度學習是機器學習研究中的一個新的領(lǐng)域,其動機在于建立、
模擬人腦進行分析學習的神經(jīng)網(wǎng)絡,它模仿人腦的機制來解釋數(shù)據(jù),例如圖像,聲音和文本。 [2]
?
同機器學習方法一樣,深度機器學習方法也有監(jiān)督學習與無監(jiān)督學習之分.不同的學習框架下建立的學習模型很是不同.例如,卷積神經(jīng)網(wǎng)絡(Convolu
tional neural netw
orks,簡稱CNNs)就是一種深度的監(jiān)督學習下的機器學習模型,而深度置信網(wǎng)(Deep Belief Nets,簡稱DBNs)就是一種無監(jiān)督學習下的機器學習模型。
?
假設我們有一個系統(tǒng)S,它有n層(S1,…Sn),它的輸入是I,輸出是O,形象地表示為: I =》S1=》S2=》…。.=》Sn =》 O,如果輸出O等于輸入I,即輸入I經(jīng)過這個系統(tǒng)變化之后沒有任何的
信息損失,設處理a信息得到b,再對b處理得到c,那么可以證明:a和c的互信息不會超過a和b的互信息。這表明信息處理不會增加信息,大部分處理會丟失信息。保持了不變,這意味著輸入I經(jīng)過每一層Si都沒有任何的信息損失,即在任何一層Si,它都是原有信息(即輸入I)的另外一種表示?,F(xiàn)在回到主題Deep Learning,需要自動地學習特征,假設我們有一堆輸入I(如一堆圖像或者文本),假設設計了一個系統(tǒng)S(有n層),通過調(diào)整系統(tǒng)中參數(shù),使得它的輸出仍然是輸入I,那么就可以自動地獲取得到輸入I的一系列層次特征,即S1,…, Sn。 [3]
?
對于深度學習來說,其思想就是對堆疊多個層,也就是說這一層的輸出作為下一層的輸入。通過這種方式,就可以實現(xiàn)對輸入信息進行分級表達了。 [3]
?
另外,前面是假設輸出嚴格地等于輸入,這個限制太嚴格,可以略微地放松這個限制,例如只要使得輸入與輸出的差別盡可能地小即可,這個放松會導致另外一類不同的Deep Learning方法。上述就是Deep Learning的基本思想。 [3]
?
把學習結(jié)構(gòu)看作一個網(wǎng)絡,則深度學習的核心思路如下:
?
?、贌o監(jiān)督學習用于每一層網(wǎng)絡的pre-tr
ain;
?
?、诿看斡脽o監(jiān)督學習只訓練一層,將其訓練結(jié)果作為其高一層的輸入;
?
?、塾米皂敹碌谋O(jiān)督算法去調(diào)整所有層
?
主要技術(shù)
?
?
欠擬合、過擬合、正則化
?
最大似然估計和貝葉斯統(tǒng)計
?
隨機梯度下降
?
監(jiān)督學習和無監(jiān)督學習
?
深度前饋網(wǎng)絡、代價函數(shù)和反向傳播
?
正則化、稀疏編碼和dropout
?
自適應學習算法
?
卷積神經(jīng)網(wǎng)絡
?
循環(huán)神經(jīng)網(wǎng)絡
?
遞歸神經(jīng)網(wǎng)絡
?
深度神經(jīng)網(wǎng)絡和深度堆疊網(wǎng)絡
?
LSTM長短時記憶
?
主成分分析
?
正則自動編碼器
?
表征學習
?
蒙特卡洛
?
受限波茲曼機
?
深度置信網(wǎng)絡
?
softmax回歸、決策樹和聚類算法
?
KNN和SVM
?
生成對抗網(wǎng)絡和有向生成網(wǎng)絡
?
?
自然語言處理
?
?
有限馬爾科夫
?
動態(tài)規(guī)劃
?
梯度策略算法
?
增強學習(Q-learning)
?
轉(zhuǎn)折點
?
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 LayerWise 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 Eff
icient 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-encode
rs(通過一個表示的瓶頸內(nèi)在層預測輸入的神經(jīng)網(wǎng)絡)。Ranzato et al paper在一個convolutional架構(gòu)的上下文中使用稀疏auto-encoders(類似于稀疏編碼)。Auto-encoders和convolutional架構(gòu)將在以后的課程中講解。
?
從2006年以來,大量的關(guān)于深度學習的論文被發(fā)表。
為什么要有深度學習?
深度學習可以用更多的數(shù)據(jù)或是更好的算法來提高學習算法的結(jié)果。對于某些應用而言,深度學習在大數(shù)據(jù)集上的表現(xiàn)比其他機器學習(ML)方法都要好。
性能表現(xiàn)方面,深度學習探索了神經(jīng)網(wǎng)絡的概率空間,與其他工具相比,深度學習算法更適合無監(jiān)督和半監(jiān)督學習,更適合強特征提取,也更適合于圖像識別領(lǐng)域、文本識別領(lǐng)域、語音識別領(lǐng)域等。
為什么深度學習會如此被熱衷,因為它不以任何損失函數(shù)為特征,也不會被特定公式所限制,這使得該算法對科學家們更為開放,它能以比其他傳統(tǒng)機器學習工具更好的方式進行使用和擴展。
進一步地說,引用 《Deep Learning Book MIT》(免費電子書:http://www.deeplearningbook.org/)這本書上的某個觀點,或許能進一步給出為什么要從機器學習到深度學習,
1960年后,線性分類器的局限性開始被認識到,它只能將輸入空間切分為非常簡單的區(qū)域,即由一個超平面分離的兩個半?yún)^(qū)間。對于像圖像和語音識別這類問題,需要輸入-輸出函數(shù)對輸入的非相關(guān)變化(位置的變化,方向變化,光照變化,語音的高音和低音變化)不敏感,而對類別敏感(如白狼和薩摩耶犬)。
在像素級別,兩張不同的姿態(tài),不同環(huán)境下薩摩耶犬的照片會有極大的不同,而同樣的背景,同樣位置的薩摩耶犬和白狼的照片可能非常相似。對直接操作圖像像素的線性分類器或者其他“淺層”分類器可能不容易區(qū)分后兩張照片,同時將前兩張放在同一類。這就是為什么淺層分類器需要好的特征提取器—有選擇地產(chǎn)生圖片中重要類別信息的表示,同時對無關(guān)信息如姿態(tài)具有不變性—-以解決選擇無關(guān)的困境。
為了讓分類器更強大,可以使用廣義非線性特征以及核函數(shù)方法。但廣義特征(如高斯核函數(shù))泛華能力差,常規(guī)的方法是手動設計好的特征提取器,而這需要大量工程經(jīng)驗和領(lǐng)域?qū)<也拍芡瓿伞H绻玫奶卣骺梢允褂猛ㄟ^學習的方法自動學習得到,上述問題就可以避免,這是深度學習的核心優(yōu)勢。
由此可見,深度學習有它強于傳統(tǒng)的機器學習算法的地方,并且有時候只能用深度學習借助訓練神經(jīng)網(wǎng)絡來完成某些識別任務。
深度學習系統(tǒng)學習清單
有了對ML算法的基本認識后,有助于對深度學習的快速理解,根據(jù) playground.tensorflow.org 給出的一本免費深度學習電子書,再結(jié)合相關(guān)的paper,可以快速了解其中的理論和算法,包括廣泛使用的幾套神經(jīng)網(wǎng)絡模型,先對這些內(nèi)容做一個提綱,接下來再有重點的總結(jié)。
這本書的組織思路如下:
1. Perceptrons感知器,這是最簡單的神經(jīng)網(wǎng)絡
2. Sigmoid neurons
3. The architecture of neural networks
4 A simple network to classify handwritten digits 手寫字分類
對手寫字分類任務中,涉及到深度學習非常重要的參數(shù)求解方法:梯度下降學習權(quán)重參數(shù);書中給出了源碼實現(xiàn)。
5 反向傳播算法(BP)
6 提升神經(jīng)元學習的方法
7 可視化地證明:神經(jīng)網(wǎng)絡可以表示任何函數(shù)
8 為什么深度神經(jīng)網(wǎng)絡難以訓練,包括常見的梯度消失問題。
再分析總結(jié)幾套常用的神經(jīng)網(wǎng)絡:
DNN,深度神經(jīng)網(wǎng)絡
特指全連接的神經(jīng)元結(jié)構(gòu),并不包含卷積單元或是時間上的關(guān)聯(lián)。
RNN,循環(huán)神經(jīng)網(wǎng)絡
訓練樣本輸入是連續(xù)的序列,且序列的長短不一,比如基于時間的序列:一段連續(xù)的語音,一段連續(xù)的手寫文字。這些序列比較長,且長度不一,比較難直接的拆分成一個個獨立的樣本來通過DNN/CNN進行訓練。
但是 RNN有致命的缺陷,只能知道記憶短暫的信息,對于距離相距很遠的信息記憶能力差。比如我們做完型填空時,可能需要整合全文來填某一個句子,比如 I grew up in China…。此處省略一萬字。。.。.I speak fluent _____ 。 如果 RNN 只知道鄰近的幾個單詞,可能它會知道此處需要填寫一門語言,但至于應該填什么,就需要找到更遠前的信息,直到 找到 China 才行。這種需要尋找相距很遠信息的情況,實際上非常常見。
LSTM
它是 RNN 的一種特殊形式,它被廣泛應用在語音識別、語言建模、機器翻譯、為圖像起標題。
CNN,卷積神經(jīng)網(wǎng)絡
是深度學習算法在圖像處理領(lǐng)域的一個應用。CNN主要用來識別位移、縮放及其他形式扭曲不變性的二維圖形。
評論