谱聚类学习笔记

谱聚类学习笔记

最近刚开始研究图像聚类这一方面,谱聚类相关的文档查阅了不少,但总是觉得有点迷糊,故而自己去找了原来的论文进行翻阅,想通过边学边记的方式来加深印象,所以可能会有不足之处,请多包涵,本文的内容主要是参考了“A Tutorial on Spectral Clustering”这篇文章。

一、相似图

考虑这样一个聚类问题,给定n个输入样本 x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn,使用 s i j ≥ 0 s_{ij}\geq0 sij0来衡量两个样本点 x i x_i xi x j x_j xj之间的相似程度。而聚类问题就是把相似的点聚成一类,不相似的点在不同的类。那么显然可以利用相似图(similarity grapy)来进行聚类。

我们定义相似图 (similarity graph) G = ( V , E ) G=(V,E) G=(V,E),顶点集 V = v 1 , v 2 , . . . , v n V={v_1,v_2,...,v_n} V=v1,v2,...,vn,输入的样本就是图中的顶点,若任意两个数据指向的相似性是正的或者说大于某一个阈值,则这两个顶点之间是有边连接的,边的权重可以使用对应的样本点间的相似性进行计算得到,我们记顶点 v i v_i vi v j v_j vj之间的权重记为 w i j ≥ 0 w_{ij}\geq0 wij0。我们知道聚类是使得高度相似的样本点在一个类别中,相似程度低的点在不同的类别中。在图中就是求这么一个分割,使得权重较高的点在一个组中,而两两组间的权重较低,这就是我们要解决的问题。

因此求解聚类问题可以转化求图的分割的方法。

1.1 构建邻接矩阵

构建相似图很重要的一点就是怎么去衡量两点间的相似程度,也就是如何定义相似图的邻接矩阵,对此有以下三种方法构建邻接矩阵:

1.1.1 The ε \varepsilon ε-neighborhood graph

对任意两点 v i v_i vi v j v_j vj,定义两顶点之间的距离为 d i j d_{ij} dij,给定一个参数 ε \varepsilon ε,我们对顶点 v i v_i vi v j v_j vj之间的权重可以定义为:
w i j = { 0 d i j > ε ε d i j ≤ ϵ (1) w_{ij}=\begin{cases} 0 & d_{ij}\gt\varepsilon \\ \varepsilon & d_{ij}\leq\epsilon \end{cases}\tag{1} wij={0εdij>εdijϵ(1)
也就是说当两点间的距离超过一个阈值时,我们就将其设置为0,否则将其设置为某一个值。

1.1.2 k-nearest neighborhood graphs

我们考虑这样一个问题,如果顶点 v j v_j vj v i v_i vi的K近邻的话,那么我们将顶点 v i v_i vi v j v_j vj连接,而这会导致一个问题,不妨考虑 k = 1 k=1 k=1,那么会出现距离 v i v_i vi最近的顶点是 v j v_j vj,但是距离 v j v_j vj最近的顶点不是 v I v_I vI,这样最终生成的邻接矩阵就不是对称的,也就是生成的相似图是有向的,这显然不是我们所需要的,针对这个问题,有以下两种方法解决:

(1)只要顶点 v i v_i vi v j v_j vj的k个最近邻点或者顶点 v j v_j vj v i v_i vi的k个最近邻点,我们都将他们进行连接,公式化的表述如下:

w i j = { e x p ( − ∥ x i − x j ∥ 2 2 σ 2 ) v i ∈ K N N k ( v j ) ∣ v j ∈ K N N k ( v i ) 0 o t h e r s (2) w_{ij}=\begin{cases} exp(-\frac{\Vert x_i-x_j\Vert^2}{2\sigma^2} )& v_i\in KNN_k(v_j) | v_j\in KNN_k(v_i) \\ 0 & others \end{cases}\tag{2} wij={exp(2σ2xixj2)0viKNNk(vj)vjKNNk(vi)others(2)
其中 K N N k ( v i ) KNN_k(v_i) KNNk(vi)表示顶点 v i v_i vik个最近邻点的集合。

(2)显然,第二种定义方式就是当 v i v_i vi v j v_j vj的k个最近邻点且顶点 v j v_j vj v i v_i vi的k个最近邻点时,我们才将它们进行连接,公式化的表述如下所示:
w i j = { e x p ( − ∥ x i − x j ∥ 2 2 σ 2 ) v i ∈ K N N k ( v j ) & & v j ∈ K N N k ( v i ) 0 o t h e r s (3) w_{ij}=\begin{cases} exp(-\frac{\Vert x_i-x_j\Vert^2}{2\sigma^2} )& v_i\in KNN_k(v_j) \&\& v_j\in KNN_k(v_i) \\ 0 & others \end{cases}\tag{3} wij={exp(2σ2xixj2)0viKNNk(vj)&&vjKNNk(vi)others(3)
根据这两种方式,易知第一种方式定义的邻接矩阵是稠密的,而第二种方式是较稀疏的。

1.1.3 The full connected graph

该方法就是对任意两点间都定义一个相似度量,使用的计算方法就是前文所提到也就是高斯相似函数 (Gaussian similarity function) ,即对图中任意两点 v i v_i vi v j v_j vj以及对应的样本点 x i , x j x_i,x_j xi,xj,它们之间的权重定义为:
w i j = e x p ( − ∥ x i − x j ∥ 2 2 σ 2 ) w_{ij}=exp(-\frac{\Vert x_i-x_j\Vert^2}{2\sigma^2}) wij=exp(2σ2xixj2)
以上就是用以构建邻接矩阵的三种方法。

二、图拉普拉斯矩阵(graph Laplacians)

我们考虑一个无向,带权图G,该图的邻接矩阵记为W,度矩阵记为D,那么图拉普拉斯矩阵L可以分为非标准化的图拉普拉斯矩阵和标准化的图拉普拉斯矩阵,针对这两种情形,我分别进行介绍。

(1)非标准化的图拉普拉斯矩阵定义为:
L = D − W L=D-W L=DW
该图拉普拉斯矩阵具有以下四种性质:

  1. 对任意向量 f ′ ∈ R n f'\in\mathbb{R}^n fRn均满足: f ′ L f = 1 2 ∑ i , j = 1 n w i j ( f i − f j ) 2 f'Lf=\frac{1}{2}\sum\limits_{i,j=1}^nw_{ij}(f_i-f_j)^2 fLf=21i,j=1nwij(fifj)2;
  2. L是对称且半正定的;
  3. L的最小特征值是0,对应的特征向量是全1向量;
  4. L有n个非负的实值特征向量。

定理 1:给定一个无向带权图G,权重均非负。那么图拉普拉斯矩阵中特征值为0的数量等于图G中连通分量的个数。

(2)标准化的图拉普拉斯矩阵有两种定义方式,一种是对称标准化图拉普拉斯矩阵 (symmetric graph Laplacian),还有一种是基于随机游走的 (random walk),它们的定义如下所示:
L s y m : = D − 1 2 L D − 1 2 = I − D − 1 2 W D − 1 2 L r w : = D − 1 L = I − D − 1 W L_{sym}:=D^{-\frac{1}{2}}LD^{-\frac{1}{2}}=I-D^{-\frac{1}{2}}WD^{-\frac{1}{2}} \\ L_{rw}:=D^{-1}L=I-D^{-1}W Lsym:=D21LD21=ID21WD21Lrw:=D1L=ID1W
非标准化的拉普拉斯矩阵具有以下性质:

  1. 对任意的向量 f ′ ∈ R n f'\in\mathbb{R}^n fRn均满足: f ′ L s y m f = 1 2 ∑ i , j = 1 n w i j ( f i d i − f j d j ) 2 f'L_{sym}f=\frac{1}{2}\sum\limits_{i,j=1}^nw_{ij}(\frac{f_i}{\sqrt{d_i}}-\frac{f_j}{\sqrt{d_j}})^2 fLsymf=21i,j=1nwij(di fidj fj)2;
  2. 当且仅当 λ \lambda λ L s y m L_{sym} Lsym的特征值且特征向量为 w = D 1 2 u w=D^{\frac{1}{2}}u w=D21u时, λ \lambda λ L r w L_{rw} Lrw的特征值且特征向量为 u u u;
  3. 当且仅当 λ \lambda λ u u u满足 L u = λ D u Lu=\lambda Du Lu=λDu时, λ \lambda λ L r w L_{rw} Lrw的特征值,对应的特征向量为 u u u
  4. 0是 L r w L_{rw} Lrw的特征值,对应的特征向量为全1向量 1 \mathbb{1} 1,0是 L s y m L_{sym} Lsym的特征值,对应的特征向量为 D 1 2 1 D^{\frac{1}{2}}\mathbb{1} D211
  5. L r w L_{rw} Lrw L s y m L_{sym} Lsym是半正定的且拥有n个非负特征值。

与非标准化拉普拉斯矩阵类似,相似图的连通分量的个数也与标准化图拉普拉斯矩阵中特征值为0的个数有关系。

定理 2:给定一个无向带权图G,权重均非负。那么 L r w L_{rw} Lrw以及 L s y m L_{sym} Lsym中特征值为0的数量等于图G中连通分量的个数。

三、谱聚类算法

假定输入n个样本,任意两个样本之间的相似程度用 s i j = s ( x i , x j ) s_{ij}=s(x_i,x_j) sij=s(xi,xj)表示,采用的相似函数可以是上文所提到的高斯相似函数,最终相似度量要求是非负且对称的,记相似矩阵为 S = ( s i j ) i , j = 1 , 2 , . . . n S=(s_{ij})_{i,j=1,2,...n} S=(sij)i,j=1,2,...n.

3.1 非标准化谱聚类

输入:相似矩阵 S ∈ R n × n S\in\mathbb{R}^{n\times n} SRn×n,类别数量k

  1. 构建相似图,计算邻接矩阵 W W W,度矩阵 D D D
  2. 计算非标准化的图拉普拉斯矩阵 L = D − W L=D-W L=DW;
  3. 计算 L L L的前k小的特征值对应的特征向量 u 1 , u 2 , . . . , u k u_1,u_2,...,u_k u1,u2,...,uk;
  4. 使用上一步计算得到的特征向量构建矩阵 U ∈ R n × k U\in\mathbb{R}^{n\times k} URn×k,每个特征向量是矩阵U中的一列;
  5. 取矩阵U的第i行记为 y ∈ R k y\in\mathbb{R}^k yRk,以此取遍矩阵的每一行,故而得到了新的样本点 ( y i ) i = 1 , 2 , . . . , n (y_i)_{i=1,2,...,n} (yi)i=1,2,...,n
  6. 对于得到的样本点 ( y i ) i = 1 , 2 , . . , n (y_i)_{i=1,2,..,n} (yi)i=1,2,..,n,使用k均值聚类算法进行聚类,得到聚类簇 C 1 , C 2 , . . . , C k C_1,C_2,...,C_k C1,C2,...,Ck.。

输出:聚类结果 A 1 , A 2 , . . . , A k A_1,A_2,...,A_k A1,A2,...,Ak,其中 A i = { j ∣ y j ∈ C i } A_i=\{j|y_j\in C_i\} Ai={jyjCi}

3.2 基于随机游走的标准化谱聚类

输入:相似矩阵 S ∈ R n × n S\in\mathbb{R}^{n\times n} SRn×n,类别数量k

  1. 构建相似图,计算邻接矩阵 W W W,度矩阵 D D D
  2. 计算基于随机游走的标准化的图拉普拉斯矩阵 L r w = I − D − 1 W L_{rw}=I-D^{-1}W Lrw=ID1W;
  3. 计算 L r w L_{rw} Lrw的前k小的特征值对应的特征向量 u 1 , u 2 , . . . , u k u_1,u_2,...,u_k u1,u2,...,uk;
  4. 使用上一步计算得到的特征向量构建矩阵 U ∈ R n × k U\in\mathbb{R}^{n\times k} URn×k,每个特征向量是矩阵U中的一列;
  5. 取矩阵U的第i行记为 y ∈ R k y\in\mathbb{R}^k yRk,以此取遍矩阵的每一行,故而得到了新的样本点 ( y i ) i = 1 , 2 , . . . , n (y_i)_{i=1,2,...,n} (yi)i=1,2,...,n
  6. 对于得到的样本点 ( y i ) i = 1 , 2 , . . , n (y_i)_{i=1,2,..,n} (yi)i=1,2,..,n,使用k均值聚类算法进行聚类,得到聚类簇 C 1 , C 2 , . . . , C k C_1,C_2,...,C_k C1,C2,...,Ck.。

输出:聚类结果 A 1 , A 2 , . . . , A k A_1,A_2,...,A_k A1,A2,...,Ak,其中 A i = { j ∣ y j ∈ C i } A_i=\{j|y_j\in C_i\} Ai={jyjCi}

3.3 对称拉普拉斯矩阵的标准化谱聚类

输入:相似矩阵 S ∈ R n × n S\in\mathbb{R}^{n\times n} SRn×n,类别数量k

  1. 构建相似图,计算邻接矩阵 W W W,度矩阵 D D D
  2. 计算对称图拉普拉斯矩阵 L s y m = I − D − 1 2 W D − 1 2 L_{sym}=I-D^{-\frac{1}{2}}WD^{-\frac{1}{2}} Lsym=ID21WD21;
  3. 计算 L s y m L_{sym} Lsym的前k小的特征值对应的特征向量 u 1 , u 2 , . . . , u k u_1,u_2,...,u_k u1,u2,...,uk;
  4. 使用上一步计算得到的特征向量构建矩阵 U ∈ R n × k U\in\mathbb{R}^{n\times k} URn×k,每个特征向量是矩阵U 中的一列;
  5. 对矩阵U的每一行使用 l 1 l_1 l1范数进行标准化来构建矩阵 T ∈ R n × k T\in\mathbb{R}^{n\times k} TRn×k,也就是说对矩阵T 的任一元素 t i j t_{ij} tij满足 t i j = u i j ( ∑ k u i k 2 ) 1 2 t_{ij}=\frac{u_{ij}}{(\sum\nolimits_k{u_{ik}^2})^\frac{1}{2}} tij=(kuik2)21uij;
  6. 取矩阵T 的第i行记为 y ∈ R k y\in\mathbb{R}^k yRk,以此取遍矩阵的每一行,故而得到了新的样本点 ( y i ) i = 1 , 2 , . . . , n (y_i)_{i=1,2,...,n} (yi)i=1,2,...,n
  7. 对于得到的样本点 ( y i ) i = 1 , 2 , . . , n (y_i)_{i=1,2,..,n} (yi)i=1,2,..,n,使用k均值聚类算法进行聚类,得到聚类簇 C 1 , C 2 , . . . , C k C_1,C_2,...,C_k C1,C2,...,Ck.。

输出:聚类结果 A 1 , A 2 , . . . , A k A_1,A_2,...,A_k A1,A2,...,Ak,其中 A i = { j ∣ y j ∈ C i } A_i=\{j|y_j\in C_i\} Ai={jyjCi}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值