目錄
傳統的聚類演算法可以分為劃分式聚類演算法(例如K-means),基於圖的聚類演算法(例如譜聚類),基於層次的聚類演算法等[1][2]。
傳統的聚類演算法應用最廣泛的兩種演算法:K-means聚類和譜聚類。
K-means聚類通過確定簇心,並計算各個資料點到簇心的距離,來劃分類別的歸屬。
譜聚類是最流行的聚類演算法之一,它的實現簡單,而且效果往往勝過傳統的聚類演算法,如K-means。它的主要思想是把所有資料看作空間中的點,這些點之間用帶權重的邊相連,距離較遠的點之間的邊權重較低,距離較近的點之間邊權重較高,通過對所有資料點和邊組成的圖進行切圖,讓切圖後不同子圖間邊權重和儘可能低,而子圖內邊權重和儘可能高來達到聚類的目的[3]。
然而傳統的聚類演算法對於高維資料集很難達到理想的聚類效果。例如,譜聚類演算法對於高維資料集,會需要很高的記憶體計算消耗,在實際的大資料集聚類中不適用。雖然目前也有相關方法對原始高維資料執行降維,但是相關降維方法只能對線性資料執行降維處理,而不能夠對原始高維資料進行非線性關係對映處理。針對該問題,基於深度學習的聚類演算法在近些年引發了眾多學者的研究興趣。
深度聚類的核心:可以視為特徵表示的預訓練+微調。
預訓練:採用深度神經網路(例如卷積自動編碼器),將原始高維資料,對映為一個低維的特徵表示。
微調:通過KL散度損失[4]、K-means損失[5]、子空間損失[6]和交叉熵損失[7]等,對預訓練獲取的表示進行微調,使之在聚類過程中更加具有判別性。
本文主要記錄自己閱讀的三篇關於深度聚類的問題,分別是ICML2016, ICML2019, CVPR2021。其中ICML2016算是深度聚類領域的開創性文章,ICML2019則是為了解決譜聚類方向的一個比較有意思的文章,CVPR2021則是當前採用偽標籤執行半監督分類的最新聚類文章。
此處推薦一個關於聚類方向記錄最新頂會文章和開放原始碼的GitHub倉庫(目前已累計1.1k個Star)
1 深度嵌入聚類(ICML, 2016)
1.1 動機
傳統的基於距離(distance functions)和組(grouping algorithms)劃分的聚類演算法在實際場景中被廣泛應用。然而,很少有工作聚焦於採用學習的表示執行聚類。
痛點分析:
1) 直接採用K-means等傳統基於距離度量的距離演算法,在原始畫素高維影像資料集上計算歐式距離不夠高效,即當維度很高時,計算非常耗時;
2) 傳統的先降維後聚類的演算法,只能對原始資料執行線性嵌入學習,導致很多重要特徵丟失;
3) 譜聚類演算法雖然能夠在高維資料集中很好地執行聚類,但是當資料集變大時,其計算特徵矩陣時的記憶體和運算資源會暴增。
1.2 貢獻
針對傳統聚類演算法不能很好地對高維大資料執行聚類,本文提出了一種深度嵌入聚類演算法,能夠採用深度神經網路同時學習特徵表示和執行聚類。主要貢獻可以分為以下三點:
1) 聯合優化深度嵌入特徵表示和聚類分配結果
2) 提出了一種新穎的迭代細化的軟標籤
3) 在高維大資料集上的聚類實驗表明,本文提出的DEC演算法具有最先進的準確率和執行速度
本文最大的亮點:
採用KL散度損失函式,來衡量微調過程中表示的軟標籤,從而使得最終的聚類效果得到提升。該方案的初衷是:深度神經網路引數的學習一般是依靠有監督的標籤來指導學習,而在無監督聚類過程中,則不能使用標籤來指導網路的引數更新。因此,本文通過KL散度損失函式來指導網路引數的更新。
DEC (Deep Embedding Clsuting)模型的框架如下圖:
本文模型的思路:
1) 採用encoder-decoder的自動編碼器預訓練,將原始的MNIST 784維非線性對映為10維的特徵表示;
2) 採用預訓練的特徵表示輸入到K-means中執行聚類,得到一組簇中心初始化聚類的簇;
3) 採用初始化的簇結合預訓練的特徵表示,採用KL散度損失函式對Encoder網路引數進行微調,旨在學習一組更加具有判別性的表示。
軟標籤的概率計算和分配公式如下:
即對每個資料點,計算一個概率q,用於衡量當前樣本屬於不同簇的概率。
接著,依據軟標籤概率p,結合初始化設定的目標分佈p,採用KL散度損失來衡量微調的聚類效果,具體公式如下:
最後,通過反向傳播演算法,對初始化設定的簇中心u和初始化的特徵表示z進行微調優化,其反向傳播更新的公式如下:
1.3實驗分析
本文采用的資料集資訊如下:
實驗結果如下:
分析表3中的AE+k-means和表2中的K-means聚類結果可知,本文演算法相比傳統譜聚類演算法取得較大提升的地方在於採用AE(自動編碼器)能夠學習到一組很好的特徵表示,而採用AE+DEC的微調的提升幅度在MNIST上只有3%左右。
此外,本文實驗的最大亮點在於對聚類簇中心和表示進行了視覺化,來解釋本文軟標籤的實際作用,我認為該實驗基本是為本文的實驗結果可解釋性方面提升了一個臺階,具體如下圖:
上圖X軸表示軟標籤q的概率值,Y軸表示梯度的更新幅度值。預設是q越大,越靠近簇中心數字5,相關手寫的影像數字5也越規範清晰,並且梯度更新幅度也越大。反之,q越小,手寫數字5越像數字8,並且所佔梯度更新值越小,即越可能被認定為數字8。
1.4 我的想法
上述模型的方法存在一個較嚴重的問題:最終模型的聚類結果和學習的特徵表示初步聚類效果有較大的關聯關係。即如果原始的特徵表示聚類效果不理想,最終的聚類效果提升不會太大。另外,對於CIFAR-10等其它影像資料集,本文的自動編碼器不能夠提取到理想的差異性表示。
此外,我自己對原文網上開源的Pytorch復現版本,採用縮小版的MNIST資料集執行聚類時,發現最終的聚類效果要比採用原始完整的MNIST資料集差很多(PS: 資料集縮小幅度越大,聚類效果下降的越多)。初步的原因推測:和自動編碼器結構和引數的設定有較大關係,即原文的自動編碼器結構和引數是經過精細化調參後設定的,但其並不具備一般性,即該模型的引數具有較大的偏見性。初步的實驗程式碼見連結:程式碼
雖然本文存在上述問題,但是本文在寫作,實驗和創新點方面可以被認為是深度聚類研究方面最有代表性的一篇文章,並且基本是目前所有最新關於深度聚類文章實驗中的baseline方法。
2 神經協同子空間聚類(ICML, 2019)
程式碼:已發郵件詢問作者,但是未得到回覆,估計是沒有公開版本原始碼。
2.1 動機
子空間聚類是從高維空間中部分空間維度進行特徵判別性的搜尋,從而將原始的高維資料劃分為認定的K個簇。已有的工作需要依賴譜聚類演算法,導致在大資料集上的執行和記憶體消耗較大。
痛點分析:
1) 子空間聚類一般需要構造親和力(affinity)矩陣,然而其在大資料集上的構建代價很高。一般需要O(n^2)記憶體,O(kn^2)計算複雜度,其中k是簇的個數,n是資料點個數;
2) 譜聚類一般需要對原始資料矩陣計算奇異值矩陣(SVD),然而其在大資料集上計算獲取SVD是苛刻的,即計算代價很高。
2.2 貢獻
為了避免在大資料集上直接計算獲取親和力矩陣,並繞過譜聚類演算法執行聚類操作,本文提出一種神經協同子空間聚類演算法,主要貢獻如下:
1) 為了提高子空間聚類的可擴充套件性,本文將子空間聚類變為了一個分類問題,從而能夠去除譜聚類導致高計算量的問題;
2) 為了避免直接採用全部資料計算親合力矩陣,本文通過訓練的分類器,結合batch分組訓練,能夠有效降低計算親和力矩陣的時間和記憶體消耗;
3) 通過分類器學習的親和力矩陣,聯合自我表示層獲取的親和力矩陣,進行協同優化,使得分類部分能夠改進自我表達部分建立一個更好的親和力矩陣,能夠對含噪聲和異常的資料具有更高的魯棒性,從而提高最終的聚類效果。
本文創新點最大的亮點:
分類模組能夠提取更加抽象和鑑別的特徵,而自我表示模組能夠捕獲相似樣本間的聯絡,能夠提高對噪聲和異常資料點的聚類效果。具體模型框架如下圖:
上圖中Ac表示分類模組獲取的消極親和力矩陣,其計算方式如下:
採用Softmax對Encoder的隱藏層表示執行分類,其在概率大的認定為目標簇,而此處的消極親和力是指哪些概率極低,即很大可能不屬於對應目標簇的分類結果,即概率越低標記的顏色越接近黑色,具體分類演示如下圖:
上圖中的As表示採用Encoder學習的特徵表示Z和ZC通過子空間聚類獲取的積極親和力矩陣。其顏色越接近白色,表示概率越大,越屬於對應的簇。該矩陣返回哪些無限接近白色的資料點。其計算的公式如下所示:
本文通過協同優化計算Ac中大概率不屬於某個簇的資料loss,和As中大概率屬於某個簇的資料loss,來執行聚類,從而提高最終的聚類效果。協同優化的Loss定義如下:
最後,本文通過子空間聚類損失聯合協同選取親和力矩陣中資料點Loss執行最終的聯合優化,具體公式和演算法如下:
2.3 實驗分析
本文采用了MNIST, Fashion-MNIST和Stanford Online Products三種資料集執行了聚類分析,並和DEC等深度聚類演算法進行對比。具體結果如下:
由表1和表2可以,相比DEC,本文提出的聚類演算法效果要高很多。
2.4 我的想法
本文的創新點和問題分析比較容易理解,但是本文沒有公開版的原始碼。另外,本文的實驗部分做的有些簡單,只是從最終的聚類結果效能進行對比分析,對於其採用的分類模組和自我表達模板獲取的親和力矩陣訓練的loss作用及核心原理沒有進行視覺化分析,導致讀者很難對本文的創新點進行深入理解(PS:即只看聚類結果,大概率只能從黑盒理論的視角來對本文的模型進行分析和理解)。
3 基於魯棒學習的改進的無監督影像聚類 (CVPR, 2021)
3.1 動機
無監督影像聚類,經常會出現錯誤的預測結果和過於自信的結果。
痛點分析:
1) 深度神經網路如果在初始化時,相關資料點被認定為錯誤的簇時,隨著訓練的進行,會出現錯誤累積傳播的現象,從而導致過於自信的錯誤預測結果。
2) 現有的半監督聚類演算法[8](ICLR,2020),直接採用原始獲取的偽標籤作為ground-truth值,導致容易出現次優結果。
3.2 貢獻
本文受到魯棒學習(PS:關於魯棒學習的概述,可以見參考資料[9])的啟發,提出了一種從含噪聲和錯誤分類結果樣本中提取偽標籤的聚類方法。主要貢獻如下:
1) 通過已存在的聚類演算法的聚類結果結合再訓練能夠避免過於自信的預測結果;
2) 採用本文魯棒無監督學習獲取的偽標籤指導聚類演算法,能夠有效提高現有半監督分類聚類演算法的最終聚類效果;
3) 本文的消融實驗表明,本文提出的三種基於自信度量、基於基準度量和基於混合機制的乾淨樣本選擇機制,能夠很好地緩解噪聲樣本的影響。
本文最大的亮點:通過魯棒學習的思想,把原始的聚類偽標籤結果,劃分為乾淨樣本集和不乾淨樣本集。然後,通過乾淨樣集指導半監督分類的聚類演算法執行聚類,從而提高最終的聚類效果。具體如下圖:
乾淨樣本的不乾淨樣本的選擇機制如下圖:
本文提出了三種機制,用於選擇乾淨樣本:
1) Confidence-based strategy
採用無監督指導的分類器分類結果來判定,即分類的概率大於閾值時,認定為乾淨樣本。
2) Metric-based strategy
採用Encoder獲取的嵌入表示,輸入到兩個K-NN中執行分類,如果兩個分類結果一致,則認定為乾淨樣本。
3) 結合1)和2)方法,選取交集為乾淨樣本
本文的魯棒學習機制,通過對標籤加入魯棒的噪聲,具體如下所示:
最後,通過定義的損失函式來優化選取乾淨樣本和不乾淨樣本集,具體如下:
3.3 實驗分析
本文實驗採用了CIFAR10, CIFAR100和ImageNet-50三種影像資料集執行了聚類實驗,並結合半監督分類思想的TSUC和SCAN聚類演算法執行了聚類,可以看出本文學習的偽標籤能夠較大幅度提高最終的聚類效果。
3.4 我的想法
本文最大的貢獻在於表明了DEC未探討和挖掘的原始資料包含噪聲和聚類結果中容易出現過於自信的預測結果問題,並提出了本文的接近方案,從而進一步提升深度聚類效果。針對該問題,本文提出了魯棒的無監督聚類演算法來學習一組更加具有判別性的標籤。
另外,本文的工作基礎是一篇ICLR2020文章,該文章也有原始碼,具體請參考文獻[8]。
4 擴充衍生
此處,簡單介紹兩篇最新的聚類文章,也是我後續計劃深入看的文章。
1)arXiv 2021
簡介:本文也是探討採用偽標籤進行聚類的文章,其目標在於學習一組更加具有判別性的偽標籤,但是該文章的路線好像是和上述介紹的CVPR2021不一樣。
2)AAAI 2021
簡介:本文采用對比學習的思想,對影像上的高維資料集執行聚類。通過最大化積極組內點的相似度,並最小化消極組內點的相似度,從而提高最終的聚類效果。該思路,我初步感覺和本文重點提到的ICML 2019的協同子空間聚類演算法有些類似。
參考文獻
[1] “常用聚類演算法綜述,” 知乎專欄. https://zhuanlan.zhihu.com/p/78382376 (accessed Apr. 14, 2021).
[2] “用於資料探勘的聚類演算法有哪些,各有何優勢? - 知乎.” https://www.zhihu.com/question/34554321 (accessed Apr. 14, 2021).
[3] “譜聚類(spectral clustering)原理總結 - 劉建平Pinard - 部落格園.” https://www.cnblogs.com/pinard/p/6221564.html (accessed Apr. 14, 2021).
[4] J. Xie, R. Girshick, and A. Farhadi, “Unsupervised Deep Embedding for Clustering Analysis,” Nov. 2015, Accessed: Jan. 25, 2021. [Online]. Available: https://arxiv.org/abs/1511.06335v2.
[5] Q. Ma, J. Zheng, S. Li, and G. Cottrell, “Learning Representations for Time Series Clustering,” Dec. 2019.
[6] T. Zhang, P. Ji, M. Harandi, W. Huang, and H. Li, “Neural Collaborative Subspace Clustering,” in International Conference on Machine Learning, May 2019, pp. 7384–7393, Accessed: Apr. 05, 2021. [Online]. Available: http://proceedings.mlr.press/v97/zhang19g.html.
[7] S. Park et al., “Improving Unsupervised Image Clustering With Robust Learning,” arXiv:2012.11150 [cs], Mar. 2021, Accessed: Apr. 05, 2021. [Online]. Available: http://arxiv.org/abs/2012.11150.
[8] D. Gupta, R. Ramjee, N. Kwatra, and M. Sivathanu, “Unsupervised Clustering using Pseudo-semi-supervised Learning,” presented at the International Conference on Learning Representations, Sep. 2019, Accessed: Apr. 14, 2021. [Online]. Available: https://openreview.net/forum?id=rJlnxkSYPS.
[9] 哈工大SCIR, “魯棒表示學習簡述,” 微信公眾平臺. http://mp.weixin.qq.com/s?__biz=MzU2OTA0NzE2NA==&mid=2247554282&idx=3&sn=b07b18f25c000ed0143904d42257e77f&chksm=fc86f5f9cbf17cef931bf666091b485851475fec9b861269aa6742165577741e5558daa378e1#rd (accessed Apr. 15, 2021).