【论文笔记】Unsupervised Deep Embedding for Clustering Analysis(DEC)

  • 文章题目:Unsupervised Deep Embedding for Clustering Analysis
  • 作者:Junyuan Xie,Ross Girshick,Ali Farhadi
  • 关键词
  • 时间:2016
  • 来源:ICML
  • paper:http://proceedings.mlr.press/v48/xieb16.html , https://arxiv.org/pdf/1511.06335.pdf
  • code:https://github.com/piiswrong/dec (caffe),https://github.com/XifengGuo/DEC-keras (keras)
  • 引用:Xie J, Girshick R, Farhadi A. Unsupervised deep embedding for clustering analysis. ICML 2016;1:740–9.

感性认识

  • 研究的基本问题
    利用深度网络,学习一个聚类表示(用于聚类的特征表示),并将学习表示过程与聚类分配过程放到一起,联合优化,并且是一个无监督过程。
  • 现有问题
    对于传统聚类,数据的距离或相似度计算是核心,对于距离计算,数据的特征表示又至关重要。在数据的原始空间可能面临维数灾难,距离无法计算等问题。且数据是无监督的,训练网络比较困难。
  • 主要想法
    定义了从数据空间X到低维特征空间Z的参数化非线性映射,在该映射中优化聚类目标;通过反向传播在聚类目标上使用随机梯度下降(SGD)来学习映射;基于KL散度,从当前的软聚类分配派生的辅助目标分布迭代地细化聚类;同时解决聚类分配和底层特征表示的问题。
    具体的:
    DEC有两个阶段:
    (1)用深度自编码器(deep autoencoder)参数初始化
    (2)参数优化(例如,聚类),通过迭代计算辅助目标分布和最小化Kullback-Leibler(KL)散度
    (2.1)计算嵌入点和簇中心之间软分配。
    (2.2)更新深度映射f,并通过使用辅助目标分布学习当前的高置信度分配来细化聚类中心。
  1. 堆叠自动编码器(SAE)参数初始化,构建非线性映射
    一个AE是两层,训练多个AE,上层输出作为下层输入。逐层训练。把多个AE的前层放到一起作为encoder,后层穿起来放到一起作为decoder。中间有一个瓶颈层(潜在表示层),特征数目较少。完整的encoder-decoder输入输出维度不变,而DEC只取encoder部分,使用瓶颈层的输出当作特征表示z。
  2. 软分配
    有了z,有了聚类中心,使用student-t分布进行分配概率的计算,即模型分布Q。(受t-sne启发)
  3. 构建辅助分布(目标分布)
    利用软分配得到的模型分布,利用高置信度预测结果,定义目标分布P
  4. 基于KL散度,定义目标函数
    L = K L ( P ∣ ∣ Q ) L=KL(P||Q) L=KL(PQ)
  5. 联合优化表示z与聚类中心μ,再用z去优化SAE的参数
  6. 自训练策略
    使用初始模型去预测数据,再使用高置信度的预测结果来训练模型。迭代提升,直到收敛。在两个连续迭代之间改变簇分配的点少于tol%时,过程停止。
  • 结果与结论
  • 不足与展望
    1.软分配是基于t分布定义的,其他分布的可能性
    2.聚类是通过软分配定义的,但是文章没有比较硬分配的假设
    3.非线性映射是SAE组成的,这一部分可以扩展
    4.目标分布P的定义。

理性认识

Abstract

Clustering is central to many data-driven application domains and has been studied extensively in terms of distance functions and grouping algorithms. Relatively little work has focused on learning representations for clustering. In this paper, we propose Deep Embedded Clustering (DEC), a method that simultaneously learns feature representations and cluster assignments using deep neural networks. DEC learns a mapping from the data space to a lower-dimensional feature space in which it iteratively optimizes a clustering objective. Our experimental evaluations on image and text corpora show significant improvement over state-of-the-art methods.

摘要

