論文信息
論文標題:Improved Deep Embedded Clustering with Local Structure Preservation
論文作者:Xifeng Guo, Long Gao, Xinwang Liu, Jianping Yin
論文來源:2017, IJCAI
論文地址:download
論文代碼:download
1 Introduction
本文解決的思路:
-
- 使用聚類損失函數指導代表特征空間的 points 分布;
- 采用 under-complete autoencoder 維護數據的局部結構;
- 聯合 聚類損失 和 AE 損失 來訓練。
2 Related Work
2.1 Deep Clustering
目前階段的聚類算法:
-
- Two-stage work that applies clustering after having learned a representation;[ 該方法基於良好的表示 ]
- Approaches that jointly optimize the feature learning and clustering;[ 特征學習的時候同時進行聚類 ]
對於 1 舉例:
-
- Tian et al., 2014 :先使用 AE 學到低維有用表示,然后使用 k-means 進行聚類;
- Chen, 2015 :層級訓練深度信念網絡(DBN),然后將 non-parametric maximum-margin 聚類應用於學習到的中間表示;
- Peng et al., 2016 : 使用稀疏自編碼器,同時自適應學習局部和全局結構信息的表示,再采用傳統的聚類算法進行聚類;
對於 2 舉例:
-
- Yang et al., 2016 :proposes a recurrent framework in deep representations and image clusters, which integrates two processes into a single model with a unified weighted triplet loss and optimizes it end-to-end.
- Xie et al.,2016 :DEC 通過深度神經網絡學習從觀測空間到低維潛在空間的映射,可以同時獲得特征表示和聚類分配;
2.2 Autoencoder
AE 有兩個部分:
-
- Encoder:編碼器函數為 $z=f_{W}(x)$ ,輸出表示 $z$ 。
-
- Decoder:解碼器函數為 $x^{\prime}=g_{W^{\prime}}(z) $,根據表示 $z$ 重構原始輸入 $x$ 。
$x^{\prime}=g_{W^{\prime}}(z)$
兩種常見的自編碼器:
-
- 欠完備自編碼器( Under-complete autoencoder):$z$ 的維度要小於原始輸入的維度。
- 去噪自編碼器( Denoising autoencoder):$L=\left\|x-g_{W^{\prime}}\left(f_{W}(\tilde{x})\right)\right\|_{2}^{2} \quad \quad \quad (1)$
Reference:
2.3 Deep Embedded Clustering
DEC 首先對 AE 進行預訓練,然后丟棄解碼器,通過優化以下目標進行微調:
$L=K L(P \| Q)=\sum\limits_{i} \sum\limits_{j} p_{i j} \log \frac{p_{i j}}{q_{i j}}\quad \quad \quad (2)$
其中:
-
- $q_{i j}$ 是表示 $z_{i}$ 和聚類中心 $\mu_{j}$ 之間的相似度。定義為:
${\large q_{i j}=\frac{\left(1+\left\|z_{i}-\mu_{j}\right\|^{2}\right)^{-1}}{\sum_{j}\left(1+\left\|z_{i}-\mu_{j}\right\|^{2}\right)^{-1}}}\quad \quad \quad (3) $
-
- Eq.2 中的 $p_{ij}$ 是目標分布,定義為:
${\large p_{i j}=\frac{q_{i j}^{2} / \sum_{i} q_{i j}}{\sum_{j}\left(q_{i j}^{2} / \sum_{i} q_{i j}\right)}}\quad \quad\quad(4) $
DEC算法:
-
- 首先,對原始數據集 $X$ ,跑一遍 AE ,獲得 Encoder 生成的表示 $z_{i}=f_{W}\left(x_{i}\right)$ ;
- 其次,基於 ${z_i}$ ,使用傳統的 $k-means$ ,獲得若干聚類中心 ${\mu _j}$;
- 然后,根據 Eq.3 和 Eq.4 計算得的 $q_{ij}$ 和 $p_{ij}$ 去計算 Eq.2 中的 $L$;
- 最后,根據 $q_{ij}$ 進行 $label$ 分配。
3 Improved Deep Embedded Clustering
本文 model 有兩個必不可少的部分:
-
- Autoencoder;
- clustering loss;
模型架構如 Fig.1. 所示:
目標函數定義為:
$L=L_{r}+\gamma L_{c}\quad\quad \quad (6)$
其中:
-
- $L_{r} $ 是重構損失;
- $L_{c}$ 是聚類損失;
- $ \gamma>0$ 是控制 the degree of distorting embedded space 的系數,當 $\gamma=1$ 或 $L_{r} \equiv 0$ 即是DEC的目標函數;
3.1 Clustering loss and Initialization
回顧 DEC 聚類損失函數(參考前面提到的 Eq.2. 、Eq.3.、Eq.4.):
$L_{c}=K L(P \| Q)=\sum\limits_{i} \sum\limits _{j} p_{i j} \log \frac{p_{i j}}{q_{i j}}\quad\quad \quad (7)$
通過 DEC model 給的啟發:
-
- 預訓練:使用堆疊降噪自編碼器(stacked denoising autoencoder)。
- 然后基於預訓練生成的有效表示 $\left\{z_{i}=f_{W}\left(x_{i}\right)\right\}_{i=1}^{n}$ 使用 $k-means $ 獲得聚類中心 $\left\{\mu_{j}\right\}_{j=1}^{K}$ 。
3.2 Local structure preservation
由於 DEC 直接丟棄 Decoder 並通過聚類損失 $L_{c}$ 直接微調編碼器,可能造成嵌入空間的扭曲。[ 說白了就是研究 Decoder 的影響 ]
所以本文提出保持解碼器不變,直接將聚類損失加到嵌入空間中去。
本文將堆疊降噪自編碼器替換為欠完備自編碼器,重構損失 [ Mean Squared Error ] :
$L_{r}=\sum\limits _{i=1}^{n}\left\|x_{i}-g_{W^{\prime}}\left(z_{i}\right)\right\|_{2}^{2}\quad \quad \quad (8)$
3.3 Optimization
Eq.6 采用小批量隨機梯度下降法優化,有三個參數需要優化,分別是:
-
- 自編碼器的權重參數
- 聚類中心 $u_j$
- 目標分布 $P$
首先闡述:更新自編碼器權重參數和聚類中心
固定目標分布 $P$ ,優化
$\frac{\partial L_{c}}{\partial z_{i}}=2 \sum\limits _{j=1}^{K}\left(1+\left\|z_{i}-\mu_{j}\right\|^{2}\right)^{-1}\left(p_{i j}-q_{i j}\right)\left(z_{i}-\mu_{j}\right)\quad\quad\quad (9)$
$\frac{\partial L_{c}}{\partial \mu_{j}}=2 \sum\limits _{i=1}^{n}\left(1+\left\|z_{i}-\mu_{j}\right\|^{2}\right)^{-1}\left(q_{i j}-p_{i j}\right)\left(z_{i}-\mu_{j}\right)\quad\quad\quad (10)$
-
- 聚類中心更新公式:
-
- 解碼器權重參數更新公式:
- 編碼器權重更新公式為:
${\large W=W-\frac{\lambda}{m} \sum\limits _{i=1}^{m}\left(\frac{\partial L_{r}}{\partial W}+\gamma \frac{\partial L_{c}}{\partial W}\right)}\quad \quad \quad (13)$ $
由於目標分布 $P$ 是基於 soft label [ $p_{ij}$ 依托於 $q_{ij}$ ] ,頻繁更新容易造成不穩定,所以 $P$ 的更新並沒有在每個 iter 中更新,而是在每個 batch 中更新。但是實際上,本文是在 每 T iterations 進行更新。label 分配方法如下:
這里當連續兩次分配的百分比小於 $\delta$ 將停止訓練。

