1. 无向加权图 G G G

G G G,一般用顶点集 V V V 和顶点之间的边集 E E E 表示,
G = ( V , E ) . G=(V,E). G=(V,E).
其中, V = { v 1 , v 2 , … , v n } V=\{v_1,v_2, \dots, v_n\} V={v1,v2,,vn} E = { ⟨ v i , v j ⟩ ∣ i , j = [ 1   . .   n ] } E=\{\langle v_i, v_j \rangle \mid i, j = [1 \text{ }.. \text{ }n] \} E={vi,vji,j=[1 .. n]} ⟨ v i , v j ⟩ \langle v_i, v_j \rangle vi,vj 表示顶点 v i v_i vi 和顶点 v j v_j vj 之间的边。

定义 w i j w_{ij} wij 为边 ⟨ v i , v j ⟩ \langle v_i, v_j \rangle vi,vj 的权重。
对于有边连接的顶点 v i v_i vi 和顶点 v j v_j vj w i j > 0 w_{ij} > 0 wij>0;对于没有边连接的顶点 v i v_i vi 和顶点 v j v_j vj w i j = 0 w_{ij}=0 wij=0
对于无向加权图, w i j = w j i w_{ij}=w_{ji} wij=wji w i i = 0 w_{ii}=0 wii=0

2. 邻接矩阵 W W W

G G G 使用邻接矩阵来表示,得到 W W W,定义为:
W = ( w 11 w 12 … w 1 n w 21 w 22 … w 2 n ⋮ ⋮ ⋱ ⋮ w n 1 w n 2 … w n n ) W=\begin{pmatrix} w_{11} & w_{12} & \dots & w_{1n} \\ w_{21} & w_{22} & \dots & w_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ w_{n1} & w_{n2} & \dots & w_{nn} \\ \end{pmatrix} W=w11w21wn1w12w22wn2w1nw2nwnn

3. 度矩阵 D D D

对于 G G G 中任意一个顶点 v i v_i vi i ∈ [ 1   . .   n ] i \in [1 \text{ }..\text{ } n] i[1 .. n],它的度定义为和它相连的所有边的权重之和,即
d i = ∑ j = 1 n w i j d_i = \sum_{j=1}^{n} w_{ij} di=j=1nwij

利用顶点的度,可以得到一个度矩阵 D D D,定义为:
D = ( d 1 … … … d 2 … ⋮ ⋱ ⋮ … … d n ) D=\begin{pmatrix} d_1 & \dots & \dots \\ \dots & d_2 & \dots \\ \vdots & \ddots & \vdots \\ \dots & \dots & d_n \\ \end{pmatrix} D=d1d2dn
D D D 是一个 n × n n \times n n×n 的矩阵,并且是一个对角矩阵,只有主对角线的元素非零,其他元素全为零。主对角线上第 i i i 个值对应 d i d_i di

4. 拉普拉斯矩阵 L L L

拉普拉斯矩阵 L L L,定义为:
L = D − W L = D - W L=DW

L L L 具有的性质:

  1. D D D W W W 是对称矩阵,因此 L L L 也是对称矩阵;
  2. 由于 L L L 是对称矩阵,则它的所有特征值都是实数;
  3. 对于任意的向量 f f f,有:
    f T L f = 1 2 ∑ i , j = 1 n w i j ( f i − f j ) 2 f^\text{T}Lf = \frac{1}{2} \sum_{i,j=1}^{n} w_{ij} (f_i - f_j)^2 fTLf=21i,j=1nwij(fifj)2
  4. L L L 是半正定的,且对应的 n n n 个实数特征值都大于 0,即 0 = λ 1 ≤ λ 2 ≤ … λ n 0= \lambda_1 \leq \lambda_2 \leq \dots \lambda_n 0=λ1λ2λn,且最小的特征值为 0。

对于第 3 点性质,可以很容易得到。

推导:
L L L 是一个 n × n n \times n n×n 的矩阵,则不妨设
f = [ f 1 f 2 … f n ] T f = \begin{bmatrix} f_1 & f_2 & \dots & f_n \end{bmatrix}^\text{T} f=[f1f2fn]T,则 f T = [ f 1 f 2 … f n ] f^\text{T} = \begin{bmatrix} f_1 & f_2 & \dots & f_n \end{bmatrix} fT=[f1f2fn]

⇒ f T D = [ f 1 f 2 … f n ] ⋅ [ d 1 … … … … d 2 … … ⋮ ⋮ ⋱ ⋮ … … … d n ] = [ f 1 d 1 f 2 d 2 … f n d n ] \Rightarrow \begin{aligned} f^\text{T}D &= \begin{bmatrix} f_1 & f_2 & \dots & f_n \end{bmatrix} \cdot \begin{bmatrix} d_1 & \dots & \dots & \dots \\ \dots & d_2 & \dots & \dots \\ \vdots & \vdots & \ddots & \vdots \\ \dots & \dots & \dots & d_n \\ \end{bmatrix} \\ &= \begin{bmatrix} f_1 d_1 & f_2 d_2 & \dots & f_n d_n \\ \end{bmatrix} \end{aligned} fTD=[f1f2fn]d1d2dn=[f1d1f2d2fndn]

⇒ f T D f = [ f 1 d 1 f 2 d 2 … f n d n ] ⋅ [ f 1 f 2 … f n ] = ( f 1 2 d 1 + f 2 2 d 2 + ⋯ + f n 2 d n ) = ∑ i = 1 n f i 2 d i \Rightarrow \begin{aligned} f^\text{T}Df &= \begin{bmatrix} f_1 d_1 & f_2 d_2 & \dots f_n d_n \end{bmatrix} \cdot \begin{bmatrix} f_1 \\ f_2 \\ \dots \\ f_n \\ \end{bmatrix} \\ & = \left(f_1^2 d_1 + f_2^2 d_2 + \dots + f_n^2 d_n\right) \\ & = \sum_{i=1}^{n} f_i^2 d_i \end{aligned} fTDf=[f1d1f2d2fndn]f1f2fn=(f12d1+f22d2++fn2dn)=i=1nfi2di

