1. 基础知识
令
G=(V,E)
为无向图,节点集为
V=v1,v2,...,vn
. 假设图
G
是有权图,节点
度数矩阵 D 定义为对角线元素为
给定节点集 A⊂V ,它的补集定义为 A¯=V∖A 。
指示向量定义为 1A=(f1,...,fn)′∈Rn ,当 vi∈A 时 fi=1 ,反之 fi=0 .
两种衡量集合 A 大小的方式:
特征值与特征向量:
设
A=(aij)n×n
是一个
n
阶矩阵,如果有一个复数
或:
则称 λ 为矩阵 A 的一个特征值,称非零列向量
半正定矩阵:
定义:如果矩阵
A∈Rn×n
是实对称矩阵,并且对于一切
X∈Rn
,有
XTAX≥0
,则称矩阵
A
为半正定矩阵.
对于一个n阶对称矩阵
- A是半正定矩阵
- A的所有特征值非负
- A的所有主子式非负
- 存在n阶矩阵B,使得 A=BBT
- 存在n阶下三角阵L,使得 A=LLT
- 存在n阶对称矩阵C,使得 A=C2
2. 图的拉普拉斯算子及其性质
谱聚类的主要工具就是拉普拉斯算子。拉普拉斯算子一类矩阵的统称,并非特指某一个算子。下面当我们提到矩阵的特征向量的时候,并不一定要求其模为1.因此线性相关的多个向量会被当成同一个. 特征值总是会被按照递增的顺序排列. 最先的k个特征向量(the first k eigenvector)指的是k个最小的特征值所对应的特征向量。
2.1 未规则化的拉普拉斯算子
未规则化的拉普拉斯矩阵为:
它的主要性质如下:
- 对于任意的向量
f∈Rn
,有:
f′Lf=12∑i,j=1nwij(fi−fj)2 - L 是对称的并且半正定的
L 的最小特征值是0,对应的特征向量是常数1向量 1 (各行之和为0)-
L
有n个非负实值特征值
0=λ1≤λ2≤⋯≤λn
说明:
1. 未规则化的拉普拉斯算子与邻接矩阵
W
的对角线上的元素无关. 即使对角线上有值,那么与没有值的L是完全相同的. 可见自环不会改变对应的拉普拉斯算子.
2. 未规则化的拉普拉斯算子及其特征值、特征向量可用来描述图的许多性质. 在谱聚类中的一个重要性质为:图G的连通分量的个数等于特征值0的代数重数(multiplicity of eigenvalue 0).特征值0的特征子空间由连通分量的指示向量构成.(The eigenspace of eigenvalue 0 is spanned by the indicator vectors of those components.)
2.2 规则化的拉普拉斯算子
有两个矩阵被称为规则化拉普拉斯算子:
Lsym 的下标表示它是一个对称(symmetric)矩阵, Lrw 的下标是因为它与随机游走(random walk)有紧密联系. 它们有如下性质:
- 对于任意
f∈Rn
,
f′Lsymf=12∑i,j=1nwij(fid√i−fjd√j)2 -
λ
是
Lrw
的特征向量为
v
的特征值当且仅当
λ 是 Lsym 的特征向量为 w=D−1/2 的特征值 -
λ
是
Lrw
的特征向量为
v
的特征值当且仅当
λ 和 v 能求解泛化了的特征问题(generalized eigenproblem)Lv=λDv - 0是 Lrw 的特征向量为常数1向量 1 的特征值. 0是 Lsym 的特征向量为 D−1/21 的特征值
-
Lsym
和
Lrw
是半正定矩阵且有
n
个非负实值特征值
0=λ1≤λ2≤⋯≤λn
说明:
规则化拉普拉斯算子的特征值0的重数同样与图的连通分量个数有关:
Lrw
和
Lsym
的特征值0的重数等于连通分量的个数. 对于
Lrw
,特征值0的特征空间由各连通分量的指示向量
1A
组成;对于
Lsym
,特征值0的特征空间由各连通分量的向量
D−1/21A
组成.
3. 从图分割看谱聚类
下面将从图分割角度推导出谱聚类。
三种cut:
- cut(A,A¯)=∑i∈A,j∈A¯wij
- RatioCut(A,A¯)=cut(A,A¯)|A|+cut(A,A¯)|A¯|
- NCut(A,A¯)=cut(A,A¯)vol(A)+cut(A,A¯)vol(A¯)
已经有很高效的方法解决mincut问题,但是mincut多数情况下只是将单个节点从原图分割出去. RatioCut和NCut都试图将图划分得更加均衡,然而很不幸的是这将使问题变为NP hard. 谱聚类是一种解决这些问题的松弛化版本的一种方法,松弛RatioCut对应未规则化谱聚类,松弛NCut对应规则化谱聚类.
3.1 RatioCut推导
考虑k=2的情况. 目标函数:
为了将问题改写为更方便的方式,定义一个 N 维列向量 f:
(f 对应每个节点所对应的分类。后面可以看到,之所以这样构造是因为 f 满足 fTf 是个常数,进而可以方便地引入瑞利商理论。)
现在可以用未规则化的拉普拉斯算子改写目标函数:
另外,如果令 1 为各个元素全为 1 的向量的话,直接展开可以很容易得到 fT1=∑fi=0 和 fTf=∥f∥2=∑f2i=n 。
由于 |V| 是一个常量,因此目标函数可等价写成:
根据 Rayleigh-Ritz 理论,这个问题的解
f
即为
到这一步,我们看起来好像是很容易地解决了前面那个 NP hard 问题,实际上是我们耍了一个把戏:之前的问题之所以 NP hard 是因为向量
f
的元素只能取两个值
3.2 NCut推导
可以采用与RatioCut类似的方法推导出NCut的规则化谱聚类解法.
定义指示向量
f
为:
易知 (Df)′1=0,f′Df=vol(V) 以及 f′Lf=vol(V)NCut(A,A¯) ,因此原问题可转化为:
经过允许 f 可以是实值来松弛化之后:
用 g:=D1/2f 作变换:
注意到 D−1/2LD−1/2=Lsym :
由于 D1/21 是 Lsym 的第一个特征向量, vol(V) 是定值. 故上式即为 Rayleigh-Ritz 的标准形式,它的解 g 即为
由规则化拉普拉斯算子性质:
λ 是 Lrw 的特征向量为 v 的特征值当且仅当
λ 是 Lsym 的特征向量为 w=D−1/2 的特征值
可知 f=D−1/2g 为 Lrw 的第二个特征向量,或者 Lv=λDv 的规则化的特征向量.
3.3 松弛方法分析
用谱聚类方法解决图分割问题的结果可能与真实结果相去甚远.
谱聚类并不是唯一可用于解决这类问题的方法,半正定规划(semi-definite programming, SDP)就是一种完全不同的方法. 谱聚类之所以很吸引人不是因为它的效果很好,而是因为它将问题转化成非常简单而易于解决的标准线性代数问题.
最后,k-means并不是唯一可用于对实值向量进行划分的算法,任何其它的可解决此问题的聚类算法都可使用.
References:
1. A tutorial on Spectral Clustering
2. 漫谈 Clustering (4): Spectral Clustering