Skip to content

Commit efeaf6a

Browse files
committed
Spectral clustering
1 parent 2f9e453 commit efeaf6a

File tree

2 files changed

+92
-0
lines changed

2 files changed

+92
-0
lines changed

20.Spectral.md

+92
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
# 谱聚类
2+
3+
聚类问题可以分为两种思路:
4+
5+
1. Compactness,这类有 K-means,GMM 等,但是这类算法只能处理凸集,为了处理非凸的样本集,必须引入核技巧。
6+
2. Connectivity,这类以谱聚类为代表。
7+
8+
谱聚类是一种基于无向带权图的聚类方法。这个图用 $G=(V,E)$ 表示,其中 $V=\{1,2,\cdots,N\}$,$E=\{w_{ij}\}$,这里 $w_{ij}$ 就是边的权重,这里权重取为相似度,$W=(w_{ij})$ 是相似度矩阵,定义相似度(径向核):
9+
$$
10+
w_{ij}=k(x_i,x_j)=\exp(-\frac{||x_i-x_j||_2^2}{2\sigma^2}),(i,j)\in E\\
11+
w_{ij}=0,(i,j)\notin E
12+
$$
13+
下面定义图的分割,这种分割就相当于聚类的结果。定义 $w(A,B)$:
14+
$$
15+
A\sub V,B\sub V,A\cap B=\emptyset,w(A,B)=\sum\limits_{i\in A,j\in B}w_{ij}
16+
$$
17+
假设一共有 $K$ 个类别,对这个图的分割 $CUT(V)=CUT(A_1,A_2,\cdots,A_K)=\sum\limits_{k=1}^Kw(A_k,\overline{A_k})=\sum\limits_{k=1}^K[w(A_k,V)-w(A_k,A_k)]$
18+
19+
于是,我们的目标就是 $\min\limits_{A_k}CUT(V)$。
20+
21+
为了平衡每一类内部的权重不同,我们做归一化的操作,定义每一个集合的度,首先,对单个节点的度定义:
22+
$$
23+
d_i=\sum\limits_{j=1}^Nw_{ij}
24+
$$
25+
其次,每个集合:
26+
$$
27+
\Delta_k=degree(A_k)=\sum\limits_{i\in A_k}d_i
28+
$$
29+
于是:
30+
$$
31+
N(CUT)=\sum\limits_{k=1}^K\frac{w(A_k,\overline{A_k})}{\sum\limits_{i\in A_k}d_i}
32+
$$
33+
所以目标函数就是最小化这个式子。
34+
35+
谱聚类的模型就是:
36+
$$
37+
\{\hat{A}_k\}_{k=1}^K=\mathop{argmin}_{A_k}N(CUT)
38+
$$
39+
引入指示向量:
40+
$$
41+
\left\{
42+
\begin{align}y_i\in \{0,1\}^K\\
43+
\sum\limits_{j=1}^Ky_{ij}=1\end{align}
44+
\right.
45+
$$
46+
其中,$y_{ij}$ 表示第 $i$ 个样本属于 $j$ 个类别,记:$Y=(y_1,y_2,\cdots,y_N)^T$。所以:
47+
$$
48+
\hat{Y}=\mathop{argmin}_YN(CUT)
49+
$$
50+
将 $N(CUT)$ 写成对角矩阵的形式,于是:
51+
$$
52+
\begin{align}N(CUT)&=Trace[diag(\frac{w(A_1,\overline{A_1})}{\sum\limits_{i\in A_1}d_i},\frac{w(A_2,\overline{A_2})}{\sum\limits_{i\in A_2}d_i},\cdots,\frac{w(A_K,\overline{A_K})}{\sum\limits_{i\in A_K}d_i})]\nonumber\\
53+
&=Trace[diag(w(A_1,\overline{A_1}),w(A_2,\overline{A_2}),\cdots,w(A_K,\overline{A_K}))\cdot diag(\sum\limits_{i\in A_1}d_i,\cdots,\sum\limits_{i\in A_K}d_i)^{-1}]\nonumber\\
54+
&=Trace[O\cdot P^{-1}]
55+
\end{align}
56+
$$
57+
我们已经知道 $Y,w$ 这两个矩阵,我们希望求得 $O,P$。
58+
59+
由于:
60+
$$
61+
Y^TY=\sum\limits_{i=1}^Ny_iy_i^T
62+
$$
63+
对于 $y_iy_i^T$,只在对角线上的 $k\times k$ 处为 1,所以:
64+
$$
65+
Y^TY=diag(N_1,N_2,\cdots,N_K)
66+
$$
67+
其中,$N_i$ 表示有 $N_i$ 个样本属于 $i$,即 $N_k=\sum\limits_{k\in A_k}1$。
68+
69+
引入对角矩阵,根据 $d_i$ 的定义, $D=diag(d_1,d_2,\cdots,d_N)=diag(w_{NN}\mathbb{I}_{N1})$,于是:
70+
$$
71+
P=Y^TDY
72+
$$
73+
对另一项 $O=diag(w(A_1,\overline{A_1}),w(A_2,\overline{A_2}),\cdots,w(A_K,\overline{A_K})$:
74+
$$
75+
O=diag(w(A_i,V))-diag(w(A_i,A_i))=diag(\sum\limits_{j\in A_i}d_j)-diag(w(A_i,A_i))
76+
$$
77+
其中,第一项已知,第二项可以写成 $Y^TwY$,这是由于:
78+
$$
79+
Y^TwY=\sum\limits_{i=1}^N\sum\limits_{j=1}^Ny_iy_j^Tw_{ij}
80+
$$
81+
于是这个矩阵的第 $lm$ 项可以写为:
82+
$$
83+
\sum\limits_{i\in A_l,j\in A_m}w_{ij}
84+
$$
85+
这个矩阵的对角线上的项和 $w(A_i,A_i)$ 相同,所以取迹后的取值不会变化。
86+
87+
所以:
88+
$$
89+
N(CUT)=Trace[(Y^T(D-w))Y)\cdot(Y^TDY)^{-1}]
90+
$$
91+
其中,$ L=D-w$ 叫做拉普拉斯矩阵。
92+

pdf/20.Spectral.pdf

753 KB
Binary file not shown.

0 commit comments

Comments
 (0)