【論文閱讀】Deep Clustering for Unsupervised Learning of Visual Features


文章:Deep Clustering for Unsupervised Learning of Visual Features

作者:Mathilde Caron, Piotr Bojanowski, Armand Joulin, and Matthijs Douze

來自於:Facebook AI Research

發表於:ECCV 2018


 

目錄

•相關鏈接

•相關方法介紹

•文章出發點

•文章亮點與貢獻

•方法細節

•實驗結果

•分析與總結


 

相關鏈接

  論文:https://arxiv.org/abs/1807.05520?context=cs


 

 

相關方法介紹

  深度聚類就是將深度學習與聚類相結合,相比於傳統聚類方法,深度聚類較為簡單,網絡結構容易理解,聚類的效果也比大部分的傳統方法要好,通過超參數的調整,往往還能達到更好的效果。

  在此推薦一篇文章:Towards K-means-friendly Spaces: Simultaneous Deep Learning and Clustering,文章地址為:https://arxiv.org/abs/1610.04794.

  這篇文章是我看的第一篇關於深度聚類的文章,這篇文章利用自編碼器(auto-encoder)的方法同時進行網絡的學習和聚類,提出了一種DCN的網絡模型:

 

  網絡由編碼器和解碼器組成,在瓶頸層(bottleneck layer)前的是編碼器,學習輸入數據的潛在特征,將高維特征映射到低維子空間中,輸入給聚類模型進行聚類,類似於傳統的PCA的做法,而解碼器則對特征進行”恢復“,使得特征重構成原始數據,這有利於網絡學習更加重要的特征,忽略一些不重要的特征。自編碼器的方法也成為了深度聚類當中較為常用的方法,當然這種做法也有一些缺陷,容易出現”blue sky problem“, 如果目標與背景大小相差較大,則網絡在學習當中容易忽略目標特征。

  通過這篇文章,讓我對深度聚類有了一個基本認識。這次要分享的論文,更是在深度學習的基礎上將聚類與分類結合起來,用聚類來指導分類,采用這種互學習的思想,提高了聚類與分類的效果,使得網絡能夠更好的應用於其他領域,如:目標檢測、圖像恢復、分割等領域,並取得更好的效果。


 

文章出發點

  作者寫這篇文章的出發點主要有以下幾個:

  1、深度學習的發展使得很多領域都取得了驚人的進步,特別是在圖像分類領域,准確率已經達到超過人類的水平,然而現在通過改變網絡的結構對分類准確率的影響已經越來越小,因此人們把關注點放在擴充數據集上,現有的常見數據集規模相對現在深度學習發展水平來說也是有些不夠的,然而擴充數據集不是一件簡單的事,許多時候需要進行人工的標注,既然有人為的參與就一定會有錯誤的出現,這些錯誤的標注也會成為影響訓練效果的因素。因此使用無監督的方法生成更大的數據集也成為了現在研究的需求。

  2、一些人工設置的特征一般只能在特定的任務取得好效果。

  3、幾乎沒有聚類方法使用端到端的訓練來學習特征,之前聚類方法主要是針對固定特征之上的線性模型而設計的,如果要進行特征的同時學習,模型的效果就會微乎其微。


 

文章亮點與貢獻

  亮點:文章提出的網絡結構將聚類和分類兩個任務結合起來,兩個任務使用同一個網絡,共享網絡的參數,通過聚類得到的結果作為偽標簽(pseudo-labels),提供給網絡的分類器進行訓練,更新網絡的參數。這種互學習的方法有利兩種任務的相互促進,從而各自得到更好的效果。

  貢獻:

  1、可以進行端到端的學習,可以用於任意的標准聚類法方法,如k-means,且不需要過多的額外步驟。

  2、在無監督學習中應用的遷移任務的效果達到了世界先進水平。

  3、在未處理的不均勻的圖像分布上訓練最后的表現依然超過了之前的先進方法。

  4、提供了一個當前關於無監督特征學習的評估標准的討論。


 

