Deep Clustering Algorithms

Deep Clustering Algorithms

做者:凱魯嘎吉 - 博客園 http://www.cnblogs.com/kailugaji/html

    本文研究路線:深度自編碼器(Deep Autoencoder)->Deep Embedded Clustering(DEC)->Improved Deep Embedded clustering(IDEC)->Deep Convolutional Embedded Clustering(DCEC)->Deep Fuzzy K-means(DFKM),其中Deep Autoencoder已經在深度自編碼器(Deep Autoencoder)MATLAB解讀中提到,也有不少深度自編碼器的改進方法,不詳細講解,重點談深度聚類算法。若有不對之處,望指正。git

    深度聚類算法的網絡架構圖github

    深度聚類算法的損失函數算法

1. Deep Embedded Clustering

1.1 Stochastic Neighbor Embedding (SNE)

    SNE是一種非線性降維策略,兩個特徵之間存在非線性相關性,主要用於數據可視化,PCA(主成成分分析)是一種線性降維策略,兩個特徵之間存在線性相關性。SNE在原始空間(高維空間)中利用Gauss分佈將數據點之間的距離度量轉化爲條件機率,在映射空間(低維空間)中利用Gauss分佈將映射點之間的距離度量轉化爲條件機率,並利用KL散度來最小化高維空間與低維空間的條件機率。網絡

    SNE面臨的問題有兩個:(1)KL散度是一種非對稱度量,(2)擁擠問題。對於非對稱問題,定義pij,將非對稱度量轉化爲對稱度量。但對稱度量仍然面臨擁擠問題,映射到低維空間中,映射點之間不能根據數據自己的特性很好地分開。架構

    對於擁擠問題(The Crowding Problem)的解決,提出t-SNE,一種非線性降維策略,主要用於可視化數據。引入厚尾部的學生t分佈,將低維空間映射點之間的距離度量轉化爲機率分佈t分佈qij,使得不一樣簇之間的點能很好地分開。ide

1.2 t-SNE

1.3 Deep Embedded Clustering(DEC)

    受t-SNE的啓發,提出DEC算法,從新定義原始空間(高維空間)的度量pij。微調階段,捨棄掉編碼器層,最小化KL散度做爲損失函數,迭代更新參數。DEC經過降噪自編碼,逐層貪婪訓練後組合成棧式自編碼,而後撤去解碼層,僅使用編碼層,對提取出來的特徵使用相對熵做爲損失函數對網絡進行微調,該結構能夠同時對數據進行特徵學習和聚類。可是DEC算法沒有考慮微調會扭曲嵌入式空間,削弱嵌入式特徵的表明性,從而影響聚類效果。函數

    DEC算法先使用整個網絡進行預訓練,獲得原始數據通過非線性映射到潛在特徵空間的數據表示,即特徵。而後對獲得的特徵用K-means算法進行網絡初始化,獲得初始聚類中心。再使用相對熵迭代,微調網絡,直至知足收斂性斷定準則中止。post

2. Improved Deep Embedded Clustering(IDEC)

    DEC丟棄解碼器層,並使用聚類損失Lc對編碼器進行微調。做者認爲這種微調會扭曲嵌入空間,削弱嵌入特徵的表明性,從而影響聚類性能。所以,提出保持解碼器層不變,直接將聚類損失附加到嵌入空間。IDEC算法是對DEC算法的改進,經過保存局部結構防止微調對嵌入式空間的扭曲,即在預訓練時,使用欠完備自編碼,微調時的損失函數採用相對熵和重建損失之和,以此來保障嵌入式空間特徵的表明性。性能

    基於局部結構保留的深度嵌入聚類IDEC是對DEC算法的改進,經過保存局部結構方式避免微調時對嵌入空間的扭曲。IDEC算法在預訓練結束後,對重建損失和聚類損失的加權和進行微調,在最大限度保證不扭曲嵌入空間的前提下,獲得最優聚類結果。

3. Deep Convolutional Embedded Clustering(DCEC)

    深度卷積嵌入聚類算法(deep convolutional embedded clustering, DCEC),是在DEC原有網絡基礎上,加入了卷積自編碼操做,並在特徵空間保留數據局部結構,從而取得了更好聚類效果。

    深度卷積嵌入聚類算法DCEC是在IDEC算法基礎上進行的改進,將編碼層和解碼層中的全鏈接換成卷積操做,這樣能夠更好地提取層級特徵。圖中編碼層和解碼層各有3層卷積,卷積層後加了一個flatten操做拉平特徵向量,以得到10維特徵。DCEC只是將IDEC的全部全鏈接操做換成卷積操做,其損失函數依舊是重建損失和聚類損失之和。

4. Deep Fuzzy K-means(DFKM)

    Deep Fuzzy K-means一樣在低維映射空間中加入聚類過程,將特徵提取與聚類同時進行,引入熵加權的模糊K-means,不採用原來的歐氏距離,而是本身從新定義度量準則,權值偏置的正則化項防止過擬合,提升泛化能力。

5. 參考文獻

[1] Maaten L, Hinton G. Visualizing data using t-SNE[J]. Journal of machine learning research, 2008, 9(Nov): 2579-2605.

[2] Vincent P, Larochelle H, Lajoie I, et al. Stacked denoising autoencoders: Learning useful representations in a deep network with a local denoising criterion[J]. Journal of machine learning research, 2010, 11(Dec): 3371-3408.

[3] Xie J, Girshick R, Farhadi A. Unsupervised deep embedding for clustering analysis[C]//International conference on machine learning. 2016: 478-487.

[4] Guo X, Gao L, Liu X, et al. Improved deep embedded clustering with local structure preservation[C]//IJCAI. 2017: 1753-1759.

[5] Guo X, Liu X, Zhu E, et al. Deep clustering with convolutional autoencoders[C]//International Conference on Neural Information Processing. Springer, Cham, 2017: 373-382.

[6] Zhang R, Li X, Zhang H, et al. Deep Fuzzy K-Means with Adaptive Loss and Entropy Regularization[J]. IEEE Transactions on Fuzzy Systems, 2019.

[7] t-SNE相關資料:t-SNE完整筆記An illustrated introduction to the t-SNE algorithm從SNE到t-SNE再到LargeVist-SNE算法-CSDN

[8] DEC與IDEC的Python代碼-GithubDEC-Keras-Githubpiiswrong/dec-GithubDCEC-Github

[9] DFKM的Python代碼-Github

[10] 謝娟英,侯琦,曹嘉文. 深度卷積自編碼圖像聚類算法[J]. 計算機科學與探索, 2019, 13(4): 586-595.DOI:10.3778/j.issn.1673-9418.1806029. 

[11] Deep Clustering: methods and implements-Github 深度聚類會議論文彙總

相關文章
相關標籤/搜索