Unsupervised Deep Embedding for Clustering Analysis(DEC)

0. 写在前面

  • 这篇文章发表在2016年,算是比较早的文章,但很值得去看,算法深度无监督聚类的一个经典文章,本博客从模型、LOSS来讲,实验部分不着重讲。

1. 摘要

摘要部分,作者主要告诉我们DEC模型的聚类不是从数据本身来聚类,而是学习到数据到隐空间的映射,然后设置了聚类优化目标来学习隐空间的聚类,该模型不是生成模型,类似于K-means,选取了聚类中心,然后让数据自动逼近自己所属的聚类中心。
在这里插入图片描述

2. 介绍

这部分主要讲明该模型的三大贡献
(a)深度嵌入和聚类的联合优化;
(b)通过软分配进行新颖的迭代改进;
(c)得出聚类精度和速度方面最先进的聚类结果;

在这里插入图片描述

3. 相关工作

这部分不太重要,略读
在这里插入图片描述

4. DEC模型

  • 作者对模型行的训练分为两个部分
    1.用AE进行参数初始化,这一步和VaDE的预训练很像,是为了让模型在初始化时就学习到良好的隐空间表示。对于聚类中心的初始化,作者在隐空间中使用标准的K-means方法。
    2.用KL散度作为LOSS进行优化参数,参数包括两部分{θ,μ},θ是encoder的神经网络参数,μ是聚类中心

  • 看图说话,第一张图是原著,第二张图是其他论文中画的,两者异曲同工。
    在这里插入图片描述
    在这里插入图片描述

4.1 用KL散度进行聚类

作者先从训练过程的第二个阶段开始讲,这个过程又被分成两步:

1.计算隐空间的数据点和聚类中心的“软概率分布”

2.通过一个辅助的分布来计算KL散度作为LOSS以此来更新参数
在这里插入图片描述

4.1.1 软概率分布

在这里,作者使用了t-分布,也叫学生分布来衡量隐空间的数据点z和聚类中心的相似度(similarity)。t-分布我们很熟悉,就是一个统计量服从分子是标准正态分布,分母是卡方分布的一个分布。qij指的就是对于第i个样本,它和第j个聚类中心的相似度。
在这里插入图片描述

4.1.2 辅助分布

关于辅助分布,作者认为这对模型的效果是至关重要的,他必须满足下面三个条件:
在这里插入图片描述
所以作者选择了如下的分布,关于这一点,我不太清楚作者这么选择的更多的理由,可能是知识储备不够吧。
在这里插入图片描述

4.1.3 优化

优化方法就很常见的神经网络优化方法,需要注意的是,迭代终止条件是:
低于 tol%的样本不再改变聚类的选择时,停止训练。
在这里插入图片描述

4.2 参数初始化

  • 从模型结构图来看,它使用了AE进行参数初始话,均值采用的是K-means方法

在这里插入图片描述
在这里插入图片描述

5. 实验

关于实验我只想讲一点,就是梯度与概率分配的关系,这很重要。

  • 对于某个隐空间的点z,当他倾向于归属某一类时,LOSS在这一点的梯度回很大,相反对于其他类梯度就会很小。这说明模型捕捉到了z的聚类效果。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

6. 结论

这里就总结了以下DEC模型的结构、LOSS、和实验结果。
在这里插入图片描述

基于神经网络的聚类算法有很多种,其中两种常见的算法是DEC和SOM。 1. DECUnsupervised Deep Embedding for Clustering Analysis)是一种基于神经网络的聚类算法。它通过将数据映射到低维空间中的表示来进行聚类。DEC算法包含两个主要步骤:预训练和微调。在预训练阶段,DEC使用自动编码器来学习数据的低维表示。在微调阶段,DEC使用K-means算法来对预训练得到的表示进行聚类。DEC算法通过迭代预训练和微调的过程来优化聚类结果。 2. SOM(Self Organizing Maps)是一种无监督学习聚类算法,它使用自组织映射神经网络来对数据进行聚类。SOM算法的核心思想是将输入数据映射到一个二维的神经网络中,其中每个节点代表一个聚类类别。在训练过程中,SOM算法使用竞争学习的方式,将每个输入样例映射到与其最匹配的节点上。然后,根据节点之间的距离适当地更新节点的参数。最终,SOM算法将输入数据聚类成不同的类别。 下面是两种基于神经网络的聚类算法的示例代码: 1. DEC算法示例代码: ```python # 预训练 # TODO: 定义自动编码器模型 # TODO: 使用自动编码器对数据进行预训练 # 微调 # TODO: 使用K-means算法对预训练得到的表示进行聚类 ``` 2. SOM算法示例代码: ```python # TODO: 定义自组织映射神经网络模型 # TODO: 使用竞争学习的方式将输入样例映射到最匹配的节点上 # TODO: 根据节点之间的距离适当地更新节点的参数 # TODO: 将输入数据聚类成不同的类别 ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

InceptionZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值