深度嵌入聚类 DEC 总结
Deep Embedded Cluster
概述
动机
一般的聚类算法例如K-means,GMM,这些方法速度快,适用于各种各样的问题, 但是,它们的距离度量仅限于原始数据空间,当输入维度较高时,它们往往无效。
DEC 同时学习使用深度神经网络的特征表示和聚类分配
DEC从数据空间学习映射到低维特征空间,在该特征空间中迭代地优化聚类目标
贡献
贡献:
(a)深度嵌入和聚类的联合优化;
(b)通过软分配进行新颖的迭代改进;
(c)得出聚类精度和速度方面最先进的聚类结果;
过程
概述
软分配
测量嵌入点和质心之间的相似度:
目标分布(辅助分布)
辅助分布用来衡量样本属于某个聚类的分布:
目标分布P的选择对于DEC的性能至关重要。
通常的方法是将每个pi设置为高于置信度阈值的数据点的delta分布(至最接近的质心),而忽略其余的点。 但是,由于qi是软分配,因此使用较软的概率目标更加自然和灵活。
delta分布:
最小化KL散度(目标函数)
综上所述,作者给出了原始分布(P)和假设分布(Q),那么就需要使用 KL-divergence 去拉近两分布之间的距离:
每次迭代更新需要Update的参数为:
第一个公式是优化AE中的Encoder参数,第二个公式是优化聚类中心。也就是说作者同时优化了聚类和DNN的相关参数。
结构图
DEC算法由两部分组成,
第一部分会预训练一个AE模型;
第二部分选取AE模型中的Encoder部分,加入聚类层,使用KL散度进行训练聚类。
实现
https://github.com/piiswrong/dec
Caffe实现