天天看點

[2019][CVPR]Balanced Self-Paced Learning for Generative Adversarial Clustering Network 筆記

paper:paper

補充材料:supp

[2019][CVPR]Balanced Self-Paced Learning for Generative Adversarial Clustering Network 筆記

一篇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)對來自生成器還是聚類器。對模型進行學習就可以得到聚類資訊

[2019][CVPR]Balanced Self-Paced Learning for Generative Adversarial Clustering Network 筆記

模型方法

聚類器 C \mathcal{C} C的輸出層是一個sigmoid層,可以用來表示樣本間餘弦相似度,

[2019][CVPR]Balanced Self-Paced Learning for Generative Adversarial Clustering Network 筆記

  為了表示聚類關系,我們可以期望得到的樣本相似度矩陣是一個對角塊矩陣,每一個塊是同一個類别的相似性。為了達到這個目的,讓生成器 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,是以我們得到目标

[2019][CVPR]Balanced Self-Paced Learning for Generative Adversarial Clustering Network 筆記

引理1:固定 C , G \mathcal{C},\mathcal{G} C,G,最大化 U U U的 D \mathcal{D} D為

[2019][CVPR]Balanced Self-Paced Learning for Generative Adversarial Clustering Network 筆記

令 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∗),則

[2019][CVPR]Balanced Self-Paced Learning for Generative Adversarial Clustering Network 筆記

這說明求解這個問題得到的最優解 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​))

[2019][CVPR]Balanced Self-Paced Learning for Generative Adversarial Clustering Network 筆記

這使得 a i j a_{ij} aij​趨于[0,1]。

然而在一開始進行疊代的時候,特征是不穩定的,是以引入self-paced方法,使得學習過程先學習簡單樣本,再過度到困難樣本,也就是下面的優化目标

[2019][CVPR]Balanced Self-Paced Learning for Generative Adversarial Clustering Network 筆記

其中

[2019][CVPR]Balanced Self-Paced Learning for Generative Adversarial Clustering Network 筆記

λ ν \lambda_\nu λν​是個超參數。當 l i &lt; λ ν l_i &lt; \lambda_\nu li​<λν​時,表示目前的簡單樣本,這時候可以得到 ν i = 1 \nu_i=1 νi​=1,否則是困難樣本, ν i = 0 \nu_i = 0 νi​=0

然而仍然存在一個問題,就是資料的平衡。不同的cluster選擇的樣本數差别可能很大,可能簡單樣本來源于某幾個cluster。作者提出了balance self-paced 方法解決這個問題,也就是将(4)改成

[2019][CVPR]Balanced Self-Paced Learning for Generative Adversarial Clustering Network 筆記

γ \gamma γ為超參數

第一項旨在選取簡單樣本,第二項懲罰那些選擇過多個樣本的類别。

為了優化這個目标,采用交替疊代的方法,固定 C \mathcal{C} C,優化 ν \nu ν的目标是

[2019][CVPR]Balanced Self-Paced Learning for Generative Adversarial Clustering Network 筆記

解為

[2019][CVPR]Balanced Self-Paced Learning for Generative Adversarial Clustering Network 筆記

為了保證穩定性,對 C \mathcal{C} C再加一個損失( x ~ \tilde{x} x~是樣本 x x x經過不同的圖像增強和擾動得到的樣本)

[2019][CVPR]Balanced Self-Paced Learning for Generative Adversarial Clustering Network 筆記

總結得到算法

[2019][CVPR]Balanced Self-Paced Learning for Generative Adversarial Clustering Network 筆記

實驗

資料集MNIST, USPS, FRGC , CIFAR-10 , STL-10

[2019][CVPR]Balanced Self-Paced Learning for Generative Adversarial Clustering Network 筆記

實作細節

結構采樣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優化器

超參數選擇

[2019][CVPR]Balanced Self-Paced Learning for Generative Adversarial Clustering Network 筆記

γ \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∗maxe​poch的時候把所有樣本包含進來。

最後使用k-means對 C \mathcal{C} C的輸出進行聚類,對輸出進行二值化,用于hashing

實驗過程用一個Titan X Pascal GPU.

圖檔聚類

[2019][CVPR]Balanced Self-Paced Learning for Generative Adversarial Clustering Network 筆記

有效性檢測

[2019][CVPR]Balanced Self-Paced Learning for Generative Adversarial Clustering Network 筆記

圖檔檢索

[2019][CVPR]Balanced Self-Paced Learning for Generative Adversarial Clustering Network 筆記
[2019][CVPR]Balanced Self-Paced Learning for Generative Adversarial Clustering Network 筆記

引理的證明

引理1的證明

[2019][CVPR]Balanced Self-Paced Learning for Generative Adversarial Clustering Network 筆記

引理2證明

[2019][CVPR]Balanced Self-Paced Learning for Generative Adversarial Clustering Network 筆記
[2019][CVPR]Balanced Self-Paced Learning for Generative Adversarial Clustering Network 筆記

定理1的證明

[2019][CVPR]Balanced Self-Paced Learning for Generative Adversarial Clustering Network 筆記
[2019][CVPR]Balanced Self-Paced Learning for Generative Adversarial Clustering Network 筆記
[2019][CVPR]Balanced Self-Paced Learning for Generative Adversarial Clustering Network 筆記

繼續閱讀