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再到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深度聚类会议论文汇总

[12] Deep Clustering | Deep Learning Notes

Deep Clustering Algorithms的更多相关文章

  1. 【论文阅读】Deep Clustering for Unsupervised Learning of Visual Features

    文章:Deep Clustering for Unsupervised Learning of Visual Features 作者:Mathilde Caron, Piotr Bojanowski, ...

  2. Introduction to Deep Learning Algorithms

    Introduction to Deep Learning Algorithms See the following article for a recent survey of deep learn ...

  3. 基于图嵌入的高斯混合变分自编码器的深度聚类(Deep Clustering by Gaussian Mixture Variational Autoencoders with Graph Embedding, DGG)

    基于图嵌入的高斯混合变分自编码器的深度聚类 Deep Clustering by Gaussian Mixture Variational Autoencoders with Graph Embedd ...

  4. 论文解读SDCN《Structural Deep Clustering Network》

    前言 主体思想:深度聚类需要考虑数据内在信息以及结构信息. 考虑自身信息采用 基础的 Autoencoder ,考虑结构信息采用 GCN. 1.介绍 在现实中,将结构信息集成到深度聚类中通常需要解决以 ...

  5. PP: Deep clustering based on a mixture of autoencoders

    Problem: clustering A clustering network transforms the data into another space and then selects one ...

  6. 论文解读(DAEGC)《Improved Deep Embedded Clustering with Local Structure Preservation》

    Paper Information Title:<Attributed Graph Clustering: A Deep Attentional Embedding Approach>Au ...

  7. 论文解读DEC《Unsupervised Deep Embedding for Clustering Analysis》

    Junyuan Xie, Ross B. Girshick, Ali Farhadi2015, ICML1243 Citations, 45 ReferencesCode:DownloadPaper: ...

  8. 【神经网络】自编码聚类算法--DEC (Deep Embedded Clustering)

    1.算法描述 最近在做AutoEncoder的一些探索,看到2016年的一篇论文,虽然不是最新的,但是思路和方法值得学习.论文原文链接 http://proceedings.mlr.press/v48 ...

  9. 论文解读(DFCN)《Deep Fusion Clustering Network》

    Paper information Titile:Deep Fusion Clustering Network Authors:Wenxuan Tu, Sihang Zhou, Xinwang Liu ...

随机推荐

  1. Mysql 字符问题

    先看一下mysql支持的字符范围 *数值类型:1.整形: 类型                               大小     范围                              ...

  2. xmake v2.3.1 发布, 无缝对接其他构建系统

    最近对xmake内部做了不少的重构来改进,并且新增了不少实用的新特性,欢迎来体验. 项目源码 官方文档 一些新特性: 一键编译其他构建系统维护的项目,实现无缝对接,并且支持交叉编译(比如autotoo ...

  3. AMD R2600+微星B450迫击炮配置的新工作机,分享给大家

    上个月,突然觉得自己总做用的电脑有点老了,虽然很不舍陪自己战斗了3,4年的老战士,下了很大的决心,才决定搞一台新的吧,虽然新电脑的配置也不算非常高,但是用于开发的话,也算不错的选择了,特此分享一下.又 ...

  4. The server cannot be started because one or more of the ports are invalid. Open the server editor and correct the invalid ports.

    在eclipse里运行jsp文件最初迟迟没有反应,重启报了这个错误,tomcat的端口设置有问题.需要打开服务器设置一下端口号. 点击Servers,如果没有这一项,按照Window-Show Vie ...

  5. Jmeter连接数据库并使用数据表数据作为接口所需参数

    jmeter连接数据库,并且使用数据库的用户名密码进行登录操作,具体步骤如下: 1.参考博客<Jmeter连接SqlServer数据库并操作>进行相关内容的补充,修改JDBC Reques ...

  6. request.getParameterMap获取不到数据问题

    最近在做javaweb项目的过程中发现使用request.getParameterMap( )方法获取jsp页面中的表单数据的时候发现获取不到,检查了好长时间最后发现问题是在jsp页面中. reque ...

  7. Oracle修改用户Profile SESSIONS_PER_USER 限制

    一.Profile目的: Oracle系统中的profile可以用来对用户所能使用的数据库资源进行限制,使用Create Profile命令创建一个Profile,用它来实现对数据库资源的限制使用,如 ...

  8. Jupyter Notebook 常用快捷键 (转)

    Jupyter Notebook 有两种键盘输入模式. 编辑模式,允许你往单元中键入代码或文本:这时的单元框线是绿色的. 命令模式,键盘输入运行程序命令:这时的单元框线为蓝色. 命令模式 (按键 Es ...

  9. 前端调用本地摄像头实现拍照(vue)

    由于调用摄像头有使用权限,只能在本地运行,线上需用https域名才可以使用. <template> <div class="camera_outer"> & ...

  10. linux之定时任务调度

    crond:任务调度 任务调度:是指系统在某个时间执行特定的程序或命令 任务调度分类: (1)系统工作,有些重要的工作必须周而复始地进行,如病毒扫描等 (2)个别用户工作:个别用户可能希望执行某些程序 ...