谱聚类
图的邻接矩阵与加权度矩阵
图的邻接矩阵
在数据结构的图论里面,一个图 G G G由顶点和边组成,我们通常将顶点的集合记做 V V V,边的集合记做 E E E,即 G ( V , E ) G(V,E) G(V,E),其中 V V V即为我们数据集里所有的点的集合 ( v 1 , v 2 , ⋯ , v n ) (v_1,v_2,\cdots,v_n) (v1,v2,⋯,vn)。对于 V V V中任意的两个点,都可以有边连接,也可以没有,我们定义 w i j w_{ij} wij为点 v i v_i vi和点 v j v_j vj之间连接边的权重。邻接矩阵即为 W W W,若两个点之间没有边,则在邻接矩阵中对应的元素为0,由于我们使用的是无向图所以,邻接矩阵 W W W为对称矩阵。
比如下面这个无向图
它的邻接矩阵即为
[
0
2
0
0
0
5
0
2
0
4
3
0
0
0
0
4
0
4
0
0
0
0
3
4
0
4
0
2
0
0
0
4
0
0
0
5
0
0
0
0
0
0
0
0
0
2
0
0
0
]
\left[ \begin{matrix} 0 & 2 & 0 & 0 & 0& 5 & 0 \\ 2 & 0 & 4 & 3 & 0 & 0 & 0 \\ 0 & 4 & 0 & 4 & 0 & 0 & 0 \\ 0 & 3 & 4 & 0 & 4 & 0 & 2 \\ 0 & 0 & 0 & 4 & 0 & 0 & 0 \\ 5 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 2 & 0 & 0 & 0 \\ \end{matrix} \right]
0200050204300004040000340402000400050000000002000
图的加权度矩阵
对于无向图,一个顶点的加权度
d
i
d_i
di即为与该顶点相连的所有边的权重之和。无向图的邻接矩阵为
W
W
W则其顶点
v
i
v_i
vi的加权度为邻接矩阵的第
i
i
i行的元素之和
d
i
=
∑
j
=
1
n
W
i
j
d_i=\sum_{j=1}^{n} W_{ij}
di=j=1∑nWij
利用每个节点度的定义,我们可以得到一个
n
×
n
n \times n
n×n的加权度矩阵
D
D
D,它是一个对角矩阵。只有主对角线上有值,其第
i
i
i行对应着第
i
i
i个节点的加权度
(
d
i
)
(d_i)
(di),其他位置均为0,定义如下:
D
=
(
d
1
⋯
⋯
⋯
d
2
⋯
⋮
⋮
⋱
⋯
⋯
d
n
)
D= \begin{pmatrix} d_1&\cdots&\cdots\\ \cdots&d_2&\cdots\\ \vdots&\vdots&\ddots\\ \cdots&\cdots&d_n\\ \end{pmatrix}
D=
d1⋯⋮⋯⋯d2⋮⋯⋯⋯⋱dn
拉普拉斯矩阵
拉普拉斯矩阵推导
我们先直接给出拉普拉斯虎阵的定义:
L
=
D
−
W
L=D-W
L=D−W
其中
D
D
D和
W
W
W分别为我们上面所说的加权度矩阵与邻接矩阵
那么这拉普拉斯矩阵究竟从何而来,我们可以做如下推导
我们假设每一个顶点都是一个
N
N
N维的向量,并每一个顶点
i
i
i都有一个函数值
f
i
f_i
fi。
对顶点
i
i
i进行扰动,它可能变为任意一个与它相邻的节点
j
j
j
(
j
∈
N
i
)
(j\in N_i)
(j∈Ni),
N
i
N_i
Ni表示与节点
i
i
i相邻节点(即有边相连的节点)
在之前文章介绍的拉普拉斯算子的时候,我们可以知道拉普拉斯算子可以计算一个点到它所有自由度上微小扰动的增益,在图上表现为任意一个节点
j
j
j变化到节点
i
i
i所带来的增益。
现在我们假设图上所有边的权值都为1,则有:
Δ
f
i
=
∑
j
∈
N
i
(
f
i
−
f
j
)
\Delta f_i=\sum_{j\in N_i}(f_i-f_j)
Δfi=j∈Ni∑(fi−fj)
当每一条边都有对应的权重时,则为:
Δ
f
i
=
∑
j
∈
N
i
w
i
j
(
f
i
−
f
j
)
\Delta f_i=\sum_{j\in N_i}{w_{ij}}(f_i-f_j)
Δfi=j∈Ni∑wij(fi−fj)
我们在介绍邻接矩阵的时候如果两个点
i
,
j
i,j
i,j不相邻时,定义其
w
i
j
=
0
w_{ij}=0
wij=0,所以上式可以简化为:
Δ
f
i
=
∑
j
∈
N
w
i
j
(
f
i
−
f
j
)
\Delta f_i=\sum_{j\in N}{w_{ij}}(f_i-f_j)
Δfi=j∈N∑wij(fi−fj)
我们可以继续推导:
Δ
f
i
=
∑
j
∈
N
w
i
j
(
f
i
−
f
j
)
=
∑
j
∈
N
w
i
j
f
i
−
∑
j
∈
N
w
i
j
f
j
=
d
i
f
i
−
W
i
f
\begin{aligned} \Delta f_i&=\sum_{j\in N}{w_{ij}}(f_i-f_j) \\ &=\sum_{j\in N}w_{ij}{f_i}-\sum_{j\in N}w_{ij}{f_j} \\ &=d_if_i-W_i \boldsymbol{f} \end{aligned}
Δfi=j∈N∑wij(fi−fj)=j∈N∑wijfi−j∈N∑wijfj=difi−Wif
其中
∑
j
∈
N
w
i
j
=
d
i
\sum_{j\in N}w_{ij}=d_i
∑j∈Nwij=di,
f
\boldsymbol{f}
f表示所有顶点(假设有
N
N
N个顶点)函数值的
N
×
1
N \times 1
N×1的向量
而对于所有的
N
N
N个节点则有:
Δ
f
=
(
Δ
f
1
⋮
Δ
f
N
)
=
(
d
1
f
1
−
W
1
f
⋮
d
N
f
N
−
W
N
f
)
=
(
d
1
⋯
0
⋮
⋱
⋮
0
⋯
d
N
)
f
−
(
W
1
⋮
W
N
)
f
=
d
i
a
g
(
d
i
)
f
−
W
f
=
(
D
−
W
)
f
=
L
f
\begin{aligned} \Delta f&= \begin{pmatrix} \Delta f_1\\ \vdots\\ \Delta f_N \end{pmatrix}\\ &= \begin{pmatrix} d_1 f_1-W_1\boldsymbol{f}\\ \vdots\\ d_N f_N-W_N\boldsymbol f \end{pmatrix}\\ &= \begin{pmatrix} d_1&\cdots&0\\ \vdots&\ddots&\vdots\\ 0&\cdots&d_N\\ \end{pmatrix}\boldsymbol{f}-\begin{pmatrix}W_1\\\vdots\\W_N\end{pmatrix}\boldsymbol{f}\\ &=diag(d_i)\boldsymbol{f}-W\boldsymbol{f}\\ &=(D-W)\boldsymbol{f}\\ &=L\boldsymbol{f} \end{aligned}
Δf=
Δf1⋮ΔfN
=
d1f1−W1f⋮dNfN−WNf
=
d1⋮0⋯⋱⋯0⋮dN
f−
W1⋮WN
f=diag(di)f−Wf=(D−W)f=Lf
这里的
(
D
−
W
)
(D-W)
(D−W)实际上就是我们所说的拉帕拉斯矩阵
L
L
L
拉普拉斯矩阵的性质
**性质(1):**对于任一向量
f
∈
R
n
\boldsymbol{f}\in{\mathbb{R}^n}
f∈Rn都有
f
T
L
f
=
1
2
∑
i
=
1
n
∑
j
=
1
n
w
i
j
(
f
i
−
f
j
)
2
\boldsymbol{f}^T L \boldsymbol{f}=\frac{1}{2}\sum_{i=1}^{n}\sum_{j=1}^{n}w_{ij}{(f_i-f_j)^2}
fTLf=21i=1∑nj=1∑nwij(fi−fj)2
**性质(2):**拉普拉斯矩阵是对称半正定矩阵
**性质(3):**拉普拉斯矩阵的最小特征值为0,其对应特征向量为常向量
1
\mathbf 1
1
**性质(4):**拉普拉斯矩阵有
n
n
n个非负实数特征值,并且满足
0
=
λ
1
≤
λ
2
≤
⋯
≤
λ
n
0=\lambda_1\leq\lambda_2\leq\cdots\leq\lambda_n
0=λ1≤λ2≤⋯≤λn
证明:
f
T
L
f
=
f
T
D
f
−
f
T
W
f
=
∑
i
=
1
n
d
i
i
f
i
2
−
∑
i
=
1
n
∑
j
=
1
n
f
i
f
j
w
i
j
=
1
2
(
2
∑
i
=
1
n
d
i
i
f
i
2
−
2
∑
i
=
1
n
∑
j
=
1
n
f
i
f
j
w
i
j
)
=
1
2
(
∑
i
=
1
n
d
i
i
f
i
2
−
2
∑
i
=
1
n
∑
j
=
1
n
f
i
f
j
w
i
j
+
∑
i
=
1
n
d
i
i
f
i
2
)
=
1
2
(
∑
i
=
1
n
∑
j
=
1
n
w
i
j
f
i
2
−
2
∑
i
=
1
n
∑
j
=
1
n
f
i
f
j
w
i
j
+
∑
j
=
1
n
∑
i
=
1
n
w
j
i
f
j
2
)
=
1
2
∑
i
=
1
n
∑
j
=
1
n
w
i
j
(
f
i
−
f
j
)
2
\begin{aligned} \boldsymbol{f}^T L \boldsymbol{f}&=\boldsymbol{f}^T D \boldsymbol{f}-\boldsymbol{f}^T W \boldsymbol{f}\\ &=\sum_{i=1}^{n}d_{ii}{f_i}^2-\sum_{i=1}^{n}\sum_{j=1}^{n}f_if_jw_{ij}=\frac{1}{2}\begin{pmatrix}2\sum_{i=1}^{n}d_{ii}{f_i}^2-2\sum_{i=1}^{n}\sum_{j=1}^{n}f_if_jw_{ij}\end{pmatrix}\\ &=\frac{1}{2}\begin{pmatrix}\sum_{i=1}^{n}d_{ii}{f_i}^2-2\sum_{i=1}^{n}\sum_{j=1}^{n}f_if_jw_{ij}+\sum_{i=1}^{n}d_{ii}{f_i}^2\end{pmatrix}\\ &=\frac{1}{2}\begin{pmatrix}\sum_{i=1}^{n}\sum_{j=1}^{n}w_{ij}{f_{i}}^2-2\sum_{i=1}^{n}\sum_{j=1}^{n}f_if_jw_{ij}+\sum_{j=1}^{n}\sum_{i=1}^{n}w_{ji}{f_{j}}^2\end{pmatrix}\\ &=\frac{1}{2}\sum_{i=1}^{n}\sum_{j=1}^{n}w_{ij}{(f_i-f_j)^2} \end{aligned}
fTLf=fTDf−fTWf=i=1∑ndiifi2−i=1∑nj=1∑nfifjwij=21(2∑i=1ndiifi2−2∑i=1n∑j=1nfifjwij)=21(∑i=1ndiifi2−2∑i=1n∑j=1nfifjwij+∑i=1ndiifi2)=21(∑i=1n∑j=1nwijfi2−2∑i=1n∑j=1nfifjwij+∑j=1n∑i=1nwjifj2)=21i=1∑nj=1∑nwij(fi−fj)2
因此性质(1)成立,而且根据性质(1)有:
f
T
L
f
=
1
2
∑
i
=
1
n
∑
j
=
1
n
w
i
j
(
f
i
−
f
j
)
2
≥
0
\boldsymbol{f}^T L \boldsymbol{f}=\frac{1}{2}\sum_{i=1}^{n}\sum_{j=1}^{n}w_{ij}{(f_i-f_j)^2}\geq0
fTLf=21i=1∑nj=1∑nwij(fi−fj)2≥0
因此性质(2)成立,即拉普拉斯矩阵是半正定的
(根据半正定矩阵的定义:设A是实对称矩阵。如果对任意的是非零列矩阵
X
X
X有
X
T
A
X
≥
0
X^TAX\geq0
XTAX≥0就称
A
A
A为半正定矩阵)
由于:
∣
L
−
0
⋅
I
∣
=
∣
L
∣
=
∣
D
−
W
∣
=
|L-0\cdot I|=|L|=|D-W|=
∣L−0⋅I∣=∣L∣=∣D−W∣=
∣
∑
j
=
1
n
w
1
j
−
w
11
−
w
12
⋯
w
1
n
−
w
21
∑
j
=
1
n
w
2
j
−
w
22
⋯
−
w
2
n
⋮
⋮
⋮
⋱
−
w
n
1
−
w
n
2
⋯
∑
j
=
1
n
w
n
j
−
w
n
n
∣
=
∣
∑
j
=
1
,
j
≠
1
n
w
1
j
−
w
12
⋯
w
1
n
−
w
21
∑
j
=
1
,
j
≠
2
n
w
2
j
⋯
−
w
2
n
⋮
⋮
⋮
⋱
−
w
n
1
−
w
n
2
⋯
∑
j
=
1
,
j
≠
n
n
w
n
j
∣
\begin{aligned}\begin{vmatrix} \sum_{j=1}^{n}w_{1j}-w_{11}&-w_{12}&\cdots&w_{1n}\\ -w_{21}&\sum_{j=1}^{n}w_{2j}-w_{22}&\cdots&-w_{2n}\\ \vdots&\vdots&\vdots&\ddots\\ -w_{n1}&-w_{n2}&\cdots&\sum_{j=1}^{n}w_{nj}-w_{nn} \end{vmatrix}=\begin{vmatrix} \sum_{j=1,j\neq1}^{n}w_{1j}&-w_{12}&\cdots&w_{1n}\\ -w_{21}&\sum_{j=1,j\neq2}^{n}w_{2j}&\cdots&-w_{2n}\\ \vdots&\vdots&\vdots&\ddots\\ -w_{n1}&-w_{n2}&\cdots&\sum_{j=1,j\neq n}^{n}w_{nj} \end{vmatrix}\end{aligned}
∑j=1nw1j−w11−w21⋮−wn1−w12∑j=1nw2j−w22⋮−wn2⋯⋯⋮⋯w1n−w2n⋱∑j=1nwnj−wnn
=
∑j=1,j=1nw1j−w21⋮−wn1−w12∑j=1,j=2nw2j⋮−wn2⋯⋯⋮⋯w1n−w2n⋱∑j=1,j=nnwnj
将上面的行列式的第
2
∼
n
2\sim n
2∼n列依次加到第一列,则第一列的值全为0
∣
∑
j
=
1
,
j
≠
1
n
w
1
j
−
w
12
⋯
w
1
n
−
w
21
∑
j
=
1
,
j
≠
2
n
w
2
j
⋯
−
w
2
n
⋮
⋮
⋱
⋮
−
w
n
1
−
w
n
2
⋯
∑
j
=
1
,
j
≠
n
n
w
n
j
∣
=
∣
∑
j
=
1
,
j
≠
1
n
w
1
j
−
w
12
⋯
w
1
n
−
w
12
⋯
w
1
n
−
w
21
∑
j
=
1
,
j
≠
2
n
w
2
j
⋯
−
w
2
n
∑
j
=
1
,
j
≠
2
n
w
2
j
⋯
−
w
2
n
⋮
⋮
⋱
⋮
−
w
n
1
−
w
n
2
⋯
∑
j
=
1
,
j
≠
n
n
w
n
j
∣
=
∣
0
−
w
12
⋯
w
1
n
0
∑
j
=
1
,
j
≠
2
n
w
2
j
⋯
−
w
2
n
⋮
⋮
⋱
⋮
0
−
w
n
2
⋯
∑
j
=
1
,
j
≠
n
n
w
n
j
∣
\begin{aligned}\begin{vmatrix} \sum_{j=1,j\neq1}^{n}w_{1j}&-w_{12}&\cdots&w_{1n}\\ -w_{21}&\sum_{j=1,j\neq2}^{n}w_{2j}&\cdots&-w_{2n}\\ \vdots&\vdots&\ddots&\vdots\\ -w_{n1}&-w_{n2}&\cdots&\sum_{j=1,j\neq n}^{n}w_{nj} \end{vmatrix}&=\begin{vmatrix} \sum_{j=1,j\neq1}^{n}w_{1j}-w_{12}\cdots&w_{1n}&-w_{12}&\cdots&w_{1n}\\ -w_{21}\sum_{j=1,j\neq2}^{n}w_{2j}\cdots-w_{2n}&\sum_{j=1,j\neq2}^{n}w_{2j}&\cdots&-w_{2n}\\ \vdots&\vdots&\ddots&\vdots\\ -w_{n1}&-w_{n2}&\cdots&\sum_{j=1,j\neq n}^{n}w_{nj} \end{vmatrix}\\ &=\begin{vmatrix} 0&-w_{12}&\cdots&w_{1n}\\ 0&\sum_{j=1,j\neq2}^{n}w_{2j}&\cdots&-w_{2n}\\ \vdots&\vdots&\ddots&\vdots\\ 0&-w_{n2}&\cdots&\sum_{j=1,j\neq n}^{n}w_{nj} \end{vmatrix}\end{aligned}
∑j=1,j=1nw1j−w21⋮−wn1−w12∑j=1,j=2nw2j⋮−wn2⋯⋯⋱⋯w1n−w2n⋮∑j=1,j=nnwnj
=
∑j=1,j=1nw1j−w12⋯−w21∑j=1,j=2nw2j⋯−w2n⋮−wn1w1n∑j=1,j=2nw2j⋮−wn2−w12⋯⋱⋯⋯−w2n⋮∑j=1,j=nnwnjw1n
=
00⋮0−w12∑j=1,j=2nw2j⋮−wn2⋯⋯⋱⋯w1n−w2n⋮∑j=1,j=nnwnj
因此行列式|L|值为|0|,所以|0|是其特征值。如果
f
=
1
\boldsymbol{f}=\mathbf1
f=1,则有
L
f
=
L
1
=
(
D
−
W
)
1
=
(
d
11
⋯
d
n
n
)
T
−
(
∑
j
=
1
n
w
1
j
⋯
∑
j
=
1
n
w
n
j
)
T
=
0
L\boldsymbol{f}=L\mathbf 1=(D-W)\mathbf 1=(d_{11}\cdots d_{nn})^T-\begin{pmatrix}\sum_{j=1}^{n}w_{1j}\cdots\sum_{j=1}^{n}w_{nj}\end{pmatrix}^T=\mathbf 0
Lf=L1=(D−W)1=(d11⋯dnn)T−(∑j=1nw1j⋯∑j=1nwnj)T=0
因此 1 \mathbf 1 1是对应的特征向量,由于拉普拉斯矩阵半正定,其特征值非负,所以性质(3)成立,再根据性质(2)和性质(3),可以得到性质(4)
谱聚类–拉普拉斯矩阵
说起聚类我们第一直觉就是想到经典的无监督学习方法–K-Means聚类,但它只能在线性可分的类别上有很好的效果。
而对于一些非凸的图像就很难有效果,比如说下图,如果我们使用K-means会有如下效果:
对于处理这种数据,有很多算法被提出用来解决此类非凸数据,最经典的核聚类就是首先将数据点映射到高维空间上,这样本来在低维空间上线性不可分的点就线性可分了(至少效果相比在低维空间上更好了)因为高维空间上的数据点变得稀疏,分布的比较开,而且很多会集中在角落里。
而谱聚类对于处理这种非凸的数据也有很好的效果,其主要思想就是把所有的数据看作为空间上的点,这些点可以用变连接起来。距离较远的两个点的权重值较低,而距离较近的两个点之间的权重值较高,通过对所有数据点组成的图进行切图,让切图后的不同子图之间的权重尽可能的低,而子图内部的边权重尽可能的高,从而达到聚类的目的。
我们从谱聚类的原理来看,它似乎也只是根据距离来判断是否数据一类,那么它与K-means聚类可以说是相似的,那么为什么它可以用来处理非凸数据呢。
原因: 其主要原因就是我们在构造拉普拉斯矩阵的过程中,因为需要构造 邻接矩阵 \color{red}{邻接矩阵} 邻接矩阵,因此在使用拉普拉斯矩阵 L L L从本质上来讲就已经把数据从笛卡尔坐标系转化到了另一个 相似度空间 \color{red}{相似度空间} 相似度空间(点与点的相似度)上,也就是说将原来的数据映射到了另一个新的坐标系当中,在这个新的坐标系中包含了点与点之间的相似度信息,这种映射是非线性,因此可以达到与核聚类一样的处理线性不可分的聚类效果
已经说了这么多,那么这拉普拉斯矩阵是怎么和谱聚类扯上关系的呢,为什么最后的聚类的对象变成了归一化后的拉普拉斯矩阵的前
k
k
k个最小特征值对应的特征向量
f
f
f所构成的特征向量矩阵
F
F
F
别着急,我们一点点层层递进的来说。上面已经说了构造邻接矩阵可以对数据起到了一个映射的作用,下面我们就来说说怎么对数据点构造邻接矩阵
邻接矩阵的构造
它是由任意两点之间的权重值
w
i
j
w_{ij}
wij组成的矩阵。一般的图里我们可以直接自己输入权重,但在谱聚类里,我们只有数据点,并没有直接给出点与点之间的边的权重,更没有邻接矩阵,那么我们该如何找到这个邻接矩阵呢。
基本思想就是,距离较远的两个点权重值低,距离近的两个点权重值高,我们旭阳给权重值定量,可以通过样本点的距离度量的相似矩阵来获得邻接矩阵
W
W
W。
构造邻接矩阵的方法有三类:
ϵ
−
邻近法
\epsilon-\text{邻近法}
ϵ−邻近法,
K
K
K邻近法和全连接发,我们逐个介绍
ϵ − 邻近法 \epsilon-\text{邻近法} ϵ−邻近法
对于
ϵ
−
邻近法
\epsilon-\text{邻近法}
ϵ−邻近法,他设置了一个距离阈值
ϵ
\epsilon
ϵ,然后用欧氏距离
s
i
j
s_{ij}
sij度量任意两点
x
i
x_i
xi和
s
j
s_j
sj的距离。即相似矩阵的
s
i
j
=
∥
x
i
−
x
j
∥
2
2
s_{ij}={\|x_i-x_j\|^{2}_{2}}
sij=∥xi−xj∥22,然后根据
s
i
j
s_{ij}
sij和
ϵ
\epsilon
ϵ的大小关系,来定义邻接矩阵
W
W
W,如下:
W
i
j
=
{
0
s
i
j
>
ϵ
ϵ
s
i
j
≤
ϵ
W_{ij}=\left\{ \begin{matrix} 0 & s_{ij}>\epsilon \\ \epsilon & s_{ij}\leq\epsilon \end{matrix} \right.
Wij={0ϵsij>ϵsij≤ϵ
从上式可以看出两点之间的权重要么是
ϵ
\epsilon
ϵ要么就是0,除此之外便没有其他信息了。距离远近度量不精确,含有的信息少,因此很少使用
K K K邻近法
利用KNN算法遍历所有的样本点,取每个样本最近的k个点作为近邻点,只有样本距离最近的k个点之间才会有 w i j > 0 w_{ij}>0 wij>0。但是这种方法会造成所构造的邻接矩阵非对称(比如说A点的前k个邻近点有B,但B的前k个邻近点里不一定有A),而我们需要对称的邻接矩阵,为解决该问题我们有两种方法,如下
第一种是两个点中,只要其中一点在另一个点的前k个邻近中,就保留
S
i
j
S_{ij}
Sij
W
i
j
=
W
j
i
=
{
0
x
i
∉
K
N
N
(
x
j
)
a
n
d
x
j
∉
K
N
N
(
x
i
)
e
x
p
(
−
∥
x
i
−
x
j
∥
2
2
2
σ
2
)
x
i
∈
K
N
N
(
x
j
)
o
r
x
j
∈
K
N
N
(
x
i
)
W_{ij}=W_{ji}=\left\{ \begin{matrix} 0 & x_i\not\in KNN(x_j) and x_j\not\in KNN(x_i)\\ exp^{\big(-\frac{{\|x_i-x_j\|^{2}_{2}}}{2\sigma^2}\big)} & x_i\in KNN(x_j) or x_j \in KNN(x_i) \end{matrix} \right.
Wij=Wji={0exp(−2σ2∥xi−xj∥22)xi∈KNN(xj)andxj∈KNN(xi)xi∈KNN(xj)orxj∈KNN(xi)
第二种是两个点必须都在各自的前k个邻近中才保留
S
i
j
S_{ij}
Sij
W
i
j
=
W
j
i
=
{
0
x
i
∉
K
N
N
(
x
j
)
o
r
x
j
∉
K
N
N
(
x
i
)
e
x
p
(
−
∥
x
i
−
x
j
∥
2
2
2
σ
2
)
x
i
∈
K
N
N
(
x
j
)
a
n
d
x
j
∈
K
N
N
(
x
i
)
W_{ij}=W_{ji}=\left\{ \begin{matrix} 0 & x_i\not\in KNN(x_j) or x_j\not\in KNN(x_i)\\ exp^{\big(-\frac{{\|x_i-x_j\|^{2}_{2}}}{2\sigma^2}\big)} & x_i\in KNN(x_j) and x_j \in KNN(x_i) \end{matrix} \right.
Wij=Wji={0exp(−2σ2∥xi−xj∥22)xi∈KNN(xj)orxj∈KNN(xi)xi∈KNN(xj)andxj∈KNN(xi)
全连接法
该方法顾名思义,全连接,所有点的权重值都大于0。
我们可以选择不同的核函数来定义边权重,比如常用的多项式核函数,高斯核函数(RBF)和Sigmoid函数,最常用的是高斯核函数(RBF),此时相似矩阵和邻接矩阵相同
W
i
j
=
S
i
j
=
e
x
p
(
−
∥
x
i
−
x
j
∥
2
2
2
σ
2
)
W_{ij}=S_{ij}=exp^{\big(-\frac{{\|x_i-x_j\|^{2}_{2}}}{2\sigma^2}\big)}
Wij=Sij=exp(−2σ2∥xi−xj∥22)
在实际的应用中,我们常使用全连接法来构造邻接矩阵,全连接法内常使用高斯核函数(RBF)。
谱聚类之切图聚类
假设对于一个图,我们想将其划分为两个部分,定义
c
u
t
(
A
,
B
)
=
∑
i
∈
A
,
j
∈
B
w
i
j
cut(A,B)=\sum_{i\in A,j\in B}w_{ij}
cut(A,B)=∑i∈A,j∈Bwij最小。当图中有
N
N
N个节点,并划分为
k
k
k个类别时,我们希望
m
i
n
c
u
t
(
A
1
,
A
2
.
.
.
,
A
N
)
=
∑
i
=
1
k
W
(
A
i
,
A
ˉ
i
)
min cut(A_1,A_2...,A_N)=\sum_{i=1}^kW(A_{i},\bar{A}_i)
mincut(A1,A2...,AN)=i=1∑kW(Ai,Aˉi)
这样的图划分问题被称为最小割问题,然而在实际应用中该方法并不能很好的实现划分,这是因为仅仅依赖最小割的划分方法的话,很容易将图中孤立的节点划分为一类。
我们从公式上来看,
c
u
t
(
A
,
B
)
=
∑
i
∈
A
,
j
∈
B
w
i
j
cut(A,B)=\sum_{i\in A,j\in B}w_{ij}
cut(A,B)=∑i∈A,j∈Bwij实际上是与两个字图之间连接边的数量成正相关的,也就是说连接的边数越多,该值越大。所以在图划分时,任何一个对孤立节点的划分都会小于该节点所在类的一个更大的子图的划分
c
u
t
cut
cut值,所以在该目标函数下容易产生孤立点的划分结果
为了避免最小切图导致的切分效果不佳,我们需要对每个子图的规模作出限定,后面我们介绍两种切图方式,第一种是
R
a
t
i
o
C
u
t
RatioCut
RatioCut,第二种是
N
c
u
t
Ncut
Ncut
R a t i o C u t RatioCut RatioCut切图
R
a
t
i
o
C
u
t
RatioCut
RatioCut切图对于每一个切图不仅仅考虑到最小化
c
u
t
(
A
1
,
A
2
.
.
.
,
A
N
)
cut(A_1,A_2...,A_N)
cut(A1,A2...,AN),同时也考虑到最大化每个子图点的个数(
∣
A
i
∣
|A_i|
∣Ai∣表示子图
A
i
A_i
Ai里点的个数),即:
R
a
t
i
o
C
u
t
(
A
1
,
A
2
,
.
.
.
,
A
k
)
=
1
2
∑
i
=
1
k
W
(
A
i
,
A
ˉ
i
)
∣
A
i
∣
RatioCut(A_1,A_2,...,A_k)=\frac{1}{2}\sum_{i=1}^k\frac{W(A_i,\bar A_i)}{|A_i|}
RatioCut(A1,A2,...,Ak)=21i=1∑k∣Ai∣W(Ai,Aˉi)
先考虑 k = 2 k=2 k=2的 R a t i o C u t RatioCut RatioCut切图
我们假设
k
=
2
k=2
k=2来初步分析,我们要解决优化问题
m
i
n
A
⊂
V
R
a
t
i
o
C
u
t
(
A
,
A
ˉ
)
min_{A\subset V}RatioCut(A,\bar A)
minA⊂VRatioCut(A,Aˉ)
我们定义指示向量
f
=
(
f
1
,
.
.
.
,
f
n
)
T
∈
R
\boldsymbol f=(f_1,...,f_n)^T\in \mathbb{R}
f=(f1,...,fn)T∈R
f
i
=
{
∣
A
ˉ
∣
∣
A
∣
i
f
v
i
∈
A
−
∣
A
∣
∣
A
ˉ
∣
i
f
v
i
∈
A
ˉ
f_i=\left\{ \begin{matrix} \sqrt{\frac{|\bar A|}{|A|}} & {if} v_i \in {A}\\ -\sqrt{\frac{|A|}{|\bar A|}} & {if} v_i \in {\bar A} \end{matrix} \right.
fi=⎩
⎨
⎧∣A∣∣Aˉ∣−∣Aˉ∣∣A∣ifvi∈Aifvi∈Aˉ
此时对于未正则化的拉普拉斯矩阵
L
L
L有
f
T
L
f
=
1
2
∑
i
,
j
=
1
n
w
i
j
(
f
i
−
f
j
)
2
\boldsymbol f^TL\boldsymbol f=\frac{1}{2}\sum_{i,j=1}^{n}w_{ij}(f_i-f_j)^2
fTLf=21i,j=1∑nwij(fi−fj)2
注意到
f
i
f_i
fi的特性,属于同一类的
f
i
,
f
j
f_i,f_j
fi,fj可以互相抵消,可得
f
T
L
f
=
1
2
∑
i
=
1
n
∑
j
=
1
n
w
i
j
(
f
i
−
f
j
)
2
=
1
2
∑
v
i
∈
A
,
v
j
∈
A
ˉ
w
i
j
(
∣
A
ˉ
∣
∣
A
∣
+
∣
A
∣
∣
A
ˉ
∣
)
2
+
1
2
∑
v
i
∈
A
ˉ
,
v
j
∈
A
w
i
j
(
−
∣
A
ˉ
∣
∣
A
∣
−
∣
A
∣
∣
A
ˉ
∣
)
2
=
c
u
t
(
A
,
A
ˉ
)
(
∣
A
ˉ
∣
∣
A
∣
+
∣
A
∣
∣
A
ˉ
∣
+
2
)
=
c
u
t
(
A
,
A
ˉ
)
(
∣
A
ˉ
∣
+
∣
A
∣
∣
A
∣
+
∣
A
∣
+
∣
A
ˉ
∣
∣
A
ˉ
∣
)
=
∣
V
∣
c
u
t
(
A
,
A
ˉ
)
(
1
∣
A
∣
+
1
∣
A
ˉ
∣
)
=
∣
V
∣
R
a
t
i
o
C
u
t
(
A
,
A
ˉ
)
\begin{aligned} \boldsymbol f^TL\boldsymbol f&=\frac{1}{2}\sum_{i=1}^n\sum_{j=1}^nw_{ij}(f_i-f_j)^2\\ &=\frac{1}{2}\sum_{v_i\in A,v_j\in \bar A}w_{ij}\big(\sqrt{\frac{|\bar A|}{|A|}}+\sqrt{\frac{|A|}{|\bar A|}}\big)^2+\frac{1}{2}\sum_{v_i\in \bar A,v_j\in A}w_{ij}\big(-\sqrt{\frac{|\bar A|}{|A|}}-\sqrt{\frac{|A|}{|\bar A|}}\big)^2\\ &=cut(A,\bar A)\big(\frac{|\bar A|}{|A|}+\frac{|A|}{|\bar A|}+2\big)\\ &=cut(A,\bar A)\big(\frac{|\bar A|+|A|}{|A|}+\frac{|A|+|\bar A|}{|\bar A|}\big)\\ &=|V|cut(A,\bar A)\big(\frac{1}{|A|}+\frac{1}{|\bar A|}\big)\\ &=|V|RatioCut(A,\bar A)\\ \end{aligned}
fTLf=21i=1∑nj=1∑nwij(fi−fj)2=21vi∈A,vj∈Aˉ∑wij(∣A∣∣Aˉ∣+∣Aˉ∣∣A∣)2+21vi∈Aˉ,vj∈A∑wij(−∣A∣∣Aˉ∣−∣Aˉ∣∣A∣)2=cut(A,Aˉ)(∣A∣∣Aˉ∣+∣Aˉ∣∣A∣+2)=cut(A,Aˉ)(∣A∣∣Aˉ∣+∣A∣+∣Aˉ∣∣A∣+∣Aˉ∣)=∣V∣cut(A,Aˉ)(∣A∣1+∣Aˉ∣1)=∣V∣RatioCut(A,Aˉ)
同时对于
f
i
f_i
fi我们有
∑
i
=
1
n
f
i
=
∑
i
∈
A
∣
A
ˉ
∣
∣
A
∣
+
∑
i
∈
A
ˉ
−
∣
A
∣
∣
A
ˉ
∣
=
∣
A
∣
∣
A
ˉ
∣
∣
A
∣
−
∣
A
ˉ
∣
∣
A
∣
∣
A
ˉ
∣
=
0
\sum_{i=1}^nf_i=\sum_{i\in A}\sqrt{\frac{|\bar A|}{|A|}}+\sum_{i\in \bar A}-\sqrt{\frac{|A|}{|\bar A|}}=|A|\sqrt{\frac{|\bar A|}{|A|}}-{|\bar A|}\sqrt{\frac{|A|}{|\bar A|}}=0
i=1∑nfi=i∈A∑∣A∣∣Aˉ∣+i∈Aˉ∑−∣Aˉ∣∣A∣=∣A∣∣A∣∣Aˉ∣−∣Aˉ∣∣Aˉ∣∣A∣=0
有上式我们还可以知道
f
⊥
1
\boldsymbol f \bot \mathbf{1}
f⊥1
同时我们可以发现
f
T
f
\boldsymbol f^T\boldsymbol f
fTf内积是一个常数。
f
T
f
=
∑
i
=
1
n
f
i
f
j
=
∑
v
i
∈
A
∣
A
ˉ
∣
∣
A
∣
+
∑
v
i
∈
A
ˉ
∣
A
∣
∣
A
ˉ
∣
=
∣
A
∣
∣
A
ˉ
∣
∣
A
∣
+
∣
A
ˉ
∣
∣
A
∣
∣
A
ˉ
∣
=
∣
V
∣
=
n
\boldsymbol f^T\boldsymbol f=\sum_{i=1}^n {f_i}{f_j}=\sum_{v_i\in A}\frac{|\bar A|}{|A|}+\sum_{v_i\in \bar A}\frac{|A|}{|\bar A|}={|A|}\frac{|\bar A|}{|A|}+{|\bar A|}\frac{|A|}{|\bar A|}=|V|=n
fTf=i=1∑nfifj=vi∈A∑∣A∣∣Aˉ∣+vi∈Aˉ∑∣Aˉ∣∣A∣=∣A∣∣A∣∣Aˉ∣+∣Aˉ∣∣Aˉ∣∣A∣=∣V∣=n
其中
n
n
n表示所有点的个数
下面我们可以将
R
a
t
i
o
C
u
t
RatioCut
RatioCut目标函数进行转化,如下:
m
i
n
A
⊂
V
R
a
t
i
o
C
u
t
(
A
,
A
ˉ
)
⇔
m
i
n
A
⊂
V
f
T
L
f
s
.
t
.
f
⊥
1
,
∣
f
∣
=
n
\underset{A\subset V}{min}\:RatioCut(A,\bar A)\Leftrightarrow{\underset{A\subset V}{min}\: \boldsymbol f^TL\boldsymbol f\\ s.t. \boldsymbol f \bot \mathbf{1},|\boldsymbol f|=\sqrt{n}}
A⊂VminRatioCut(A,Aˉ)⇔A⊂VminfTLfs.t.f⊥1,∣f∣=n
此时我们需要求解的向量
f
\boldsymbol f
f任然是一个二值向量,因此它是一个NP_hard问题,假设
f
\boldsymbol f
f是n维的,就有
2
n
2^n
2n个取值,如果有k个子图的话,就有k个指示向量,有
k
2
n
k2^n
k2n种取值,这非常难求解,那么对于这种问题我们可以将其
松弛化
\color{red}{松弛化}
松弛化,将这种离散问题转化为
连续问题
\color{red}{连续问题}
连续问题,让解向量
f
\boldsymbol f
f里的值不仅仅只有两个取值,而是可取实数域
R
\mathbb{R}
R中的任意值。这样我们便将离散问题松弛为了连续问题了
m
i
n
f
∈
R
n
f
T
L
f
s
.
t
.
f
⊥
1
,
∣
f
∣
=
n
{\underset{f\in {\mathbb{R}}^n}{min} \boldsymbol f^TL\boldsymbol f\\ s.t. \boldsymbol f \bot \mathbf{1},|\boldsymbol f|=\sqrt{n}}
f∈RnminfTLfs.t.f⊥1,∣f∣=n
对于上述的有约束问题我们可以利用拉格朗日乘子将其转化为无约束问题,如下:
L
(
f
,
λ
)
=
f
T
L
f
−
λ
(
f
T
1
)
−
λ
(
f
T
f
−
n
)
=
f
T
L
f
−
λ
(
f
T
f
−
n
)
\begin{aligned} L(\boldsymbol f,\lambda)&={\boldsymbol f^T L\boldsymbol f}-{\lambda(\boldsymbol f^T\mathbf{1})}-{\lambda({\boldsymbol f^T\boldsymbol f}-n)}\\ &={\boldsymbol f^T L\boldsymbol f}-{\lambda({\boldsymbol f^T\boldsymbol f}-n)} \end{aligned}
L(f,λ)=fTLf−λ(fT1)−λ(fTf−n)=fTLf−λ(fTf−n)
现在我们得到了无约束,且变量取值连续的目标函数,上式函数为凸函数,并令其导数为0来得到全局最优解
d
L
(
f
,
λ
)
d
f
=
d
[
f
T
L
f
−
λ
(
f
T
f
−
n
)
]
d
f
=
d
(
f
T
L
f
)
d
f
−
d
(
λ
f
T
f
)
d
f
=
L
f
+
L
T
f
−
2
λ
f
T
=
f
T
(
L
T
+
L
)
−
2
λ
f
T
=
2
f
T
L
T
−
2
λ
f
T
\begin{aligned} \frac{dL(\boldsymbol f,\lambda)}{d\boldsymbol f}&=\frac{d[{\boldsymbol f^T L\boldsymbol f}-{\lambda({\boldsymbol f^T\boldsymbol f}-n)}]}{d\boldsymbol f}=\frac{d(\boldsymbol f^T L\boldsymbol f)}{d\boldsymbol f}-\frac{d(\lambda\boldsymbol f^T \boldsymbol f)}{d\boldsymbol f}\\ &=L\boldsymbol f + L^T\boldsymbol f-2\lambda\boldsymbol f^T\\ &=\boldsymbol f^T(L^T+L)-2\lambda\boldsymbol f^T=2\boldsymbol f^TL^T-2\lambda\boldsymbol f^T \end{aligned}
dfdL(f,λ)=dfd[fTLf−λ(fTf−n)]=dfd(fTLf)−dfd(λfTf)=Lf+LTf−2λfT=fT(LT+L)−2λfT=2fTLT−2λfT
其中
L
T
+
L
=
2
L
T
L^T+L=2L^T
LT+L=2LT因为拉普拉斯矩阵
L
L
L为对称矩阵,即
L
T
=
L
L^T=L
LT=L
我们令其等于0,即
2
f
T
L
T
−
2
λ
f
T
=
0
⇒
L
f
=
λ
f
2\boldsymbol f^TL^T-2\lambda\boldsymbol f^T=0\Rightarrow L\boldsymbol f=\lambda \boldsymbol f
2fTLT−2λfT=0⇒Lf=λf
由上式我们可以非常清楚的发现当
L
a
g
r
a
n
g
e
Lagrange
Lagrange乘子
λ
\lambda
λ是拉普拉斯矩阵
L
L
L的特征值,并且指示向量
f
\boldsymbol f
f为
L
L
L的特征向量,函数有极值
这个函数的极值到底等于多少呢???
因为目标函数是
f
T
L
f
\boldsymbol f^T L\boldsymbol f
fTLf,所以我们可以将上式两边左乘一个
f
T
\boldsymbol f^T
fT
f
T
L
f
=
λ
f
T
f
=
λ
n
\boldsymbol f^T L\boldsymbol f=\lambda \boldsymbol f^T \boldsymbol f=\lambda n
fTLf=λfTf=λn
由于
n
=
∣
V
∣
n=|V|
n=∣V∣表示图中所有点的个数,是一个不变常数,显然目标函数值的大小仅仅与
λ
\lambda
λ有关,即
m
i
n
f
T
L
f
f
T
f
=
m
i
n
λ
min\frac{\boldsymbol f^T L\boldsymbol f}{\boldsymbol f^T \boldsymbol f}=min\lambda
minfTffTLf=minλ
简而言之,拉普拉斯矩阵的特征值
λ
\lambda
λ越大,则目标函数值就越大,特征值
λ
\lambda
λ越小,则目标函数值就越小
我们的最优解无疑是要求得目标函数的最小值,也就是拉普艾斯矩阵的最小特征值,在前面我们已经说过了拉普拉斯矩阵的性质,其最小特征值
λ
m
i
n
=
0
\lambda_{min}=0
λmin=0,但我们真的可以使用
λ
m
i
n
=
0
\lambda_{min}=0
λmin=0来作为我们的最优解吗,显然不可以!!!
至于为什么我们从我们切图的目的来看,我们利用切图所构建的目标函数代表着对某一个图切图后的代价,当这个代价为0,这意味这什么,我们根本没有进行切图,而且通过上面对
L
L
L性质的描述我们知道,特征值为0其所对应的的特征向量为全1的向量,也就是说所有样本都属于同一类。所以我们不去最小特征值,而是取第二小的特征值
λ
\lambda
λ作为最优值,其所对应的特征向量
f
\boldsymbol f
f便是最优解的指示向量
到这里对于这个
k
=
2
k=2
k=2的二分类问题接近尾声了,我们最后还有一个问题,就是我们在求解目标函数时,将其变量取值松弛化到了整个实数域中,所以要想的到最后的分类结果我们还要将得到的最优解
f
\boldsymbol f
f转化回到离散的二分取值。
由于我们是二分类问题,将其离散化就很简单了,只需要选取一个阈值,大于该阈值便属于
A
A
A,小于该阈值便属于
A
ˉ
\bar A
Aˉ,我们假设该阈值为0
{
v
i
∈
A
i
f
f
i
≥
0
v
i
∈
A
ˉ
i
f
f
i
<
0
\left\{ \begin{matrix} v_i\in A & {if} f_i \geq 0\\ v_i\in \bar A & {if} f_i < 0 \end{matrix} \right.
{vi∈Avi∈Aˉiffi≥0iffi<0
上面我们讲述了, k = 2 k=2 k=2时我们是如何求取分类结果的,下面我们来考虑 k > 2 k>2 k>2的情况
在这里我们定义指示向量
h
j
=
h
1
,
h
2
,
.
.
.
,
h
k
,
j
=
1
,
2
,
.
.
.
,
k
h_j={h_1,h_2,...,h_k},j=1,2,...,k
hj=h1,h2,...,hk,j=1,2,...,k,对于任意一个向量
h
j
h_j
hj,它是一个
n
n
n维的向量(
n
n
n是样本数),例如
h
1
=
(
h
11
,
h
21
,
.
.
.
,
h
n
1
)
T
h_1={(h_{11},h_{21},...,h_{n1})}^T
h1=(h11,h21,...,hn1)T并且其中元素的取值满足如下条件:
h
i
j
=
{
1
∣
A
j
∣
v
i
∈
A
j
0
v
i
∉
A
j
h_{ij}= \left\{ \begin{matrix} \frac{1}{\sqrt{|A_j|}} & v_i \in A_j\\ 0 & v_i \notin A_j \end{matrix} \right.
hij={∣Aj∣10vi∈Ajvi∈/Aj
我么将这这 k k k个指示向量组合为一个指示矩阵 H H H,因为我们的样本点只会属于某一个类,在其他类的的值为0,所以矩阵 H H H的每一列指示向量互相正交,所以我们可以得到 H T H = I H^TH=I HTH=I
在之前的二聚类中我们已经得到了
m
i
n
A
⊂
V
R
a
t
i
o
C
u
t
(
A
,
A
ˉ
)
⇔
m
i
n
A
⊂
V
f
T
L
f
\underset{A\subset V}{min}RatioCut(A,\bar A)\Leftrightarrow\underset{A\subset V}{min} \boldsymbol f^TL\boldsymbol f
A⊂VminRatioCut(A,Aˉ)⇔A⊂VminfTLf
我们可以将其扩展到多聚类中
R
a
t
i
o
C
u
t
(
A
1
,
.
.
.
,
A
k
)
=
∑
i
=
1
k
h
i
T
L
h
i
=
∑
i
=
1
k
(
H
T
L
H
)
i
i
=
t
r
(
H
T
L
H
)
RatioCut(A_1,...,A_k)=\sum_{i=1}^k{h_i}^TLh_i=\sum_{i=1}^k(H^TLH)_{ii}=tr(H^TLH)
RatioCut(A1,...,Ak)=i=1∑khiTLhi=i=1∑k(HTLH)ii=tr(HTLH)
所以最终我们可以将目标函数写为:
a
r
g
m
i
n
t
r
(
H
T
L
H
)
s
.
t
.
H
T
H
=
I
{argmin\:{tr(H^TLH)}\\ s.t. H^TH=I}
argmintr(HTLH)s.t.HTH=I
注意观察这里的 t r ( H T L H ) tr(H^TLH) tr(HTLH)的每一个优化子目标都是 h i T L h i {h_i}^TLh_i hiTLhi,在推导二分类是我们已经得到了得到 h i T L h i {h_i}^TLh_i hiTLhi最小值就要使得拉普拉斯矩阵的特征值 λ \lambda λ越小越好,所以在多分类的问题中我们就需要找到 L L L的前 k k k个最小特征值,而第 j j j个特征值所对应的特征向量就是我们想要得到的 h j h_j hj,然后将这 k k k个特征向量组成了矩阵 H H H,这里的特征向量依旧是连续的,我们必须要找到一种方法来将其离散化
之前在二分类是我们直接判断是否大于0的方法来将其离散化,但这在多分类是行不通的,因为这里我们的矩阵 H H H是 n × k n\times k n×k的,一共有 k k k列。
那么我们该用什么方法将其离散化呢?
答案是
K
−
M
e
a
n
s
聚类
K-Means聚类
K−Means聚类
我们可以通过
K
−
M
e
a
n
s
聚类
K-Means聚类
K−Means聚类的方法,将
n
n
n的样本点聚类成
k
k
k类,因为我们的
H
H
H矩阵的每一行代表着样本点向量,这个向量有
k
k
k个值,如果某两个样本点属于同一类的话那么他们的向量也会很接近,所以用
K
−
M
e
a
n
s
K-Means
K−Means进行聚类会有比较好的效果
N C u t NCut NCut切图
N C u t NCut NCut切图和 R a t i o C u t RatioCut RatioCut切图很类似,它将 R a t i o C u t RatioCut RatioCut的分母 ∣ A j ∣ |A_j| ∣Aj∣换成了 v o l ( A j ) vol(A_j) vol(Aj)。由于子图的样本数多并不一定代表权重就大,我们在切图的时候基于权重也更适合我们的目标,因此一班来说 N C u t NCut NCut切图要优于 R a t i o C u t RatioCut RatioCut切图,其中 v o l ( A j ) = ∑ v i ∈ A j d i vol(A_j)=\sum_{v_i\in A_j}d_i vol(Aj)=∑vi∈Ajdi
N
c
u
t
Ncut
Ncut切图的目标函数如下:
N
C
u
t
(
A
1
,
A
2
,
.
.
.
,
A
K
)
=
1
2
∑
i
=
1
k
W
(
A
i
,
A
ˉ
i
)
v
o
l
(
A
i
)
NCut(A_1,A_2,...,A_K)=\frac{1}{2}\sum_{i=1}^k{\frac{W(A_i,\bar A_i)}{vol(A_i)}}
NCut(A1,A2,...,AK)=21i=1∑kvol(Ai)W(Ai,Aˉi)
与
R
a
t
i
o
C
u
t
RatioCut
RatioCut一样我们先来看看
k
=
2
k=2
k=2,即二分类的情况,定义指示向量
f
\boldsymbol f
f
f
i
=
{
v
o
l
(
A
ˉ
)
v
o
l
(
A
)
f
i
∈
A
−
v
o
l
(
A
)
v
o
l
(
A
ˉ
)
f
i
∈
A
ˉ
f_i=\left\{ \begin{matrix} \sqrt{\frac{vol(\bar A)}{vol(A)}} & f_i \in A\\ -\sqrt{\frac{vol(A)}{vol(\bar A)}} & f_i \in \bar A \end{matrix} \right.
fi=⎩
⎨
⎧vol(A)vol(Aˉ)−vol(Aˉ)vol(A)fi∈Afi∈Aˉ
接下来和之前一样,推导一下目标函数
f
T
L
f
=
1
2
∑
i
=
1
n
∑
j
=
1
n
w
i
j
(
f
i
−
f
j
)
2
=
1
2
∑
v
i
∈
A
,
v
j
∈
A
ˉ
w
i
j
(
v
o
l
(
A
ˉ
)
v
o
l
(
A
)
+
v
o
l
(
A
)
v
o
l
(
A
ˉ
)
)
2
+
1
2
∑
v
i
∈
A
ˉ
,
v
j
∈
A
w
i
j
(
−
v
o
l
(
A
ˉ
)
v
o
l
(
A
)
−
v
o
l
(
A
)
v
o
l
(
A
ˉ
)
)
2
=
c
u
t
(
A
,
A
ˉ
)
(
v
o
l
(
A
ˉ
)
v
o
l
(
A
)
+
v
o
l
(
A
)
v
o
l
(
A
ˉ
)
+
2
)
=
c
u
t
(
A
,
A
ˉ
)
(
v
o
l
(
A
ˉ
)
+
v
o
l
(
A
)
v
o
l
(
A
)
+
v
o
l
(
A
)
+
v
o
l
(
A
ˉ
)
v
o
l
(
A
ˉ
)
)
=
v
o
l
(
V
)
c
u
t
(
A
,
A
ˉ
)
(
1
v
o
l
(
A
)
+
1
v
o
l
(
A
ˉ
)
)
=
v
o
l
(
V
)
N
C
u
t
(
A
,
A
ˉ
)
\begin{aligned} \boldsymbol f^TL\boldsymbol f&=\frac{1}{2}\sum_{i=1}^n\sum_{j=1}^nw_{ij}(f_i-f_j)^2\\ &=\frac{1}{2}\sum_{v_i\in A,v_j\in \bar A}w_{ij}\big(\sqrt{\frac{vol(\bar A)}{vol(A)}}+\sqrt{\frac{vol(A)}{vol(\bar A)}}\big)^2+\frac{1}{2}\sum_{v_i\in \bar A,v_j\in A}w_{ij}\big(-\sqrt{\frac{vol(\bar A)}{vol(A)}}-\sqrt{\frac{vol(A)}{vol(\bar A)}}\big)^2\\ &=cut(A,\bar A)\big(\frac{vol(\bar A)}{vol(A)}+\frac{vol(A)}{vol(\bar A)}+2\big)\\ &=cut(A,\bar A)\big(\frac{vol(\bar A)+vol(A)}{vol(A)}+\frac{vol(A)+vol(\bar A)}{vol(\bar A)}\big)\\ &=vol(V)cut(A,\bar A)\big(\frac{1}{vol(A)}+\frac{1}{vol(\bar A)}\big)\\ &=vol(V)NCut(A,\bar A)\\ \end{aligned}
fTLf=21i=1∑nj=1∑nwij(fi−fj)2=21vi∈A,vj∈Aˉ∑wij(vol(A)vol(Aˉ)+vol(Aˉ)vol(A))2+21vi∈Aˉ,vj∈A∑wij(−vol(A)vol(Aˉ)−vol(Aˉ)vol(A))2=cut(A,Aˉ)(vol(A)vol(Aˉ)+vol(Aˉ)vol(A)+2)=cut(A,Aˉ)(vol(A)vol(Aˉ)+vol(A)+vol(Aˉ)vol(A)+vol(Aˉ))=vol(V)cut(A,Aˉ)(vol(A)1+vol(Aˉ)1)=vol(V)NCut(A,Aˉ)
对于指示向量我们有
D
f
⊥
1
D\boldsymbol f \bot \mathbf{1}
Df⊥1,证明如下:
(
D
f
)
T
1
=
∑
i
=
1
n
d
i
f
i
⋅
1
=
∑
v
i
∈
A
d
i
v
o
l
(
A
ˉ
)
v
o
l
(
A
)
−
∑
v
i
∈
A
d
i
v
o
l
(
A
)
v
o
l
(
A
ˉ
)
=
v
o
l
(
A
)
v
o
l
(
A
ˉ
)
v
o
l
(
A
)
−
v
o
l
(
A
ˉ
)
v
o
l
(
A
)
v
o
l
(
A
ˉ
)
=
0
\begin{aligned} (D\boldsymbol f)^T\mathbf{1}&=\sum_{i=1}^nd_if_i\cdot 1=\sum_{v_i\in A}d_i\sqrt{\frac{vol(\bar A)}{vol(A)}}-\sum_{v_i\in A}d_i\sqrt{\frac{vol(A)}{vol(\bar A)}}\\ &=vol(A)\sqrt{\frac{vol(\bar A)}{vol(A)}}-vol(\bar A)\sqrt{\frac{vol(A)}{vol(\bar A)}}=0 \end{aligned}
(Df)T1=i=1∑ndifi⋅1=vi∈A∑divol(A)vol(Aˉ)−vi∈A∑divol(Aˉ)vol(A)=vol(A)vol(A)vol(Aˉ)−vol(Aˉ)vol(Aˉ)vol(A)=0
除此之外我们还有
f
T
D
f
\boldsymbol f^TD\boldsymbol f
fTDf是
v
o
l
(
V
)
vol(V)
vol(V),证明如下:
f T D f = ∑ i = 1 n f i d i f i = ∑ v i ∈ A d i v o l ( A ˉ ) v o l ( A ) + ∑ v i ∈ A d i v o l ( A ) v o l ( A ˉ ) = v o l ( A ) v o l ( A ˉ ) v o l ( A ) + v o l ( A ˉ ) v o l ( A ) v o l ( A ˉ ) = v o l ( V ) \begin{aligned} \boldsymbol f^TD\boldsymbol f&=\sum_{i=1}^nf_id_if_i=\sum_{v_i\in A}d_i\frac{vol(\bar A)}{vol(A)}+\sum_{v_i\in A}d_i\frac{vol(A)}{vol(\bar A)}\\ &=vol(A)\frac{vol(\bar A)}{vol(A)}+vol(\bar A)\frac{vol(A)}{vol(\bar A)}=vol(V) \end{aligned} fTDf=i=1∑nfidifi=vi∈A∑divol(A)vol(Aˉ)+vi∈A∑divol(Aˉ)vol(A)=vol(A)vol(A)vol(Aˉ)+vol(Aˉ)vol(Aˉ)vol(A)=vol(V)
综上我们可以得到目标函数,并将其松弛化得到:
m
i
n
f
∈
R
n
f
T
L
f
s
.
t
.
D
f
⊥
1
f
T
D
f
=
v
o
l
(
V
)
{\underset{\boldsymbol f\in \mathbb{R}^n}{min}\:\boldsymbol f^TL\boldsymbol f\\ s.t.{D\boldsymbol f\bot \mathbf{1}\\ \boldsymbol f^TD\boldsymbol f=vol(V)}}
f∈RnminfTLfs.t.Df⊥1fTDf=vol(V)
从上式我们可以观察到它在约束条件上与 R a t i o C u t RatioCut RatioCut的区别,在 R a t i o C u t RatioCut RatioCut里是 f T f = n \boldsymbol f^T\boldsymbol f=n fTf=n,中间并没有 D D D,而 N C u t NCut NCut却有,这也使得 R a t i o C u t RatioCut RatioCut里利用目标函数的拉格朗日乘子推导出的概念并不适用于此,那么如何让其适用呢?
答案是:将拉普拉斯矩阵
L
L
L进行归一化
我们令
w
=
D
1
2
f
w=D^{\frac{1}{2}}\boldsymbol f
w=D21f,则
f
=
D
−
1
2
w
\boldsymbol f=D^{-\frac{1}{2}}w
f=D−21w,可以得到
m
i
n
f
∈
R
n
w
T
D
−
1
2
L
D
−
1
2
w
s
.
t
.
w
⊥
D
1
2
1
w
T
D
w
=
v
o
l
(
V
)
{\underset{\boldsymbol f\in \mathbb{R}^n}{min}\:w^TD^{-\frac{1}{2}}LD^{-\frac{1}{2}}w\\ s.t.{w\bot D^{\frac{1}{2}}\mathbf{1}\\ w^TDw=vol(V)}}
f∈RnminwTD−21LD−21ws.t.w⊥D211wTDw=vol(V)
对于上式我们将原来的
L
L
L转化为
D
−
1
2
L
D
−
1
2
D^{-\frac{1}{2}}LD^{-\frac{1}{2}}
D−21LD−21,其最小特征值为1,对应的特征向量为
D
1
2
1
D^{\frac{1}{2}}\mathbf{1}
D211,我们将
D
−
1
2
L
D
−
1
2
D^{-\frac{1}{2}}LD^{-\frac{1}{2}}
D−21LD−21看做为一个整体后,其与
R
a
t
i
o
C
u
t
RatioCut
RatioCut的目标函数形式基本没有差别,所以在
R
a
t
i
o
C
u
t
RatioCut
RatioCut得到的结论都可以使用,求解的操作对象由
L
L
L转变到了
D
−
1
2
L
D
−
1
2
D^{-\frac{1}{2}}LD^{-\frac{1}{2}}
D−21LD−21
接下来我们来看看 k > 2 k>2 k>2的多聚类
与
R
a
t
i
o
C
u
t
RatioCut
RatioCut一样我们先定义指示向量
h
j
h_j
hj,其位
n
×
1
n\times1
n×1的向量,定义如下:
h
i
j
=
{
1
v
o
l
(
A
j
)
v
i
∈
A
j
0
v
i
∉
A
j
h_{ij}= \left\{ \begin{matrix} \frac{1}{\sqrt{vol(A_j)}} & v_i \in A_j\\ 0 & v_i \notin A_j \end{matrix} \right.
hij={vol(Aj)10vi∈Ajvi∈/Aj
我们可以将这
k
k
k个指示向量
h
j
h_j
hj组合成矩阵
H
H
H,矩阵的列向量依然正交,且我们有
H
T
D
H
=
I
H^TDH=I
HTDH=I,所以可得到以下目标函数:
m
i
n
H
∈
R
n
×
k
T
r
(
H
T
L
H
)
s
.
t
.
H
T
D
H
=
I
{\underset{H\in \mathbb{R}^{n\times k}}{min}\:Tr(H^TLH)\\ s.t.\:H^TDH=I}
H∈Rn×kminTr(HTLH)s.t.HTDH=I
我们再令
H
=
D
−
1
2
F
H= D^{-\frac{1}{2}}F
H=D−21F,则
H
T
L
H
=
F
T
D
−
1
2
L
D
−
1
2
F
H^TLH=F^TD^{-\frac{1}{2}}LD^{-\frac{1}{2}}F
HTLH=FTD−21LD−21F,
H
T
D
H
=
F
T
F
=
I
H^TDH=F^TF=I
HTDH=FTF=I,优化目标变为:
a
r
g
m
i
n
t
r
(
F
T
D
−
1
2
L
D
−
1
2
F
)
s
.
t
.
F
T
F
=
I
argmin\:tr(F^TD^{-\frac{1}{2}}LD^{-\frac{1}{2}}F)\\ s.t.\:F^TF=I
argmintr(FTD−21LD−21F)s.t.FTF=I
可以发现这个式子与
R
a
t
i
o
C
u
t
RatioCut
RatioCut基本一致,后面的操作对象从
L
L
L变为
D
−
1
2
L
D
−
1
2
D^{-\frac{1}{2}}LD^{-\frac{1}{2}}
D−21LD−21,后面操作与
R
a
t
i
o
C
u
t
RatioCut
RatioCut相同即可
其实 D − 1 2 L D − 1 2 D^{-\frac{1}{2}}LD^{-\frac{1}{2}} D−21LD−21相当于与对拉普拉斯矩阵做了一次标准化,即 L i j v o l ( A i ) v o l ( A j ) \frac{L_{ij}}{\sqrt{vol(A_i)vol(A_j)}} vol(Ai)vol(Aj)Lij