深度神經(jīng)網(wǎng)路已經(jīng)在語音識(shí)別,圖像識(shí)別等領(lǐng)域取得前所未有的成功。本人在多年之前也曾接觸過神經(jīng)網(wǎng)絡(luò)。本系列文章主要記錄自己對(duì)深度神經(jīng)網(wǎng)絡(luò)的一些學(xué)習(xí)心得。
簡(jiǎn)要描述深度神經(jīng)網(wǎng)絡(luò)模型。
自聯(lián)想神經(jīng)網(wǎng)絡(luò)是很古老的神經(jīng)網(wǎng)絡(luò)模型,簡(jiǎn)單的說,它就是三層BP網(wǎng)絡(luò),只不過它的輸出等于輸入。很多時(shí)候我們并不要求輸出精確的等于輸入,而是允許一定的誤差存在。所以,我們說,輸出是對(duì)輸入的一種重構(gòu)。其網(wǎng)絡(luò)結(jié)構(gòu)可以很簡(jiǎn)單的表示如下:
如果我們?cè)谏鲜鼍W(wǎng)絡(luò)中不使用sigmoid函數(shù),而使用線性函數(shù),這就是PCA模型。中間網(wǎng)絡(luò)節(jié)點(diǎn)個(gè)數(shù)就是PCA模型中的主分量個(gè)數(shù)。不用擔(dān)心學(xué)習(xí)算法會(huì)收斂到局部最優(yōu),因?yàn)榫€性BP網(wǎng)絡(luò)有唯一的極小值。
在深度學(xué)習(xí)的術(shù)語中,上述結(jié)構(gòu)被稱作自編碼神經(jīng)網(wǎng)絡(luò)。從歷史的角度看,自編碼神經(jīng)網(wǎng)絡(luò)是幾十年前的事情,沒有什么新奇的地方。
既然自聯(lián)想神經(jīng)網(wǎng)絡(luò)能夠?qū)崿F(xiàn)對(duì)輸入數(shù)據(jù)的重構(gòu),如果這個(gè)網(wǎng)絡(luò)結(jié)構(gòu)已經(jīng)訓(xùn)練好了,那么其中間層,就可以看過是對(duì)原始輸入數(shù)據(jù)的某種特征表示。如果我們把它的第三層去掉,這樣就是一個(gè)兩層的網(wǎng)絡(luò)。如果,我們把這個(gè)學(xué)習(xí)到特征再用同樣的方法創(chuàng)建一個(gè)自聯(lián)想的三層BP網(wǎng)絡(luò),如上圖所示。換言之,第二次創(chuàng)建的三層自聯(lián)想網(wǎng)絡(luò)的輸入是上一個(gè)網(wǎng)絡(luò)的中間層的輸出。用同樣的訓(xùn)練算法,對(duì)第二個(gè)自聯(lián)想網(wǎng)絡(luò)進(jìn)行學(xué)習(xí)。那么,第二個(gè)自聯(lián)想網(wǎng)絡(luò)的中間層是對(duì)其輸入的某種特征表示。如果我們按照這種方法,依次創(chuàng)建很多這樣的由自聯(lián)想網(wǎng)絡(luò)組成的網(wǎng)絡(luò)結(jié)構(gòu),這就是深度神經(jīng)網(wǎng)絡(luò),如下圖所示:
注意,上圖中組成深度網(wǎng)絡(luò)的最后一層是級(jí)聯(lián)了一個(gè)softmax分類器。
深度神經(jīng)網(wǎng)絡(luò)在每一層是對(duì)最原始輸入數(shù)據(jù)在不同概念的粒度表示,也就是不同級(jí)別的特征描述。
這種層疊多個(gè)自聯(lián)想網(wǎng)絡(luò)的方法,最早被Hinton想到了。
從上面的描述中,可以看出,深度網(wǎng)絡(luò)是分層訓(xùn)練的,包括最后一層的分類器也是單獨(dú)訓(xùn)練的,最后一層分類器可以換成任何一種分類器,例如SVM,HMM等。上面的每一層單獨(dú)訓(xùn)練使用的都是BP算法。 相信這一思路,Hinton早就實(shí)驗(yàn)過了。
使用BP算法單獨(dú)訓(xùn)練每一層的時(shí)候,我們發(fā)現(xiàn),必須丟掉網(wǎng)絡(luò)的第三層,才能級(jí)聯(lián)自聯(lián)想神經(jīng)網(wǎng)絡(luò)。然而,有一種更好的神經(jīng)網(wǎng)絡(luò)模型,這就是受限玻爾茲曼機(jī)。使用層疊波爾茲曼機(jī)組成深度神經(jīng)網(wǎng)絡(luò)的方法,在深度學(xué)習(xí)里被稱作深度信念網(wǎng)絡(luò)DBN,這是目前非常流行的方法。下面的術(shù)語,將把自聯(lián)想網(wǎng)絡(luò)稱作自編碼網(wǎng)絡(luò)autoencoder.。通過層疊自編碼網(wǎng)絡(luò)的深度網(wǎng)絡(luò)在深度學(xué)習(xí)里另外一個(gè)屬于叫棧式自編碼網(wǎng)絡(luò)。
經(jīng)典的DBN網(wǎng)絡(luò)結(jié)構(gòu) 是由若干層 RBM 和一層 BP 組成的一種深層神經(jīng)網(wǎng)絡(luò), 結(jié)構(gòu)如下圖所示.
上述訓(xùn)練模型中第一步在深度學(xué)習(xí)的術(shù)語叫做預(yù)訓(xùn)練,第二步叫做微調(diào)。最上面有監(jiān)督學(xué)習(xí)的那一層,根據(jù)具體的應(yīng)用領(lǐng)域可以換成任何分類器模型,而不必是BP網(wǎng)絡(luò)。
由于自編碼網(wǎng)絡(luò)可以對(duì)原始數(shù)據(jù)在不同概念的粒度上進(jìn)行抽象,深度網(wǎng)絡(luò)一種自然的應(yīng)用是對(duì)數(shù)據(jù)進(jìn)行壓縮或者叫降維。
胡邵華等,他們用一種自編碼網(wǎng)絡(luò)實(shí)現(xiàn)了對(duì)經(jīng)典的"瑞士卷"數(shù)據(jù)的重構(gòu):
" 瑞士卷"數(shù)據(jù)是經(jīng)典的機(jī)器學(xué)習(xí)中難于分類的數(shù)據(jù)之一,其隱含的數(shù)據(jù)內(nèi)在模式難以在二維數(shù)據(jù)中描述。然而, 胡邵華等,采用深度信念網(wǎng)絡(luò)實(shí)現(xiàn)了對(duì)三維瑞士卷數(shù)據(jù)的2維表示,其自編碼網(wǎng)絡(luò)節(jié)點(diǎn)大小依次為3-100-50-25-10-2. 具體的實(shí)現(xiàn)細(xì)節(jié)請(qǐng)參考文獻(xiàn):胡邵華、宋耀良:基于autoencoder網(wǎng)絡(luò)的數(shù)據(jù)降維與重構(gòu)。
深度神經(jīng)網(wǎng)絡(luò)的另一個(gè)常見的應(yīng)用是特征提取。
文獻(xiàn):Philippe Hamel and Douglas Eck, LEARNING FEATURES FROM MUSIC AUDIO WITH DEEP BELIEF NETWORKS.
通過訓(xùn)練一個(gè)5層的深度網(wǎng)絡(luò)提取音樂的特征,用于音樂風(fēng)格的分類,其分類精度比基于梅爾倒譜系數(shù)特征分類的方法提到了14個(gè)百分點(diǎn)。
他們的實(shí)現(xiàn)思路非常簡(jiǎn)單,用上述層疊的多個(gè)RBM網(wǎng)絡(luò)組成深度網(wǎng)絡(luò)結(jié)構(gòu)來提取音樂的特征。輸入的原始數(shù)據(jù)是經(jīng)過分幀,加窗之后的信號(hào)的頻譜。分類器采用的是支撐矢量機(jī)SVM。對(duì)比的方法則是提取MFCC特征系數(shù),分類器同樣采用SVM。更多的細(xì)節(jié)和實(shí)驗(yàn)結(jié)果可以參考上面提到的文獻(xiàn)。
深度網(wǎng)絡(luò)是一種良好的無監(jiān)督學(xué)習(xí)方法,其特征提取功能能夠針對(duì)不同概念的粒度大小,能夠在很多領(lǐng)域得到廣泛的應(yīng)用。通常,DBN主要用于對(duì)一維數(shù)據(jù)的建模比較有效,例如語音。而通過級(jí)聯(lián)多層卷積網(wǎng)絡(luò)組成深度網(wǎng)絡(luò)的模型主要用于二維數(shù)據(jù),例如圖像等。
通過下面的圖以及上面的內(nèi)容,可以更加深入的理解DBN:深度信念網(wǎng)絡(luò)算法。
參考文獻(xiàn):
[1]Hinton G E, Salakhutdinov R R. Reducing the dimensionality of data with neural networks. Science, vol. 313, pp. 504-507, 2006.
[2]Hinton G E, Osindero S, Teh Y W. A fast learning algorithm for deep belief nets. Neural computation, vol. 18, pp. 1527-1554, 2006.
[3]Xie, Jipeng, et al. "Learning features from High Speed Train vibration signals with Deep Belief Networks." Neural Networks (IJCNN), 2014 International Joint Conference on. IEEE, 2014.
[4]Bengio Y, Lamblin P, Popovici D, et al. Greedy layer-wise training of deep networks. Advances in neural information processing systems, vol. 19, pp. 153-160, 2007.
[5]Salakhutdinov R. Learning deep generative models. Diss. University of Toronto, 2009.
[6]Hinton G. A practical guide to training restricted Boltzmann machines. Neural Networks: Tricks of the Trade, pp. 599-619, 2012.
[7]Bengio Y. Learning deep architectures for AI. Foundations and trends? in Machine Learning, vol. 2, pp. 1-127, 2009.
[8]http://blog.csdn.net/celerychen2009/article/details/9079715
歡迎關(guān)注微信公眾號(hào),與您分享更多精彩內(nèi)容!
聯(lián)系客服