深度信念網絡(DBN)和堆疊自編碼(SAE)、深度自編碼器(DAE)的區別
深度信念網絡(DBN)和堆疊自編碼(SAE)、深度自編碼器(DAE)具有類似的思想,因此很容易混淆。
受限制玻爾茲曼機(Restricted Bolzmann Machine)以及自編碼器(Autoencoder)
一、線路
受限制玻爾茲曼機 -> 深度信念網絡(Deep Blief Network, DBN)
自編碼器 -> 堆疊自編碼器(Stacked Autoencoderm, SAE)
二、自編碼器
自編碼器的輸入維度與輸出維度相等,訓練目的是使數據的特征得到最大的保留,去除冗余信息,一個單層的自編碼器結構如下圖
當然一個自編碼器也可以有很多層:

三、受限制玻爾茲曼機
受限制玻爾茲曼機是一個雙層結構,可見層(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為例:
五、深度信念網絡與逐層訓練
由多層受限制玻爾茲曼機堆疊起來的網絡叫作深度信念網絡(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
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。