深度信念網絡(DBN)和堆疊自編碼(SAE)、深度自編碼器(DAE)的區別


深度信念網絡(DBN)和堆疊自編碼(SAE)、深度自編碼器(DAE)的區別

深度信念網絡(DBN)和堆疊自編碼(SAE)、深度自編碼器(DAE)具有類似的思想,因此很容易混淆。

受限制玻爾茲曼機(Restricted Bolzmann Machine)以及自編碼器(Autoencoder)

受限制玻爾茲曼機(Restricted Bolzmann Machine, RBM)與自編碼器(Autoencoder, AE)是神經網絡的兩種基本結構,兩個結構都能起到降維的作用,都可以用來對神經網絡進行預訓練(pre-training),這種預訓練都是無監督的。由於RBM與MLP及其相似,一直以來我就困惑於他們兩者,終於花了幾天時間來摸索了下他們的區別和訓練方法,發現他們甚至不是並列的關系。
 

一、線路

受限制玻爾茲曼機 -> 深度信念網絡(Deep Blief Network, DBN)

自編碼器 -> 堆疊自編碼器(Stacked Autoencoderm, SAE)

二、自編碼器

自編碼器的輸入維度與輸出維度相等,訓練目的是使數據的特征得到最大的保留,去除冗余信息,一個單層的自編碼器結構如下圖

 

當然一個自編碼器也可以有很多層:

簡化來看就是輸入層->隱藏層->輸出層,自編碼器的目的就是使重建(reconstruction)的輸出層能盡量還原輸入層,同時獲得中間隱藏層(最窄的橙色那層)既是降維的結果。若輸入層到隱藏層間的部分稱為編碼器(灰色),記號為f(x),隱藏層到輸出層之間的部分稱為解碼器(黃色),記號為g(x),那么自編碼器的數學訓練目標就是:

三、受限制玻爾茲曼機

受限制玻爾茲曼機是一個雙層結構,可見層(visible)與隱藏層(hidden),圖結構為一個二分圖,即可見層只與隱藏層之間有連接,但是層內是無連接的(即受限制的玻爾茲曼機),因此RBM的性質:當給定可見層神經元的狀態時,各隱藏層神經元的激活條件獨立;反之當給定隱藏層神經元的狀態時,可見層神經元的激活也條件獨立。基本結構如下:

受限制玻爾茲曼機的訓練目的是為了最大程度的保留概率分布,定義了一個能量函數的概念

[公式]
用矩陣來表示就是
[公式]

a與b分別是可視層與隱藏層的偏置項(bias)

v, h聯合概率分布是
[公式]
其中Z是所有[v, h]對對應的能量的總和,v的邊緣概率分布如下,h同理
[公式]
由於受限玻爾茲曼機結構上的特點,所以各隱藏層之間的神經元條件概率獨立,即
[公式]
可見層v同理
[公式]
能量函數的具體推導過程將會在后面的文章中詳細解釋。

四、訓練方法

就像RBM是由物理模型轉化過來一樣,訓練方法與傳統的反向傳播(BP)也不一樣

RBM最早的訓練方法有Gibbs sampling,通過不斷地來回采樣來訓練,如下圖:

然而這樣的方法太慢,所以Hinton大神又提出了CD-k(contrastive divergence)算法,即只需要來回重復k次就可以,以CD-1為例:

就可以完成一次迭代,這就像是兩種不同溫度的液體進行混合,如果兩者的溫度差距較大,在混合的過程中就會產生較大的梯度,而受限制玻爾茲曼機的訓練目標就是使得兩邊的“溫度”能夠盡量的相近,而在數據中這個“溫度”的體現就是數據分布。也就是說,使用RBM進行模型的初始化訓練能夠最大程度的保留數據分布,防止梯度爆炸和梯度消失問題的出現。

五、深度信念網絡與逐層訓練

由多層受限制玻爾茲曼機堆疊起來的網絡叫作深度信念網絡(DBN)。深度信念網絡在最后一層接入一個Softmax層用作分類,訓練的時候采取逐層訓練+微調的方式

 

  • 逐層訓練就是從輸入層開始將網絡的相鄰兩層當作一個受限制玻爾茲曼機進行無監督訓練,訓練方法見上一節,訓練后將上一個RBM的隱藏層當作下一個RBM的可見層繼續
  • 逐層無監督訓練完畢后,將進行反向傳播訓練對模型進行微調,從輸入端輸入數據,最后從輸出端開始進行反向傳播

自編碼器雖然只是要保證輸出端與輸入端盡量接近,但是隨着自編碼器堆疊深度的加深,就會出現類似梯度擴散(Gradient diffusion)梯度爆炸等問題,Hinton大神同樣也使用了類似RBM的訓練方法對深度自編碼器進行逐層訓練,使模型的得到了很好的初始化,加快了模型的解的最優性和收斂速度。


六、參考

 

  • 受限玻爾茲曼機與深度置信網絡
  • Hinton G E. A practical guide to training restricted Boltzmann machines[M]//Neural networks: Tricks of the trade. Springer, Berlin, Heidelberg, 2012: 599-619.
  • Bengio Y, Lamblin P, Popovici D, et al. Greedy layer-wise training of deep networks[C]//Advances in neural information processing systems. 2007: 153-160.
  • Hinton G E, Osindero S, Teh Y W. A fast learning algorithm for deep belief nets[J]. Neural computation, 2006, 18(7): 1527-1554.
  • Hinton G E, Salakhutdinov R R. Reducing the dimensionality of data with neural networks[J]. science, 2006, 313(5786): 504-507.

作者:Ph0en1x
鏈接:https://zhuanlan.zhihu.com/p/36079450
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM