稀疏子空间聚类 SSC(Sparse Subspace Clustering)

在高维数据中,数据点往往并不是随机分布的,而是分布在多个低维子空间 中。例如,人脸图片的集合可能分布在不同的子空间中,每个子空间对应不同的人;高光谱数据中的像素分布可以划分为不同的子空间,每个子空间对应不同的材料或地物。稀疏子空间聚类的目标是要将高维数据划分到多个低维子空间中,同时保持子空间的稀疏性

1. 稀疏子空间

线性代数 中,子空间是由一组 线性无关基向量 张成的空间,所有向量都可以表示为这些基向量的线性组合。子空间的维度由基向量的数量决定,且每个子空间是一个闭合的线性子集

由此推断,高维数据分布在多个低维子空间中,每个子空间由一组基向量定义。假设数据 X X X 来自于 K K K 个不同的子空间 { S 1 , S 2 , ... , S K } \{S_1, S_2, \dots, S_K\} {S1,S2,...,SK},每个子空间是低维的。如果数据点 x i x_i xi 属于子空间 S k S_k Sk​,那么 x i x_i xi 可以用子空间 S k S_k Sk 内的其他点的线性组合表示,而与其他子空间无关: x i = ∑ j c i j x j , 其中 x j ∈ S k 。 x_i = \sum_{j} c_{ij} x_j, \quad \text{其中 } x_j \in S_k。 xi=j∑cijxj,其中 xj∈Sk。 数据点 x i x_i xi 只需要与自己子空间内的点关联,而不需要依赖其他子空间的点。

对于任意一个数据点 x i x_i xi,其表示 c i = c i 1 , c i 2 , ... , c i N c_i = c_{i1}, c_{i2}, \\dots, c_{iN} ci=ci1,ci2,...,ciN 应该是稀疏的,只有少数非零项对应于 x i x_i xi​ 所属的子空间内的点。利用数据的自表达和稀疏性,自动捕获子空间结构。

2. SSC 的数学建模

SSC 通过优化以下目标函数,计算稀疏表示矩阵 C C C: min ⁡ C ∥ C ∥ 1 + λ 2 ∥ X − X C ∥ F 2 , subject to diag ( C ) = 0. \min_C \|C\|_1 + \frac{\lambda}{2} \|X - XC\|_F^2, \quad \text{subject to } \text{diag}(C) = 0. Cmin∥C∥1+2λ∥X−XC∥F2,subject to diag(C)=0. 符号解释:

  • X ∈ R d × N X \in \mathbb{R}^{d \times N} X∈Rd×N:数据矩阵, N N N 个 d d d-维数据点。
  • C ∈ R N × N C \in \mathbb{R}^{N \times N} C∈RN×N:稀疏表示矩阵,表示每个数据点 x i x_i xi 是如何由其他点 x j x_j xj 表示的。
  • ∥ C ∥ 1 \|C\|_1 ∥C∥1:对稀疏性的约束,鼓励 C C C 的大部分元素为零。
  • ∥ X − X C ∥ F 2 \|X - XC\|_F^2 ∥X−XC∥F2:重建误差,要求数据点 X X X 用 X C XC XC 精确重建。
  • λ \lambda λ:控制稀疏性与重建误差的权衡。
  • diag ( C ) = 0 \text{diag}(C) = 0 diag(C)=0:对角元素为零,防止点 x i x_i xi 自我表示。

该优化问题是凸的,常用交替方向乘子法(ADMM)求解,得到稀疏表示矩阵 C C C。

3. 相似性矩阵的构建

稀疏表示矩阵 C C C 计算完成后,用它构造一个对称的相似性矩阵 S S S: S = ∣ C ∣ + ∣ C ∣ T . S = |C| + |C|^T. S=∣C∣+∣C∣T. S i j S_{ij} Sij 表示数据点 x i x_i xi 和 x j x_j xj 的相似程度,值越大说明它们可能属于同一子空间。

4. 子空间划分(谱聚类)

在相似性矩阵 S S S 的基础上,通过谱聚类 将数据点划分到不同的子空间中。最终结果是数据点被划分到 K K K 个子空间,每个子空间对应一个簇。

谱聚类基于图划分 的思想,将聚类问题转化为图分割 问题。它将数据点视为图中的节点,用边权重表示节点之间的相似性(用相似性矩阵 S S S 表示)。依据相似性矩阵 S S S 划分图中的节点,使得簇内紧密 (簇内节点之间的边权重尽可能大)和簇间松散(簇间节点之间的边权重尽可能小)。划分过程通过最小化某种切割代价(如标准化切割),找到最优划分。

具体实现步骤:

  1. 构造拉普拉斯矩阵

    图的拉普拉斯矩阵 L L L 用来表示图的结构: L = D − S , L = D - S, L=D−S, 其中, S S S 是相似性矩阵 (图的邻接矩阵), D D D 是度矩阵 (对角矩阵),其对角元素为每个节点的度数: D i i = ∑ j S i j D_{ii} = \sum_j S_{ij} Dii=∑jSij。

    然后,归一化拉普拉斯矩阵(常用): L norm = D − 1 / 2 L D − 1 / 2 . L_{\text{norm}} = D^{-1/2} L D^{-1/2}. Lnorm=D−1/2LD−1/2.

  2. 特征值分解

    计算拉普拉斯矩阵 L L L 的前 K K K 个最小特征值对应的特征向量,构成特征矩阵 U U U: U = u 1 , u 2 , ... , u K . U = u_1, u_2, \\dots, u_K. U=u1,u2,...,uK.

  3. 特征向量聚类

    将特征矩阵 U U U 的行视为数据点,在欧几里得空间中应用 K-Means 对这些行进行聚类。

特征向量 可以看作是一种数据点的 嵌入表示 ,它们捕获了图中全局的结构信息。

相关推荐
麻瓜生活睁不开眼5 分钟前
Android16修改全局桌面视图边框四直角显示为弧边圆角
android·java·深度学习
workflower40 分钟前
装备企业的 AI 路线图
人工智能·深度学习·机器学习·设计模式·机器人
AKAMAI1 小时前
Linode接口及默认防火墙现已全面开放使用
人工智能·云计算
前端开发江鸟1 小时前
RAG 回答错了,问题到底出在召回、重排,还是生成?
人工智能
美狐美颜SDK开放平台2 小时前
直播app开发如何实现主播级美颜效果?美颜sdk开发方案详解
人工智能·音视频·美颜sdk·视频美颜sdk·美颜api
东方小月2 小时前
从零开发一个 Coding Agent(四):使用状态机校验大模型事件流
前端·人工智能·后端
大龄码农有梦想2 小时前
使用大模型服务如何保证数据安全?企业 AI 安全、私有化部署与治理实践
人工智能·私有化部署·数据安全·信创·ai agent·智能体·智能体开发平台
冬奇Lab2 小时前
每日一个开源项目(第170篇):CodeWiki - ACL 2026 论文级代码库自动文档生成,递归多 Agent 架构
人工智能·开源·资讯
lxw18449125142 小时前
Claude-Code企业级培训教程
人工智能
冬奇Lab2 小时前
代码库知识库系列(01):技术全景——为什么代码理解比文档检索难十倍
人工智能