ICLR-2018《SpectralNet: Spectral Clustering using Deep Neural Networks》


推荐一个机器学习前沿公众号,第一时间获取最有价值的前沿机器学习文章。

在这里插入图片描述

论文分析

核心思想

SpectralNet 是一种基于深度神经网络的谱聚类方法,旨在克服传统谱聚类的两大局限性:可扩展性(scalability)和样本外扩展(out-of-sample extension, OOSE)。传统谱聚类通过构建数据点的图拉普拉斯矩阵并计算其特征向量来实现数据嵌入,但计算复杂度高(尤其对大规模数据集),且难以直接将嵌入推广到未见过的数据点。SpectralNet 的核心思想是:

  1. 深度神经网络映射:设计一个神经网络(称为 SpectralNet),学习一个从输入数据点到图拉普拉斯矩阵特征空间的映射函数 F θ : R d → R k F_\theta: \mathbb{R}^d \rightarrow \mathbb{R}^k Fθ:RdRk,其中 θ \theta θ 表示网络参数, k k k 是目标聚类数。这种映射不仅能够近似传统谱聚类的特征向量嵌入,还能通过前向传播直接应用于新数据点,实现样本外扩展。

  2. 无监督学习:整个训练过程是完全无监督的,结合了谱聚类的优化目标(最小化相似点之间的嵌入距离)和深度学习的优势(如随机梯度下降的 scalability)。

  3. 改进亲和度函数:传统谱聚类依赖欧几里得距离和高斯核来构建亲和度矩阵,SpectralNet 提出使用Siamese 网络从无标签数据中学习更复杂的亲和度关系,从而提高聚类质量。

  4. 正交约束:通过在网络输出层引入正交化约束(基于 QR 分解),确保嵌入的正交性,模拟传统谱聚类中特征向量的正交性质。

  5. 代码空间嵌入:结合自编码器(autoencoder)生成的低维代码空间,进一步提高聚类性能,减少噪声影响。

SpectralNet 的核心优势在于其能够处理大规模数据集,生成可泛化的嵌入函数,并有效处理非凸聚类问题,优于基于 k k k-means 或高斯混合模型的深度聚类方法。


目标函数

