学习数据集类邻域结构改进聚类
一篇与文章“利用解耦内部表示改进k-Means聚类”的附带文章,由A.F. Agarap和A.P. Azcarraga在2020年国际联合神经网络会议(IJCNN)上进行演讲。
背景
聚类是一种无监督学习任务,它以一种方式将一组对象分组,使得同一组内的对象之间的相似性高于其他组。这是一个广泛研究的任务,因为它的应用包括但不限于在数据分析和可视化、异常检测、序列分析和自然语言处理中的使用。
与其他机器学习方法一样,聚类算法在特征表示的选择上非常依赖。在我们的工作中,我们通过解耦来改善特征表示的质量。
我们将解耦定义为类别不同数据点之间的距离与类别相似数据点之间的距离有多远。这类似于在Frosst等人(2019)中对该术语的处理方式。因此,在表示学习期间最大化解耦意味着最小化类别相似数据点之间的距离。
作者绘制的图。
通过这样做,它将保留数据集中示例的类成员资格,即数据点在特征空间中以其类别或标签的函数所居住的方式。如果保留了类成员资格,那么我们就会得到一个特征表示空间,在该空间中最近邻分类器或聚类算法会表现良好。
聚类
聚类是一种机器学习任务,它查找数据点的分组,其中同一组内的点在相对于不同组中的点之间共享更多的相似性。
作者绘制的图。
与其他机器学习算法一样,聚类算法的成功依赖于特征表示的选择。对于使用的数据集,一个表示可能比另一个表示更好。然而,在深度学习中,情况并非如此,因为特征表示是作为神经网络的一项隐式任务学习的。
深度聚类
因此,最近的作品,如2016年的“深嵌入聚类”(DEC)和“变分深嵌入”(VADE),以及2018年的“ClusterGAN”,利用了神经网络的特征表示学习能力。
来自DEC(Xie等人,2016)的图。DEC的网络结构。
我们不会在本文中详细讨论它们,但这些作品之间的基本思想是相同的,即使用深度神经网络同时学习特征表示和聚类分配。这个方法被称为深度聚类。
动机
在聚类之前,我们能保持数据点在数据集中的类成员资格吗?
尽管深度聚类方法学习了与特征表示一起的聚类分配,但它们并没有明确设定保留数据集的类邻域结构。这是我们进行研究的动机,也就是说,我们是否能够保留数据集的类邻域结构,然后在深度网络的学习表示上执行聚类。
在2019年,提出了Not Too Deep(N2D)聚类方法,其中他们学习了数据集的潜在码表示,并进一步使用t-SNE、Isomap和UMAP等技术搜索潜在流形。得到的流形是数据集的聚类友好表示。因此,在流形学习之后,他们使用了学习到的流形作为聚类的数据集特征。使用这种方法,他们能够获得良好的聚类性能。与深度聚类算法相比,N2D是一种相对较简单的方法,我们提出了类似的方法。
学习解耦表示
我们还使用自编码器网络来学习数据集的潜在码表示,并将表示用于聚类。我们在如何学习更适合聚类的表示方面有所不同。我们提出了一种解耦自编码器网络的学习表示的方式,而不是使用流形学习技术。
作者绘制的图。类相似数据点之间的距离被最小化,从而增强了类不同数据点的分离能力。
为了解耦学到的表示,我们使用了软最近邻损失(SNNL),它衡量了类相似数据点的纠缠程度。这个损失函数在神经网络的每个隐藏层中最小化了类相似数据点之间的距离。Frosst、Papernot和Hinton在2019年的论文中使用了SNNL来进行判别和生成任务。
作者绘制的图。我们从Neelakantan等人的2015年论文中获得了指数,但它可以是任何值。
在我们的工作中,我们将SNNL用于聚类,并引入了使用退火温度而不是固定温度的方法。我们的退火温度是关于训练周期数的倒数,用τ表示。
我们的方法
因此,我们的贡献包括使用SNNL来解缠用于聚类的特征表示,使用模拟退火温度来进行SNNL,以及与深度聚类方法相比更简单的聚类方法。
我们的方法可以总结如下:
我们训练一个自编码器,其中包括二进制交叉熵作为重构损失和软最近邻损失作为正则化项的复合损失。自编码器的每个隐藏层的SNNL被最小化,以保留数据集的类邻域结构。
训练完成后,我们使用数据集的潜在编码表示作为聚类的数据集特征。
基于解缠表示的聚类
我们的实验配置如下:
我们使用了MNIST 、Fashion-MNIST 和EMNIST Balanced基准数据集。数据集中的每个图像被压平为784维向量。我们使用它们的标签作为伪聚类标签,以测量我们模型的聚类准确性。
我们由于计算限制和简化我们的方法,没有进行超参数调整或其他训练技巧。
由于它们可能会影响解缠过程,我们省略了诸如dropout和批归一化等其他正则化项。
我们计算了我们模型在四次运行中的平均性能,每次运行使用不同的随机种子。
然而,自编码和聚类都是无监督学习任务,而我们使用SNNL,这是一个使用标签来保留数据集的类邻域结构的损失函数。
图像由作者提供。
鉴于此,我们通过使用基准数据集的少量标记训练数据的子集来模拟缺乏标记数据的情况。我们使用的标记示例数量是任意选择的。
我们从文献中检索到了DEC、VaDE、ClusterGAN和N2D的报告聚类准确性作为基准结果,在上面的表格中,我们可以看到我们的方法优于基准模型的总结。
请注意,这些结果是每个数据集四次运行中的最佳聚类准确性,因为来自文献的基准结果也是各自作者报告的最佳聚类准确性。
可视化解缠表示
为了进一步支持我们的发现,我们对每个数据集的网络进行了解缠表示的可视化。
对于EMNIST Balanced数据集,我们随机选择了10个类进行可视化,以便更容易和更清晰地观察。
从这些可视化中,我们可以看到每个数据集的潜在编码表示通过具有良好定义的聚类的簇分散性来更加适合聚类。
图像由作者提供。对三个数据集的原始表示和解缠潜在表示进行的三维可视化比较。为了实现这种可视化,使用了t-SNE进行编码,其中perplexity = 50和learning rate = 10,优化了5000次迭代,并对所有计算设置了相同的随机种子。然而,为了进行聚类,我们使用了更高维度以获得更好的聚类性能。
在较少标注示例上的训练
我们还尝试了在较少的标注示例上训练我们的模型。
作者提供的图示。当使用较少标注数据来进行训练时,在MNIST和Fashion-MNIST测试集上的聚类准确性。原始表示和基准自编码器都未利用标注数据集的优势。
从上图中可以看出,即使使用较少的标注训练示例,解缠绕表示的聚类性能仍与文献中的基线模型相当。
这表明在标注数据集稀缺的情况下,可以使用这种方法来得到良好的结果。
结论
与深度聚类方法相比,我们采用了一种更简单的聚类方法,即通过使用自编码器重构损失和软最近邻损失的组合损失来学习更适合聚类的表示,从而改善了k-Means聚类算法的性能。
我们扩展了软最近邻损失,其中使用了一个退火温度,帮助更快、更好地解缠绕,从而改善了基准数据集上的聚类性能。因此,我们的工作得出了结论。
自我们的工作发表以来,已经有几篇其他论文以软最近邻损失为基础,或被认为非常相似。其中最著名的是来自Google的“监督对比学习(SupCon)”论文,不同之处在于SupCon方法提出正则化嵌入、增加了数据增强、采用一次性对比头和两阶段训练。
另一方面,我们的工作在实现良好结果的同时需要相对较低的硬件资源。
参考文献
Frosst, Nicholas, Nicolas Papernot, and Geoffrey Hinton. “Analyzing and improving representations with the soft nearest neighbor loss.” International conference on machine learning. PMLR, 2019.
Goldberger, Jacob, et al. “Neighbourhood components analysis.” Advances in neural information processing systems. 2005.
Khosla, Prannay, et al. “Supervised contrastive learning.” Advances in neural information processing systems 33 (2020): 18661–18673.
Salakhutdinov, Ruslan, and Geoff Hinton. “Learning a nonlinear embedding by preserving class neighbourhood structure.” Artificial Intelligence and Statistics. 2007.