深度信念網路

老司機的詩和遠方發表於2020-04-06

1.初識深度信網路

http://blog.csdn.net/a819825294/article/details/53608141

  深度信念網路是一個概率生成模型,與傳統的判別模型的神經網路相對,生成模型是建立一個觀察資料和標籤之間的聯合分佈,對P(Observation|Label)和 P(Label|Observation)都做了評估,而判別模型僅僅而已評估了後者,也就是P(Label|Observation)。

  DBNs由多個限制玻爾茲曼機(Restricted Boltzmann Machines)層組成,一個典型的網路結構如圖1所示。這些網路被“限制”為一個可視層和一個隱層,層間存在連線,但層內的單元間不存在連線。隱層單元被訓練去捕捉在可視層表現出來的高階資料的相關性。


圖1

2.需要面對的問題

對於在深度神經網路應用傳統的BP演算法的時候,DBN遇到了以下問題:

(1)需要為訓練提供一個有標籤的樣本集;

(2)學習過程較慢;

(3)不適當的引數選擇會導致學習收斂於區域性最優解。

Solution:

  首先,先不考慮最頂構成一個聯想記憶(associative memory)的兩層,一個DBN的連線是通過自頂向下的生成權值來指導確定的,RBMs就像一個建築塊一樣,相比傳統和深度分層的sigmoid信念網路,它能易於連線權值的學習。

  最開始的時候,通過一個非監督貪婪逐層方法去預訓練獲得生成模型的權值,非監督貪婪逐層方法被Hinton證明是有效的,並被其稱為對比分歧(contrastive divergence)。


圖2

   在這個訓練階段,在可視層會產生一個向量v,通過它將值傳遞到隱層。反過來,可視層的輸入會被隨機的選擇,以嘗試去重構原始的輸入訊號。最後,這些新的可視的神經元啟用單元將前向傳遞重構隱層啟用單元,獲得h(在訓練過程中,首先將可視向量值對映給隱單元;然後可視單元由隱層單元重建;這些新可視單元再次對映給隱單元,這樣就獲取新的隱單元。執行這種反覆步驟叫做吉布斯取樣)。這些後退和前進的步驟就是我們熟悉的Gibbs取樣,而隱層啟用單元和可視層輸入之間的相關性差別就作為權值更新的主要依據。

  訓練時間會顯著的減少,因為只需要單個步驟就可以接近最大似然學習。增加進網路的每一層都會改進訓練資料的對數概率,我們可以理解為越來越接近能量的真實表達。這個有意義的擴充,和無標籤資料的使用,是任何一個深度學習應用的決定性的因素。

  在最高兩層,權值被連線到一起,這樣更低層的輸出將會提供一個參考的線索或者關聯給頂層,這樣頂層就會將其聯絡到它的記憶內容。而我們最關心的,最後想得到的就是判別效能,例如分類任務裡面。

  在預訓練後,DBN可以通過利用帶標籤資料用BP演算法去對判別效能做調整。在這裡,一個標籤集將被附加到頂層(推廣聯想記憶),通過一個自下向上的,學習到的識別權值獲得一個網路的分類面。這個效能會比單純的BP演算法訓練的網路好。這可以很直觀的解釋,DBNs的BP演算法只需要對權值引數空間進行一個區域性的搜尋,這相比前向神經網路來說,訓練是要快的,而且收斂的時間也少。

3.詳細訓練演算法流程


圖3

  在訓練時, Hinton採用了逐層無監督的方法來學習引數。如圖3所示,首先把資料向量x和第一層隱藏層作為一個RBM, 訓練出這個RBM的引數(連線x和h1的權重, x和h1各個節點的偏置等等), 然後固定這個RBM的引數, 把h1視作可見向量, 把h2視作隱藏向量, 訓練第二個RBM, 得到其引數, 然後固定這些引數, 訓練h2和h3構成的RBM, 具體的訓練演算法如下:

  CD的訓練過程中用到了Gibbs 取樣,即在訓練過程中,首先將可視向量值對映給隱單元,然後用隱層單元重建可視向量,接著再將可視向量值對映給隱單元……反覆執行這種步驟。

  k-Gibbs的過程如下:

  其中,P是model distribution,是training set distribution

  DBN訓練演算法:

  DBN運用CD演算法逐層進行訓練,得到每一層的引數Wi和ci用於初始化DBN,之後再用監督學習演算法對引數進行微調。

4.經典網路結構

  經典的DBN網路結構是由若干層 RBM 和一層 BP 組成的一種深層神經網路, 結構如下圖4所示.


圖4

  DBN 在訓練模型的過程中主要分為兩步:

  第 1 步:分別單獨無監督地訓練每一層 RBM 網路,確保特徵向量對映到不同特徵空間時,都儘可能多地保留特徵資訊;

  第 2 步:在 DBN 的最後一層設定 BP 網路,接收 RBM 的輸出特徵向量作為它的輸入特徵向量,有監督地訓練實體關係分類器.而且每一層 RBM 網路只能確保自身層內的 權值對該層特徵向量對映達到最優,並不是對整個 DBN 的特徵向量對映達到最優,所以反向傳播網路還將錯誤資訊自頂向下傳播至每一層 RBM,微調整個 DBN 網路.RBM 網路訓練模型的過程可以看作對一個深層 BP 網路權值引數的初始化,使DBN 克服了 BP 網路因隨機初始化權值引數而容易陷入區域性最優和訓練時間長的缺點.

  上述訓練模型中第一步在深度學習的術語叫做預訓練,第二步叫做微調。最上面有監督學習的那一層,根據具體的應用領域可以換成任何分類器模型,而不必是BP網路。

5.擴充

  DBN的靈活性使得它的擴充比較容易。一個擴充就是卷積DBNs(Convolutional Deep Belief Networks(CDBN))。DBN並沒有考慮到影像的2維結構資訊,因為輸入是簡單的從一個影像矩陣一維向量化的。而CDBN就是考慮到了這個問題,它利用鄰域畫素的空域關係,通過一個稱為卷積RBM的模型區達到生成模型的變換不變性,而且可以容易得變換到高維影像。DBN並沒有明確地處理對觀察變數的時間聯絡的學習上,雖然目前已經有這方面的研究,例如堆疊時間RBMs,以此為推廣,有序列學習的dubbed temporal convolutionmachines,這種序列學習的應用,給語音訊號處理問題帶來了一個讓人激動的未來研究方向。

  目前,和DBN有關的研究包括堆疊自動編碼器,它是通過用堆疊自動編碼器來替換傳統DBN裡面的RBM。這就使得可以通過同樣的規則來訓練產生深度多層神經網路架構,但它缺少層的引數化的嚴格要求。與DBN不同,自動編碼器使用判別模型,這樣這個結構就很難取樣輸入取樣空間,這就使得網路更難捕捉它的內部表達。但是,降噪自動編碼器卻能很好的避免這個問題,並且比傳統的DBN更優。它通過在訓練過程新增隨機的汙染並堆疊產生場泛化效能。訓練單一的降噪自動編碼器的過程和RBM訓練生成模型的過程一樣。

相關文章