方法細節

  網絡結構圖如下所示:

          

  可以看到,網絡結構相對還是比較簡單的,數據從輸入層輸入到CNN中,CNN的結構沒有限制,本篇文章作者主要使用的是AlexNet和VGG16,網絡的輸出分為兩個分支,一個是聚類分支一個是分類的分支,聚類分支將CNN輸出的features輸入到clustering model中進行聚類,這里的clustering model使用的是常見的K-means,分類的分支就是簡單的分類器。兩個分支共享CNN的網絡參數,聚類結果作為偽標簽提供給分類器進行訓練,通過分類的訓練進行反向傳播優化網絡的參數。

  作者還提到,之前的一些基於線性模型的聚類方法是基於固定特征之上的,如果要同時學習特征,那么最后的效果就會很差,如果通過CNN學習特征,並且使用這些特征使用K-means等聚類方法進行聚類,通過網絡的不斷學習,容易陷入平凡解(trivial solution)。所為平凡解,一個簡單的解釋就是我們在解一個簡單的線性方程Ax=0時,如果不進行限定,就有一個零解的情況。反映在聚類當中就是,所有的學習到的特征都為0,最終都被歸為一類,它們離聚類中心的距離也都時最小,都為0。作者提出了相應的解決方法,這在后米面會介紹到。

  損失函數分為兩類:(1)網絡損失;(2)聚類損失

  1、網絡損失

  

  網絡的損失也是比較簡單的,上文中提到,網絡的訓練是通過分類的分支來進行的,所以該損失也是我們常見的分類損失。

  其中,ƒΘ(x)表示CNN在網絡參數Θ下對輸入x進行的特征映射,gw(·)表示分類器對特征進行分類的結果,l(·;y)則表示多項式邏輯損失(multinomial logistic loss),常用於一對多的分類任務上,也即我們所熟知的softmax損失。

  2、聚類損失

  

 

  該聚類損失就是我們常見的K-means的損失函數,這篇文章也就是使用的K-means來做聚類,ƒΘ(xn)已經提到過是通過CNN所獲得的特征表示,C是聚類中心矩陣,文中它應該是個d * k為的矩陣,d為特征的維度,k為中心個數,yn則表示樣本n屬於哪一個簇,是0和1組成的k維列向量,舉個例子,如果樣本n屬於第0個簇,則y= [1, 0, 0, 0.......0]T

  在前文中已經提到了特征和聚類同時進行學習會產生平凡解的問題,針對這個問題,作者提出了一些解決方法:

  1、避免平凡(無效)解

  當一個簇變空時,隨機選擇一個非空簇,並使用帶有小隨機擾動的質心作為空簇的新質心。 然后,將屬於非空簇的點重新分配給兩個結果簇。

  2、避免平凡(無效)參數

  如果輸入的數據分布不均勻,則學習的網絡參數θ則會專門去區分它們,參數θ會導致網絡只有相同的輸出。解決方法是對輸入數據進行重新采樣使得分布均勻,或使用偽標簽,這等價於公式(1)中1/N起到對輸入對損失函數的貢獻進行加權。

其他細節

  訓練集:ImageNet

  基礎網絡框架:文章主要使用了兩種網絡框架,並且做了實驗對比了文中方法在兩個網絡框架上的性能,分別是:AlexNet(移除局部響應規范化層,使用BN);VGG16(with BN);在數據輸入網絡前使用了基於Sobel filters的固定的線性變換移除顏色,增加局部對比度。  

  優化:
  在網絡訓練上:中央圖像裁剪以獲得更好的特征;數據增強提高訓練效果;dropout(a constant step size);對權重參數使用l2懲罰;使用0.9的動量。
  在聚類過程中:對特征使用PCA 將特征維度降成 256 維,使用l2正則化,使用白化減少特征間的相關性,使得特征具有相同的方差。
  超參數的選擇:使用Pascal VOC的驗證集上的目標分類任務未微調的超參。


 

 實驗

  作者先是比較了自己的方法與其他方法在AlexNet上取出各層特征進行分類的性能:

  

  如上圖所示,“Places labels”,“ImageNet labels”,“Random”分別是在Place數據集、ImageNet數據集與隨機標注的有監督的方法,之后是多個無監督的方法,最后一個是作者自己的方法,分別用了各自的方法在各個層上獲得的特征在兩個數據集上進行分類的效果。可以看到,作者的方法都超過了其他無監督方法,比有監督的方法略低一些,這說明作者的完全無監督的方法,使得網絡獲得的特征進行分類的效果已經接近了有監督方法。還可以看到,作者的方法結果最好的是conv3,往后效果反而下降了,這主要是因為conv3的對於圖像紋理的捕捉要好於conv5,conv5似乎只是簡單的對conv3的紋理特征進行復用,從下圖可以看出:

  

  作者還比較各個方法在PASCAL VOC上進行分類、檢測、分割等任務的效果:

 

  其中FC6-8表示只訓練AlexNet的全連接層6-8的效果,All表示訓練所有的層。可以看到作者的方法比其他無監督的方法效果要好很多,也是接近於有監督的方法。還有一個有意思的現象是,隨機標簽的有監督方法,在所有層上訓練獲得的效果要比只訓練全連接層要提高很多。

  接下來,作者做了一個不同數據集上的對比試驗:

 

  最后,作者做了在不同網絡結構上的效果對比,和在圖像恢復任務上的試驗。按道理說,實驗的效果會根據網絡結構的變化而變化,網絡結構越好最終的效果也越高,作者的實驗也證明了,他的方法確實符合這個規則,也證明了他的模型的魯棒性。


 

總結

  這篇文章提出了一種可擴展的聚類方法,用於無監督的網絡學習,它可以進行端到端的學習,可將網絡得到的特征直接用於聚類,得到的聚類偽標簽提供給分類任務。它是完全的無監督方法,不需要特定的先驗知識,對輸入沒有過多的限制,這使得本方法可以很好的適應於標簽稀缺的領域,該方法可以廣泛應用在多個領域並且能夠取得良好的效果。這篇文章的一大亮點就是應用了多任務學習,互學習的思想,將聚類與分類結合起來,使它們在訓練的過程中相互促進,這也給予了我很大的啟發,以后在研究過程中可以不僅僅只關注一個特定的任務,而是可以將多任務結合起來,進行同時學習,說不定能達到更好的效果。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM