論文分享 《DeepCluster》
論文分享
作者:李彥霖
編輯整理:蘿蔔兔
聚類(Cluster) 是一種經典的無監督學習方法,但是鮮有工作將其與深度學習結合。這篇文章提出了一種新的聚類方法DeepCluster,將端到端學習與聚類結合起來,同時學習網路的參數和對網路輸出的特徵進行聚類。作者將DeepCluster成功應用到大規模數據集和一些遷移任務上,性能超過了當前state of art的無監督工作。表明結合簡單的聚類演算法,無監督方式也可以學習到很好的特徵。
背景
預訓練的卷積模型在各類任務中都發揮了極大的作用,比如目標檢測、語義分割,這些預訓練模型提取了一些很好通用的特徵,可以應用於不同的任務上。在這個過程中ImageNet起到了很好的助推,雖然ImageNet含有100萬+的圖片,但是在實際中這個數量還是很小的,並且ImageNet的多樣性不夠。如何去處理更大規模的無標籤數據,需要一種有效無監督學習的方法。
Method
框架
本文提出了一種將聚類與深度結合的方法,這種方法可以學習到一些有用的通用特徵,這個框架如下圖所示,整個過程包含對特徵進行聚類,然後基於聚類的結果作為偽標籤,更新網路的參數,讓網路預測這些偽標籤,這兩個過程依次進行。這個過程看起來很簡單,但能夠取得比以往無監督方法更好的性能。
用數學公式表達整個過程就是下面兩個公式。第一個公式就是通過聚類產生偽標籤,第二個公式是計算基於偽標籤的損失值,然後更新網路參數。
避免平凡解
上述交替聚類和模型更新這種方式容易使網路找到一些取巧的方式,從而得到一些無意義的結果。
Empty clusters
具體來講,使用模型來預測偽標籤,可能使得網路產生的特徵經過聚類都位於某個簇心周圍,而使得其他簇心沒有樣本,這個問題是由於沒有限制某個簇心不能沒有樣本。一個解決方法是限制每個簇心最少的樣本數,這需要計算整個數據集,代價太高;另一種方式是當某個簇心為空時,隨機選擇一個非空的簇心,在其上加一些小的擾動作為新的簇心,同時讓屬於非空簇心的樣本也屬於新的簇心。
Trivial parametrization
另外一個問題是大量的數據被聚類到少量的幾類上,一種極端場景是被聚類到一類上,這種情況下網路可能對於任意的輸入都產生相同的輸出。解決這個問題的方法是根據類別(或偽標籤)對樣本進行均勻採樣。
實現細節
結構:AlexNet,使用BN代替LRN;VGG16+BN。
訓練數據:ImageNet;數據使用了一個基於Sobel的運算元進行處理去除了顏色信息
優化:聚類的時候使用center crop的樣本特徵,訓練模型時使用數據增強(左右翻轉、隨機大小和長寬比的裁剪),其他訓練都是常見的配置。另外聚類時使用了PCA降維到256維。
實驗
Preliminary study
實驗部分首先來看隨著訓練過程的進行DeepCluster的一些變化。這裡採用NMI(Normalized Mutual Information)來度量兩個隨機變數的相互依賴性。比如當兩個隨機變數完全獨立,直到其中一個對推斷另一個不提供任何信息,NMI值也為0。
下面來看簇心與圖片真實標籤(Fig 2(a))的關係,從Fig 2(a)可以看出簇心與label之間的依賴程度隨著訓練過程越來越高,表明特徵逐漸地包含了圖片類別的信息。
再來看第t-1epoch的簇心與第t epoch的簇心的關係(Fig 2(b)),從Fig 2(b)可以看出NMI在逐漸升高,表明簇心逐漸趨於穩定。但是最後NMI飽和值小於0.8,表明每個epoch都有一批樣本在頻繁的變換歸屬的簇心。
最後看一下選擇不同的K對精度的影響(Fig 2(c)).
基於激活值的線性分類
使用不同的卷積層特徵訓練一個線性分類器,在ImageNet 和 Places數據集上進行實驗,結果在下表中。在ImageNet上,DeepCluster在conv2 - conv5層的性能都不同幅度的超過了其他方法。
在數據集Pascal VOC 2007上實驗
將使用DeepCluster方法提取的特徵應用到數據集Pascal VOC 2007上,比較了不同任務下的性能,包括圖像分類,目標檢測,語義分割,實驗結果如下,可以看出DeepCluster在三個任務上都有不同程度的提升。
討論
上面的實驗都是基於ImageNet 和 AlexNet結構,下面來對比下使用不同數據集,不同結構下的結果。
ImageNet versus YFCC100M
ImageNet是一個面向目標的分類,它每個類別的分布相對均勻,DeepCluster對於這種情況是比較適應的,並且聚類的數量與ImageNet的類別數量相匹配。為了衡量這種數據分布的影響,從YFCC100M中隨機選100萬張圖片來做預訓練,基於hashtag的統計表明這批數據不均勻。基於ImageNet 和 YFCC 100M的預訓練的特徵用在不同的任務上的性能。可以看出DeepCluster對於數據分布是魯棒的,能夠得到一些較好的通用特徵。
AlexNet versus VGG
在監督學習中,越深的網路往往有更好的性能,我們希望DeepCluster也有類似的效果。將在ImageNet訓練得到的特徵用於Pascal VOC 2007目標檢測上,可以看出VGG-16 能夠取得比AlexNet 更好的性能。
總結
本文提出了一種簡單有效的無監督方法,這種無監督的預訓練方法也能夠學習很好的通用特徵,使用這些特徵在transfer task上的性能越來越接近監督學習的方式。
參考文獻:
1. Caron, Mathilde, et al. "Deep Clustering for Unsupervised Learning of Visual Features." arXiv preprint arXiv:1807.05520 (2018).
TAG:極驗 |