详解谱聚类原理

目录

  • 一. 拉普拉斯矩阵性质
  • 二. 拉普拉斯矩阵与图分割的联系
  • 三. Ratiocut
  • 四. 总结

一. 拉普拉斯矩阵性质

这篇文章可能会有些枯燥,着重分享了谱聚类的原理中的一些思想,以及自己本人对谱聚类的一些理解。如果在看完这篇文章后,也能解决你对谱聚类的一些疑问,想必是对你我都是极好的。在之前查阅了很多关于谱聚类的资料,博客,但是发现有些地方仍不是很明白,比如为什么用拉普拉斯矩阵L的特征向量就能表示一个样本,为什么L总会有个最小特征值是0等。

前文简略的介绍了如何将所有样本X构建成拉普拉斯矩阵,利用拉普拉斯矩阵对样本点X进行合适大小的分割,此分割不需要类标,所以是无监督分割。那么这其中具体的原理是什么呢?为什么将n个d维度的样本Xi构建成了相似度矩阵后,构建拉普拉斯矩阵L,就能通过求解L矩阵特征向量后,用特征向量表示Xi,进行kmeans聚类表示Xi的聚类效果呢?

这里我们要知道,拉普拉斯矩阵是基于样本Xi之间构建的相似度矩阵构建的,所以拉普拉斯矩阵相当于是一个图G(V,E)G(V, E),该矩阵(及改图)包含了各个样本点,以及样本点之间的联系的信息。假设有6个样本点,通过构建相似度矩阵,生成了拉普拉斯矩阵,有些样本点是没有联系的,如图一:

图一

我们想要对图中的节点进行分割归类,得到一个比较合理的样本分割。

分割成如图二的效果:

图二

不得不感叹前辈们的聪明智慧,将一个表示样本点联系的图分割,通过拉普拉斯矩阵转换成了矩阵求解的问题。先别着急想拉普拉斯矩阵L与图像分割有什么联系,我们先单纯的从数学角度来L矩阵有什么性质。假设一共有nn个样本XiX_i,现已知得到样本点构建的相似度矩阵SS(本章不在此展开,构建相似度矩阵有很多种方式,比如欧式距离,高斯距离等),SS是大小为nnn*n的矩阵,SijS_{ij}记录了XiX_iXjX_j样本间的联系。通过相似度矩阵S构建邻接矩阵WW(这里构建WW的方式也有很多,比如K近邻,全连接构建WW等),通过WijW_{ij}创建对角度矩阵DD,大小为nnn*n,其中对角线元素,其余位置Dij=0D_{ij}=0。构建了相似度矩阵WW和度矩阵DD后,就得到了拉普拉斯矩阵L=DWL=D-W

我们发现L矩阵是一个全对称矩阵,对角线元素是度矩阵中对应的Diji=jD_{ij}(i=j),其他位置的元素Lij=Wij(ij)L_{ij}=-W_{ij} (i eq j)

1. 拉普拉斯性质一

该矩阵第一个性质,任意一个1n1*n维的f向量,我们都能得到如下公式,具体推导如公式一:

fLf=fDffWf=i=1ndifi2i,j=1nfifjwij=12(i=1ndifi22i,j=1nfifjwij+j=1ndjfj2)=12i,j=1nwij(fifj)2egin{array}{l} f^{prime} L f=f^{prime} D f-f^{prime} W f=sum_{i=1}^{n} d_{i} f_{i}^{2}-sum_{i, j=1}^{n} f_{i} f_{j} w_{i j} \ =frac{1}{2}left(sum_{i=1}^{n} d_{i} f_{i}^{2}-2 sum_{i, j=1}^{n} f_{i} f_{j} w_{i j}+sum_{j=1}^{n} d_{j} f_{j}^{2} ight)=frac{1}{2} sum_{i, j=1}^{n} w_{i j}left(f_{i}-f_{j} ight)^{2} end{array}

