参考文章:Introduction to Spectral Graph Theory and Graph Clustering
作者:Chengming Jiang,ECS 231 Spring 2016 University of California, Davis
本文的目的是进行计算机图像分割:
图1 图像分割
一、预备知识
关于图(G)、度矩阵(D)、邻接矩阵(A)皆在上一篇理解中交代过,现补充一些新的定义:
1、权重矩阵
A weighted graph is a pair G=(V,W) where
- V = { v i } V=\{v_i\} V={vi} is a set of vertices and ∣ V ∣ = n \vert V\vert=n ∣V∣=n;
-
W
∈
R
n
×
n
W\in \mathbb R^{n\times n}
W∈Rn×n is called weight matrix with
w i j = { w i j ≥ 0 if i ≠ j 0 i=j w_{ij}=\begin{cases} w_{ij}\ge 0 & \text{if $i\neq j$}\\ 0 & \text{i=j}\end{cases} wij={wij≥00if i̸=ji=j
W是权重矩阵,V是顶点,它们构成对G=(V,W),即是权重图G。
The underlying graph of G is G ^ = ( V , E ) \hat G=(V,E) G^=(V,E) with
E = { { v i , v j } ∣ w i j > 0 } E=\{\{v_i,v_j\}\vert w_{ij}\gt 0\} E={{vi,vj}∣wij>0} - If w i j ∈ { 0 , 1 } , W = A w_{ij}\in\{0,1\},W=A wij∈{0,1},W=A, the adjacency matrix of G ^ \hat G G^
- Since
w
i
i
=
0
w_{ii}=0
wii=0, there is no self-loops in
G
^
\hat G
G^
W是对A的一个扩展,当 w i j ∈ { 0 , 1 } w_{ij}\in\{0,1\} wij∈{0,1},W即是A。定义W后,需要重新定义顶点的度(degree of a vertex)和度矩阵(degree matrix):
d ( v i ) = ∑ j = 1 n w i j degree of v i d(v_i)=\sum_{j=1}^n w_{ij} \qquad \text{degree of $v_i$} d(vi)=j=1∑nwijdegree of vi
Let d ( v i ) = d i D = D ( G ) = d i a g ( d ( v 1 ) , ⋯   , d ( v n ) ) = d i a g ( d 1 , ⋯   , d n ) \text{Let $d(v_i)=d_i$} \\D=D(G)=diag(d(v_1),\cdots,d(v_n))=diag(d_1,\cdots,d_n) Let d(vi)=diD=D(G)=diag(d(v1),⋯,d(vn))=diag(d1,⋯,dn)
2、A的体积(Volume)
对于V的一个子集A( A ⊆ V A\subseteq V A⊆V),定义A的体积(Volume):
v o l ( A ) = ∑ v i ∈ A d ( v i ) = ∑ v i ∈ A ∑ j = 1 n w i j vol(A)=\sum_{v_i \in A}d(v_i)=\sum_{v_i\in A}\sum_{j=1}^n w_{ij} vol(A)=vi∈A∑d(vi)=vi∈A∑j=1∑nwij
即A中所有顶点的度和,若A中所有顶点都是孤立的(isolated),则vol(A)=0,举例如下:
图2 vol(A)的计算方法
3、顶点集间的连接(links)
Given two subsets of vertices A , B ⊆ V A,B\subseteq V A,B⊆V, we define the links l i n k s ( A , B ) links(A,B) links(A,B) by
l i n k s ( A , B ) = ∑ v i ∈ A , v j ∈ B w i j links(A,B)=\sum_{v_i\in A, v_j \in B} w_{ij} links(A,B)=∑vi∈A,vj∈Bwij
Remarks:- A and B are not necessarily distinct;
- Since W is symmetric, l i n k s ( A , B ) = l i n k s ( B , A ) links(A,B)=links(B,A) links(A,B)=links(B,A)
-
v
o
l
(
A
)
=
l
i
n
k
s
(
A
,
V
)
vol(A)=links(A,V)
vol(A)=links(A,V)
有了连接(links)定义,就可以定义分割(cut),它的定义如下:
c u t ( A ) = l i n k s ( A , V − A ) cut(A)=links(A,V-A) cut(A)=links(A,V−A)
在连接(links)基础上,还可以定义一个量assoc,如下:
a s s o c ( A ) = l i n k s ( A , A ) assoc(A)=links(A,A) assoc(A)=links(A,A)
即A中顶点自己的连接。cut是A和外部的links,assoc是A与内部的links。因此有: c u t ( A ) + a s s o c ( A ) = v o l ( A ) cut(A)+assoc(A)=vol(A) cut(A)+assoc(A)=vol(A)
4、Graph Laplacian
对于权重图 G=(V,W),the (graph) Laplacian L of G is defined by
L = D − W L=D-W L=D−W
Laplacian具有以下的属性: - x T L x = 1 2 ∑ i , j = 1 n w i j ( x i − x j ) 2 x^TLx=\frac{1}{2}\sum_{i,j=1}^n w_{ij}(x_i-x_j)^2 xTLx=21∑i,j=1nwij(xi−xj)2 for ∀ x ∈ R n \forall x\in \mathbb R^n ∀x∈Rn,这是一个二次型
- L ≥ 0 L\ge 0 L≥0 if w i j ≥ 0 w_{ij}\ge 0 wij≥0 for all i,j;
- L ⋅ 1 = 0 L\cdot \mathbf 1=\mathbf 0 L⋅1=0
- If the underlying graph of G is connected, then
0 = λ 1 ≤ λ 2 ≤ λ 3 ⋯ ≤ λ n 0=\lambda_1\le\lambda_2\le\lambda_3\cdots \le\lambda_n 0=λ1≤λ2≤λ3⋯≤λn - If the underlying graph of G is connected, then the dimension of the nullspace of L is 1.
图的聚类(Graph clustering)
1、k-way partitioning
给定一个权重图 G=(V,W),要找到一个对V的分割,使以下条件得到满足:
- A 1 ∪ A 2 ⋯ ∪ A k = V A_1\cup A_2 \cdots\cup A_k=V A1∪A2⋯∪Ak=V
- A 1 ∩ A 2 ⋯ ∩ A k = ∅ A_1\cap A_2 \cdots\cap A_k=\emptyset A1∩A2⋯∩Ak=∅
- for any i and j, the edges between
(
A
i
,
A
j
)
(A_i,A_j)
(Ai,Aj) have low weight and the edges within
A
i
A_i
Ai have high weight.
要使分割后各子集之间的edges的权重最小,对于2-way分割有:
c u t ( A ) = l i n k s ( A , A ˉ ) = ∑ v i ∈ A , v j ∈ A ˉ w i j cut(A)=links(A,\bar A)=\sum_{v_i\in A,v_j\in \bar A}w_{ij} cut(A)=links(A,Aˉ)=vi∈A,vj∈Aˉ∑wij, where A ˉ = V − A \bar A = V-A Aˉ=V−A
分割问题转化成了优化问题: min c u t ( A ) = min ∑ v i ∈ A , v j ∈ A ˉ w i j \min cut(A)=\min \sum_{v_i\in A,v_j \in \bar A}w_{ij} mincut(A)=minvi∈A,vj∈Aˉ∑wij
图3 通常最小化分割会得到不平衡的分割
通常最小化分割会得到不平衡的分割,因而引入“Normalized cut”,定义如下:
N c u t ( A ) = c u t ( A ) v o l ( A ) + c u t ( A ˉ ) v o l ( A ˉ ) Ncut(A)=\frac{cut(A)}{vol(A)}+\frac{cut(\bar A)}{vol(\bar A)} Ncut(A)=vol(A)cut(A)+vol(Aˉ)cut(Aˉ)
对图3采用归一化分割会得到:
图4 采用Normailized cut
定义一个示性矢量(indicator vector) x = ( x 1 , x 2 , ⋯   , x n ) \mathbf x=(x_1, x_2,\cdots,x_n) x=(x1,x2,⋯,xn),有:
x i = { 1 if v i ∈ A − 1 if v i ∈ A ˉ x_i=\begin{cases}1&\text{if $v_i\in A$}\\ -1 & \text{if $v_i\in \bar A$} \end{cases} xi={1−1if vi∈Aif vi∈Aˉ
则有:- ( 1 + x ) T D ( 1 + x ) = 4 ∑ v i ∈ A d i = 4 ⋅ v o l ( A ) (1+x)^TD(1+x)=4\sum_{v_i\in A}d_i=4\cdot vol(A) (1+x)TD(1+x)=4∑vi∈Adi=4⋅vol(A)
- ( 1 + x ) T W ( 1 + x ) = 4 ∑ v i ∈ A , v j ∈ A w i j = 4 ⋅ a s s o c ( A ) (1+x)^TW(1+x)=4\sum_{v_i\in A,v_j\in A}w_{ij}=4\cdot assoc(A) (1+x)TW(1+x)=4∑vi∈A,vj∈Awij=4⋅assoc(A)
-
(
1
+
x
)
T
L
(
1
+
x
)
=
4
⋅
(
v
o
l
(
A
)
−
a
s
s
o
c
(
A
)
)
=
4
⋅
c
u
t
(
A
)
(1+x)^TL(1+x)=4\cdot(vol(A)-assoc(A))=4\cdot cut(A)
(1+x)TL(1+x)=4⋅(vol(A)−assoc(A))=4⋅cut(A)
以下是处理(1-x)与上对应 - ( 1 − x ) T D ( 1 − x ) = 4 ∑ v i ∈ A ˉ d i = 4 ⋅ v o l ( A ˉ ) (1-x)^TD(1-x)=4\sum_{v_i\in \bar A}d_i=4\cdot vol(\bar A) (1−x)TD(1−x)=4∑vi∈Aˉdi=4⋅vol(Aˉ)
- ( 1 − x ) T W ( 1 − x ) = 4 ∑ v i ∈ A ˉ , v j ∈ A ˉ w i j = 4 ⋅ a s s o c ( A ˉ ) (1-x)^TW(1-x)=4\sum_{v_i\in \bar A,v_j\in \bar A}w_{ij}=4\cdot assoc(\bar A) (1−x)TW(1−x)=4∑vi∈Aˉ,vj∈Aˉwij=4⋅assoc(Aˉ)
-
(
1
−
x
)
T
L
(
1
−
x
)
=
4
⋅
(
v
o
l
(
A
ˉ
)
−
a
s
s
o
c
(
A
ˉ
)
)
=
4
⋅
c
u
t
(
A
ˉ
)
(1-x)^TL(1-x)=4\cdot(vol(\bar A)-assoc(\bar A))=4\cdot cut(\bar A)
(1−x)TL(1−x)=4⋅(vol(Aˉ)−assoc(Aˉ))=4⋅cut(Aˉ)
于是Ncut(A) 可以被写成(公式的书写太繁琐了,我直接贴了过来):
要求解这个最优问题,需引入变分原则(Variational principle):关于这部分的解释详细可以参考:https://ccjou.wordpress.com/2010/03/16/hermitian-矩陣特徵值的變化界定/
对于上述Variational Principle,应用于(2)有:(因为D是对角矩阵)
y T L y y T D y = y T L y y T D 1 2 D 1 2 y = y T D 1 2 D − 1 2 L D 1 2 D − 1 2 y ( D 1 2 y ) T D 1 2 y Let z = D 1 2 y , so y T L y y T D y = z T D − 1 2 L D − 1 2 z z T z \frac {y^TLy}{y^TDy}=\frac {y^TLy}{y^TD^{\frac{1}{2}}D^{\frac{1}{2}}y}=\frac {y^TD^{\frac{1}{2}}D^{-\frac{1}{2}}LD^{\frac{1}{2}}D^{-\frac{1}{2}}y}{(D^{\frac{1}{2}}y)^TD^{\frac{1}{2}}y}\\ \text{Let $z=D^{\frac{1}{2}}y $, so }\\ \frac {y^TLy}{y^TDy}=\frac {z^TD^{-\frac{1}{2}}LD^{-\frac{1}{2}}z}{z^Tz} yTDyyTLy=yTD21D21yyTLy=(D21y)TD21yyTD21D−21LD21D−21yLet z=D21y, so yTDyyTLy=zTzzTD−21LD−21z
即求 D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}} D−21LD−21 的第二小的特征值,以及该特征值对应的特征矢量,每个特征矢量对应一个分割。
《Normalized cuts and image segmentation》的例子:
图5 原图
将原图看成是graph,并定义权重:
图6 权重图G=(V,W)
求Normailized cut 的第二个特征矢量,及对应分割: