自聯想神經網路是很古老的神經網路模型,簡單的說,它就是三層bp網路,只不過它的輸出等於輸入。很多時候我們並不要求輸出精確的等於輸入,而是允許一定的誤差存在。所以,我們說,輸出是對輸入的一種重構。其網路結構可以很簡單的表示如下:
如果我們在上述網路中不使用sigmoid函式,而使用線性函式,這就是pca模型。中間網路節點個數就是pca模型中的主分量個數。不用擔心學習演算法會收斂到區域性最優,因為線性bp網路有唯一的極小值。
在深度學習的術語中,上述結構被稱作自編碼神經網路。從歷史的角度看,自編碼神經網路是幾十年前的事情,沒有什麼新奇的地方。
既然自聯想神經網路能夠實現對輸入資料的重構,如果這個網路結構已經訓練好了,那麼其中間層,就可以看過是對原始輸入資料的某種特徵表示。如果我們把它的第三層去掉,這樣就是乙個兩層的網路。如果,我們把這個學習到特徵再用同樣的方法建立乙個自聯想的三層bp網路,如上圖所示。換言之,第二次建立的三層自聯想網路的輸入是上乙個網路的中間層的輸出。用同樣的訓練演算法,對第二個自聯想網路進行學習。那麼,第二個自聯想網路的中間層是對其輸入的某種特徵表示。如果我們按照這種方法,依次建立很多這樣的由自聯想網路組成的網路結構,這就是深度神經網路,如下圖所示:
注意,上圖中組成深度網路的最後一層是級聯了乙個softmax分類器。
深度神經網路在每一層是對最原始輸入資料在不同概念的粒度表示,也就是不同級別的特徵描述。
這種層疊多個自聯想網路的方法,最早被hinton想到了。
從上面的描述中,可以看出,深度網路是分層訓練的,包括最後一層的分類器也是單獨訓練的,最後一層分類器可以換成任何一種分類器,例如svm,hmm等。上面的每一層單獨訓練使用的都是bp演算法。 相信這一思路,hinton早就實驗過了。
使用bp演算法單獨訓練每一層的時候,我們發現,必須丟掉網路的第三層,才能級聯自聯想神經網路。然而,有一種更好的神經網路模型,這就是受限玻爾茲曼機。使用層疊波爾茲曼機組成深度神經網路的方法,在深度學習裡被稱作深度信念網路dbn,這是目前非常流行的方法。下面的術語,將把自聯想網路稱作自編碼網路autoencoder.。通過層疊自編碼網路的深度網路在深度學習裡另外乙個屬於叫棧式自編碼網路。
經典的dbn網路結構 是由若干層 rbm 和一層 bp 組成的一種深層神經網路, 結構如下圖所示.
dbn 在訓練模型的過程中主要分為兩步:
第 1 步:分別單獨無監督地訓練每一層 rbm 網路,確保特徵向量對映到不同特徵空間時,都盡可能多地保留特徵資訊;
第 2 步:在 dbn 的最後一層設定 bp 網路,接收 rbm 的輸出特徵向量作為它的輸入特徵向量,有監督地訓練實體關係分類器.而且每一層 rbm 網路只能確保自身層內的 權值對該層特徵向量對映達到最優,並不是對整個 dbn 的特徵向量對映達到最優,所以反向傳播網路還將錯誤資訊自頂向下傳播至每一層 rbm,微調整個 dbn 網路.rbm 網路訓練模型的過程可以看作對乙個深層 bp 網路權值引數的初始化,使dbn 克服了 bp 網路因隨機初始化權值引數而容易陷入區域性最優和訓練時間長的缺點.
上述訓練模型中第一步在深度學習的術語叫做預訓練,第二步叫做微調。最上面有監督學習的那一層,根據具體的應用領域可以換成任何分類器模型,而不必是bp網路。
由於自編碼網路可以對原始資料在不同概念的粒度上進行抽象,深度網路一種自然的應用是對資料進行壓縮或者叫降維。
胡邵華等,他們用一種自編碼網路實現了對經典的"瑞士卷"資料的重構:
" 瑞士卷"資料是經典的機器學習中難於分類的資料之一,其隱含的資料內在模式難以在二維資料中描述。然而, 胡邵華等,採用深度信念網路實現了對三維瑞士卷資料的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主要用於對一維資料的建模比較有效,例如語音。而通過級聯多層卷積網路組成深度網路的模型主要用於二維資料,例如影象等。
本文**:
學習筆記11 深度信念網路(DBN)
在了解rbm的基礎上,介紹深度信念網路。dbn 是由多層 rbm 組成的乙個神經網路,它既可以被看作乙個生成模型,也可以當作判別模型,其訓練過程是 使用非監督貪婪逐層方法去預訓練獲得權值。訓練過程 1.首先充分訓練第乙個 rbm 2.固定第乙個 rbm 的權重和偏移量,然後使用其隱性神經元的狀態,作...
深度信念網路 Learning
1.什麼是深度信念神經網路?答 深度信念神經網路,即 deep belief network,是近年比較火的一種網路結構,在遙感分類中應用較多。深度信念神經網路是在深度神經網路結構的基礎上的一種更新改進。這樣講應該是不準確的,但對於初學者來說比較容易理解 2.什麼是深度神經網路?答 首次接觸,可以聯...
自聯想神經網路 深度信念網路
自聯想神經網路 auto associative neural network 縮寫為aann 是1987年ballard提出的,其網路原型是一種具有對稱拓撲結構的五層前饋傳遞網路,aann 應用到資料檢驗問題時具有比較明顯的物理意義。是bp神經網路的一種特殊情形。其特點是有對稱拓撲結構,即輸出量等...