近日,閑來得空,又不停的聽到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),可以獲得梯度。

多層RBM(Restricted Boltzmann machine)
像素對應着可見單元(v)~
特征描述子對應着隐單元h~
因為所有節點單元均為二進制的~ 是以采用以下的激發函數來實作
可見層機率:
權重更新:
疑問:這是如何把樣本間建立聯系呢?