聚类是许多数据驱动应用领域的核心,在距离函数和分组算法方面已经得到了广泛的研究。相对而言,很少有研究聚焦于学习聚类表示。在本文中,我们提出了深度嵌入式聚类(DEC),一种使用深度神经网络同时学习特征表示和聚类分配的方法。DEC学习从数据空间到低维特征空间的映射,在其中迭代优化聚类目标。我们对图像和文本语料库的实验评估显示,与最先进的方法相比,有显著的改进。

1. Introduction

聚类是一种基本的数据分析和可视化工具,在无监督机器学习中已经从不同的角度进行了广泛的研究:什么是簇?什么是正确的距离度量?如何有效地将实例分组到簇中?如何验证簇?等等。在过去的文献中已经探索了许多不同的距离函数和嵌入方法。相对较少的工作关注特征空间的无监督学习,并用于聚类。
距离或差异这类概念是数据聚类算法的核心。而距离则依赖于数据在特征空间中的表示。例如,k-means聚类算法使用给定特征空间中点之间的欧氏距离,这对于图像可能是原始像素或梯度方向直方图。特征空间的选择通常作为应用程序特定细节留给最终用户来确定。然而,很明显,特征空间的选择至关重要;除了最简单的图像数据集,在原始像素上使用欧几里得距离聚类是完全无效的。在本文中,我们重新讨论了聚类分析,并提出了一个问题:我们是否可以使用数据驱动的方法来共同解决特征空间和聚类成员关系?
我们从最近关于计算机视觉深度学习的工作中获得了灵感,通过学习更好的特征,可以在基准任务中获得明显的收益。然而,这些改进是通过监督学习获得的,而我们的目标是无监督数据聚类。为此,我们定义了从数据空间X到低维特征空间Z的参数化非线性映射,在该映射中我们优化了聚类目标。与之前在数据空间或浅层线性嵌入空间上操作的工作不同,我们通过反向传播在聚类目标上使用随机梯度下降(SGD)来学习映射,这是由深度神经网络参数化的。我们将这种聚类算法称为深度嵌入式聚类,或DEC。
优化DEC具有挑战性。我们希望同时解决聚类分配和底层特征表示的问题。然而,与监督学习不同的是,我们不能用标记数据训练我们的深度网络。相反,我们建议用从当前的软聚类分配派生的辅助目标分布迭代地细化聚类。这一过程逐步改进了聚类和特征表示。
我们的实验表明,在图像和文本数据集上,与最先进的聚类方法相比,在准确性和运行时间方面都有显著的改进。我们在MNIST、STL和REUTERS上评估DEC,并将其与标准和最先进的聚类方法进行比较。此外,我们的实验表明,与最先进的方法相比,DEC对超参数选择的敏感性显著降低。这种鲁棒性是我们聚类算法的一个重要特性,因为当应用于真实数据时,超参数交叉验证的监督是不可用的。
我们的贡献有:(a)深度嵌入和聚类的联合优化;(b)一种新的软分配迭代优化算法;©在聚类精度和速度方面最先进的聚类结果。

2. Related work

3. Deep embedded clustering

对于 n n n 个点 $ {x_i\in X}_{i=1}^{n} $ ,分为 k k k 个簇,每个簇都由质心(聚类中心)向量 μ j , j = 1 , 2 , . . . , k μ_j,j=1,2,...,k μj,j=1,2,...,k表示。我们建议首先用非线性映射 f θ : X → Z f_θ:X→Z fθ:XZ 来转换数据,而不是直接在数据空间 X X X中聚类,其中, θ θ θ是参数, Z Z Z是潜在特征空间。为了避免“维度诅咒”, Z Z Z 的维度通常比 X X X 小得多。为了参数化 f θ f_θ fθ,深度神经网络(DNNs)是一种自然选择,因为它们的理论函数近似特性和它们所展示的特征学习能力
DEC对数据聚类,同时学习一套在特征空间Z中的k聚类中心和DNN中将数据点映射到Z的参数θ。
DEC有两个阶段:
(1)用深度自编码器(deep autoencoder)参数初始化
(2)参数优化(例如,聚类),我们通过迭代计算辅助目标分布和最小化Kullback-Leibler(KL)散度。

