1. 程式人生 > >CS229 6.15 Neurons Networks Deep Belief Networks

CS229 6.15 Neurons Networks Deep Belief Networks

Hintion老爺子在06年的science上的論文裡闡述了 RBMs 可以堆疊起來並且通過逐層貪婪的方式來訓練,這種網路被稱作Deep Belife Networks(DBN),DBN是一種可以學習訓練資料的高層特徵表示的網路,DBN是一種生成模型,可見變數  與  個隱層的聯合分佈:

這裡 x = h0為RBM在第 k 層的隱層單元條件下的可見單元的條件分佈, 是一個DBN頂部可見層與隱層的條件分佈,如圖下:

DBN的訓練:

1. 首先充分訓練第一個 RBM;  2. 固定第一個 RBM 的權重和偏移量,然後使用其隱性神經元的狀態,作為第二個 RBM 的輸入向量;  3. 充分訓練第二個 RBM 後,將第二個 RBM 堆疊在第一個 RBM 的上方;  4. 重複以上三個步驟任意多次;  5. 如果訓練集中的資料有標籤,那麼在頂層的 RBM 訓練時,這個 RBM 的顯層中除了顯性神經元,還需要有代表分類標籤的神經元,一起進行訓練:  a) 假設頂層 RBM 的顯層有 500 個顯性神經元,訓練資料的分類一共分成了 10 類;  b) 那麼頂層 RBM 的顯層有 510 個顯性神經元,對每一訓練訓練資料,相應的標籤神經元被開啟設為 1,而其他的則被關閉設為 0。 6. 對於一個4層的DBN 被訓練好後如下圖:( 圖中的綠色部分就是在最頂層 RBM 中參與訓練的標籤 )
  DBN的fun-tuning,微調階段: 生成模型使用 Contrastive Wake-Sleep 演算法進行調優,其演算法過程是:  1. 除了頂層 RBM,其他層 RBM 的權重被分成向上的認知權重和向下的生成權重;  2. Wake 階段:認知過程,通過外界的特徵和向上的權重 (認知權重) 產生每一層的抽象表示 (結點狀態) ,並且使用梯度下降修改層間的下行權重 (生成權重) 。也就是“如果現實跟我想象的不一樣,改變我的權重使得我想 象的東西就是這樣的”。  3. Sleep 階段:生成過程,通過頂層表示 (醒時學得的概念) 和向下權重,生成底層的狀態,同時修改層間向上的權重。也就是“如果夢中的景象不是我腦中的相應概念,改變我的認知權重使得這種景象在我看來就是這個概 念”。    DBN的使用: 1. 使用隨機隱性神經元狀態值,在頂層 RBM 中進行足夠多次的吉布斯抽樣;  2. 向下傳播,得到每層的狀態。