性质有什么用呢,举个例子,我们知道LL是一个矩阵,假设该LL代表的样本XiX_i是全连接的,一个类。ff是任意一个向量,其实Lf=λfLf=λf,即λλLL的特征值,而ffLL的特征向量。所以fLf=fλf=λfff’Lf=f’λf=λf’f,而fff’*f是一个常数,所以我们会发现fLff’Lf是一个定值,假如λ=0λ=0,则fLf=0f’Lf=0,求出来的ff就是LL对应特征值为0的特征向量。根据性质一,我们会发现Wij>0W_{ij}>0,则要想fLf=0f’Lf=0,必须有fi=fjf_i=f_j。我们发现XiX_i的真实情况是都在一类中,而求出来的fLf=0f’Lf=0中的特征向量有fi=fjf_i=f_j这个性质。我们可以将真实情况中XiX_i彼此为一类的现象与LL的0特征值对应的fi=fjf_i=f_j这个性质联系,发现二者始终同步且二者只能互相依存。所以在此,我们可以设置拉普拉斯矩阵LL的0特征值对应的特征向量ff为全1向量,可以用fif_i在某种程度代表XiX_i。求出的LL的0特征值对应特征向量fi=fjf_i=f_j,刚好可以代表XiX_iXjX_j都是同一类。

2. 拉普拉斯矩阵性质二

拉普拉斯矩阵L求出的0特征值个数即对应有几个聚类。聚类间的Xi互不联系。

之前假设的是L中n个样本点全是一类,这是极特殊的现象,一般情况中假设L中有k个部分L1,L2,...LkL_1, L_2, ...Lk,这样的矩阵Li中的元素互为同一类,如图三所示:

L=(L1L2Lk) L=left(egin{array}{cccc}{L_{1}} \ {} & {L_{2}} \ {} & {} & {ddots} \ {} & {} & {} & {L_{k}}end{array} ight)

在这种理想情况下,我们已知有kk个聚类,而聚类之间元素没有联系,置为0。LL矩阵除了对角的L1,L2,...,LkL_1, L_2, ...,L_k矩阵以外的位置上元素都是0。我们发现求出LL对应的0特征值个数kk,即代表了整个图中聚类的个数。求出对应每个0特征值对应的特征向量fif_i可以做XiX_i样本的聚类指示器。eg:假设L是一个77的矩阵,其中L1L_1是个33的矩阵,那么代表X1,X2,X3X_1,X_2,X_3是同一类,则求出LL的其中一个0特征值,与之对应的特征向量可以表示为f1=[1,1,1,0,0,0,0]f_1=[1,1,1,0,0,0,0]。通过该0特征值对应的特征向量,我们可以看见ff中为1的下标对应的样本XiX_i在同一类。

当然上述只是一种理想情况,在已知聚类结果的条件下,构建了此拉普拉斯矩阵L,让不在同一类的样本W_ij=0。得到0特征值对应特征向量做指示器,未免有些马后炮的感觉。但是在此,我们也有了一个发现,就是拉普拉斯矩阵L的特征向量,在一定程度上可以表示样本Xi。

3. 拉普拉斯矩阵性质三

拉普拉斯矩阵LL至少有一个特征值为0。

通过性质二,我们很容易发现,一个LL代表的样本XiX_i,至少也会有一个类,也就是XiX_iXjX_j之间互相都有联系,Lij>0L_{ij}>0。所以根据性质二反推,则一个拉普拉斯矩阵LL至有一个特征值为0。

二. 拉普拉斯矩阵与图分割的联系

介绍完了拉普拉斯矩阵的性质后,我们来讲下拉普拉斯与图分割的联系。

在开始我们交代过,有6个样本点,我们用图来表示这6个样本点,希望能通过图分割出比较好的几个部分,即代表了这几个样本点的聚类。图四就是我们想要的比较好的分割效果:

图四

我们希望将所有样本点分成A1,A2,...,AkA_1,A_2,...,A_k个部分,我们想要分割的代价最小,用如下公式表示该分割效果:

cut(A1,A2,,Ak)=12ikW(Ai,Ai) c u tleft(A_{1}, A_{2}, cdots, A_{k} ight)=frac{1}{2} sum_{i}^{k} Wleft(A_{i}, overline{A}_{i} ight)

其中我们想要不同类之间有联系的样本点权值相加,切割的部分即这些不同类的样本点之间的边,所以我们想要cut(A1,A2,...,Ak)cut(A_1,A_2,...,A_k)最小。但是我们会发现,这种策略下的分割很容易造成分割不均匀的现象,如图五所示:

图五

图五这样的切割结果不是我们想要的分割结果,虽然分割的cut(A1,A2,...,Ak)cut(A_1,A_2,...,A_k)最小,但是会造成分割出很多单个离散的样本点作为一类,分割的类别不均匀。因此,我们提出了Ratiocut和Ncut两种能够均匀地切割图的方法,分别如公式三所示:

Ratiocut(A1,A2,,Ak)=12ikW(Ai,Ai)AiNcut(A1,A2,,Ak)=12ikW(Ai,Ai)vol(Ai) egin{array}{c}{ ext {Ratiocut}left(A_{1}, A_{2}, cdots, A_{k} ight)=frac{1}{2} sum_{i}^{k} frac{Wleft(A_{i}, overline{A}_{i} ight)}{left|A_{i} ight|}} \ {operatorname{Ncut}left(A_{1}, A_{2}, cdots, A_{k} ight)=frac{1}{2} sum_{i}^{k} frac{Wleft(A_{i}, overline{A}_{i} ight)}{operatorname{vol}left(A_{i} ight)}}end{array}

其中Ratiocut中|Ai|代表Ai类别中样本点的个数,Ncut中vol(Ai)vol(A_i)代表Ai类别中所有边的权重和。两种切割方法都能很好的抑制样本被过于极端的分割造成分割不均匀的现象。

三. Ratiocut

1. L的特征向量h(指示器)

关键来了,拉普拉斯矩阵跟Ratiocut或者Ncut有什么联系呢?在这里我们以Ratiocut为例,我们想要minRatiocut(A1,A2,...,Ak)min Ratiocut(A_1,A_2,...,A_k)。和上文中的LL向量的特征向量ff(做指示器)一样,现在引入A1,A2,...,Ak{A_1,A_2,...,A_k}的指示向量hj=[h1,h2,...,hk]h_j=[h1,h2,...,hk],其中j=1,2,...,kj=1,2,...,k,其中hjh_j的具体表达如公式四所示:

hj,i={1Aj, if viAj0, if viAj h_{j, i}=left{egin{array}{cl}{frac{1}{sqrt{left|A_{j} ight|}},} & { ext { if } quad v_{i} in A_{j}} \ {0,} & { ext { if } quad v_{i} otin A_{j}}end{array} ight.

由拉普拉斯性质二最后得到的心得可以看到,在这里我们可以让hjh_j中的h1,h2h_1,h_2等可以分别表示样本X1X_1X2X_2等,并且hj1=0h_j*1=0。这里要注意hjh_j表示的是Aj类别的指示器,hjh_j中的数值只能表示在AjA_j(1/(Aj))(1/sqrt{(|Aj|)}),和不在AjA_j中(0),所以hjh_j指示器只能局限的表示所有样本是否在一种类别AjA_j上,不能表示样本与别的类别AiA_i之间的联系。我们需要更多的指示器hih_i来表示样本点与别的各类别之间的关系。

2. 拉普拉斯矩阵min(f’Lf)等价min Ratiocut(Ai,~Ai)

指示器hjh_j是一个向量,那么可以利用拉普拉斯矩阵性质一,用hjh_j向量来进行推导。推导过程公式五六所示:

hiTLhi=hiT(DW)hi=hiTDhihiTWhi=m=1m=1n=1nhi,mhi,nDm,nm=1n=1hi,mhi,nwm,n=m=1m=1hi,m2Dm,mm=1n=1hi,mhi,nwm,n=12(m=12hi,m2Dm,m2m=1hi,mhi,nwm,n+n=1hi,n2Dn,n)(5) egin{aligned} h_{i}^{T} L h_{i} &=h_{i}^{T}(D-W) h_{i} \ &=h_{i}^{T} D h_{i}-h_{i}^{T} W h_{i} \ &=sum_{m=1}^{m=1} sum_{n=1}^{n} h_{i, m} h_{i, n} D_{m, n}-sum_{m=1} sum_{n=1} h_{i, m} h_{i, n} w_{m, n} \ &=sum_{m=1}^{m=1} h_{i, m}^{2} D_{m, m}-sum_{m=1} sum_{n=1} h_{i, m} h_{i, n} w_{m, n} \ &=frac{1}{2}left(sum_{m=1}^{2} h_{i, m}^{2} D_{m, m}-2 sum_{m=1} h_{i, m} h_{i, n} w_{m, n}+sum_{n=1} h_{i, n}^{2} D_{n, n} ight) end{aligned} ag{5}

hiTLhi=12(m=12hi,m2Dm,m2m=1n=1hi,mhi,nwm,n+n=1hi,n2Dn,n)=12(m=1n=1hi,m2wm,n2m=1n=1hi,mhi,nwm,n+n=1m=1hi,n2wn,m)=12m=1n=1wn,m(hi,mhi,n)2(6) egin{aligned} h_{i}^{T} L h_{i} &=frac{1}{2}left(sum_{m=1}^{2} h_{i, m}^{2} D_{m, m}-2 sum_{m=1} sum_{n=1} h_{i, m} h_{i, n} w_{m, n}+sum_{n=1} h_{i, n}^{2} D_{n, n} ight) \ &=frac{1}{2}left(sum_{m=1} sum_{n=1} h_{i, m}^{2} w_{m, n}-2 sum_{m=1} sum_{n=1} h_{i, m} h_{i, n} w_{m, n}+sum_{n=1} sum_{m=1} h_{i, n}^{2} w_{n, m} ight) \ &=frac{1}{2} sum_{m=1} sum_{n=1} w_{n, m}left(h_{i, m}-h_{i, n} ight)^{2} end{aligned} ag{6}

这里推导过程于拉普拉斯的性质一推导相同,我们设定了hjh_j中的值,将hjh_j替换成设定的值,继续化简,会发现化简到最后就是Ratiocut。

hiTLhi=12m=1n=1wm,n(hi,mhi,n)2=12(mA,nAiwm,n(1Ai0)2+mAi,nAiwm,n(01Ai)2)=12(mA,nAiwm,n1Ai+mAi,nAiwm,n1Ai)=12(cut(Ai,Ai)1Ai+cut(Ai,Ai)1Ai)=cut(Ai,Ai)Ai=Ratiocut(Ai,Ai) egin{aligned} h_{i}^{T} L h_{i} &=frac{1}{2} sum_{m=1} sum_{n=1} w_{m, n}left(h_{i, m}-h_{i, n} ight)^{2} \ &=frac{1}{2}left(sum_{m in A, n in overline{A}_{i}} w_{m, n}left(frac{1}{sqrt{left|A_{i} ight|}}-0 ight)^{2}+sum_{m in A_{i}, n in A_{i}} w_{m, n}left(0-frac{1}{sqrt{left|A_{i} ight|}} ight)^{2} ight) \ &=frac{1}{2}left(sum_{m in A, n in overline{A}_{i}} w_{m, n} frac{1}{left|A_{i} ight|}+sum_{m in overline{A}_{i}, n in A_{i}} w_{m, n} frac{1}{left|A_{i} ight|} ight) \ &=frac{1}{2}left(operatorname{cut}left(A_{i}, overline{A}_{i} ight) frac{1}{left|A_{i} ight|}+operatorname{cut}left(overline{A}_{i}, A_{i} ight) frac{1}{left|A_{i} ight|} ight) \ &=frac{operatorname{cut}left(A_{i}, overline{A}_{i} ight)}{left|A_{i} ight|} \ &=operatorname{Ratiocut}left(A_{i}, overline{A}_{i} ight) end{aligned}

我们发现设定一个指示器hjh_j,拉普拉斯矩阵LL表示XiX_ihjh_j做拉普拉斯矩阵LL的特征向量后,根据LL的性质一,竟然hiLhi=RatiocutAi Aihi’Lhi=Ratiocut(Ai,~Ai)。也就是说,我们可以将求解拉普拉斯矩阵性质一与Ratiocut(Ai,~Ai)等价。成功的将最小切割图问题转化成了求解矩阵特征向量的问题。之前我们说了,hjh_j指示器中的值只能表示所有样本点是否在类别Aj的关系,需要更多的指示器hi来表示所有样本点跟别的类别的关系。而h_j对于拉普拉斯矩阵L,是L的特征向量。所以需要更多的hih_i就转换成了需要L更多的特征向量。根据min(hiLhi)=min(hiλhi)=min(λhihi)=minmin (hi’*L*hi)=min (hi’*λ*hi)=min (λhi’*hi)=min (λ*常数),求解多分类的极小化问题转换成了如下所示,约束条件由开始设定hj1h_j’*1向量=0.得:

argminHTr(HTLH), s.t. HTH=I operatorname{argmin}_{H} operatorname{Tr}left(H^{T} L H ight), quad ext { s.t. } H^{T} H=I

我们需要最小的特征值,而LL矩阵最小的特征值必为0,对应特征向量是全1向量,对于预测所有样本与类别AiA_i间的联系没有帮助,所以我们求得倒数二小的特征值开始的前kk个特征值对应的特征向量做指示器,因为每个LL的特征向量都是对某一类的指示,所以现在要聚kk个类,我们就讲这前k个特征向量组成一个矩阵,大小为nkn*k。其中每一列是特征向量hih_i,每一行iikk个位置,分别代表h1,h2,...,hkh_1,h_2,...,h_k指示器对该样本XiX_i与不同类别A1,A2,...,AkA_1,A_2,...,A_k的关系,间接表示一个样本,这样我们就可以通过前k个特征向量表示每个样本XiX_i后,用K-means对这些间接表示的样本进行聚类。(这其中放宽了公式八多分类的约束条件,因为公式八是hjh_j中是离散数值,这样会造成NP-hard问题)最终,前辈们成功的将图分割问题与求解拉普拉斯矩阵L的特征向量成功联系在一起,给前辈们一个赞!Ncut原理也与Ratiocut类似,在此不重复介绍。

3. 疑问

不过在整个推理谱聚类的过程中还存在一个问题,没有搞明白,谱聚类中核心是对拉普拉斯矩阵进行特征分解,求其最小k个特征向量,用这些特征向量降维表示XiX_i,然后kmeans聚类。但是如公式八所示,最小化图分割问题里,求解出来的特征向量是有约束条件的,怎么能保证求得的倒数k个小特征值对应的特征值向量hih_i就一定满足hi1=0h_i*1=0呢?

四. 总结

拉普拉斯矩阵L有很多特殊的性质,通过这些性质我们发现了L矩阵的特征向量中每个元素i可以一定程度上与表示样本XiX_i。通过这个特性,前辈们成功的通过求解L的k个特征向量,综合来表示样本XiX_i,等价求解将整个图的最小化分割问题。所以,可以说拉普拉斯矩阵的作用是对所有样本进行了降维表示,因为是用特征向量表示,所以整个图拉普拉斯矩阵在用k个特征向量表示后也保留了很多关键信息,最后通过kmeans对这些降维后的XiX_i进行聚类。

对深度学习感兴趣,热爱Tensorflow的小伙伴,欢迎关注我们的网站!http://www.panchuang.net 我们的公众号:磐创AI。

原文地址:https://www.cnblogs.com/panchuangai/p/12568218.html