深度神經網路已經在語音識別,圖像識別等領域取得前所未有的成功。本人在多年之前也曾接觸過神經網絡。本系列文章主要記錄自己對深度神經網絡的一些學習心得。
簡要描述深度神經網絡模型。
1. 自聯想神經網絡與深度網絡
自聯想神經網絡是很古老的神經網絡模型,簡單的說,它就是三層BP網絡,只不過它的輸出等於輸入。很多時候我們並不要求輸出精確的等於輸入,而是允許一定的誤差存在。所以,我們說,輸出是對輸入的一種重構。其網絡結構可以很簡單的表示如下:
如果我們在上述網絡中不使用sigmoid函數,而使用線性函數,這就是PCA模型。中間網絡節點個數就是PCA模型中的主分量個數。不用擔心學習算法會收斂到局部最優,因為線性BP網絡有唯一的極小值。
在深度學習的術語中,上述結構被稱作自編碼神經網絡。從歷史的角度看,自編碼神經網絡是幾十年前的事情,沒有什麽新奇的地方。
既然自聯想神經網絡能夠實現對輸入數據的重構,如果這個網絡結構已經訓練好了,那麽其中間層,就可以看過是對原始輸入數據的某種特征表示。如果我們把它的第三層去掉,這樣就是一個兩層的網絡。如果,我們把這個學習到特征再用同樣的方法創建一個自聯想的三層BP網絡,如上圖所示。換言之,第二次創建的三層自聯想網絡的輸入是上一個網絡的中間層的輸出。用同樣的訓練算法,對第二個自聯想網絡進行學習。那麽,第二個自聯想網絡的中間層是對其輸入的某種特征表示。如果我們按照這種方法,依次創建很多這樣的由自聯想網絡組成的網絡結構,這就是深度神經網絡,如下圖所示:
註意,上圖中組成深度網絡的最後一層是級聯了一個softmax分類器。
深度神經網絡在每一層是對最原始輸入數據在不同概念的粒度表示,也就是不同級別的特征描述。
這種層疊多個自聯想網絡的方法,最早被Hinton想到了。
從上面的描述中,可以看出,深度網絡是分層訓練的,包括最後一層的分類器也是單獨訓練的,最後一層分類器可以換成任何一種分類器,例如SVM,HMM等。上面的每一層單獨訓練使用的都是BP算法。 相信這一思路,Hinton早就實驗過了。
2. DBN神經網絡模型
使用BP算法單獨訓練每一層的時候,我們發現,必須丟掉網絡的第三層,才能級聯自聯想神經網絡。然而,有一種更好的神經網絡模型,這就是受限玻爾茲曼機。使用層疊波爾茲曼機組成深度神經網絡的方法,在深度學習裏被稱作深度信念網絡DBN,這是目前非常流行的方法。下面的術語,將把自聯想網絡稱作自編碼網絡autoencoder.。通過層疊自編碼網絡的深度網絡在深度學習裏另外一個屬於叫棧式自編碼網絡。
經典的DBN網絡結構 是由若幹層 RBM 和一層 BP 組成的一種深層神經網絡, 結構如下圖所示.

第 1 步:分別單獨無監督地訓練每一層 RBM 網絡,確保特征向量映射到不同特征空間時,都盡可能多地保留特征信息;
第 2 步:在 DBN 的最後一層設置 BP 網絡,接收 RBM 的輸出特征向量作為它的輸入特征向量,有監督地訓練實體關系分類器.而且每一層 RBM 網絡只能確保自身層內的 權值對該層特征向量映射達到最優,並不是對整個 DBN 的特征向量映射達到最優,所以反向傳播網絡還將錯誤信息自頂向下傳播至每一層 RBM,微調整個 DBN 網絡.RBM 網絡訓練模型的過程可以看作對一個深層 BP 網絡權值參數的初始化,使DBN 克服了 BP 網絡因隨機初始化權值參數而容易陷入局部最優和訓練時間長的缺點.
上述訓練模型中第一步在深度學習的術語叫做預訓練,第二步叫做微調。最上面有監督學習的那一層,根據具體的應用領域可以換成任何分類器模型,而不必是BP網絡。
3. 深度信念網絡的應用
由於自編碼網絡可以對原始數據在不同概念的粒度上進行抽象,深度網絡一種自然的應用是對數據進行壓縮或者叫降維。
胡邵華等,他們用一種自編碼網絡實現了對經典的"瑞士卷"數據的重構:
" 瑞士卷"數據是經典的機器學習中難於分類的數據之一,其隱含的數據內在模式難以在二維數據中描述。然而, 胡邵華等,采用深度信念網絡實現了對三維瑞士卷數據的2維表示,其自編碼網絡節點大小依次為3-100-50-25-10-2. 具體的實現細節請參考文獻:胡邵華、宋耀良:基於autoencoder網絡的數據降維與重構。
深度神經網絡的另一個常見的應用是特征提取。
文獻:Philippe Hamel and Douglas Eck, LEARNING FEATURES FROM MUSIC AUDIO WITH DEEP BELIEF NetworkS.
通過訓練一個5層的深度網絡提取音樂的特征,用於音樂風格的分類,其分類精度比基於梅爾倒譜系數特征分類的方法提到了14個百分點。
他們的實現思路非常簡單,用上述層疊的多個RBM網絡組成深度網絡結構來提取音樂的特征。輸入的原始數據是經過分幀,加窗之後的信號的頻譜。分類器采用的是支撐矢量機SVM。對比的方法則是提取MFCC特征系數,分類器同樣采用SVM。更多的細節和實驗結果可以參考上面提到的文獻。
深度網絡是一種良好的無監督學習方法,其特征提取功能能夠針對不同概念的粒度大小,能夠在很多領域得到廣泛的應用。通常,DBN主要用於對一維數據的建模比較有效,例如語音。而通過級聯多層卷積網絡組成深度網絡的模型主要用於二維數據,例如圖像等。
通過下面的圖以及上面的內容,可以更加深入的理解DBN:深度信念網絡算法。
參考文獻:
[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
歡迎關註微信公眾號,與您分享更多精彩內容!
Tags: 語音識別 學習心得 聯想 文章 網絡
文章來源: