1. 基础知识

令 G=(V,E) G=(V,E) 为无向图,节点集为 V=v1,v2,...,vn V={v_1,v_2,...,v_n}. 假设图 G G 是有权图,节点 viv_i 和 vj v_j 之间的权重为 wij≥0 w_{ij} \geq 0. 权重邻接矩阵为 W=(wij)i,j=1,...,n W=(w_{ij})_{i,j=1,...,n}. 如果 wij=0 w_{ij}=0, 则说明它们不相连.节点 vi v_i 的度数为:

di=∑j=1nwij(权重之和)

d_i=\sum_{j=1}^n w_{ij}(权重之和)
度数矩阵 D D 定义为对角线元素为 d1,...,dnd_1,...,d_n 对角矩阵.
给定节点集 A⊂V A\subset V,它的补集定义为 A¯=V∖A \bar A=V\backslash A。
指示向量定义为 1A=(f1,...,fn)′∈Rn \mathbb{1_A}=(f_1,...,f_n)'\in \mathbb{R}^n,当 vi∈A v_i\in A时 fi=1 f_i=1,反之 fi=0 f_i=0.
两种衡量集合 A A大小的方式:

|A|:=thenumberofverticesinAvol(A):=∑i∈Adi

|A|:= the\; number\; of\; vertices\; in\; A\\ vol(A):=\sum_{i\in A}d_i

特征值与特征向量:

设 A=(aij)n×n A=(a_{ij})_{n\times n} 是一个 n n 阶矩阵,如果有一个复数 λ\lambda 及一个 n n 维非零列向量 x=(x1,⋯,xn)Tx=(x_1,\cdots,x_n)^T,使得

Ax=λx

Ax=\lambda x
或:

(λI−A)x=0

(\lambda I-A)x=0
则称 λ \lambda 为矩阵 A A 的一个特征值,称非零列向量 xx 为 A A 的对应于特征值 λ\lambda 的 特征向量.

半正定矩阵:

定义:如果矩阵 A∈Rn×n A\in R^{n\times n} 是实对称矩阵,并且对于一切 X∈Rn X\in R^n,有 XTAX≥0 X^TAX\geq 0,则称矩阵 A A 为半正定矩阵.
对于一个n阶对称矩阵 AA,以下命题等价:

  • A是半正定矩阵
  • A的所有特征值非负
  • A的所有主子式非负
  • 存在n阶矩阵B,使得 A=BBT A=BB^T
  • 存在n阶下三角阵L,使得 A=LLT A=LL^T
  • 存在n阶对称矩阵C,使得 A=C2 A=C^2

2. 图的拉普拉斯算子及其性质

谱聚类的主要工具就是拉普拉斯算子。拉普拉斯算子一类矩阵的统称,并非特指某一个算子。下面当我们提到矩阵的特征向量的时候,并不一定要求其模为1.因此线性相关的多个向量会被当成同一个. 特征值总是会被按照递增的顺序排列. 最先的k个特征向量(the first k eigenvector)指的是k个最小的特征值所对应的特征向量。

2.1 未规则化的拉普拉斯算子

未规则化的拉普拉斯矩阵为:

L=D−W

L=D-W
它的主要性质如下:

  • 对于任意的向量 f∈Rn f\in \mathbb{R}^n,有:

    f′Lf=12∑i,j=1nwij(fi−fj)2

    f'Lf=\frac{1}{2}\sum_{i,j=1}^n w_{ij}(f_i-f_j)^2

  • L L 是对称的并且半正定
  • LL 的最小特征值是0,对应的特征向量是常数1向量 1 \mathbb{1} (各行之和为0)
  • L L 有n个非负实值特征值 0=λ1≤λ2≤⋯≤λn0=\lambda_1 \leq \lambda_2 \leq \cdots \leq \lambda_n

说明
1. 未规则化的拉普拉斯算子与邻接矩阵 W 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 规则化的拉普拉斯算子

有两个矩阵被称为规则化拉普拉斯算子:

LsymLrw=D−1/2LD−1/2=I−D−1/2WD−1/2=D−1L=I−D−1W

\begin{aligned} L_{sym}&=D^{-1/2}LD^{-1/2}=I-D^{-1/2}WD^{-1/2} \\ L_{rw}&=D^{-1}L=I-D^{-1}W \end{aligned}

Lsym L_{sym}的下标表示它是一个对称(symmetric)矩阵, Lrw L_{rw} 的下标是因为它与随机游走(random walk)有紧密联系. 它们有如下性质:

  • 对于任意 f∈Rn f\in \mathbb{R}^n,

    f′Lsymf=12∑i,j=1nwij(fid√i−fjd√j)2

    f'L_{sym}f=\frac{1}{2}\sum_{i,j=1}^nw_{ij}\bigg(\frac{f_i}{\sqrt d_i}-\frac{f_j}{\sqrt d_j}\bigg)^2

  • λ \lambda是 Lrw L_{rw} 的特征向量为 v v 的特征值当且仅当 λ\lambda 是 Lsym L_{sym}的特征向量为 w=D−1/2 w=D^{-1/2} 的特征值
  • λ \lambda是 Lrw L_{rw} 的特征向量为 v v 的特征值当且仅当 λ\lambda 和 v v 能求解泛化了的特征问题(generalized eigenproblem) Lv=λDvLv=\lambda Dv
  • 0是 Lrw L_{rw} 的特征向量为常数1向量 1 \mathbb{1} 的特征值. 0是 Lsym L_{sym} 的特征向量为 D−1/21 D^{-1/2}\mathbb{1}的特征值
  • Lsym L_{sym} 和 Lrw L_{rw} 是半正定矩阵且有 n n 个非负实值特征值 0=λ1≤λ2≤⋯≤λn0=\lambda_1 \leq \lambda_2 \leq \cdots \leq \lambda_n

说明:
规则化拉普拉斯算子的特征值0的重数同样与图的连通分量个数有关:
Lrw L_{rw} 和 Lsym L_{sym} 的特征值0的重数等于连通分量的个数. 对于 Lrw L_{rw},特征值0的特征空间由各连通分量的指示向量 1A \mathbb{1_A}组成;对于 Lsym L_{sym},特征值0的特征空间由各连通分量的向量 D−1/21A D^{-1/2}\mathbb{1_A} 组成.

3. 从图分割看谱聚类

下面将从图分割角度推导出谱聚类。

三种cut:

  • cut(A,A¯)=∑i∈A,j∈A¯wij cut(A,\bar A)=\sum_{i\in A,j\in \bar A}w_{ij}
  • RatioCut(A,A¯)=cut(A,A¯)|A|+cut(A,A¯)|A¯| RatioCut(A,\bar A)=\frac{cut(A,\bar A)}{|A|}+\frac{cut(A,\bar A)}{|\bar A|}
  • NCut(A,A¯)=cut(A,A¯)vol(A)+cut(A,A¯)vol(A¯) NCut(A,\bar A)=\frac{cut(A,\bar A)}{vol(A)}+\frac{cut(A,\bar A)}{vol(\bar A)}

已经有很高效的方法解决mincut问题,但是mincut多数情况下只是将单个节点从原图分割出去. RatioCut和NCut都试图将图划分得更加均衡,然而很不幸的是这将使问题变为NP hard. 谱聚类是一种解决这些问题的松弛化版本的一种方法,松弛RatioCut对应未规则化谱聚类,松弛NCut对应规则化谱聚类.

3.1 RatioCut推导

考虑k=2的情况. 目标函数:

minA⊂VRatioCut(A,A¯)

\mathop{\min}_{A \subset V} RatioCut(A,\bar A)

为了将问题改写为更方便的方式,定义一个 N 维列向量 f:

fi=⎧⎩⎨⎪⎪|A¯|/|A|−−−−−−√,ifvi∈A−|A|/|A¯|−−−−−−√,ifvi∈A¯

f_i = \begin{cases} \sqrt{|\bar A| / |A|}, if \; v_i \in A \\ -\sqrt{|A| / |\bar A|} ,if \; v_i \in \bar A \end{cases}
(f 对应每个节点所对应的分类。后面可以看到,之所以这样构造是因为 f 满足 fTf f^Tf 是个常数,进而可以方便地引入瑞利商理论。)

现在可以用未规则化的拉普拉斯算子改写目标函数:

fTLf=====12∑i,j=1Nwij(fi−fj)212[∑i∈A,j∈A¯wij(|A¯||A|−−−√+|A||A¯|−−−√)2+∑i∈A¯,j∈Awij(−|A¯||A|−−−√−|A||A¯|−−−√)2]cut(A,A¯)(|A¯||A|+|A||A¯|+2)cut(A,A¯)(|A|+|A¯||A|+|A|+|A¯||A¯|)|V|⋅RatioCut(A,A¯)

\begin{aligned} f^TLf=&\frac{1}{2}\sum_{i,j=1}^Nw_{ij}(f_i-f_j)^2 \\ =& \frac{1}{2} \Bigg[\sum_{i\in A,j\in \bar A}w_{ij}{\bigg(\sqrt{\frac{|\bar A|}{|A|}} + \sqrt{\frac{|A|}{|\bar A|}}\bigg)}^2+\sum_{i\in \bar A,j \in A}w_{ij}\bigg(-\sqrt{\frac{|\bar A|}{|A|}} - \sqrt{\frac{|A|}{|\bar A|}}\bigg)^2 \Bigg] \\ =& cut(A,\bar A)\big(\frac{|\bar A|}{|A|}+\frac{|A|}{|\bar A|} +2 \big) \\ =& cut(A,\bar A)\big(\frac{|A| + |\bar A|}{|A|}+\frac{|A|+|\bar A|}{|\bar A|}\big) \\ =&|V|\cdot RatioCut(A,\bar A) \end{aligned}

另外,如果令 1 \mathbf{1} 为各个元素全为 1 的向量的话,直接展开可以很容易得到 fT1=∑fi=0 f^T\mathbf{1} = \sum f_i = 0 和 fTf=∥f∥2=∑f2i=n f^Tf=\|f\|^2 = \sum f_i^2 = n 。

由于 |V| 是一个常量,因此目标函数可等价写成:

minA⊂Vf′Lf,subjecttof⊥1and∥f∥=n√

\mathop{\min}_{A\subset V} f'Lf,subject\; to\; f\perp \mathbb{1}\; and\;\| f\|=\sqrt n

根据 Rayleigh-Ritz 理论,这个问题的解 f f 即为 LL 的第二小特征值(因为最小特征值为0)所对应的特征向量.

到这一步,我们看起来好像是很容易地解决了前面那个 NP hard 问题,实际上是我们耍了一个把戏:之前的问题之所以 NP hard 是因为向量 f f 的元素只能取两个值 |A¯|/|A|−−−−−−√和−|A|/|A¯|−−−−−−√\sqrt{|\bar{A}|/|A|} 和 -\sqrt{|A|/|\bar{A}|} 中的一个,是一个离散的问题,而我们求的的特征向量 v 其中的元素可以是任意实数,就是说我们将原来的问题限制放宽了。那如何得到原来的解呢?一个最简单的办法就是看 v 的每个元素是大于零还是小于零,将他们分别对应到离散情况的 |A¯|/|A|−−−−−−√和−|A|/|A¯|−−−−−−√ \sqrt{|\bar{A}|/|A|} 和 -\sqrt{|A|/|\bar{A}|} ,不过我们也可以采取稍微复杂一点的办法,用 k=2 的 K-means 来将 v 的元素聚为两类。

3.2 NCut推导

可以采用与RatioCut类似的方法推导出NCut的规则化谱聚类解法.

定义指示向量 f f 为:

fi=⎧⎩⎨⎪⎪vol(A¯)/vol(A)−−−−−−−−−−−√,ifvi∈A−vol(A)/vol(A¯)−−−−−−−−−−−√,ifvi∈A¯

