??? 這篇博客對應的是Andrew.Ng的那篇文章:An Analysis o f Single-Layer Networks in Unsupervised Feature Learning,文章的主要目的是討論receptive field size,number of hidden nodes, step-stride以及whitening在對卷積網絡模型的影響。同時,單層網絡中,作者用sparse auto-coding,RBM, k-means和GMM四種模型提取特征,最后得到的結果是 k-means 的結果是最好的,文章提供了對應的代碼利用k-means在單層網絡中提取特征分類。試驗中用到的數據庫是CIFAR。可以在這個網站下載http://www.cs.toronto.edu/~kriz/文章的代碼可以去NG的主頁下載:http://ai.stanford.edu/~ang/papers.php。
??? 由于文章只是單純的以實驗的形式分析receptive field size,number of hidden nodes, step-stride以及whitening對網絡的影響,并無數學分析過程,涉及到k-means的知識可以去看我前面的博文http://www.cnblogs.com/txg198955/p/4072859.html,如果我們用k-means得到了聚類中心,那么對于給定的一個樣本我們對其有兩種特征表示,即文中所講的:
方法一:1-of-k(這種表示是一個向量,距離最近的那一類對應的值為1,其余為0)
???????????????????????????????????????????????????????????????
方法二:給定一個樣本,先求出這個樣本到每一類的平均距離,然后用這個平均距離減去樣本到每一類的距離得到A,若A<=0,則取0,否則取A。代碼中用到的就是這種方法
???????????????????????????????????????????????????????????????
?
??? 好了,知道了這些,就可以對這幾個影響因素進行分析了。文章給出的分析結果如下:
??? effect of? Number of whithening:對于sparse auto-coding和RBM,whithening的影響不是很大,在選取100個特征的情況下,效果還是很明顯,但是選取較多的特征后,效果就不明顯了。但是對于k-means,whithening的影響就非常明顯了,這可能是k-means不具備處理特征之間的相關性的原因。具體效果如下圖所示:
??????????????????????????????
???? effect of? Number of features: 作者用k-means分別選取100,200,400,800,1200,1600個特征進行測試,得到的結論是特征越多效果越好,1600個特征點時,正確率為79.6%,4000個的時候為97.21%。所以理論上特征越多效果越好,不過特征越多計算的開銷就越大,這個自己把握就是了。
???? effect of stride: 文中指出,stride=1的時候效果最好,隨著stride不斷增大,效果會越來越差。文中對此也有說明,stride越小則更多的samples會歸到pooling中,特征的重復就更多
理論上,特征重復越多效果就越好。
??????????????????????????????????????????????????? ????????
??? effect of receptive field size:文中指出如果“receptive field”太大,則包含的特征就會有冗余。比如一個“receptive field”會包含多個nonlinear feature-edges。如果“receptive field”太小,則pooling處理的樣本會增多,這樣stride也必須小。
??? 下面是我對代碼解讀的一個分析,畫成圖幫助大家理解:
????????????????????????????????????????????????????