paper:paper
補充材料:supp
一篇cvpr深度聚類文章
簡介
淺層模型難以捕捉非線性特征,并且應用到大資料及上有困難。深度學習方法則容易産生過拟合。本文提出方法ClusterGAN,解決問題。利用GAN解決聚類問題,同時對self-paced進行改進成balanced self-paced方法。模型分為三個部分,一個生成器G,一個判别器D和一個聚類器C。聚類器負責對 x x x提取特征并傳回一個具有類别資訊的變量 z z z。生成器負責從一個具有類别資訊的變量 z ′ z' z′産生出一個樣本 x ′ x' x′。判别器負責判别 ( z , x ) (z,x) (z,x)對來自生成器還是聚類器。對模型進行學習就可以得到聚類資訊
模型方法
聚類器 C \mathcal{C} C的輸出層是一個sigmoid層,可以用來表示樣本間餘弦相似度,
為了表示聚類關系,我們可以期望得到的樣本相似度矩陣是一個對角塊矩陣,每一個塊是同一個類别的相似性。為了達到這個目的,讓生成器 G G G的輸入關于同類别為平行向量,不同類别的為正交的。假設 z z z的次元為 m m m個樣本, c c c為類别數,讓 z z z為一個0,1向量,其中 m / c m/c m/c個為1,其餘的為0。為了使樣本多樣性,生成同一個類别的多個樣本,讓 z z z再加上一個均勻随機的noise。
生成器和聚類器得到的 ( z , x ) (z,x) (z,x)對的聯合分布可以拆分為
p ( z , x ^ ) = p ( z ) p G ( x ^ ∣ z ) p ( z ^ , x ) = p ( x ) p C ( z ^ ∣ x ) p(z,\hat{x})=p(z)p_{\mathcal{G}}(\hat{x}|z)\\ p(\hat{z},x) = p(x)p_{\mathcal{C}}(\hat{z}|x) p(z,x^)=p(z)pG(x^∣z)p(z^,x)=p(x)pC(z^∣x)
其中 p ( z ) p(z) p(z)和 p ( x ) p(x) p(x)是已知的(一個是生成的,一個是真實資料分布)
生成器和聚類器的學習目标就是學習條件分布 p G ( x ^ ∣ z ) p_{\mathcal{G}}(\hat{x}|z) pG(x^∣z)和 p C ( z ^ ∣ x ) p_{\mathcal{C}}(\hat{z}|x) pC(z^∣x)混淆判别器 D \mathcal{D} D,是以我們得到目标
引理1:固定 C , G \mathcal{C},\mathcal{G} C,G,最大化 U U U的 D \mathcal{D} D為
令 V ( G , C ) = U ( D , G , C ∗ ) V(\mathcal{G},\mathcal{C})=U(\mathcal{D},\mathcal{G},\mathcal{C}^*) V(G,C)=U(D,G,C∗),則
這說明求解這個問題得到的最優解 G \mathcal{G} G 生成真實圖檔, C \mathcal{C} C得到聚類資訊。是一個雙向拟合的過程
除了對抗loss外,對聚類器加一個最小化條件熵損失(應該是說 H ( a i j ∣ x i , x j ) H(a_{ij} |x_i,x_j) H(aij∣xi,xj))
這使得 a i j a_{ij} aij趨于[0,1]。
然而在一開始進行疊代的時候,特征是不穩定的,是以引入self-paced方法,使得學習過程先學習簡單樣本,再過度到困難樣本,也就是下面的優化目标
其中
λ ν \lambda_\nu λν是個超參數。當 l i < λ ν l_i < \lambda_\nu li<λν時,表示目前的簡單樣本,這時候可以得到 ν i = 1 \nu_i=1 νi=1,否則是困難樣本, ν i = 0 \nu_i = 0 νi=0
然而仍然存在一個問題,就是資料的平衡。不同的cluster選擇的樣本數差别可能很大,可能簡單樣本來源于某幾個cluster。作者提出了balance self-paced 方法解決這個問題,也就是将(4)改成
γ \gamma γ為超參數
第一項旨在選取簡單樣本,第二項懲罰那些選擇過多個樣本的類别。
為了優化這個目标,采用交替疊代的方法,固定 C \mathcal{C} C,優化 ν \nu ν的目标是
解為
為了保證穩定性,對 C \mathcal{C} C再加一個損失( x ~ \tilde{x} x~是樣本 x x x經過不同的圖像增強和擾動得到的樣本)
總結得到算法
實驗
資料集MNIST, USPS, FRGC , CIFAR-10 , STL-10
實作細節
結構采樣Triple-GAN,對 C \mathcal{C} C最後一層進行修改
将CIFAR-10 和 STL-10 資料歸一化到[-1,1]其他資料歸一化到[0,1]
在生成器最後一層使用tangent-hyperbolic 和 sigmoid
生成器的增加的随機noise為[0,0.5]的均勻分布,并随着訓練線性減少到[0, 0.1]
學習率1e-4線性減少到1e-5,使用Adam優化器
超參數選擇
γ \gamma γ和 λ ν \lambda_\nu λν的選擇根據資料集不同而不同。選擇合适的 γ \gamma γ和 λ ν \lambda_\nu λν使得在一開始訓練把 1 % 1\% 1%的樣本包含進來。并且 λ ν \lambda_\nu λν線性增加使得在 3 / 4 ∗ m a x e p o c h 3/4 * max_epoch 3/4∗maxepoch的時候把所有樣本包含進來。
最後使用k-means對 C \mathcal{C} C的輸出進行聚類,對輸出進行二值化,用于hashing
實驗過程用一個Titan X Pascal GPU.
圖檔聚類
有效性檢測
圖檔檢索
引理的證明
引理1的證明
引理2證明
定理1的證明