ML笔记(3)
week 5,6 lecture 9.24 今天讲的是无向图的spectral clustering。开了个头。 记号:图$G=(V, E)$,其各边权重w,各点degree为权重之和d。子图A,其补集$\bar{A}$。那么有两种方式定义一个子图的size: $|A| :=$ the number of vertices in $A$ $\operatorname{vol}(A) :=\sum_{i \in A} d_{i}$ Graph laplacian的性质。首先,$f^{t} L f=\frac{1}{2} \sum_{i, j=1}^{n} w_{i j}\left(f_{i}-f_{j}\right)^{2}$,L半正定,具有trivial的本征值0和本征向量$\mathbb{I}$。假设其具有互不连通的子图$\{A_i\}$,那么$ker(L)=span(\mathbb{I}_{A_i})$。 Clustering。步骤是确定的:首先从feature构建图(比如最近邻或距离范围),确定希望聚成k类,然后求出L的前(对应最小的一些本征值)k个本征向量$V=(v_0, \cdots, v_{k-1})$,该矩阵的第i行就是$\mathbb{R}^k$中embed的第i个点的坐标。最后,用k-means或者别的算法在欧氏空间中聚类。 为什么使用$L_{rw}$优于$L,L_{sym}$? $L_{sym}$的问题在于,其本征向量并非L的本征向量$v_i$,而是$D^{1/2}v_i$。这样的话,degree小了容易吃亏,被embed的太靠近原点(而其本身未必如此),所以必须对每行归一化,这也不是没有损失的。 L的问题要复杂一些。首先,我们考虑一个问题:**图的分割。**我们想把图切成两部分,它们之间联系尽量少。定义图的一个割是$\operatorname{cut}(A, B)=\sum_{i \in A, j \in B} w_{i j}$,为了避免只切下来一个点这种trivial的错误,我们实际上minimized的不少一个cut,而是 $\operatorname{RatioCut}\left(A_{1}, \ldots, A_{k}\right)=\sum_{i=1}^{k} \frac{\operatorname{cut}\left(A_{i}, \overline{A}_{i}\right)}{\left|A_{i}\right|}$ $\operatorname{Ncut}\left(A_{1}, \ldots, A_{k}\right)=\sum_{i=1}^{k} \frac{\operatorname{cut}\left(A_{i}, \overline{A}_{i}\right)}{\operatorname{vol}\left(A_{i}\right)}$ 其中N代表归一化。我们觉得后者在原理上更优,是因为考虑到$vol(A_i)=\sum_{l\in A_i}d_l=\sum_{l\in A_i}\sum_{k\in A_i}w_{lk}+\sum_{l\in A_i}\sum_{k\notin A_i}w_{lk}$,所以$cut/vol=cut/(\overline{cut}+cut)$,后者更自然。我们接下来证明,前者对应L,后者对应$L_{rw}$,因此L不如$L_{rw}$。 令 $f_{i}=\left\{\begin{array}{ll}{\sqrt{|\overline{A}| /|A|}} & {\text { if } v_{i} \in A} \\ {-\sqrt{|A| /|\overline{A}|}} & {\text { if } v_{i} \in \overline{A}}\end{array}\right....