4 Experiments
數據集
- MNIST [圖像數據集]:70000張手寫數字圖
- USPS [圖像數據集]:9298張灰度手寫數字圖
- REUTERS-10K [文本數據集]:810000篇有標簽新聞報道,這邊采樣10000篇報道。
聚類結果
實驗1:實驗結果如 Table 2 所示:
結論:
-
- 深度聚類方法: AE+k-means, DEC和 IDEC 表現明顯優於傳統方法,但這三種方法之間仍存在很大的差距。
- AE+k-means 和 DEC 相比證明了聚類損失的指導意義,DEC 和 IDEC 相比證明了自編碼器可以提高聚類性能。
實驗2:DEC 和 IDEC 對比實驗:
結論:
-
- IDEC 聚類精度高於 DEC ;
- IDEC 收斂慢於 DEC ;
- IDEC 聚類損失高於 DEC ;
- 最后幾次迭代重構損失和初始迭代損失相差不大;
實驗3:DEC 和 IDEC 可視化對比實驗:
上下行分別是 IDEC 和 DEC 的 t-SNE 可視化結果。
實驗4:DEC 和 IDEC 參數 $\lambda$ 和 $ \gamma$ 的對比實驗:
結論:
-
- IDEC在最佳學習率 $\lambda=0.1$ 的情況下優於 DEC 在最佳學習率 $\lambda=0.01$ 當 $ \gamma \in [0.05,1.0]$ ;
- 對於較大的 $\lambda$ 需要搭配較小的 $\lambda$ ;
5 Conclusion
本文提出了改進的深度嵌入式聚類(IDEC)算法,該算法聯合進行了聚類,並學習了適合於聚類的嵌入式特征,並保留了數據生成分布的局部結構。IDEC通過優化基於KL散度的聚類損失來操縱特征空間來散射數據。它通過合並一個自動編碼器來維護局部結構。實驗實驗表明,結構保存對深度聚類算法至關重要,有利於聚類性能。未來的工作包括:在IDEC框架中添加更多的先驗知識(如稀疏性),並為圖像數據集合並卷積層。
修改歷史
2022-02-13 創建文章
2022-06-09 修訂文章