深度學習 Wake Sleep演算法

2021-07-31 06:22:01 字數 1662 閱讀 2459

本文翻譯自2007-to recognize shapes, first learn to generate images, geoffrey hinton.

第五種策略的設計思想是使得高層的特徵提取器能夠和底層的進行通訊, 同時可以很容易地使用隨機二態神經元的分層網路來實現.

這些神經元的啟用概率是關於總輸入的乙個平滑非線性方程:

其中si和sj是神經元i和j的活躍度(activity), wij是i和j的權值, bj是j的偏置.

如果訓練資料是使用圖1中型別的多層影象模型從上到下生成的, 則被用來從上到下(top-down)生成影象的隱層神經元的二進位制狀態就可以被用來作為它訓練從下到上(bottom-up)認知權值(reco-weights)時的期望輸出.

乍一看, 這種使用從上到下生成連線(generative connections)來給隱層神經元提供期望狀態的想法是毫無意義的, 因為我們現在需要學習的是乙個能夠產生訓練資料(training data)的圖模型(graphics model)

但是, 如果我們已經有了一些較好的

認知連線(reco-connections)

, 我們就可以使用一種

從下到上

的傳播(pass)

-- 用真實資料來啟用每層的神經元從而我們就可以通過嘗試從前一層的活躍度資訊來重建每層的活躍度, 從而學習這個生成權值.

所以這就變成乙個雞與蛋的問題:

給定生成權值(generative weights, gene-weights for short), 我們可以學習得到認知權值(recognition weights, reco-weights); 給定認知權值, 我們可以學習得到生成權值.

結果是什麼? 基於少量隨機值並在兩種學習階段(phases of learning)中切換, 我們竟然可以同時學習得到上述兩種權值!

在清醒階段("wake" phase), 認知權值被用來從下到上驅動神經元, 相鄰層的神經元的二進位制狀態則可以被用來訓練生成權值;

在睡眠階段("sleep" pahse), 從上到下的生成連線則被用來驅動網路, 從而基於生成模型(generative model)產生影象(fantasies). 相鄰層的神經元狀態(0/1)就可以被用來學習從下到上的認知連線(hinto et al., 1995).

學習的規則非常簡單.

清醒階段, 生成權值gkj, 根據下式進行更新:

其中神經元k在神經元j的上層, e是學習速率, pj是神經元j被使用當前生成權值的前一層神經元的當前狀態驅動時的啟用概率.

睡眠階段, 認知權值wij, 根據下式進行更新:

其中qj是神經元j被使用當前認知權值的前一層神經元的當前狀態驅動時的啟用概率.

dbn中的wake sleep演算法是如何調優的?

wake sleep algorithm的fine tuning演算法在hinton06年的那篇 最後是有偽碼的,hinton使用的標準的dbn自畫圖如下 i wake phase 認知階段 先用認知階段的引數計算每一層的認知階段的狀態 從下往上推.wakehidprobs sigmoid wvis...

深度學習演算法好學嗎 深度學習演算法的幾個難點

1 區域性最優問題。深度學習演算法的目標函式,幾乎全都是非凸的。而目前尋找最優解的方法,都是基於梯度下降的。稍微有點背景知識的人都知道,梯度下降方法是解決不了非凸問題的。因此,如果找到最優解,將是深度學習領域,非常值得研究的課題。andrew在google的工作,也就是那只貓,其實訓練過程是讓人很費...

機器學習and 深度學習 and 優化演算法

ssh keygen t rsa c 我的ssh金鑰 將 我的金鑰 替換為新的自己命名的就行,然後github建倉進行ssh繫結 git remote v 檢視遠倉庫 git remote set url origin git github.com username newrepo.git 切換到自...