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