⇒ f T W = [ f 1 f 2 … f n ] ⋅ [ w 11 w 12 … w 1 n w 21 w 22 … w 2 n ⋮ ⋮ ⋱ ⋮ w n 1 w n 2 … w n n ] = [ f 1 w 11 + f 2 w 21 + ⋯ + f n w n 1 f 1 w 12 + f 2 w 22 + ⋯ + f n w n 2 ⋮ f 1 w 1 n + f 2 w 2 n + ⋯ + f n w n n ] T = [ ∑ i = 1 n f i w i 1 ∑ i = 1 n f i w i 2 ⋯ ∑ i = 1 n f i w i n ] \Rightarrow \begin{aligned} f^\text{T}W & = \begin{bmatrix} f_1 & f_2 & \dots & f_n \end{bmatrix} \cdot \begin{bmatrix} w_{11} & w_{12} & \dots & w_{1n} \\ w_{21} & w_{22} & \dots & w_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ w_{n1} & w_{n2} & \dots & w_{nn} \\ \end{bmatrix} \\ &= \begin{bmatrix} f_1 w_{11} + f_2 w_{21} + \dots + f_n w_{n1} \\ f_1 w_{12} + f_2 w_{22} + \dots + f_n w_{n2} \\ \vdots \\ f_1 w_{1n} + f_2 w_{2n} + \dots + f_n w_{nn} \\ \end{bmatrix}^\text{T} \\ & = \begin{bmatrix} \sum_{i=1}^{n} f_i w_{i1} & \sum_{i=1}^{n} f_i w_{i2} & \cdots & \sum_{i=1}^{n} f_i w_{in} \\ \end{bmatrix} \end{aligned} fTW=[f1f2fn]w11w21wn1w12w22wn2w1nw2nwnn=f1w11+f2w21++fnwn1f1w12+f2w22++fnwn2f1w1n+f2w2n++fnwnnT=[i=1nfiwi1i=1nfiwi2i=1nfiwin]

⇒ f T W f = [ ∑ i = 1 n f i w i 1 ∑ i = 1 n f i w i 2 … ∑ i = 1 n f i w i n ] ⋅ [ f 1 f 2 … f n ] = f 1 ∑ i = 1 n f i w i 1 + f 2 ∑ i = 1 n f i w i 2 + ⋯ + f n ∑ i n f i w i n = ∑ j = 1 n f j ∑ i = 1 n f i w i j = ∑ j = 1 n ∑ i = 1 n f i f j w i j = ∑ i = 1 n ∑ j = 1 n f i f j w i j \Rightarrow \begin{aligned} f^\text{T}Wf &= \begin{bmatrix} \sum_{i=1}^{n} f_i w_{i1} & \sum_{i=1}^{n} f_i w_{i2} & \dots & \sum_{i=1}^{n} f_i w_{in} \end{bmatrix} \cdot \begin{bmatrix} f_1 \\ f_2 \\ \dots \\ f_n \\ \end{bmatrix} \\ & = f_1 \sum_{i=1}^{n} f_i w_{i1} + f_2 \sum_{i=1}^{n} f_i w_{i2} + \dots + f_n \sum_{i}^{n} f_i w_{in} \\ &= \sum_{j=1}^{n} f_j \sum_{i=1}^{n} f_i w_{ij} \\ & = \sum_{j=1}^{n} \sum_{i=1}^{n} f_i f_j w_{ij} \\ & = \sum_{i=1}^{n} \sum_{j=1}^{n} f_i f_j w_{ij} \\ \end{aligned} fTWf=[i=1nfiwi1i=1nfiwi2i=1nfiwin]f1f2fn=f1i=1nfiwi1+f2i=1nfiwi2++fninfiwin=j=1nfji=1nfiwij=j=1ni=1nfifjwij=i=1nj=1nfifjwij

因此,
⇒ f T L f = f T ( D − W ) f = f T D f − f T W f = ∑ i = 1 n f i 2 d i − ∑ j = 1 n ∑ i = 1 n f i f j w i j = 1 2 ( ∑ i n f i 2 d i − 2 ∑ i = 1 n ∑ j = 1 n f i f j w i j + ∑ j = 1 n f j 2 d j ) = 1 2 ∑ i = 1 n ∑ j = 1 n w i j ( f i − f j ) 2 \Rightarrow \begin{aligned} f^\text{T} L f & = f^\text{T}(D - W) f \\ &= f^\text{T} D f - f^\text{T} W f \\ &= \sum_{i=1}^{n} f_i^2 d_i - \sum_{j=1}^{n} \sum_{i=1}^{n} f_i f_j w_{ij} \\ & = \frac{1}{2} \left(\sum_{i}^{n} f_i^2 d_i - 2 \sum_{i=1}^{n}\sum_{j=1}^{n} f_i f_j w_{ij} + \sum_{j=1}^{n} f_j^2 d_j\right) \\ & = \frac{1}{2} \sum_{i=1}^{n} \sum_{j=1}^{n} w_{ij} (f_i - f_j)^2 \end{aligned} fTLf=fT(DW)f=fTDffTWf=i=1nfi2dij=1ni=1nfifjwij=21(infi2di2i=1nj=1nfifjwij+j=1nfj2dj)=21i=1nj=1nwij(fifj)2

参考

  1. 刘建平Pinard:谱聚类(spectral clustering)原理总结
  2. 文墨:谱聚类算法(Spectral Clustering)
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