天天看點

深度學習:Hinton_Science_Reducing the dimensionality of data with neural networks

近日,閑來得空,又不停的聽到Deep learning (DL)相關的突破~

故來研究下Deep learning的相關東西~

在Deep learning 的學習資源中找到,關于Deep belief network的相關資源

http://www.cs.toronto.edu/~hinton/MatlabForSciencePaper.html

這個資源的下載下傳并運作,有一個需要注意的地方,就是資料檔案:

要使用gunzip train-images-idx3-ubyte.gz 進行解壓~

若使用winzip解壓後,會損壞相關資料檔案~

導緻matlab code 中fopen檔案 有錯誤~

本code涉及到的paper是2006 Science上的Hinton這篇:“reducing the dimensionality of data with neural networks”

 這篇paper來做什麼的?(摘要)

通過一個小的中間層來重構高維輸入向量,訓練一個多層神經網絡,最終使得高維資料可以轉化為低維信号~

原有神經網絡(Neural network, NN)求解權重時,存在的問題:利用梯度下降來求解權重~  但是嚴重依賴于初始化權重的好壞~

這篇paper描述一種有效地方法,來初始化權重,利用深度自解碼網絡(Deep autoencoder networks)來學習低維信号~

這種降維方法,比PCA(principal compenent analysis)效果要好的多~

降維有助于分類、可視化、交流和高維信号的存儲~

一個簡單常用的方法就是PCA,,找到資料集中最大方差方向.....

這篇paper描述一種非線性的PCA 的推廣,利用一個自适應的、多層的編碼網絡,達到降維的目的。類似地,解碼網絡來重建資料~

在這兩種網絡中,随機初始化權重,通過最小化原始資料及其重建資料之間的差異,進行訓練。

利用鍊規則來回報錯誤,首先通過解碼網絡(Decoder),然後通過編碼網絡(Encoder),可以獲得梯度。

深度學習:Hinton_Science_Reducing the dimensionality of data with neural networks

多層RBM(Restricted Boltzmann machine)

像素對應着可見單元(v)~

特征描述子對應着隐單元h~

深度學習:Hinton_Science_Reducing the dimensionality of data with neural networks

因為所有節點單元均為二進制的~  是以采用以下的激發函數來實作

可見層機率:

深度學習:Hinton_Science_Reducing the dimensionality of data with neural networks
深度學習:Hinton_Science_Reducing the dimensionality of data with neural networks

權重更新:

深度學習:Hinton_Science_Reducing the dimensionality of data with neural networks

疑問:這是如何把樣本間建立聯系呢?