我们从描述阶段(2)参数优化/聚类开始,给出了参数和聚类中心的初始估计。

3.1. Clustering with KL divergence

在给出非线性映射f和初始聚类中心的初始估计后,我们提出使用两步交替的无监督算法来改进聚类。
在第一步,我们计算嵌入点和簇中心之间软分配。
第二步,我们更新深度映射f,并通过使用辅助目标分布学习当前的高置信度分配来细化聚类中心。这个过程一直重复,直到满足收敛准则。

3.1.1. SOFT ASSIGNMENT

我们用学生t分布(Student’s t-distribution)作为核来度量嵌入点与簇中心之间的相似性。

3.1.2. KL DIVERGENCE MINIMIZATION

我们提出在辅助目标分布的帮助下,通过学习它们的高置信分配来迭代地改进聚类。具体来说,我们的模型是通过软分配去匹配目标分布来训练的。为此,我们将我们的目标定义为软分配 q i q_i qi 和辅助分布 p i p_i pi 之间的KL散度损失,如下所示 L = KL ( P ∣ ∣ Q ) = ∑ i ∑ j p i j log ⁡ p i j q i j L\ =\ \text{KL}\left( P||Q \right) \ =\ \sum_i{\sum_j{p_{ij}\log \frac{p_{ij}}{q_{ij}}}} L=KL(PQ)=ijpijlogqijpij目标分布P的选择对DEC的性能至关重要。一个简单的方法是将每个pi设置为高于置信阈值的数据点的delta分布(到最近的质心),然后忽略其余的。然而,由于qi是软分配,使用软概率目标更自然和灵活。
具体来说,我们希望我们的目标分布具有以下特性:

  • (1)加强预测(即提高聚类纯度),
  • (2)更加强调高置信度的数据点,以及
  • (3)标准化每个质心的损失贡献,以防止大型簇扭曲隐藏的特征空间。

