Deep Learning论文笔记之(三)单层非监督学习网络分析
Deep Learning論文筆記之(三)單層非監督學習網絡分析
zouxy09@qq.com
http://blog.csdn.net/zouxy09
?
???????? 自己平時看了一些論文,但老感覺看完過后就會慢慢的淡忘,某一天重新拾起來的時候又好像沒有看過一樣。所以想習慣地把一些感覺有用的論文中的知識點總結整理一下,一方面在整理過程中,自己的理解也會更深,另一方面也方便未來自己的勘察。更好的還可以放到博客上面與大家交流。因為基礎有限,所以對論文的一些理解可能不太正確,還望大家不吝指正交流,謝謝。
?
?????? 本文的論文來自:
An Analysis of Single-Layer Networks in Unsupervised Feature Learning, Adam Coates, Honglak Lee, and Andrew Y. Ng. In AISTATS 14, 2011。在其論文的demo_code。不過我還沒讀。
???????? 下面是自己對其中的一些知識點的理解:
?
《An Analysis of Single-Layer Networks in Unsupervised Feature Learning》
?????? 最近,很多的研究都聚焦在從無標簽數據中學習特征的算法,采用逐漸復雜的非監督算法和深度模型在一些基準的數據庫中還得到了很好的效果。本文說明了一些簡單的因素,例如模型隱層的節點數,對要達到高的性能,要比學習算法的選擇或者模型的深度更重要。本文主要是針對一個隱含層的網絡結構進行分析的,分別對比了4種網絡結構, sparse auto-encoders、sparse RBMs 、 K-means clustering和Gaussian mixtures。本文還分析了4個影響網絡性能的因素:感受野大小receptive field size、隱層節點數(或者要提取的特征數)、卷積步長(stride)和白化whitening。
?????? 最后作者得出了下面幾個結論:
1、網絡中隱含層神經元節點的個數(需要學習的特征數目),采集的密度(也就是convolution時的移動步伐,也就是在什么地方計算特征)和感知區域大小對最終特征提取效果的影響很大,甚至比網絡的層次數,deep learning學習算法本身還要重要。
2、Whitening在預處理過程中還是很有必要的。
3、如果不考慮非監督學習算法的選擇的話,whitening、 large numbers of features和small stride都會得到更好的性能。
4、在以上4種實驗算法中,k-means效果竟然最好。因此在最后作者給出結論時的建議是,盡量使用whitening對數據進行預處理,每一層訓練更多的特征數,采用更密集的方法對數據進行采樣。
?
一、概述
??????? 很多特征學習系統的一個主要缺點就是他們的復雜度和開銷。另外,還需要調整很多參數(hyper-parameters)。比如說學習速率learning rates、動量momentum(好像rbm中需要用到)、稀疏度懲罰系數sparsity penalties和權值衰減系數weight decay等。而這些參數最終的確定需要通過交叉驗證獲得,本身這樣的結構訓練起來所用時間就長,這么多參數要用交叉驗證來獲取時間就更多了。所以本文得出的結論用kmeans效果那么好,且無需有這些參數要考慮。(對于k-means的分析,見“Deep Learning論文筆記之(一)K-means特征學習”)。
?
二、非監督特征學習框架:
1、通過以下步驟去學習一個特征表達:
?????? 1)從無便簽的訓練圖像中隨機提取一些小的patches;
?????? 2)對這些patches做預處理(每個patch都減去均值,也就是減去直流分量,并且除以標準差,以歸一化。對于圖像來說,分別相當于局部亮度和對比度歸一化。然后還需要經過白化);
?????? 3)用非監督學習算法來學習特征映射,也就是輸入到特征的映射函數。
2、學習到特征映射函數后,給定一個有標簽的訓練圖像集,我們用學習到的特征映射函數,對其進行特征提取,然后用來訓練分類器:
?????? 1)對一個圖像,用上面學習到的特征來卷積圖像的每一個sub-patches,得到該輸入圖像的特征;
?????? 2)將上面得到的卷積特征圖進行pooling,減少特征數,同時得到平移等不變性;
?????? 3)用上面得到的特征,和對應的標簽來訓練一個線性分類器,然后在給定新的輸入時,預測器標簽。
?
三、特征學習:
??????? 對數據進行預處理后,就可以通過非監督學習算法去學習特征了。我們可以把非監督學習算法看成一個黑盒子。它接受輸入,然后產生一個輸出。可以表示為一個函數f:RN->RK,把一個N維的輸入向量x(i)映射為一個K維的特征向量。在這里,我們對比分析了四種不同的非監督學習算法:
1)sparse auto-encoders
???????? 我們用BP去訓練一個K個隱藏節點的自動編碼機,代價函數是重構均方誤差,并存在一個懲罰項。主要限制隱藏節點,使其保持一個低的激活值。算法輸出一個權值矩陣W(KxN維)和一組基B(K維),特征映射函數為:f(x)=g(Wx+b)。這里g(z)=1/(1+exp(-z))是sigmoid函數,對向量z的每個元素求值。
???????? 在這里,存在很多參數需要調整,例如權值衰減系數和目標激活值。針對特定的感受野大小,這些參數需要通過交叉驗證方法來選擇。
?
2)sparse restricted Boltzmann machine
???????? RBM是一個無向圖模型,包含K個二值隱層隨機變量。稀疏RBMs可以通過contrastive divergence approximation(對比分歧近似)方法來訓練。其中的稀疏懲罰項和自動編碼機一樣。訓練模型還是輸入權值矩陣W和基b,我們也可以使用和上面的自動編碼機同樣的特征映射函數。但它的訓練方法和自動編碼機是完全不一樣的。
?
3)K-means clustering
???????? 我們用K-means聚類算法來從輸入數據中學習K個聚類中心c(k)。當學習到這K個聚類中心后,我們可以有兩種特征映射f的方法。第一種是標準的1-of-K,屬于硬分配編碼:
?????? 這個fk(x)表示樣本x的特征向量f的第k個元素,也就是特征分量。為什么叫硬分配呢,因為一個樣本只能屬于某類。也就是說每個樣本x對應的特征向量里面只有一個1,其他的全是0。K個類有K個中心,樣本x與哪個中心歐式距離最近,其對應的位就是1,其他位全是0,屬于稀疏編碼的極端情況,高稀疏度啊。
第二種是采用非線性映射。屬于軟編碼。
?????? 這里zk=||x-c(k)||2,u(z)是向量z的均值。也就是先計算出對應樣本與k個類中心點的平均距離d,然后如果那些樣本與類別中心點的距離大于d的話都設置為0,小于d的則用d與該距離之間的差來表示。這樣基本能夠保證一半以上的特征都變成0了,也是具有稀疏性的,且考慮了更多那些距類別中心距離比較近的值。為什么叫軟分配呢。軟表示這個樣本以一定的概率屬于這個類,它還以一定的概率屬于其他的類,有點模糊聚類的感覺。而硬則表示這個樣本與哪個類中心距離最近,這個樣本就只屬于這個類。與其他類沒有任何關系。
?
4)Gaussian mixtures
???????? 高斯混合模型GMM用K個高斯分布的混合來描述了輸入數據的密度分布。GMMs可以通過EM算法來訓練。一般來說需要先運行一次K-means算法來初始化GMM的K個高斯分量。這樣可以避免其陷入較差的局部最小值。這里的特征映射f把每個輸入樣本x映射為一個后驗概率:
?????? ∑k是對角協方差矩陣,Φk是由EM學習得到的每個類的先驗概率。其實這里和上面k-means的軟分配有點像。對每個樣本x都要計算其屬于每一個類別j的概率。然后用這些后驗概率來編碼對應x的特征向量。
?
四、特征提取和分類
?????? 通過上面的步驟,我們就可以得到了將一個輸入patch x(N維)映射到一個新的描述y=f(x)(K維)的函數f。這時候,我們就可以用這個特征提取器來提取有標簽圖像數據的特征來訓練分類器了。
這里的描述到處都是,就不啰嗦了,可以參考UFLDL中的“卷積特征提取”和“池化”。
?
五、關于白化
?????? 對稀疏自動編碼機和RBMs來說,有沒有白化就顯得有點隨意了。當要提取的特征數較少的時候(隱層節點數少),對稀疏RBMs,白化會有點用。但如果特征數目很多,白化就顯得不那么有用了。但對于聚類的算法來說,白化是一個關鍵的必不可少的預處理步驟,因為聚類算法對數據的相關性是盲目的。所以我們需要先通過白化來消去數據的相關性再聚類。可以看出whitening后學習到更多的細節,且whitening后幾種算法都能學到類似gabor濾波器的效果,因此并不一定是deep learning的結構才可以學到這些特性。
總結
以上是生活随笔為你收集整理的Deep Learning论文笔记之(三)单层非监督学习网络分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Deep Learning论文笔记之(二
- 下一篇: Deep Learning论文笔记之(四