深度聚類演算法敘談

舞動的心發表於2021-05-18

目錄

前言

1 基於自標籤的協同聚類和表示學習(ICLR, 2020)

1.1 動機

1.2 貢獻

1.3 實驗分析

1.4 我的想法

2 無標籤的影像分類學習 (ECCV, 2020)

2.1 動機

2.2 貢獻

2.3 實驗分析

2.4 我的想法

3 基於語義偽標籤的影像聚類 (arXiv, 2021)

3.1 動機

3.2 貢獻

3.3 實驗分析

3.4 我的想法

4 對比聚類 (AAAI, 2021)

4.1 動機

4.2 貢獻

5 通過分割槽最大化信度的深度語義聚類 (CVPR, 2020)

5.1 動機

5.2 貢獻

參考文獻

 


前言

傳統的K-means聚類演算法,對於維度高、數量級大的資料集不能很好地執行聚類,甚至無法得到有效的聚類效果,在實際場景中難以應用。針對上述問題,2016年Deep Embedding Clustering (DEC)[1]深度聚類演算法被提出,從而引領了深度聚類演算法研究的熱潮。

DEC本質上可以看作是一個自動編碼器預訓練獲取低維的特徵表示+無監督學習微調的一個過程。其中,預訓練模型的設計和選擇對下游聚類任務的效能影響很大(PS:關於DEC的細節,以及前期的相關研究動態,建議參考:深度聚類演算法淺談)。針對該問題,近兩年的研究採用了自監督的學習策略,即採用聚類得到的偽標籤來指導深度學習網路學習一個更加具有判別性的特徵表示,從而擺脫模型對預訓練模型的過度依賴。此外,樓主通過已有的論文閱讀,發現在深度聚類演算法的研究領域,其發展趨勢由時間段可以簡單地劃分為以下三點:

1)  以DEC[1]為代表的預訓練+微調的模型

2)  以聚類演算法得到虛擬碼指導深度神經網路進行學習的自監督學習[2] (ECCV, 2018, Deep Cluster)的模型

3)  藉助預訓練表示聚類獲取虛擬碼,採用設計的交叉熵損失執行自監督聚類選取確定性標籤,最後依據確定性標籤指導自監督分類器執行半自監督學習[3][4]的模型

此外,在影像領域的深度聚類演算法,深度神經網路的模型選擇,資料增強策略的選取,都會對下游的聚類任務效能產生較大的影響[5]。如果簡單地將深度聚類演算法遷移到一般化的資料集上執行聚類,需要結合具體問題做具體的策略優化,否則其聚類效能並不能勝任K-means。

本文主要記錄自己最近閱讀的五篇有關深度聚類文章,每篇文章都有提供原始碼,如有同學感興趣, 可以自行去下載相關原始碼分析。

 


1 基於自標籤的協同聚類和表示學習(ICLR, 2020)

原文連結

程式碼

文章審稿打分:3分(Weak Reject),8分(Accept),8分(Accept)

文章審稿意見

1.1 動機

基於深度神經網路的聚類和表示學習是當前的主流方法。然而,簡單地聯合聚類和表示學習會導致最終產生退化的結果。

本文研究的基礎主要是2018年發表在ECCV上的Deep Cluster模型[2]。該模型最小化分類交叉熵並結合K-means演算法提供的偽標籤進行聯合表示和聚類,然而該過程由於K-means提供的偽標籤存在較多錯誤標籤的問題,會導致模型最終產生一個退化的解決方案,並且很多資料點容易被劃分到同一個簇中。

1.2 貢獻

為了解決簡單地採用聯合聚類和表示學習導致下游任務效能退化的問題,本文提出了最大化標籤和輸入資料指引之間資訊的方法(下面給給出論文的理論證明和說明)。該方法的主要貢獻:

1) 證明了將最大化標籤和輸入資料指引之間資訊引入到標準交叉熵最小化問題中,可以被視為一個最優運輸問題,並且能夠在百萬級影像資料中高效地執行;

2) 與ECCV2018文章中單獨最小化交叉熵相比,本文通過最大化標籤和輸入資料指引之間資訊,能夠避免下游任務產生退化解;

