[深度學習]Wake-Sleep算法


本文翻譯自2007-To recognize shapes, first learn to generate images, Geoffrey Hinton.

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

這些神經元的激活概率是關於總輸入的一個平滑非線性方程:

 

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

圖1

 

如果訓練數據是使用圖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被使用當前認知權值的前一層神經元的當前狀態驅動時的激活概率.

 


免責聲明!

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



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