DEC学习 前提知识维度特征维度可以简单理解为需要用多少个数字去表示特征。例如一个人有身高、体重、性别、年龄这四个特征每个特征都用一个数字表示那人的特征维度就是4。软/硬分布在聚类算法中根据一个数据点是否确定属于唯一一个簇可划分为软分布和硬分布。如果一个数据点和簇中心的关系只有属于和不属于也就是0和1则是硬分布比如Kmeans等如果数据点和簇中心之间的关系用相关度或者隶属度表示则是软分布比如FCM、DEC、IDEC等。背景聚类通过挖掘数据特征之间的关系增大簇之间的距离缩小簇内间距。但随着数据量的增长描述数据的特征维度也在不断增加。如果保留数据的全部特征进行聚类不仅会增加计算量还会因为噪声和无用特征的存在导致聚类结果不理想。所以为了数据清洗并且将高维数据特征压缩为低维数据特征以便更好地进行聚类于是引入DNNDeep Natural Network深度神经网络进而有了深度聚类DEC就是深度聚类中的代表算法之一。DNN搭建AEAuto-Encoder自编码器是一种神经网络架构由encoder编码器和decoder解码器组成具有压缩和重构的功能是DEC的基础骨架。encoder是由多个全连接层激活函数组成的网络块负责将高维特征压缩为低维特征。如上图所示全连接层的隐藏计算层一共有四个神经元是参与计算的最小网络单位将所有特征输入进每个神经元每个神经元会对输入进行加权求和即线性变换其中权重w和偏置b都是可学习的参数且所有神经元独立使用W和b。隐藏层的结果经过激活函数激活后再输入进输出层的神经元加权求和后即为嵌入后的特征z可见嵌入特征z的维度和输出层神经元个数保持一致和隐藏层神经元个数无关。decoder的结构和encoder非常相似区别在于decoder的输入特征维度要比输出层神经元个数大以此完成升维任务。AE预训练AE是要服务于最后的聚类任务的一个好的AE模型对聚类结果至关重要因此需要先对AE进行预训练得到不错的结果后再将其用于聚类。encoder负责压缩特征decoder负责使用由encoder得到的嵌入特征进行重构得到与原始特征X比较即可判断AE的表现。预训练损失函数使用X和的均方误差MSEDEC算法会抛弃decoder只用encoder完成后续的聚类任务。聚类聚类任务中需要更新的参数就是簇中心在第一次聚类之前需要初始化簇中心有两个方法①随机初始化②AE预训练完成后将数据放在AE中再跑一遍这一遍只要encoder生成的嵌入特征z用 kmeans对z进行一次聚类得到初始化簇中心显然②的误差会更小所以一般都会选择②。聚类损失函数KL散度其中q是目标/近似分布p是希望q去逼近的真实分布KL散度表示真实分布p和近似分布q之间的差距。KL越小p和q之间的差距越小近似分布越逼近真实分布聚类结果越好。接下来计算近似分布Q计算z和的欧式距离但是DEC是软分布所以需要先把欧氏距离转换成软分布使用学生-t分布的概率密度公式计算软分布t分布并不是用来建模隐空间样本的分布只是距离‑相似度的转换核。相比正态分布学生 t‑分布拥有更重的尾部距离较大时相似度不会快速归零保留软分布的梯度避免训练过早变成硬分布。其中α是t分布的自由度。在DEC论文以及其他方法中α的值通常固定为1所以Q一般写成由于聚类是无监督学习压根没有真实分布所以对Q进行锐化得到P锐化的作用就是会让大的更大小的更小。loss会让Q不断的逼近P从而达到聚类的效果P也叫伪标签。总结DEC的损失函数只有聚类损失即KL散度因为在AE预训练完成之后只有encoder参与了后续的聚类。KL散度是由P和Q计算得来的P又是由Q锐化得到的所以参数更新就是Q中的嵌入特征z和簇中心但是z只是一个计算结果是由encoder计算得到的所以DEC真正需要更新的参数有两个①神经网络参数W和b②簇中心完整过程①预训练AE完成神经网络参数初始化和簇中心初始化。②将数据输入encoder得到嵌入特征z计算嵌入特征z和簇中心的欧式距离带入t分布的概率密度公式将距离转化为相关度得到近似分布Q锐化Q得到伪标签P。③计算KL散度反向传播梯度下降调整参数W、b、。④重复②③直到KL散度不再变化。注意由于DEC需要更新的参数很多而且数据量很大所以一般会采用mini-batch的策略进行模型微调也就是②③每次只选取一部分的数据输入到encoder当中参数正常更新但是P的公式中需要计算所有数据的软分布之和现在训练只是选了一部分数据只会临时记录这一部分数据的Q所以不能更新P等到一定轮次可以自己设置之后再统一计算所有的Q求和再更新P这样也会节省很多时间。DEC缺点DEC的P是由Q锐化得到的所以实际上模型微调的方向就已经人为确定了就是让相关度高的更高低的更低假如一开始的方向就是错的那一条道走到黑显然也不会有好结果。DEC的损失函数只有KL散度这会导致模型为了让loss减小调整W和b的时候可能会导致encoder压缩出扭曲的嵌入特征虽然看似loss小了但实际上是不合理的这也是DEC在模型微调环节把decoder去掉encoder没有了重构约束的结果也是IDEC改进的方向。