3) 相比ECCV2018同時執行無監督分類和K-means聚類, 導致沒有一個明確定義的優化目標,本文方法通過同時優化自標籤和交叉熵損失為下游任務服務,能夠保證模型收斂到(區域性)最優解。

該方法本質是採用最優運輸來實現偽標籤的提取(PS:而ECCV2018則是採用K-means對學習的表示執行聚類獲取偽標籤),並結合標準的交叉熵損失函式指導深度神經網路實現對原始影像資料的表示學習。

關於最優運輸理論的介紹建議參考:最優運輸(Optimal Transfort):從理論到填補的應用

自監督學習的標籤概率,以及其最小化的交叉熵損失函式定義如下:

然而,在完全無監督的情況下,採用公式(1)容易導致退化的解決方案,其容易將所有資料點分配給單個或者任意的標籤進行最小化處理。為了解決該問題,本條提出對偽標籤採用一個後驗分佈q設定,並且為了避免在優化q的過程中出現退化的解決方案,對偽標籤進行了依據簇個數和樣本總數進行平均初始化的約束處理,具體公式和定義如下:

 

 

交叉熵損失結合偽標籤的後驗分佈q執行優化時,很難進行演算法的優化處理。然而,該問題可以被視為一個最優運輸問題,並且能夠被高效地解決。擬定的標籤偽分佈Q,和模型執行無監督分類得到的預測結果P,我們的目標是使之無限接近,那麼在這樣的情形下可以將其視為一個最優運輸問題(PS:這裡的思想,有點類似DEC微調中的P和Q的分佈處理)。本文通過最優運輸理論,對兩個分佈P和Q的定義與推導,將上述公式3可以轉為以下公式5和6,從而變為一個純粹的最優運輸問題:

對於公式(5)的推導,細節可以看下圖的轉換:

最優運輸問題的解可以視為一個線性規劃問題,也可以在多項式時間內被解決。然而,本文的實驗物件達到了百萬計的影像資料集。針對該問題,本文參考NIPS2013年提出的熵正則化思想,採用了一種快速的Sinkhorn-Knopp演算法,從而來求取合理的後驗偽標籤分佈Q。結合最優運輸求取Q的問題定義如下:

通過以上的公式推導,本文通過把定義的後驗分佈Q和backbone學習的交叉熵中的預測分佈P聯合一起的策略,從而達到表示學習和自標籤優化的同步過程。具體步驟如下:

對上述的公式進行進一步的推導,可以得出以下結論:最大化標籤和輸入資料指引之間資訊。

與單獨最小化熵相比,最大化資訊避免了退化解,因為後者在標籤y和索引i之間沒有互資訊。

另外,本文的主要目標是使用聚類來學習良好的資料表示Φ,所以本文還考慮一個多工設定,其中相同的表示在幾個不同的聚類任務之間共享,這可能會捕獲不同的和互補的聚類軸。

1.3 實驗分析

本文模型的主要目的是採用聚類的手段學習一個更好的資料表示,但是其最終的下游任務並不一定是用於做聚類。由於本篇部落格探討和分析聚類問題,所以此處只放出文章中做聚類的無監督分類結果,具體實驗結果如下:

由上述的實驗結果,本文提出採用最優運輸實現對定義的偽標籤分佈Q和交叉熵損失中P進行優化,其在聚類效能上藥明顯優於K-means。

1.4 我的想法

本文最大的亮點在於把擬定的偽標籤分佈Q和最小化無監督分類交叉熵結合了起來,並證明其為一個基本的最優運輸問題,這為深度聚類方向提供一個新的思考方向。另外,通過本文的處理,能夠有效解決簡單地採用K-means演算法提供的偽標籤指導深度神經網路執行自監督分類容易導致下游任務出現退化解的問題。

 


2 無標籤的影像分類學習 (ECCV, 2020)

原文連結

程式碼

2.1 動機

在有監督分類任務中,通過真實標籤能夠指導CNN等backbone學習到更加具有判別性的表示。然而,在現實場景中存在大量無標記的資料。那麼,我們能否在沒有真實標籤的情況下,依據影像的語義資訊進行自動分組呢?

