|
| 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 | + |
0 commit comments