相关新闻

最新新闻

基于人体关键点检测的实时坐姿分析系统开发实践

基于人体关键点检测的实时坐姿分析系统开发实践

简介:这是一套面向Python全栈开发者与计算机视觉初学者的实战项目代码,聚焦坐姿健康监测场景,通过实时姿态识别实现坐姿异常检测与纠正提醒。资源采用前后端分离架构,后端基于Flask/FastAPI提供RESTful接口,集成MediaP…

2026/8/31 19:25:42
多模态手势识别实战:融合视觉与IMU,提升环境鲁棒性

多模态手势识别实战:融合视觉与IMU,提升环境鲁棒性

简介:本资源是一个基于MATLAB实现的多种模态信号融合手势识别系统,面向计算机、电子信息工程、数学等专业的本科生与研究生,适用于课程设计、期末大作业及毕业设计等实践环节,解决多源异构信号(如视觉、深度、时序传感…

2026/8/31 19:25:42
WiFi指纹+PDR融合的Android室内定位工程实现与调优

WiFi指纹+PDR融合的Android室内定位工程实现与调优

简介:本资源是一个基于WiFi信号强度与行人航迹推算(PDR)融合算法的Android室内定位系统实现,面向本科及硕士阶段的移动计算、智能感知与位置服务相关课程设计、毕业设计及科研入门学习者。项目完整包含可直接安装运行的APK、Andro…

2026/8/31 19:25:42
基于PyTorch的图神经网络社交关系推荐系统检测与识别系统设计与实现【Python完整源码+预训练模型】

基于PyTorch的图神经网络社交关系推荐系统检测与识别系统设计与实现【Python完整源码+预训练模型】

博主介绍: 💼 毕业设计解决方案 构建完整的毕业设计生态支撑体系,为学生提供从选题到交付的全链路技术服务: 技术选题库 微信小程序生态:精选100个符合市场趋势的前沿选题 Java企业级应用:汇集500个涵盖主流…

2026/8/31 19:25:42
MATLAB仿真啁啾光纤光栅:从耦合模理论到时延特性分析

MATLAB仿真啁啾光纤光栅:从耦合模理论到时延特性分析

简介:本资源是一份面向光学工程、光通信及信号处理方向初学者与实践者的MATLAB仿真脚本,聚焦啁啾光纤光栅(CFBG)核心特性建模,解决反射谱展宽机制与时延响应关系难以直观理解的问题。压缩包仅含1个关键文件zhoujiu.m&a…

2026/8/31 19:25:42
基于CNN-BiLSTM的多输入回归预测:MATLAB完整实现与调参经验

基于CNN-BiLSTM的多输入回归预测:MATLAB完整实现与调参经验

简介:本资源面向机器学习与智能预测方向的MATLAB初学者及工程实践者,提供一套开箱即用的CNN-BiLSTM混合神经网络多输入回归预测完整实现方案,适用于负荷预测、环境参数建模、设备状态估计等实际场景。压缩包共6个文件(333KB&#…

2026/8/31 19:20:42