同時,當前已有的基於端到端的深度聚類演算法,通常採用預訓練+微調的思想。然而,這些方法難以避免在微調過程中受到低質量特徵的影響,容易出現不平衡的簇,導致最終出現次優的聚類結果。

2.2 貢獻

為了解決當前端到端深度聚類演算法容易出現次優結果的問題,本文提出了一種兩步法的無監督影像分類演算法。該方法利用了表示方法和端到端學習方法的優點,同時也解決了它們的缺點:

1)  採用一個自監督的pretext任務來獲取一個有意義的語義特徵,並基於特徵相似性挖掘每幅影像的最近鄰,使得提取的語義特徵更加適合語義聚類。相比之下,表徵學習方法要求在學習特徵表示後進行K-means聚類,這被認為會導致聚類退化

2)  採用質量高的特徵來指導聚類的學習,通過這樣處理,能夠使得聚類過程中避免基於低質量特徵來只需聚類,而這樣的問題是在end-to-end方法中常見的問題

3)  另外,本文定義一種基於軟標籤分配的交叉熵損失函式,本文將其稱為SCAN-loss,能夠有效地對每幅影像及其鄰居資料進行分類,從而使得網路能夠產生一致或者具有辨別性的預測結果。

SCAN-loss的定義如下:

 

其中X表示資料集中的樣本,k表示該樣本的最近鄰集合中的樣本。上述公式第二項的目的是為了避免Φη將所有樣本分配給單個叢集。如果概率分佈在叢集C中是提前知道的,該項就可以被KL-divergence所替代。關於最近鄰的示例如下圖所示:

 

本文的演算法主要分為三個步驟:

1)  採用一個pretext任務,尋找對於資料的最近鄰

2)  依據最近鄰,結合SCAN-loss執行聚類

3)  採用聚類獲取的偽標籤,選取確定性或者可信度較高的標籤執行自監督學習,從而進一步提高最終的聚類效果

具體演算法的虛擬碼如下:

2.3 實驗分析

採用K-means對原始的預訓練表示執行聚類,會出現簇中心不穩定的情況,表1的實驗結果可以反映出該假設:聚類的ACC標準差最大,並且為5.7。

另外,可以發現,通過採用SimCLR資料增強手段並結合SCAN-Loss能夠有效提高聚類效果。此外,雖然SCAN-Loss在某些方面和K-means有較大關聯,比如都是採用預訓練後得到的特徵執行聚類。但是,本文提出的SCAN-Loss能夠避免聚類退化,即聚類可能會很不穩定的問題,如果採用K-means的簇中心進行初始化就會導致該問題。另外,本文還探討了在訓練過程中,採用不同的增強策略執行聚類的效果,實驗結果表明,採用RA執行樣本增強,能夠有效提高聚類的效果,最高可以達到87.6的ACC。另外,通過偽標籤來對聚類結果進行微調,能夠有效地進一步提高最終的聚類效果。此外,本文通過圖6表明,偽標籤指導的自訓練過程對設定的閾值引數不敏感,圖7可以最近鄰K設定為5即可達到較穩定的準確率。

 

 

 

 

 

 

 

此外,本文將簇的個數設定為20而不是10的時候,本文的聚類準確率仍然較高,體現出了本文聚類演算法模型的穩定性。即證明了一點:本文的聚類演算法模型並不需要以來原始聚類簇個數的真實資訊。本文演算法在CIFAR100-20採用過於聚類的簇個數,其效能提高的一個原因在於高的類內方差。(關於超類的聚類效能評價,是一個多對一的對映,其計算的細節,本文有單獨考慮和處理)

本文采用兩部法:預訓練+聚類+偽標籤執行自監督訓練,的兩階段方法,與當前的SO他的端到端方法不一樣。

上表的結果表明,採用SCAN-loss執行聚類,其在影像上面的聚類效果要明顯優於採用K-means執行聚類的結果。此外,通過Self-label的自監督學習能夠進一步提高最終的聚類效果。

2.4 我的想法

