本文是讀Ng團隊的論文” An Analysis of Single-Layer Networks in Unsupervised Feature Learning”后的分析,主要是針對一個隱含層的網絡結構進行分析的,分別對比了4種網絡結構,k-means, sparse autoencoder, sparse rbm, gmm。最后作者得出了下面幾個結論:1. 網絡中隱含層神經元節點的個數,采集的密度(也就是convolution時的移動步伐)和感知區域大小對最終特征提取效果的影響很大,甚至比網絡的層次數,deep learning學習算法本身還要重要。2. Whitening在預處理過程中還是很有必要的。3. 在以上4種實驗算法中,k-means效果竟然最好。因此在最后作者給出結論時的建議是,盡量使用whitening對數據進行預處理,每一層訓練更多的特征數,采用更密集的方法對數據進行采樣。
NORB:
該數據庫參考網頁:http://www.cs.nyu.edu/~ylclab/data/norb-v1.0/index.html。該數據庫是由5種玩具模型的圖片構成:4只腳的動物,飛機,卡車,人,小轎車,由於每一種玩具模型又有幾種,所以總共是有60種類別。總共用2個攝像頭,在9種高度和18種方位角拍攝的。部分截圖如下:
CIFAR-10:
該數據庫參考網頁:http://www.cs.toronto.edu/~kriz/cifar.html。這個數據庫也是圖片識別的,共有10個類別,飛機,鳥什么的。每一個類別的圖片有6000張,其中5000張用於訓練,1000張用於測試。圖片的大小為32*32的。部分截圖如下:
一般在deep learning中,最大的缺陷就是有很多參數需要調整,比如說學習速率,稀疏度懲罰系數,權值懲罰系數,momentum(不懂怎么翻譯,好像rbm中需要用到)等。而這些參數最終的確定需要通過交叉驗證獲得,本身這樣的結構訓練起來所用時間就長,這么多參數要用交叉驗證來獲取時間就更多了。所以本文得出的結論用kmeans效果那么好,且無需有這些參數要考慮。
下面是上面4種算法的一些簡單介紹:
Sparse autoencoder:
其網絡函數表達式如下:
Sparse RBM:
和Sparse auto-encoder函數表達類似,只不過求解參數時的思想不同而已。另外在Sparse RBM中,參數優化主要用CD(對比散度)算法。而在Sparse autoencoder在參數優化時主要使用bp算法。
K-means聚類:
如果是用hard-kmeans的話,其目標函數公式如下:
其中c(j)為聚類得到的類別中心點。
如果用soft-kmeasn的話,則表達式如下:
其中Zk的計算公式如下:
Uk為元素z的均值。
GMM:
其目標函數表達式如下:
分類算法統一采用的是svm。
當訓練出特征提取的網絡參數后,就可以對輸入的圖片進行特征提取了,其特征提取的示意圖如下所示:
實驗結果:
首先來看看有無whitening學習到的圖片特征在這4種情況下的顯示如下:
可以看出whitening后學習到更多的細節,且whitening后幾種算法都能學到類似gabor濾波器的效果,因此並不一定是deep learning的結構才可以學到這些特性。
下面的這個曲線圖表明,隱含層節點的個數越多則最后的識別率會越高,並且可以看出soft kmeans的效果要最好。
從下面的曲線可以看出當stride越小時,效果越好,不過作者建議最好將該參數設置為大於1,因為如果設置太小,則計算量會增大,比如在sparse coding中,每次測試圖片輸入時,對小patch進行convolution時都要經過數學優化來求其輸出(和autoencoder,rbm等deep learning算法不同),所以計算量會特別大。不過當stride值越大則識別率會顯著下降。
而這下面這張圖則表明當Receptive filed size為6時,效果最好。不過作者也認為這不一定,因為如果把該參數調大,這意味着需要更多的訓練樣本才有可能體會出該參數的作用,因此這個感知器區域即使比較小,也是可以學到不錯的特征的。
參考資料:
An Analysis of Single-Layer Networks in Unsupervised Feature Learning, Adam Coates, Honglak Lee, and Andrew Y. Ng. In AISTATS 14, 2011.
http://www.cs.nyu.edu/~ylclab/data/norb-v1.0/index.html
http://www.cs.toronto.edu/~kriz/cifar.html