f_i = \begin{cases} \sqrt{vol(\bar A)/vol(A)}, if \; v_i \in A \\ -\sqrt{vol(A)/vol(\bar A)} ,if \; v_i \in \bar A \end{cases}
易知 (Df)′1=0,f′Df=vol(V) (Df)'\mathbb{1}=0,f'Df=vol(V) 以及 f′Lf=vol(V)NCut(A,A¯) f'Lf=vol(V)NCut(A,\bar A),因此原问题可转化为:

minAf′LfsubjecttoDf⊥1,f′Df=vol(V)

\mathop{\min}_A f'Lf\; subject\;to\;Df\perp\mathbb{1},f'Df=vol(V)
经过允许 f f 可以是实值来松弛化之后:

minf∈Rnf′LfsubjecttoDf⊥1,f′Df=vol(V)

\mathop{\min}_{f\in \mathbb{R}^n} f'Lf\;subject\;to\;Df\perp\mathbb{1},f'Df=vol(V)
用 g:=D1/2f g:=D^{1/2}f 作变换:

ming∈Rng′D−1/2LD−1/2gsubjecttog⊥D1/21,∥g∥2=vol(V)

\mathop{\min}_{g\in \mathbb{R}^n} g'D^{-1/2}LD^{-1/2}g\;subject\;to\;g\perp D^{1/2}\mathbb{1},{\|g\|}^2=vol(V)
注意到 D−1/2LD−1/2=Lsym D^{-1/2}LD^{-1/2}=L_{sym}:

ming∈Rng′Lsymgsubjecttog⊥D1/21,∥g∥2=vol(V)

\mathop{\min}_{g\in \mathbb{R}^n} g'L_{sym}g\;subject\;to\;g\perp D^{1/2}\mathbb{1},{\|g\|}^2=vol(V)
由于 D1/21 D^{1/2}\mathbb{1} 是 Lsym L_{sym} 的第一个特征向量, vol(V) vol(V) 是定值. 故上式即为 Rayleigh-Ritz 的标准形式,它的解 g g 即为 LsymL_{sym} 的第二个特征向量.

由规则化拉普拉斯算子性质:

λ \lambda是 Lrw L_{rw} 的特征向量为 v v 的特征值当且仅当 λ\lambda 是 Lsym L_{sym}的特征向量为 w=D−1/2 w=D^{-1/2} 的特征值

可知 f=D−1/2g f=D^{-1/2}g 为 Lrw L_{rw} 的第二个特征向量,或者 Lv=λDv Lv=\lambda Dv 的规则化的特征向量.

3.3 松弛方法分析

用谱聚类方法解决图分割问题的结果可能与真实结果相去甚远.

谱聚类并不是唯一可用于解决这类问题的方法,半正定规划(semi-definite programming, SDP)就是一种完全不同的方法. 谱聚类之所以很吸引人不是因为它的效果很好,而是因为它将问题转化成非常简单而易于解决的标准线性代数问题.

最后,k-means并不是唯一可用于对实值向量进行划分的算法,任何其它的可解决此问题的聚类算法都可使用.

References
1. A tutorial on Spectral Clustering
2. 漫谈 Clustering (4): Spectral Clustering

A tutorial on Spectral Clustering相关推荐

  1. 【机器学习】谱聚类(Spectral Clustering)

    疑问 谱聚类的概念 谱聚类是一种针对图结构的聚类方法,将每个点都看作是一个图结构上的点,所以,判断两个点是否属于同一类的依据就是,两个点在图结构上是否有边相连,可以是直接相连也可以是间接相连.本质上就 ...

  2. sklearn学习之Spectral Clustering

    基本思想 谱聚类是从图论中演化出来的算法,后来在聚类中得到了广泛的应用.它的主要思想是把所有的数据看做空间中的点,这些点之间可以用边连接起来.距离较远的两个点之间的边权重值较低,而距离较近的两个点之间 ...

  3. Spectral Clustering

    Spectral Clustering(转) 如果说 K-means 和 GMM 这些聚类的方法是古代流行的算法的话,那么这次要讲的 Spectral Clustering 就可以算是现代流行的算法了 ...

  4. spectral clustering谱聚类论文解读(上)

    关于A Tutorial on Spectral Clustering的解读 1.介绍 2.相似图 2.1 图的标号 2.2 不同的相似图 3.拉普拉斯图与它的基础参数 3.1未归一化的拉普拉斯矩阵 ...

  5. 谱聚类(Spectral Clustering)算法介绍

    一. 前言 本来想写关于聚类系列算法的介绍,但是聚类系列的其它几个算法原理比较简单,网上有大量的教程可以查阅.这里主要是介绍一下谱聚类算法,做一个学习笔记,同时也希望对想要了解该算法的朋友有一个帮助. ...

  6. 谱聚类(Spectral Clustering)1——算法原理

    文章目录 简介 1. 准备工作 1.1 邻接矩阵 1.2 度矩阵 1.3 拉普拉斯矩阵 1.3.1 非归一化拉普拉斯矩阵 1.3.2 归一化拉普拉斯矩阵 1.4 相似图 1.4.1 ϵ\epsilon ...

  7. 谱聚类(spectral clustering)及其实现详解

    Preface 开了很多题,手稿都是写好一直思考如何放到CSDN上来,一方面由于公司技术隐私,一方面由于面向对象不同,要大改,所以一直没贴出完整,希望日后可以把开的题都补充全. 先把大纲列出来: 一. ...

  8. 谱聚类 Spectral Clustering

    谱聚类 Spectral Clustering sklearn.cluster.SpectralClustering 谱聚类(Spectral Clustering, SC), 是一种基于图论的聚类方 ...

  9. 一个不错的Spectral Clustering方法的总结

    什么叫Spectral Algorithm?  广义上来说,任何在演算法中用到SVD/特征值分解的,都叫Spectral Algorithm. 从很老很老的PCA/LDA,到比较近的Spectral ...

最新文章

  1. eclipse插件之easyshell
  2. (0079)iOS开发之安全策略之HTTPS(1)
  3. gdb 设置一个函数, 出现4个断点的原因
  4. 思科路由器debug基本操作和简单配置
  5. 【洛谷4001】 [ICPC-Beijing 2006]狼抓兔子(最小割)
  6. mats显存测试软件linux环境,Mats显存检测软件下载-Mats显存检测软件最新版下载-微侠手游网...
  7. 李宏毅机器学习(二)自注意力机制
  8. 线性代数应该这样讲(一)
  9. (数据库系统概论|王珊)第四章数据库安全性-第二、三、四、五、六节:数据库安全性控制
  10. 2020-04-04 接收队列--配置所有的TCP数据流定向到接收队列2中
  11. 机器学习课程笔记【三】广义线性模型(2)-构建广义线性模型
  12. java 按字节读文件_JAVA按字节读取文件的简单实例
  13. Excel如何批量添加批注
  14. 无法访问网内计算机错误代码,电脑局域网无法访问共享ox80070035错误代码解决方法...
  15. 交互体验设计优秀的产品
  16. 分享一则电子邮件营销案例
  17. 【js】判断时间段之间是否有重叠
  18. 清晰理解红黑树的演变-红黑的含义
  19. 手机游戏充值api 各大游戏在线直充
  20. kali安装beef-xss(笔者的踩坑之旅)

热门文章

  1. Android中okhttp原理详解
  2. 杭州江南专修学校计算机应用,2021年杭州江南专修学院高级护理招生计划及专业介绍-升学乐中职网...
  3. 【密码学】RSA公钥密码体制
  4. 【网络】交换机的原理和配置方法
  5. 【亚马逊运营】如何对产品进行市场调研,寻找盈利契机?
  6. 关于Markdown文件的书写语法格式
  7. Web.Config配置详细说明
  8. 2021碳达峰碳中和研究报告
  9. Linux 端口复用详解(附有案例代码)
  10. java 输出字符串变量_java打印字符串变量