本文最大的亮點在於沒有一味地追求端到端的深度聚類模型,並指出了當前的端到端深度聚類模型存在無法擺脫低質量特徵依賴導致最終容易出現次優結果的問題。針對上述問題,本文通過最近鄰的思想提出了SCAN-loss執行聚類,能夠有效避免直接採用K-means執行聚類導致最終出現退化解的問題。此外,通過新增Self-Labeling的自監督學習步驟,對聚類步驟中的自監督分類器執行進一步的學習優化,能夠有效提高最終的聚類效果。

 


3 基於語義偽標籤的影像聚類 (arXiv, 2021)

原文連結

程式碼

3.1 動機

上述SCAN聚類演算法中採用樣本的最近鄰來計算SCAN-loss存在以下問題:在實際的樣本空間中,並不是所有樣本的最近鄰都具有相同的語義,比如當樣本位於不同簇的邊界時,這樣的問題會變得更加嚴重,從而導致最終的聚類結果產生誤差累積。具體的區域性樣本空間的語義不一致可以參考下圖:

此外,SCAN演算法的效能隨著交替的執行,導致邊界的最近鄰樣本在聚類的交替過程中產生誤差累積的問題,並且其在大型資料的線上聚類過程中會受到效能的限制。

3.2 貢獻

針對SCAN演算法容易出現語義不一致的最近鄰樣本,導致聚類結果產生誤差累積的問題,本文提出了一種基於影像語義偽標籤的影像聚類框架(SPICE)。該框架的主要貢獻如下:

1)  設計了一種級聯softmax交叉熵損失函式,能夠有效增強模型選取偽標籤的可信度,從而提高模型的聚類效能;

2)  結合影像的弱增強和強增強處理,結合分類交叉熵損失函式來訓練分類網路,並通過偽標籤來協調樣本語義在聚類過程中的差異以及例項樣本之間的相似性;

3)  設計了一種偽標籤獲取方法,在網路模型的訓練過程中能夠利用語義相似度度量來減少樣本在邊界附近的語義不一致性;

4)  設計的區域性一致性原則通過將原聚類問題轉化為半監督學習正規化,能夠有效減少語義的不一致性,從而提高最終的聚類效能。

擬議的SPICE框架包括三個培訓階段。

首先,訓練了一個無監督的表徵學習模型,該模型是在SCAN中使用的;

然後,凍結預訓練模型的CNN主幹,分別進行SPICE-Self和SPICE-Semi兩個階段提取嵌入特徵,如上圖所示。

SPICE-Self有三個分支:第一個分支以原始影像為輸入輸出嵌入特徵,第二個分支以弱變換影像為輸入輸出語義標籤,第三個分支以強變換影像為輸入預測聚類標籤。給定前兩個分支的結果,基於語義相似度的偽標記演算法生成偽標記來監督第三個分支。在實踐中,SPICE-Self只需要訓練第三分支的輕量級分類頭。

SPICE-Semi首先判斷一組可靠的基於本地語義一致性偽標籤,比如SPICE-Self得到的聚類結果, 然後採用半監督學習重新訓練分類模型cls Model。

最後,訓練後的分類模型能夠預測含標籤影像和不含標籤影像樣本的聚類標籤。

相比SCAN簡單地選取每個樣本的最近鄰語義樣本處理方法,本文提出在一個batchsize裡面選取其中大於給定閾值的最自信的前i個樣本作為偽標籤。其處理原理如下:

 

注意,在不同的叢集之間可能存在重疊的樣本(PS:具體可以見上圖的c中的toy example),所以有兩種方法來處理這些標籤:

1)     一個是重疊分配,一個樣本可能有一個以上的類標籤,如圖中黃色和紅色的圓圈所示。

2)      另一種是非重疊分配,即所有樣本只有一個簇標籤,如盤子紅色圓圈所示。

本文實驗表明,如第4.5.2小節所分析,發現重疊賦值更好。

本文提出的級聯softmax交叉熵損失函式其出發點是鼓勵模型輸出有信心的預測,從而有助於對未標記的資料學習,具體定義如下:

 

 

 