SpectralNet 的目标函数旨在模拟谱聚类的优化目标,即最小化相似数据点在嵌入空间中的距离,同时保持嵌入的正交性。其主要目标函数分为两部分:谱聚类损失正交约束

  1. 谱聚类损失
    SpectralNet 的损失函数基于谱聚类的目标,即最小化相似点对之间的嵌入距离。给定亲和度函数 w : R d × R d → [ 0 , ∞ ) w: \mathbb{R}^d \times \mathbb{R}^d \rightarrow [0, \infty) w:Rd×Rd[0,),表示数据点 x x x x ′ x' x 之间的相似性,损失函数定义为期望形式:

    L SpectralNet ( θ ) = E [ w ( x , x ′ ) ∥ y − y ′ ∥ 2 ] , \mathcal{L}_{\text{SpectralNet}}(\theta) = \mathbb{E}\left[w(x, x') \| y - y' \|^2\right], LSpectralNet(θ)=E[w(x,x)yy2],

    其中 y = F θ ( x ) y = F_\theta(x) y=Fθ(x) y ′ = F θ ( x ′ ) y' = F_\theta(x') y=Fθ(x) 是数据点 x x x x ′ x' x 在嵌入空间中的表示, θ \theta θ 是网络参数,期望 E \mathbb{E} E 针对从分布 D \mathcal{D} D 中独立采样的点对 ( x , x ′ ) (x, x') (x,x) 计算。

    在实际优化中,使用小批量(minibatch)近似期望,损失函数变为:

    L SpectralNet ( θ ) = 1 m 2 ∑ i , j = 1 m W i , j ∥ y i − y j ∥ 2 , L_{\text{SpectralNet}}(\theta) = \frac{1}{m^2} \sum_{i,j=1}^m W_{i,j} \| y_i - y_j \|^2, LSpectralNet(θ)=m21i,j=1mWi,jyiyj2,

    其中 m m m 是小批量大小, W i , j = w ( x i , x j ) W_{i,j} = w(x_i, x_j) Wi,j=w(xi,xj) 是亲和度矩阵, y i = F θ ( x i ) y_i = F_\theta(x_i) yi=Fθ(xi)。该损失可以重写为图拉普拉斯矩阵的形式:

    L SpectralNet ( θ ) = 2 m 2 trace ( Y T ( D − W ) Y ) , L_{\text{SpectralNet}}(\theta) = \frac{2}{m^2} \text{trace}\left(Y^T (D - W) Y\right), LSpectralNet(θ)=m22trace(YT(DW)Y),

    其中 D D D 是对角矩阵, D i , i = ∑ j W i , j D_{i,i} = \sum_j W_{i,j} Di,i=jWi,j D − W D - W DW 是未归一化的图拉普拉斯矩阵, Y Y Y 是小批量数据的嵌入矩阵( m × k m \times k m×k)。

    对于归一化图拉普拉斯矩阵 I − D − 1 2 W D − 1 2 I - D^{-\frac{1}{2}} W D^{-\frac{1}{2}} ID21WD21,损失函数调整为:

    L SpectralNet ( θ ) = 1 m 2 ∑ i , j = 1 m W i , j ∥ y i d i − y j d j ∥ 2 , L_{\text{SpectralNet}}(\theta) = \frac{1}{m^2} \sum_{i,j=1}^m W_{i,j} \left\| \frac{y_i}{d_i} - \frac{y_j}{d_j} \right\|^2, LSpectralNet(θ)=m21i,j=1mWi,j diyidjyj 2,

    其中 d i = D i , i d_i = D_{i,i} di=Di,i

  2. 正交约束
    为避免损失函数退化为将所有点映射到同一向量(平凡解),SpectralNet 要求嵌入在期望上是正交的:

    E [ y y T ] = I k × k . \mathbb{E}\left[y y^T\right] = I_{k \times k}. E[yyT]=Ik×k.

    在小批量中,这一约束近似为:

    1 m Y T Y = I k × k , \frac{1}{m} Y^T Y = I_{k \times k}, m1YTY=Ik×k,

    其中 Y Y Y 是小批量嵌入矩阵。这通过网络的最后一层实现,该层通过 QR 分解正交化输出。

  3. Siamese 网络的亲和度学习
    亲和度函数 w ( x i , x j ) w(x_i, x_j) w(xi,xj) 是 SpectralNet 的关键组件。传统方法使用高斯核:

    W i , j = { exp ⁡ ( − ∥ x i − x j ∥ 2 2 σ 2 ) , if  x j  is a nearest neighbor of  x i , 0 , otherwise , W_{i,j} = \begin{cases} \exp\left(-\frac{\|x_i - x_j\|^2}{2\sigma^2}\right), & \text{if } x_j \text{ is a nearest neighbor of } x_i, \\ 0, & \text{otherwise}, \end{cases} Wi,j={exp(2σ2xixj2),0,if xj is a nearest neighbor of xi,otherwise,

    SpectralNet 提出使用 Siamese 网络学习更复杂的亲和度。Siamese 网络将数据点 x i x_i xi 映射到嵌入 z i = G θ siamese ( x i ) z_i = G_{\theta_{\text{siamese}}}(x_i) zi=Gθsiamese(xi),并通过对比损失(contrastive loss)优化:

    L siamese ( θ siamese ; x i , x j ) = { ∥ z i − z j ∥ 2 , if  ( x i , x j )  is a positive pair , max ⁡ ( c − ∥ z i − z j ∥ , 0 ) 2 , if  ( x i , x j )  is a negative pair , L_{\text{siamese}}(\theta_{\text{siamese}}; x_i, x_j) = \begin{cases} \|z_i - z_j\|^2, & \text{if } (x_i, x_j) \text{ is a positive pair}, \\ \max(c - \|z_i - z_j\|, 0)^2, & \text{if } (x_i, x_j) \text{ is a negative pair}, \end{cases} Lsiamese(θsiamese;xi,xj)={zizj2,max(czizj,0)2,if (xi,xj) is a positive pair,if (xi,xj) is a negative pair,

    其中 c c c 是边界常数(通常设为 1)。正对(positive pairs)基于近邻关系,负对(negative pairs)基于较远点。训练后,亲和度矩阵使用 Siamese 嵌入距离重新定义:

    W i , j = exp ⁡ ( − ∥ z i − z j ∥ 2 2 σ 2 ) . W_{i,j} = \exp\left(-\frac{\|z_i - z_j\|^2}{2\sigma^2}\right). Wi,j=exp(2σ2zizj2).


目标函数的优化过程

SpectralNet 的优化过程采用约束随机优化,结合正交约束和谱聚类损失,通过以下步骤实现:

  1. Siamese 网络训练

    • 首先构造正负点对的训练集。正对基于欧几里得距离的近邻,负对基于较远点。
    • 使用对比损失 L siamese L_{\text{siamese}} Lsiamese 训练 Siamese 网络,优化参数 θ siamese \theta_{\text{siamese}} θsiamese,得到嵌入 z i = G θ siamese ( x i ) z_i = G_{\theta_{\text{siamese}}}(x_i) zi=Gθsiamese(xi)
    • 使用训练好的 Siamese 网络生成亲和度矩阵 W W W,替换传统的欧几里得距离高斯核。
  2. 谱映射 F θ F_\theta Fθ 的训练

    • 初始化网络权重 θ \theta θ
    • 采用坐标下降法,交替进行以下两个步骤:
      • 正交化步骤
        • 随机采样小批量 X X X(大小为 m m m)。
        • 前向传播 X X X,得到正交化层输入 Y ~ \tilde{Y} Y~ m × k m \times k m×k 矩阵)。
        • 计算 Y ~ T Y ~ \tilde{Y}^T \tilde{Y} Y~TY~ 的 Cholesky 分解: Y ~ T Y ~ = L L T \tilde{Y}^T \tilde{Y} = L L^T Y~TY~=LLT,其中 L L L 是下三角矩阵。
        • 设置正交化层的权重为 m ( L − 1 ) T \sqrt{m} (L^{-1})^T m (L1)T,确保输出 Y = Y ~ m ( L − 1 ) T Y = \tilde{Y} \sqrt{m} (L^{-1})^T Y=Y~m (L1)T 满足 1 m Y T Y = I k × k \frac{1}{m} Y^T Y = I_{k \times k} m1YTY=Ik×k
      • 梯度步骤
        • 随机采样另一个小批量 x 1 , … , x m x_1, \ldots, x_m x1,,xm
        • 使用 Siamese 网络计算亲和度矩阵 W W W
        • 前向传播,得到嵌入 y 1 , … , y m y_1, \ldots, y_m y1,,ym
        • 计算损失 L SpectralNet ( θ ) L_{\text{SpectralNet}}(\theta) LSpectralNet(θ)(公式 (3) 或 (5))。
        • 使用反向传播更新除正交化层外的所有权重 θ \theta θ
    • 重复上述步骤,直到损失收敛(基于验证集损失判断)。
  3. 聚类分配

    • 训练 - 训练完成后,将所有训练数据 x 1 , … , x n x_1, \ldots, x_n x1,,xn 通过网络 F θ F_\theta Fθ 前向传播,得到嵌入 y 1 , … , y n y_1, \ldots, y_n y1,,yn
    • 在嵌入空间中应用 k k k-means 算法,得到 k k k 个聚类中心。
    • 对于新数据点(样本外扩展),直接通过 F θ F_\theta Fθ 映射到嵌入空间,并分配到最近的聚类中心。

优化细节

  • 小批量大小:由于损失函数涉及点对关系,小批量需足够大(例如 MNIST 使用 1024,Reuters 使用 2048),以捕获数据结构。小批量每次迭代随机采样,避免固定批量导致亲和度矩阵信息丢失。
  • 学习率调度与停止准则:基于验证集损失收敛性调整学习率并确定训练停止点。
  • 正交化实现:通过 QR 分解(基于 Cholesky 分解)实现正交化,确保小批量嵌入的正交性。
  • 代码空间:可选地在自编码器生成的低维代码空间中训练 SpectralNet,以减少噪声和维度。

主要的贡献点
  1. 深度谱聚类框架

    • 提出 SpectralNet,一个结合深度学习与谱聚类的框架,通过神经网络学习数据点到拉普拉斯特征空间的映射,近似传统谱聚类的特征向量嵌入。
    • 解决传统谱聚类的可扩展性和样本外扩展问题,使其适用于大规模数据集和新数据点。
  2. 正交约束的创新实现

    • 通过 QR 分解在网络输出层实现正交化约束,模拟谱聚类特征向量的正交性,避免平凡解,提高嵌入质量。
  3. Siamese 网络亲和度学习

    • 提出使用无监督 Siamese 网络从无标签数据中学习复杂亲和度关系,显著提升聚类性能,优于传统欧几里得距离高斯核。
  4. 代码空间优化

    • 结合自编码器生成低维代码空间,减少噪声影响,进一步提升 SpectralNet 的聚类性能。
  5. 理论分析

    • 利用 VC 维理论,推导谱聚类神经网络的最小规模下界,证明其 VC 维至少为 1 10 n \frac{1}{10}n 101n n n n 为数据点数),表明谱聚类的表达能力远超 k k k-means。
  6. 实验验证

    • 在 MNIST 和 Reuters 数据集上取得竞争性或最优结果,尤其在处理非凸聚类问题时优于其他深度聚类方法(如 DEC、VaDE、DEPICT、IMSAT)。
    • 展示 SpectralNet 的泛化能力(测试集准确率高)和计算效率(在 Reuters 上训练时间显著少于传统谱聚类)。
  7. 开源实现

    • 提供公开代码(https://github.com/kstant0725/SpectralNet),促进学术界和工业界的进一步研究与应用。

实验结果

实验在 MNIST(手写数字数据集, k = 10 k=10 k=10)和 Reuters(新闻文档数据集, k = 4 k=4 k=4)上进行,评估指标包括无监督聚类准确率(ACC)归一化互信息(NMI)。以下是主要结果:

  1. MNIST 数据集

    • SpectralNet(代码空间,Siamese 距离)
      • ACC: 0.971 ± 0.001 0.971 \pm 0.001 0.971±0.001
      • NMI: 0.924 ± 0.001 0.924 \pm 0.001 0.924±0.001
      • 表现优于传统谱聚类(ACC: 0.717, NMI: 0.754),接近或超越其他深度聚类方法(如 DEPICT: ACC 0.965, NMI 0.917;IMSAT: ACC 0.984)。
    • SpectralNet(输入空间,Siamese 距离)
      • ACC: 0.826 ± 0.03 0.826 \pm 0.03 0.826±0.03
      • NMI: 0.884 ± 0.02 0.884 \pm 0.02 0.884±0.02
      • 表明 Siamese 距离显著提升性能。
    • SpectralNet(代码空间,欧几里得距离)
      • ACC: 0.800 ± 0.003 0.800 \pm 0.003 0.800±0.003
      • NMI: 0.814 ± 0.008 0.814 \pm 0.008 0.814±0.008
      • 代码空间优于输入空间,但欧几里得距离效果不如 Siamese 距离。
    • 泛化能力:测试集 ACC 达 0.970,远超 k k k-means(输入空间 0.546,代码空间 0.776)。
    • 收敛性:Grassmann 距离(嵌入空间与真实特征向量空间的距离)快速下降至 0.026,表明嵌入有效近似特征向量。
  2. Reuters 数据集

    • SpectralNet(代码空间,Siamese 距离)
      • ACC: 0.803 ± 0.006 0.803 \pm 0.006 0.803±0.006
      • NMI: 0.532 ± 0.010 0.532 \pm 0.010 0.532±0.010
      • 优于其他方法(如 VaDE: ACC 0.7938;DEC: ACC 0.756;IMSAT: ACC 0.719)。
    • SpectralNet(输入空间,Siamese 距离)
      • ACC: 0.661 ± 0.017 0.661 \pm 0.017 0.661±0.017
      • NMI: 0.381 ± 0.057 0.381 \pm 0.057 0.381±0.057
    • SpectralNet(代码空间,欧几里得距离)
      • ACC: 0.605 ± 0.053 0.605 \pm 0.053 0.605±0.053
      • NMI: 0.401 ± 0.061 0.401 \pm 0.061 0.401±0.061
    • 泛化能力:90%-10% 数据拆分,测试集 ACC 达 0.798,表明良好泛化。
    • 计算效率:SpectralNet 在 GeForce GTX 1080 GPU 上训练耗时不到 20 分钟,而传统谱聚类计算特征向量需超 100 分钟,且对离群点不稳定。
  3. 2D 演示数据集

    • 在非凸聚类任务(如嵌套 ‘C’ 数据)上,SpectralNet 和传统谱聚类正确识别聚类结构,而 k k k-means、DCN、VaDE、DEPICT 和 IMSAT 失败(见图 1、图 4、图 5)。
    • 表明 SpectralNet 擅长处理非凸形状的聚类问题。
  4. 半监督学习

    • 在噪声较大的 2D 数据上,使用 2% 的标签数据显著改善聚类效果(图 3),展示 SpectralNet 在半监督场景的潜力。

总结

  • SpectralNet 在代码空间使用 Siamese 距离时表现最佳,证明了其亲和度学习和代码空间优化的有效性。
  • 在大规模 Reuters 数据集上展现了优越的可扩展性和计算效率。
  • 对非凸聚类问题的优异表现突出其相比其他深度聚类方法的优势。
  • 高测试集准确率验证了其样本外扩展能力。

总结

SpectralNet 提出了一种创新的深度谱聚类方法,通过神经网络学习谱聚类的嵌入映射,结合 Siamese 网络、正交约束和代码空间优化,显著提升了谱聚类的可扩展性和泛化能力。其目标函数清晰地模拟了谱聚类的优化目标,优化过程通过随机梯度和 QR 分解高效实现。主要贡献包括深度谱聚类框架、亲和度学习、理论分析和最优实验结果。实验表明,SpectralNet 在 MNIST 和 Reuters 数据集上达到竞争性或最优性能,尤其擅长非凸聚类问题,且具有良好的泛化能力和计算效率。这一工作为无监督深度学习提供了一个强大的工具,具有重要的学术和应用价值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Christo3

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值