Deep Clustering Algorithms
Deep Clustering Algorithms
作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/
本文研究路线:深度自编码器(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解读中提到,也有很多深度自编码器的改进方法,不详细讲解,重点谈深度聚类算法。如有不对之处,望指正。
深度聚类算法的网络架构图


深度聚类算法的损失函数

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,使得不同簇之间的点能很好地分开。
1.2 t-SNE

1.3 Deep Embedded Clustering(DEC)
受t-SNE的启发,提出DEC算法,重新定义原始空间(高维空间)的度量pij。微调阶段,舍弃掉编码器层,最小化KL散度作为损失函数,迭代更新参数。DEC通过降噪自编码,逐层贪婪训练后组合成栈式自编码,然后撤去解码层,仅使用编码层,对提取出来的特征使用相对熵作为损失函数对网络进行微调,该结构可以同时对数据进行特征学习和聚类。但是DEC算法没有考虑微调会扭曲嵌入式空间,削弱嵌入式特征的代表性,从而影响聚类效果。
DEC算法先使用整个网络进行预训练,得到原始数据经过非线性映射到潜在特征空间的数据表示,即特征。然后对得到的特征用K-means算法进行网络初始化,得到初始聚类中心。再使用相对熵迭代,微调网络,直至满足收敛性判定准则停止。

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再到LargeVis、t-SNE算法-CSDN
[8] DEC与IDEC的Python代码-Github、DEC-Keras-Github、piiswrong/dec-Github、DCEC-Github
[10] 谢娟英,侯琦,曹嘉文. 深度卷积自编码图像聚类算法[J]. 计算机科学与探索, 2019, 13(4): 586-595.DOI:10.3778/j.issn.1673-9418.1806029.
[11] Deep Clustering: methods and implements-Github深度聚类会议论文汇总
[12] Deep Clustering | Deep Learning Notes
Deep Clustering Algorithms的更多相关文章
- 【论文阅读】Deep Clustering for Unsupervised Learning of Visual Features
文章:Deep Clustering for Unsupervised Learning of Visual Features 作者:Mathilde Caron, Piotr Bojanowski, ...
- Introduction to Deep Learning Algorithms
Introduction to Deep Learning Algorithms See the following article for a recent survey of deep learn ...
- 基于图嵌入的高斯混合变分自编码器的深度聚类(Deep Clustering by Gaussian Mixture Variational Autoencoders with Graph Embedding, DGG)
基于图嵌入的高斯混合变分自编码器的深度聚类 Deep Clustering by Gaussian Mixture Variational Autoencoders with Graph Embedd ...
- 论文解读SDCN《Structural Deep Clustering Network》
前言 主体思想:深度聚类需要考虑数据内在信息以及结构信息. 考虑自身信息采用 基础的 Autoencoder ,考虑结构信息采用 GCN. 1.介绍 在现实中,将结构信息集成到深度聚类中通常需要解决以 ...
- PP: Deep clustering based on a mixture of autoencoders
Problem: clustering A clustering network transforms the data into another space and then selects one ...
- 论文解读(DAEGC)《Improved Deep Embedded Clustering with Local Structure Preservation》
Paper Information Title:<Attributed Graph Clustering: A Deep Attentional Embedding Approach>Au ...
- 论文解读DEC《Unsupervised Deep Embedding for Clustering Analysis》
Junyuan Xie, Ross B. Girshick, Ali Farhadi2015, ICML1243 Citations, 45 ReferencesCode:DownloadPaper: ...
- 【神经网络】自编码聚类算法--DEC (Deep Embedded Clustering)
1.算法描述 最近在做AutoEncoder的一些探索,看到2016年的一篇论文,虽然不是最新的,但是思路和方法值得学习.论文原文链接 http://proceedings.mlr.press/v48 ...
- 论文解读(DFCN)《Deep Fusion Clustering Network》
Paper information Titile:Deep Fusion Clustering Network Authors:Wenxuan Tu, Sihang Zhou, Xinwang Liu ...
随机推荐
- df du 文件空间管理 命令
df 可以查看一级文件夹大小.使用比例.档案系统及其挂入点,但对文件却无能为力. du 可以查看文件及文件夹的大小. df:常用 df -h 以易读形式显示 磁盘空间 linux ...
- Angular RxJs:针对异步数据流编程工具
一. RxJs:针对异步数据流编程工具 1. 创建subject类对象(发送方) 2. subject.subscribe(观察者); (注册观察者对象observer,可以注册多个相当于回调函数取数 ...
- [WPF 自定义控件]自定义一个“传统”的 Validation.ErrorTemplate
1. 什么是Validaion.ErrorTemplate 数据绑定模型允许您将与您Binding的对象相关联ValidationRules. 如果用户输入的值无效,你可能希望在应用程序 用户界面 ( ...
- css中的盒子模型是什么?
什么是CSS 盒子模型(Box Model) 所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用. CSS盒模型本质上是一个盒子,封装周 ...
- 聊聊spring之bean对象的实例化过程
在spring实例化 之前bean对象封装成 beanDefinition 对象 想了解详情的请参考上一篇文章 好了 我们聊聊 Bean 的实例化过程的几个重要角色 BeanDefinitionReg ...
- MFC/QT 学习笔记(二)——MFC入门
MFC以C++形式封装了Windows API //实践 编写MFC需要的头文件#include <afxwin.h> 程序执行流程: 实例化应用程序对象(有且只有一个) 执行程序入口函数 ...
- 2020软件工程作业01 Deadline: 2020/03/07 20:00pm
1.建立博客 https://github.com/smithLIUandhisbaby 20177572 https://www.cnblogs.com/smith324/ 2.回顾——我的初心 对 ...
- 20200117 .net 001
第一部分:面向对象 封装 继承(里氏转换) 多态第二部分:值类型.引用类型.字符串操作第三部分:集合文件操作第四部分:正则表达式第五部分:XML操作第六部分:委托.事件第七部分:反射. 1.变量的命名 ...
- javaScript 数据类型,变量的类型转换,typeof()可以判断变量类型
js的数据类型和常见隐式转化逻辑. 一.六种数据类型 原始类型(基本类型):按值访问,可以操作保存在变量中实际的值.原始类型汇总中null和undefined比较特殊. 引用类型:引用类型的值是保存在 ...
- codechef Scoring Pairs
难度 \(medium-hard\) 题意 官方中文题意 做法 很显然是可以通过计算常数个\(sum(A,B)=\sum\limits_{i=0}^A \sum\limits_{j=0}^B scor ...