DeepDPM算法复现

使用CVPR2022的论文DeepDPM: Deep Clustering With An Unknown Number of Clusters进行学习与复现。

  1. 预训练自编码器:使用无标签数据,通过自编码器的编码层产生特征向量,然后通过解码层尝试重构原始数据。这个过程是无监督的,它可以帮助网络学习数据的潜在表示,并且可以提高后续的聚类性能。

    预训练自编码器是深度聚类网络中的重要步骤。在这个过程中,使用无标签数据来训练自编码器模型,以学习数据的低维表示。自编码器模型通常由一个编码器和一个解码器组成,编码器将原始数据映射到低维特征空间,解码器则将低维特征重构为原始数据。预训练的目标是最小化重构误差,即使得原始数据和重构数据之间的均方误差MSE最小化。这个过程是无监督的,因为没有给定数据的标签信息,而是通过自编码器来学习数据的潜在表示。

  2. 使用预训练的自编码器进行特征提取:将无标签数据输入到预训练的自编码器中,获取编码层的特征向量。这个过程是自动的,无需手动提取特征。

    使用预训练的自编码器进行特征提取是深度聚类网络中的第二个步骤。在这个过程中,将无标签数据输入到预训练的自编码器中,并获取编码层的特征向量。编码层的特征向量是数据的低维表示,用于后续的聚类分析。相比原始数据,编码层的特征向量具有更好的可解释性和区分性,能够更好地反映数据的潜在结构。

  3. 初始化聚类中心:使用 K-means 等聚类算法,将特征向量聚类成 K 个簇,并将每个簇的中心作为初始聚类中心。

    初始化聚类中心是深度聚类网络中的第三个步骤。在这个过程中,使用 K-means 等聚类算法将特征向量聚类成 K 个簇,并将每个簇的中心作为初始聚类中心。这个过程是基于无监督学习的思想,利用数据的潜在结构来确定初始聚类中心。由于聚类算法的不确定性,初始聚类中心的选择对聚类结果有很大的影响。因此,选择合适的聚类算法和合适的初始聚类中心是深度聚类网络中的关键问题。

  4. 聚类网络训练:在聚类网络中,输入是特征向量,输出是对应的聚类分配。这个网络的损失函数包括两部分:一个是聚类损失,它基于当前聚类中心和网络输出的聚类分配计算;另一个是重构损失,它使用原始数据和自编码器的重构进行计算。过最小化这个损失函数,可以优化聚类中心和自编码器,以获得更好的聚类性能和更好的重构质量。

  5. 更新聚类中心:在训练过程中,聚类中心可以随着时间进行更新。这个过程可以通过在每个 epoch 结束时重新计算聚类中心来实现。聚类中心的更新可以使用不同的方法,例如平均所有分配给每个簇的特征向量。

  6. 迭代训练:通过重复进行步骤 2 到 5,可以逐渐优化网络和聚类中心,以获得更好的聚类性能和重构质量。最终,网络的输出将是每个输入数据点的聚类分配。

训练配置
DeepDPM算法复现_第1张图片

聚类结果可视化:
DeepDPM算法复现_第2张图片
聚类结果可视化,混淆矩阵
DeepDPM算法复现_第3张图片

你可能感兴趣的:(算法,聚类,机器学习)