SpectralNet : spectral clustering using deep neural networks

谱聚类是无监督数据分析中的领先且流行的技术。其主要限制之一是频谱嵌入的可扩展性和泛化(即,样本扩展)。在这篇文章中介绍了一种克服上述缺点的谱聚类深度学习方法。文章中的网络称为SpectralNet,学习一个映射F\theta,将输入数据点映射到其相关图拉普拉斯矩阵的本征空间中,然后将它们聚类。

文章中的训练好的SpectralNet可以实现将输入点到输出图拉普拉斯矩阵的本征空间的映射,并且实现聚类。训练SpectralNet包含三个部分:

  1. 对于给定的输入无监督学习关系矩阵,通过Siamese网络
  2. 通过在强制正交性的同时优化谱聚类目标,无监督地学习映射F\theta
  3. 通过嵌入空间中的k均值聚类来学习聚类分配

下面分别介绍三个部分的具体实现:

1. Siamese 网络

Siamese网络通常训练一组相似(正)和不相似(负)的数据点。 当标记数据可用时,可以基于标记信息选择这样的对(即,具有相同标记的点对被认为是正的,而具有不同标记的点对被认为是负的)。  在未标记的数据集这种情况下,可以直接从欧几里德距离或图距来学习关系矩阵例如通过“标记”点xi; 如果||xi-xj||很小则xj为正,否则为负。 在文章中,我们从每个点的最近邻居构建正对,负对由远距离较大的点构成。 因此,Siamese网络被训练以学习自适应最近邻居度量。
Siamese网络将每个数据点xi映射到某个空间中。 通常训练网以最小化对比度损失,定义为

一旦训练了Siamese网络,我们就用它来定义一个用于训练SpectralNet的关系矩阵W

2. SpectralNet

文章中使用Yin Zheng, Huachun Tan, Bangsheng Tang, Hanning Zhou, et al. Variational deep embedding: A generative approach to clustering. arXiv preprint arXiv:1611.05148, 2016.中的自编码网络,设计了新的损失函数以及输出层。

其中,:显然,通过将所有点映射到相同的输出向量可以最小化损失。 为了防止这种情况,我们要求输出在D期望时是正交的,即,

具体来说,在每次迭代中,我们随机抽样m个样本的小批量,并将它们组织在m×d矩阵X中。 然后我们将损失降至最低

从而小批量中的正交要求就变成了

文章中将映射Fθ实现为一般神经网络,其最后一层强制执行上述正交性约束。那么根据QR分解将设置为最后一层的权重。

3. 将上面网络的输出也就是映射后的特征向量利用k-means聚类

整体算法如下所示

SpectralNet : spectral clustering using deep neural networks_第1张图片

一旦训练了SpectralNet,计算新测试点的嵌入(即,样本的外扩展)及其簇分配就很简单:我们只需通过网络Fθ传播每个测试点xi以获得它们的嵌入yi,并指定点到最近的中心,在训练数据上使用k-means计算质心,在算法1的最后一行。优点就是不需要因为新的测试样本而从新计算关系矩阵。

SpectralNet : spectral clustering using deep neural networks_第2张图片

为了检查SpectralNet对新测试点的泛化能力,问文章重复实验,只在训练集上训练SpectralNet,并通过将测试样例的标签传递到网络并将每个测试示例与最近的质心相关联来预测测试样例的标签。 从嵌入训练样例的k均值开始。 测试示例的准确度为.970,这意味着SpectralNet在这种情况下很好地概括了看不见的测试数据。 同样也评估了k-means的泛化性能。 使用输入空间时测试集上k-means的准确度为.546,使用代码空间时为.776,两者都明显逊于SpectralNet。

你可能感兴趣的:(谱聚类)