這個級聯softmax交叉熵損失函式的定義和第一篇ICLR中定義的後驗分佈P結合交叉熵損失函式的公式很像,具體區別待探究(PS:本文並沒有應用和分析第一篇ICLR2020文章)。

此外,本文通過選取區域性中部分可靠的偽標籤樣本的最近鄰,來緩解區域性樣本語義不一致的問題。其中區域性一致性的定義如下:

在半自監督的學習模型中,採用SPICE-self步驟中獲取的可信度高的偽標籤,結合未提供偽標籤的資料進行半監督學習,並結合資料增強和分類交叉熵損失函式,實現對clshead的學習。其中採用的半監督交叉熵損失函式定義如下:

3.3 實驗分析

 通過上述的實驗結果可以發現,本文結合確定性高的最近鄰樣本選取策略以及半自監督學習策略,可以有效提高模型的聚類效果,能夠比SCAN聚類方法高大約20%,比最新的AAAI2021文章的CC模型高10%。

3.4 我的想法

本文是arXiv上釋出的最新論文,目前應該還沒有被相關會議或者期刊接收。本文主要是解決SCAN演算法中最近鄰樣本容易出現不一致語義的問題,並且在實驗效果上要比SCAN演算法強很多。然而,本文的寫作不是很清晰,特別是摘要的寫作感覺有點長,關鍵的問題分析有點模糊不清,特別是創新點的表述不清晰。此外,本文的模型看上去好複雜,具體的可移植性待探究。

最後,本文的確定性標籤的選擇思路可以參考和借鑑,另外其級聯softmax交叉熵損失函式可以借鑑和學習。

 


4 對比聚類 (AAAI, 2021)

原文

程式碼

4.1 動機

Deep Cluster (ECCV, 2018)採用K-means對每次epoch結束後的表述執行聚類,然後利用聚類得到的偽標籤來指導深度神經網路的引數更新。這種交替學習方法會在表示學習和聚類之間的交替過程中積累誤差,導致聚類效能次優。此外,上述方法只能處理離線任務,即聚類是基於整個資料集的,這限制了它們在大規模線上學習場景中的應用。

4.2 貢獻

 針對Deep Cluster模型交替優化導致聚類效能次優的問題,本文提出了名為對比聚類(CC)的單階段線上聚類方法,它明確地執行例項級和叢集級的對比學習。具體地說,對於給定的資料集,通過資料擴充來構造正例項對和負例項對,然後投影到特徵空間中。通過同時優化例項級和叢集級的對比損失,該模型以端到端方式聯合學習表示和叢集分配。本文的具體貢獻可以分為以下三點:

1) 我們為當前的深度聚類研究提供了一種新的見解,即例項表示和聚類類別預測分別對應於可學習特徵矩陣的行和列。因此,深度聚類可以優雅地統一到表示學習的框架中;

2) 據我們所知,這可能是聚類特定對比學習的第一個工作。與現有的對比學習研究不同,本文提出的方法不僅在例項層次上進行對比學習,而且在聚類層次上進行對比學習。實驗證明,這種雙重對比學習框架可以產生聚類偏好表徵;

3) 該模型採用單階段、端到端方式,只需要批量優化,可應用於大規模線上場景。

本文的模型的對比思想如下圖1所示:

本文模型的整體架構圖如下:

例項級的對比損失計算原理如下:

 

聚類層次的對比損失計算方式和例項級差不多,區別在於把行資料換成了列資料,並新增了熵偏項策略,具體細節可以參考原文。

個人思考:本文最大參考價值在於說明了在深度聚類研究領域,影像的資料增強和獲取表示的backbone對下游的聚類任務效能會有很大的影響。此外,對比學習首次應用到深度聚類領域,也說明了對比學習思想在積極交替優化聚類模型中能夠有效緩解誤差累積的問題。

 


5 通過分割槽最大化信度的深度語義聚類 (CVPR, 2020)

原文

程式碼

5.1 動機

現有的深度聚類方法通常依賴於基於樣本間關係或自估計偽標記的區域性學習約束方法,

這不可避免地受到的分佈在鄰域的誤差影響,並在訓練過程中產生誤差傳播的累積問題。雖然使用可學習表示進行聚類分析可能有利於對無標記資料進行聚類,但如何提高這些聚類的語義合理性仍然是一個挑戰(PS:此處的動機和第三篇arXiv2021的動機類似,但是本文是2020年發表,另外發現arXiv2021文章引用了該篇文章,並且在實驗中重點對比了該文提出的模型)。具體的領域誤差問題如下圖:

如上圖所示,DEC這些方法面臨著訓練過程中由於鄰域估計不一致而導致的更嚴重的誤差傳播累積問題。此外,由於訓練監督和聚類目標之間的模糊聯絡,當缺乏全域性解決方案級指導時,這類方法往往產生語義上不太可信的聚類解決方案。

5.2 貢獻

為了避免領域不確定性導致聚類的誤差累積問題,引入了一種新的深度聚類方法,稱為分割槽置信度最大化(PICA),通過從所有可能的簇分離方案中學習最可靠的聚類方案來解決這個問題。本文的貢獻主要分為以下三點:

1) 提出了通過最大分割置信來學習語義上最合理的聚類解的思想,將經典的最大邊際聚類思想擴充套件到深度學習正規化。該方法對區域性樣本間關係和聚類簇結果作為標記沒有很強的假設,這通常會導致誤差傳播和次優的聚類解。

2) 引入了一種新的深度聚類方法,稱為分割槽置信度最大化(PICA)。PICA是建立在一個新引入的劃分不確定性指標的基礎上,該指標設計得很優雅,可以量化聚類解決方案的全域性置信度。

3)引入分割不確定性指數的隨機近似,將其與目標影像的整個集合解耦,從而可以方便地採用標準的小批量模型訓練。

本文的模型如下圖:

理想情況下,叢集的所有樣本將共享相同的目標類標籤。也就是說,本文模型的目標是直接從原始資料樣本中發現潛在的語義類決策邊界(PS:即簇中心)。

另外,在聚類中,通常出現將大部分樣本分配到少數的聚類中。為了避免這種情況,本文引入了一個額外的約束,使簇大小分佈的負熵最小化。該策略本人在好幾篇文章中都有看到這樣的處理機制,應該可以作為聚類優化挑戰的一個策略。具體的負熵最小化的策略如下:

個人思考:本文采用餘弦相似度計算ASV和PUI的程式碼和思想,以及其在聚類過程中的應用可以借鑑和學習。另外,可以嘗試採用本文的思想,結合採用餘弦相似度來衡量和計算的思路,去思考如何選取確定性較大的標籤。另外,本文的寫作真的是有點費解,並且摘要寫的太過專業具體化,很難讓讀者看懂。

 


參考文獻

[1]   J. Xie, R. Girshick, and A. Farhadi, “Unsupervised Deep Embedding for Clustering Analysis,” arXiv:1511.06335 [cs], May 2016, Accessed: May 18, 2021. [Online]. Available: http://arxiv.org/abs/1511.06335

[2]   M. Caron, P. Bojanowski, A. Joulin, and M. Douze, “Deep Clustering for Unsupervised Learning of Visual Features,” arXiv:1807.05520 [cs], Mar. 2019, Accessed: May 18, 2021. [Online]. Available: http://arxiv.org/abs/1807.05520

[3]   W. Van Gansbeke, S. Vandenhende, S. Georgoulis, M. Proesmans, and L. Van Gool, “SCAN: Learning to Classify Images without Labels,” arXiv:2005.12320 [cs], Jul. 2020, Accessed: May 16, 2021. [Online]. Available: http://arxiv.org/abs/2005.12320

[4]   C. Niu and G. Wang, “SPICE: Semantic Pseudo-labeling for Image Clustering,” arXiv:2103.09382 [cs], Mar. 2021, Accessed: May 16, 2021. [Online]. Available: http://arxiv.org/abs/2103.09382

[5]   Y. Li, P. Hu, Z. Liu, D. Peng, J. T. Zhou, and X. Peng, “Contrastive Clustering,” arXiv:2009.09687 [cs, stat], Sep. 2020, Accessed: May 16, 2021. [Online]. Available: http://arxiv.org/abs/2009.09687

 

 

 

 

 

 

相關文章