單層非監督學習網絡分析

單層非監督學習網絡分析

轉自: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-encoderssparse RBMs  K-means clusteringGaussian mixtures。本文還分析了4個影響網絡性能的因素:感受野大小receptive field size、隱層節點數(或者要提取的特徵數)、卷積步長(stride)和白化whitening

       最後作者得出了下面幾個結論:

1、網絡中隱含層神經元節點的個數(需要學習的特徵數目),採集的密度(也就是convolution時的移動步伐,也就是在什麼地方計算特徵)和感知區域大小對最終特徵提取效果的影響很大,甚至比網絡的層次數,deep learning學習算法本身還要重要。

2Whitening在預處理過程中還是很有必要的。

3、如果不考慮非監督學習算法的選擇的話,whitening large numbers of featuressmall 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維的特徵向量。在這裏,我們對比分析了四種不同的非監督學習算法:

1sparse auto-encoders

         我們用BP去訓練一個K個隱藏節點的自動編碼機,代價函數是重構均方誤差,並存在一個懲罰項。主要限制隱藏節點,使其保持一個低的激活值。算法輸出一個權值矩陣WKxN維)和一組基BK維),特徵映射函數爲:f(x)=g(Wx+b)。這裏g(z)=1/(1+exp(-z))sigmoid函數,對向量z的每個元素求值。

         在這裏,存在很多參數需要調整,例如權值衰減係數和目標激活值。針對特定的感受野大小,這些參數需要通過交叉驗證方法來選擇。

 

2sparse restricted Boltzmann machine

         RBM是一個無向圖模型,包含K個二值隱層隨機變量。稀疏RBMs可以通過contrastive divergence approximation(對比分歧近似)方法來訓練。其中的稀疏懲罰項和自動編碼機一樣。訓練模型還是輸入權值矩陣W和基b,我們也可以使用和上面的自動編碼機同樣的特徵映射函數。但它的訓練方法和自動編碼機是完全不一樣的。

 

3K-means clustering

         我們用K-means聚類算法來從輸入數據中學習K個聚類中心c(k)。當學習到這K個聚類中心後,我們可以有兩種特徵映射f的方法。第一種是標準的1-of-K,屬於硬分配編碼:

       這個fk(x)表示樣本x的特徵向量f的第k個元素,也就是特徵分量。爲什麼叫硬分配呢,因爲一個樣本只能屬於某類。也就是說每個樣本x對應的特徵向量裏面只有一個1,其他的全是0K個類有K箇中心,樣本x與哪個中心歐式距離最近,其對應的位就是1,其他位全是0,屬於稀疏編碼的極端情況,高稀疏度啊。

第二種是採用非線性映射。屬於軟編碼。

       這裏zk=||x-c(k)||2u(z)是向量z的均值。也就是先計算出對應樣本與k個類中心點的平均距離d,然後如果那些樣本與類別中心點的距離大於d的話都設置爲0,小於d的則用d與該距離之間的差來表示。這樣基本能夠保證一半以上的特徵都變成0了,也是具有稀疏性的,且考慮了更多那些距類別中心距離比較近的值。爲什麼叫軟分配呢。軟表示這個樣本以一定的概率屬於這個類,它還以一定的概率屬於其他的類,有點模糊聚類的感覺。而硬則表示這個樣本與哪個類中心距離最近,這個樣本就只屬於這個類。與其他類沒有任何關係。

 

4Gaussian mixtures

         高斯混合模型GMMK個高斯分佈的混合來描述了輸入數據的密度分佈。GMMs可以通過EM算法來訓練。一般來說需要先運行一次K-means算法來初始化GMMK個高斯分量。這樣可以避免其陷入較差的局部最小值。這裏的特徵映射f把每個輸入樣本x映射爲一個後驗概率:

       ∑k是對角協方差矩陣,Φk是由EM學習得到的每個類的先驗概率。其實這裏和上面k-means的軟分配有點像。對每個樣本x都要計算其屬於每一個類別j的概率。然後用這些後驗概率來編碼對應x的特徵向量。

 

四、特徵提取和分類

       通過上面的步驟,我們就可以得到了將一個輸入patch xN維)映射到一個新的描述y=f(x)K維)的函數f。這時候,我們就可以用這個特徵提取器來提取有標籤圖像數據的特徵來訓練分類器了。

這裏的描述到處都是,就不囉嗦了,可以參考UFLDL中的“卷積特徵提取”和“池化”。

 

五、關於白化

       對稀疏自動編碼機和RBMs來說,有沒有白化就顯得有點隨意了。當要提取的特徵數較少的時候(隱層節點數少),對稀疏RBMs,白化會有點用。但如果特徵數目很多,白化就顯得不那麼有用了。但對於聚類的算法來說,白化是一個關鍵的必不可少的預處理步驟,因爲聚類算法對數據的相關性是盲目的。所以我們需要先通過白化來消去數據的相關性再聚類。可以看出whitening後學習到更多的細節,且whitening後幾種算法都能學到類似gabor濾波器的效果,因此並不一定是deep learning的結構纔可以學到這些特性。

 

本文還參考了:Deep learning:二十(無監督特徵學習中關於單層網絡的分析)

發佈了7 篇原創文章 · 獲贊 13 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章