在我们的实验中,我们首先将 q i q_i qi 提高到2次方,然后根据每个簇的频率进行归一化,从而计算 p i p_i pi :
p i j = q i j 2 / f j ∑ j ′ q i j ′ 2 / f j ′ , f j = ∑ i q i j p_{ij}\ =\ \frac{q_{ij}^{2}/f_j}{\sum_{j'}{q_{ij'}^{2}/f_{j'}}}\ ,\ f_j=\sum_i{q_{ij}} pij=jqij2/fjqij2/fj,fj=iqij
我们的训练策略可以看作是一种自训练。与自训练一样,我们采用一个初始分类器和一个未标记的数据集,然后用分类器对数据集进行标记,以便使用其自身的高置信预测进行训练。事实上,在实验中,我们观察到DEC通过从高置信预测中学习来改进每次迭代的初始估计,这反过来又有助于改进低置信预测。

3.1.3. OPTIMIZATION

同时优化表示 z i z_i zi 与簇中心 μ j μ_j μj, z i z_i zi再传到DNN中,优化 θ θ θ

当在两个连续迭代之间改变簇分配的点少于tol%时,过程停止。

3.2. Parameter initialization

到目前为止,我们已经讨论了DEC如何运行,给出了DNN参数θ和聚类中心的初步估计。现在我们讨论如何初始化参数和簇中心。
我们使用堆叠自动编码器(SAE)来初始化DEC,因为最近的研究表明,它们在真实数据集上一致地产生有语义意义且区分良好的表示。因此,SAE学习的非监督表示自然有助于使用DEC学习聚类表示。
我们一层一层地初始化SAE网络,每一层都是经过训练的去噪自编码器,在随机破坏后重建前一层的输出。去噪自编码器定义为两层神经网络。

损失为 ∣ ∣ x − y ∣ ∣ 2 2 ||x-y||_2^2 xy22。在对一层进行训练后,我们用它的输出h作为输入来训练下一层。我们所有的编码器/解码器对中使用ReLUs,除了第一对的g2(它需要重构可能有正负值的输入数据,如零均值图像)和最后一对的g1(这样最终的数据嵌入保留了完整的信息。
在进行贪婪分层训练后,我们将所有编码器层依次连接,然后是所有解码器层,按照反向分层训练顺序,形成一个深度自动编码器,然后对其进行微调,使重构损失最小化。最终的结果是一个多层的深度自动编码器,中间有一个瓶颈编码层。然后我们丢弃解码器层,使用编码器层作为数据空间和特征空间之间的初始映射,如图1所示。

为了初始化聚类中心,我们将数据通过初始化的DNN传递得到嵌入的数据点,然后在特征空间Z中进行标准的k-means聚类,得到k个初始中心。

4. Experiments

4.1. Datasets
数据集:一个文本数据集和两个图像数据集:

  • MNIST(手写数字),
  • STL-10(96 × 96彩色图像的数据集。共有10个类,每个类有1300个例子。它还包含100000张相同分辨率的未标记图像),
  • REUTERS(路透社,包含了大约81万篇用分类树标记的英语新闻故事,用了一部分)

对比算法:k-means、LDGMI和SEC。LDGMI和SEC是基于光谱聚类的算法,它们使用拉普拉斯矩阵和各种变换来提高聚类性能。LDMGI和SEC在很大范围的数据集上都优于传统的谱聚类方法。

5. Discussion

6. Conclusion

本文提出了一种深度嵌入式聚类算法,即在联合优化的特征空间中对一组数据点进行聚类。DEC的工作原理是迭代优化基于KL散度的聚类目标和自训练目标分布。我们的方法可以看作是半监督自我训练的无监督扩展。我们的框架提供了一种方法来学习专门用于聚类的表示,而不需要groundtruth聚类成员标签。
实证研究证明了我们提出的算法的有效性。DEC提供了相对于超参数设置的改进性能和鲁棒性,这在无监督任务中特别重要,因为交叉验证是不可能的。DEC在数据点数量上也具有线性复杂性的优点,这允许它扩展到大型数据集。

真·笔记

1.软分配
首先明确基本思想:硬分配的意思就是,样本1就是类型1,样本2就是类型2,软分配的意思是样本1有30%的可能是类型1,70%的可能是类型2

https://blog.csdn.net/qq_44015059/article/details/106669350

小尾巴

1.delta分布,学生t分布
2.LDGMI和SEC
3.谱聚类
4.t-sne
5.pij为何是这么定义的。

重点相关论文

1.van der Maaten, Laurens and Hinton, Geoffrey. Visualizing data using t-SNE. JMLR, 2008
t-sne
2.Vincent, Pascal, Larochelle, Hugo, Lajoie, Isabelle, Bengio, Yoshua, and Manzagol, Pierre-Antoine. Stacked denoising autoencoders: Learning useful representations in a deep network with a local denoising criterion. JMLR, 2010.
SAE,自动编码器部分

参考资料

1.https://blog.csdn.net/qq_44015059/article/details/106669350
2.https://www.cnblogs.com/wzyj/p/9827584.html
3.https://blog.csdn.net/weixin_47444348/article/details/105920145
4.https://blog.csdn.net/SCS199411/article/details/90759274
5.https://blog.csdn.net/GYY8023/article/details/104543033

【论文笔记】Unsupervised Deep Embedding for Clustering Analysis(DEC)相关推荐

  1. 论文阅读”Efficient Deep Embedded Subspace Clustering“(CVPR2022)

    论文标题 Efficient Deep Embedded Subspace Clustering 论文作者.链接 作者: Cai, Jinyu and Fan, Jicong and Guo, Wen ...

  2. 【论文阅读】Deep Adversarial Subspace Clustering

    导读: 本文为CVPR2018论文<Deep Adversarial Subspace Clustering>的阅读总结.目的是做聚类,方法是DASC=DSC(Deep Subspace ...

  3. 【论文笔记】:《Lifelong Spectral Clustering》

    论文笔记:Lifelong Spectral Clustering 论文信息 个人总结 谱聚类 论文做了什么(Abstract) 公式解读 The Proposed L2SC Model 提出模型 M ...

  4. 单细胞论文记录(part11)--ClusterMap for multi-scale clustering analysis of spatial gene expression

    学习笔记,仅供参考,有错必纠 阅读状态:略读 Journal:Nature Communications Year:2021 Authors:He Yichun,Tang Xin ClusterMap ...

  5. 图像隐写术分析论文笔记:Deep learning for steganalysis via convolutional neural networks

    好久没有写论文笔记了,这里开始一个新任务,即图像的steganalysis任务的深度网络模型.现在是论文阅读阶段,会陆续分享一些相关论文,以及基础知识,以及传统方法的思路,以资借鉴. 这一篇是Medi ...

  6. 【论文笔记】DEEP FEATURE SELECTION-AND-FUSION FOR RGB-D SEMANTIC SEGMENTATION

    论文 题目:DEEP FEATURE SELECTION-AND-FUSION FOR RGB-D SEMANTIC SEGMENTATION 收录于:ICME 2021 论文:Deep Featur ...

  7. 论文解读GCN 1st《 Deep Embedding for CUnsupervisedlustering Analysis》

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  8. 论文解读第三代GCN《 Deep Embedding for CUnsupervisedlustering Analysis》

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  9. 论文笔记:N-BEATS: NEURAL BASIS EXPANSION ANALYSIS FORINTERPRETABLE TIME SERIES FORECASTING

    ICLR 2020 0 摘要 本文重点研究了利用深度学习解决单变量时间序列点预测问题. 我们提出了一种基于后向和前向残留链路和一个非常深的全连接层堆栈的深度神经结构. 该体系结构具有许多令人满意的特性 ...

最新文章

  1. sql server面试题
  2. “云智一体”的全场景智能视频技术是什么?
  3. 条理清晰的搭建SSH环境之添加所需jar包
  4. mysql 5.5.37 my.cnf,linux安装最新mysql5.5,my.cnf找不到解决办法
  5. centos 6.9 NTP基准时间服务器配置
  6. ubuntu等linux系统给windows共享文件
  7. java 监听request_ServletRequest 监听器
  8. 图片传输_一幅图片的奇妙旅行,网络传输分层通信协议原理揭秘
  9. vue读取外部配置文件
  10. java setviewport_Java ImageView.setViewport方法代码示例
  11. Azure上七层负载均衡APP Gateway
  12. 七、VueJs 填坑日记之渲染一个列表
  13. Spring.net(一)----Spring.NET框架简介及模块说明
  14. 软件测试的四个阶段【单元测试、集成测试、系统测试、验证测试】
  15. 《C陷阱与缺陷》学习笔记(1):这本书值得看吗?
  16. 玩转python——帮你解决乡愁
  17. 双搜----用两只眼睛看世界
  18. 训练赛20160406_华中OJ
  19. 求最长上升子序列——LIS的O(nlogn)算法(二分)
  20. md5sum 命令 – 计算文件内容的 md5 值

热门文章

  1. discuz 直接在模板上定义伪静态链接,为论坛的绑定别名或拼音格式的目录名
  2. 科比自述天皇巨星之道
  3. Mac电脑一个应用程序多窗口切换
  4. Android---使用-ContentProvider-无侵入获取-Context
  5. 诺基亚7.2 ROOT 基于Magisk
  6. 德国交通标志检测基准
  7. 在新加坡生活是一种什么体验?
  8. 世上最杰出程序员,B 语言、Unix 之父嫌计算机发展太慢,让孩子学生物?
  9. pytest合集(4)— 使用pytest-html插件生成HTML测试报告
  10. 精品壹百度完整版(PDF)