摘要
- 最小割和最大密度经常用来对非凸数据聚类。
- 最小割对噪音敏感。
- 基于最大密度的聚类方法很难聚类聚簇中心们的密度不同的情况。
- 本文介绍的SPECTACL方法集两者之长,去两者之短。
- 本方法有谱聚类的易于实现的特点,并且用理论证明给出了合理的聚簇中心密度标准。
一、简介
- 谱聚类通过对数据相似性矩阵的频谱进行降维,解决了聚类任务公式中固有的维数诅咒。DBSCAN是基于密度的算法。两者都能聚类非线性可分的数据。 本文介绍的SPECTACL方法集两者之长,去两者之短。
- SpectACL 发现聚簇中心的平均密度很大。还发现每个中心的密度由加权邻接矩阵的谱(矩阵特征值的集合)决定了。因此SpectACL不像DBSCAN一样对参数minPts(DBSCAN里影响密度的)敏感。并且还能解决各个聚簇中心密度不一致的问题。
- SpectACL在embedding(投影到低维向量空间中)后也有个用k-mean的步骤,本文证明了应用K-mean的合理性:通过特征向量分解法我们得到了SpectACL的目标函数的上界。同时我们得出优化目标函数的上界和用k-mean对特征向量聚类是等价的。(谱聚类没有类似证明)。
二、聚类方法讨论
符号
- 数据矩阵: D ∈ R m × n D \in R^{m \times n} D∈Rm×n。m个样本,每个样本n个特征。
- ϵ − n e i g h b o r h o o d : 对 每 个 点 j , N ϵ ( j ) = { l ∣ ∥ D j ⋅ − D l ⋅ ∥ < ϵ } \epsilon-neighborhood :对每个点j,\mathit{N}_{\epsilon}(j)=\{l| \parallel D_{j\centerdot} - D_{l\centerdot} \parallel <\epsilon \} ϵ−neighborhood:对每个点j,Nϵ(j)={l∣∥Dj⋅−Dl⋅∥<ϵ}
- Forbenius norm : ∥ M ∥ \parallel M \parallel ∥M∥.(各项元素的绝对值平方的总和的平方根)
- d维低秩近似 : M ≈ V ( d ) Λ V ( d ) M \approx V^{(d)}\Lambda V^{(d)} M≈V(d)ΛV(d)
- 1 m ∗ n 1^{m*n} 1m∗n : m*n的01矩阵。每行只有一个1
- 图的权重矩阵W : 好多种表示方法,本文后面用的 ϵ − n e i g h b o r h o o d \epsilon-neighborhood ϵ−neighborhood方法好像
- 图的度数矩阵G:对角矩阵,每个元素为该点的权重和,也就是 G i i = ∑ j = 1 m W i j G_{ii}=\sum_{j=1}^{m}{W_{ij}} Gii=∑j=1mWij
- 拉普拉斯矩阵L : L=G-W
2.1 k-mean
-
k-mean的流行流行原因:(1). 简单有效(2)理论上建立了优化方法(循环迭代,交替最小)(3)由聚簇内的点的分散可以直观理解聚簇的意义
-
k-mean潜藏的假设是每个聚簇里的所有点彼此相似。后果就是只能处理凸形数据。
-
k-mean的目标方程:
m i n Y , X ∥ D − Y X T ∥ 2 s . t . Y ∈ 1 m × r , X ∈ R n × r . ( 1 ) \underset{Y,X}{min}\parallel D-YX^T \parallel^2 s.t. Y\in \mathbb{1}^{m\times r}, X\in \mathbb{R}^{n\times r}.\space(1) Y,Xmin∥D−YXT∥2s.t.Y∈1m×r,X∈Rn×r. (1)
Y Y Y为m*r的01矩阵,当第i个样本属于第j类时, Y i j = 1 Y_{ij}=1 Yij=1。 X X X代表聚簇中心,每列为一个聚簇中心。 Y X T YX^T YXT为 m × n m\times n m×n的矩阵,每行为原始数据点所属于的聚簇中心。整个式子的意义就是整个数据集合聚簇中心方差。这个目标函数是非凸的(看上去也不像=_=)。但是 Y Y Y或者 X X X一旦确定了其中一个,上述目标函数就是凸的了(如果只看一个样本点,随着Y变化聚簇中心会变化, X X X中的中心又是排了序的(吧。。。),大概是二次方的,所以大概是凸的(吧。。。))。
如果 Y Y Y确定了,那么最优的 X X X应该取 X = D T Y ( Y T Y ) − 1 X = D^TY(Y^TY)^{-1} X=DTY(YTY)−1。 Y T Y Y^TY YTY是一个r*r对角矩阵,对角线上是每个行的內积,也就是属于该聚簇中心的点的数量。 ( Y T Y ) − 1 (Y^TY)^{-1} (YTY)−1就是 Y T Y Y^TY YTY的每个元素取倒数,大概是个比率的意思。 Y ( Y T Y ) − 1 Y(Y^TY)^{-1} Y(YTY)−1就是 Y Y Y矩阵每行的1变成对应的那个倒数,这样 Y ( Y T Y ) − 1 Y(Y^TY)^{-1} Y(YTY)−1每列的和为1。 D T Y ( Y T Y ) − 1 D^TY(Y^TY)^{-1} DTY(YTY)−1就是数据集中的每个数据点除该数据点属于的聚簇的点的个数,再加和。也就是相当于对D中的属于每个聚簇中心的数据点取平均,得到聚簇中心向量。
-
上述(1)式等价于:
m a x Y t r ( Y T D D T Y ( Y T Y ) − 1 ) s . t . Y ∈ 1 m × r ( 2 ) \underset{Y}{max} \space tr(Y^TDD^TY(Y^TY)^{-1})\space s.t. Y \in \mathbb{1}^{m\times r}\space (2) Ymax tr(YTDDTY(YTY)−1) s.t.Y∈1m×r (2)
这个式子中 D T Y ( Y T Y ) − 1 D^TY(Y^TY)^{-1} DTY(YTY)−1的意义已经知道了,也就是相当于 m a x Y t r ( Y T D X ) \underset{Y}{max} \space tr(Y^TDX) Ymax tr(YTDX)。 Y T D Y^TD YTD是一个 r × n r\times n r×n的矩阵,每行为该聚簇的所有点的和。所以这个式子就是求对角线的最大和,该对角线每个元素为某一聚簇的所有点的累加和与聚簇中心的內积。注意到这个目标函数只和数据点的內积有关,也就是只和数据点的相似度有关,这个是kernel k-mean以及非凸聚簇的关键。
2.2 图的切割
-
通过将数据点转换为核矩阵所反映的高维希尔伯特空间,可以克服凸簇的限制。由上述那个式子只和数据点的相似度有关的结论可以推出数据的图表示法:每个样本点对应一个节点,点之间的相似度对应于边的权值。这样,这个图中每个紧密连通的块就可以当做一个聚簇。分类的代价就是求割集的代价。也就是最小割问题:(最小割不是用网络流求的吗???)
c u t ( Y ; W ) = ∑ s = 1 r Y ⋅ s T W ( 1 − Y ⋅ s ) ( 3 ) cut(Y; W) = \sum_{s=1}^{r}{Y_{\centerdot s}^TW(1-Y_{\centerdot s})} \space (3) cut(Y;W)=s=1∑rY⋅sTW(1−Y⋅s) (3)
上面这个式子效果一般不好,可能出现有的聚簇只有几个点得情况,于是可以加个约束:
R c u t ( Y ; W ) = ∑ s = 1 r Y ⋅ s T W ( 1 − Y ⋅ s ) ∣ Y ⋅ s ∣ ( 4 ) Rcut(Y ; W)=\sum_{s=1}^{r}{\frac{Y_{\centerdot s}^TW(1-Y_{\centerdot s})}{\mid Y_{\centerdot s}\mid}} \space (4) Rcut(Y;W)=s=1∑r∣Y⋅s∣Y⋅sTW(1−Y⋅s) (4)
式子(4)又等价于:
m a x Y t r ( Z T ( − L ) Z ) s . t . Z = Y ( Y T Y ) − 1 / 2 ( 5 ) \underset{Y}{max} \space tr(Z^T(-L)Z) \space s.t. Z=Y(Y^TY)^{-1/2} \space (5) Ymax tr(ZT(−L)Z) s.t.Z=Y(YTY)−1/2 (5) -
等价的推导:
Z的意义 : m × r m\times r m×r的矩阵,每列的意义是一个指示向量,当第 i i i行数据点属于第 j j j个聚簇时,那个位置的值为 1 ∣ A j ∣ \frac{1}{\sqrt{\mid A_j\mid}} ∣Aj∣1, A j A_j Aj代表第j类聚簇的点的集合, ∣ A j ∣ \mid A_j\mid ∣Aj∣代表该集合点的数量。
Z ⋅ i T L Z ⋅ i = Z ⋅ i T G Z ⋅ i − Z ⋅ i T W Z ⋅ i = ∑ j = 1 m G j j Z j i 2 − ∑ j = 1 m ∑ k = 1 m W j k Z j i Z k i = 1 2 ( ∑ j = 1 m G j j Z j i 2 − 2 ∑ j = 1 m ∑ k = 1 m W j k Z j i Z k i + ∑ k = 1 m G k k Z k i 2 ) = 1 2 ( ∑ j = 1 m ∑ k = 1 m W j k Z j i 2 − 2 ∑ j = 1 m ∑ k = 1 m W j k Z j i Z k i + ∑ k = 1 m ∑ j = 1 m W k j Z k i 2 ) = 1 2 ∑ j = 1 m ∑ k = 1 m W j k ( Z j i − Z k i ) 2 = 1 2 ( ∑ j ∈ A i , k ∉ A i W j k ( 1 ∣ A i ∣ ) 2 + ∑ j ∉ A i , k ∈ A i W j k ( − 1 ∣ A i ∣ ) 2 ) = Y ⋅ i T W ( 1 − Y ⋅ i ) ∣ A i ∣ \begin{aligned} Z_{\centerdot i}^TLZ_{\centerdot i} & = Z_{\centerdot i}^TGZ_{\centerdot i}-Z_{\centerdot i}^TWZ_{\centerdot i}\\ & = \sum_{j=1}^{m}{G_{jj}Z_{ji}^2-\sum_{j=1}^{m}{\sum_{k=1}^{m}{W_{jk}Z_{ji}Z_{ki}}}} \\ &= \frac{1}{2}( \sum_{j=1}^{m}{G_{jj}Z_{ji}^2} -2\sum_{j=1}^{m}{\sum_{k=1}^{m}{W_{jk}Z_{ji}Z_{ki}}}+ \sum_{k=1}^{m}{G_{kk}Z_{ki}^2)} \\ &= \frac{1}{2}( \sum_{j=1}^{m}{\sum_{k=1}^{m}W_{jk}Z_{ji}^2} -2\sum_{j=1}^{m}{\sum_{k=1}^{m}{W_{jk}Z_{ji}Z_{ki}}}+ \sum_{k=1}^{m}{\sum_{j=1}^{m}W_{kj}Z_{ki}^2)} \\ & = \frac{1}{2}\sum_{j=1}^{m}{\sum_{k=1}^{m}{W_{jk}(Z_{ji}-Z_{ki})^2}}\\ & = \frac{1}{2}(\sum_{j \in A_i,k \notin A_i}{W_{jk}(\frac{1}{\sqrt{\mid A_i \mid}})^2}+\sum_{j \notin A_i,k \in A_i}{W_{jk}(-\frac{1}{\sqrt{\mid A_i \mid}})^2})\\ & =\frac{Y_{\centerdot i}^TW(1-Y_{\centerdot i})}{\mid A_i \mid} \end{aligned} Z⋅iTLZ⋅i=Z⋅iTGZ⋅i−Z⋅iTWZ⋅i=j=1∑mGjjZji2−j=1∑mk=1∑mWjkZjiZki=21(j=1∑mGjjZji2−2j=1∑mk=1∑mWjkZjiZki+k=1∑mGkkZki2)=21(j=1∑mk=1∑mWjkZji2−2j=1∑mk=1∑mWjkZjiZki+k=1∑mj=1∑mWkjZki2)=21j=1∑mk=1∑mWjk(Zji−Zki)2=21(j∈Ai,k∈/Ai∑Wjk(∣Ai∣1)2+j∈/Ai,k∈Ai∑Wjk(−∣Ai∣1)2)=∣Ai∣Y⋅iTW(1−Y⋅i)所以(4)和(5)相当于多了个负号,最小(4)就是最大(5)。
-
L L L是半正定矩阵,如果将(5)中的 − L -L −L换成正定矩阵 ( ∣ λ m ∣ I − L ) (\mid\lambda_m\mid I-L) (∣λm∣I−L)不会改变优化目标。 ∣ λ m ∣ \mid\lambda_m\mid ∣λm∣是 L L L的最大的特征值的绝对值。
由上面那个推导的第五行可以看出L是半正定的。
( ∣ λ m ∣ I − L ) (\mid\lambda_m\mid I-L) (∣λm∣I−L)是正定的推导:
Z i T ( ∣ λ m ∣ I − L ) Z i = Z i T ∣ λ m ∣ I Z i + 1 2 ∑ j = 1 m ∑ k = 1 m W j k ( Z i j − Z i k ) 2 = ∣ λ m ∣ Z i T Z i + 1 2 ∑ j = 1 m ∑ k = 1 m W j k ( Z i j − Z i k ) 2 = ∣ λ m ∣ + 1 2 ∑ j = 1 m ∑ k = 1 m W j k ( Z i j − Z i k ) 2 > 0 \begin{aligned} Z_i^T(\mid\lambda_m\mid I-L)Z_i &=Z_i^T\mid\lambda_m\mid IZ_i+ \frac{1}{2}\sum_{j=1}^{m}{\sum_{k=1}^{m}{W_{jk}(Z_{ij}-Z_{ik})^2}}\\&=\mid\lambda_m\mid Z_i^TZ_i+ \frac{1}{2}\sum_{j=1}^{m}{\sum_{k=1}^{m}{W_{jk}(Z_{ij}-Z_{ik})^2}}\\ &=\mid\lambda_m\mid + \frac{1}{2}\sum_{j=1}^{m}{\sum_{k=1}^{m}{W_{jk}(Z_{ij}-Z_{ik})^2}}\\ & > 0 \end{aligned} ZiT(∣λm∣I−L)Zi=ZiT∣λm∣IZi+21j=1∑mk=1∑mWjk(Zij−Zik)2=∣λm∣ZiTZi+21j=1∑mk=1∑mWjk(Zij−Zik)2=∣λm∣+21j=1∑mk=1∑mWjk(Zij−Zik)2>0
至于为啥这个替换不影响目标函数的解是因为 Z i T Z i = I Z_i^TZ_i=I ZiTZi=I
因此ratio-cut和用 ∣ λ m ∣ I − L \mid\lambda_m\mid I-L ∣λm∣I−L作为核矩阵的kernel-kmeans就等价了。也就是用 ∣ λ m ∣ I − L \mid\lambda_m\mid I-L ∣λm∣I−L代替(2)中的內积之后(2)和(4)(5)的优化目标相同。
证明:
Z T = ( Y ( Y T Y ) − 1 / 2 ) T = ( Y T ∗ Y ) − 1 / 2 Y T 所 以 m a x Y t r ( Z T ( − L ) Z ) = m a x Y t r ( ( Y T ∗ Y ) − 1 / 2 Y T ( − L ) ∗ Y ( Y T Y ) − 1 / 2 ) 令 A = ( Y T ∗ Y ) − 1 / 2 , B = Y T ( − L ) ∗ Y : m a x Y t r ( Z T ( − L ) Z ) = m a x Y t r ( A B A ) = ∑ i = 1 m A i i 2 B i i k e r n e l k − m e a n : m a x Y t r ( Y T ( ∣ λ m ∣ I − L ) Y ( Y T Y ) − 1 ) m a x Y t r ( Y T ( − L ) Y ( Y T Y ) − 1 ) 令 C = ( Y T Y ) − 1 = A 2 : m a x Y t r ( B C ) = ∑ i = 1 m B i i C i i \begin{aligned} &Z^T=(Y(Y^TY)^{-1/2})^T=(Y^T*Y)^{-1/2}Y^T\\ &所以\\&\underset{Y}{max} \space tr(Z^T(-L)Z) =\underset{Y}{max} \space tr((Y^T*Y)^{-1/2}Y^T(-L)*Y(Y^TY)^{-1/2})\\ &令A=(Y^T*Y)^{-1/2},B=Y^T(-L)*Y : \\ &\underset{Y}{max} \space tr(Z^T(-L)Z) =\underset{Y}{max} \space tr(ABA) =\sum_{i=1}^{m}{A_{ii}^2B_{ii}}\\\\ &\mathbf{kernel\space k-mean}:\\ &\underset{Y}{max} \space tr(Y^T(\mid\lambda_m\mid I-L)Y(Y^TY)^{-1})\\ &\underset{Y}{max} \space tr(Y^T(-L)Y(Y^TY)^{-1})\\ &令C=(Y^TY)^{-1}=A^2 : \\ &\underset{Y}{max} \space tr(BC)=\sum_{i=1}^{m}{B_{ii}C_{ii}}\\ \end{aligned} ZT=(Y(YTY)−1/2)T=(YT∗Y)−1/2YT所以Ymax tr(ZT(−L)Z)=Ymax tr((YT∗Y)−1/2YT(−L)∗Y(YTY)−1/2)令A=(YT∗Y)−1/2,B=YT(−L)∗Y:Ymax tr(ZT(−L)Z)=Ymax tr(ABA)=i=1∑mAii2Biikernel k−mean:Ymax tr(YT(∣λm∣I−L)Y(YTY)−1)Ymax tr(YT(−L)Y(YTY)−1)令C=(YTY)−1=A2:Ymax tr(BC)=i=1∑mBiiCii
这就证明出来了。
2.3 谱聚类
- 可以证明目标函数(5)的解是 Z Z Z取 ( ∣ λ m ∣ I − L ) (\mid\lambda_m\mid I-L) (∣λm∣I−L)的前r个特征向量。有了 Z Z Z以后还要将它离散成 Y Y Y, 通常用k-mean来实现。
- 拉普拉斯矩阵特征值为零的特征向量表示连通着的各个聚簇(暂时令 1 m × 1 \mathbf{1}^{m\times1} 1m×1表示元素全为1的向量。因为 L L L的行和为0,所以 L × 1 m × 1 = 0 × 1 m × 1 L\times\mathbf{1}^{m\times1}=\mathbf{0}\times\mathbf{1}^{m\times 1} L×1m×1=0×1m×1,所以0对应的特征向量应该是 1 m × 1 \mathbf{1}^{m\times1} 1m×1,也就是所有元素都属于这个簇,表示各个聚簇都是连通的整体),这个特性给出了能embedding的理论证明(这个0特征值对应的全1的特征向量肯定是能降维降掉的,其它的为啥呢???,咋就提供理论证明了)。
- 算法流程:
- 选择一种合适的方法计算W,并计算L
- 计算转换了的拉普拉斯矩阵的前r+1个特征值 : ∣ λ m ∣ I − L = V ( r + 1 ) Λ V ( r + 1 ) T \mid\lambda_m\mid I-L=V^{(r+1)}\Lambda V^{(r+1)^T} ∣λm∣I−L=V(r+1)ΛV(r+1)T
- 去掉 V r + 1 V^{r+1} Vr+1第一个特征向量,用k-means返回r个聚簇。
-
W
W
W矩阵的确定方法:一种是节点度数,另一种是
ϵ
−
n
e
i
g
h
b
o
r
h
o
o
d
\epsilon-neighborhood
ϵ−neighborhood方法, 还有k近邻法以及全连接法。
还建议对 W W W归一化, W ~ = G − 1 / 2 W G − 1 / 2 \tilde{W}=G^{-1/2}WG^{-1/2} W~=G−1/2WG−1/2,对应的转换拉普拉斯矩阵是 L s y m = I − W ~ L_{sym}=I-\tilde{W} Lsym=I−W~。这种叫N-cut切图,是目标函数(4)的变种,不再除以每个聚簇的点的个数,而是除以这个聚簇里每个点的度数和。具体的不想详细写了。 - 谱聚类这一系列方法的一个缺点是优化目标不明确。上文介绍的那个ratio-cut,也就是目标函数(4)(5),和谱聚类的优化目标在某些样例上存在分歧。在分歧的时候就不能用k-mean了,也有论文提出了其他方法来离散化但是都没有理论的证明,
2.3 鲁棒性问题
谱聚类的噪声敏感度一直是一个问题,这可能归因于它与最小割范式的关系,在最小割范式中,很少的边就足以让两个集群作为一个出现。
光谱聚类研究的最新进展包括两种提高对噪声鲁棒性的方法。
一种方法是结合基于密度的集群的思想,例如要求集群中的每个节点具有最小的节点度。最小化受最小度约束的切割类似于寻找由DBSCAN执行的核心点的连接组件。该方法的缺点是引入了一个新的参数,影响结果的质量。
另外一种方法是聚类和图的表示同时搞,在每个迭代里更新聚类和矩阵表示。但是在每个迭代里需要计算特征向量,计算代价很大。
最后还有一种是每次选出一个最优聚簇,然后每次一次减少数据集大小。
三、Spectral Averagely-Dense Clustering
-
这里提出一种基于 聚簇所组成的子图 的聚簇的定义,因为本算法关心节点之间度数的差,我们用 ϵ − n e i g h b o r h o o d \epsilon-neighborhood ϵ−neighborhood方法定义矩阵 W W W。
-
我们的目标是最大化平均聚簇密度:
m a x Y ∈ 1 m × r t r ( Y T W Y ( Y T Y ) − 1 ) = ∑ s δ ( Y ⋅ s , W ) ( 6 ) \underset{Y\in 1^{m\times r}}{max}\space tr(Y^TWY(Y^TY)^{-1})=\sum_{s}{\delta(Y_{\centerdot s}, W)}\space (6) Y∈1m×rmax tr(YTWY(YTY)−1)=s∑δ(Y⋅s,W) (6)
Y T W Y Y^TWY YTWY是度数和, ( Y T Y ) − 1 (Y^TY)^{-1} (YTY)−1是点的数量和的倒数, δ ( Y ⋅ s , W ) \delta(Y_{\centerdot s}, W) δ(Y⋅s,W)就是子图的平均度数。
δ ( Y ⋅ s , W ) = Y ⋅ s T W Y ⋅ s ∥ Y ⋅ s ∥ 2 = 1 ∣ Y ⋅ s ∣ ∑ j : Y j s = 1 W j ⋅ Y ⋅ s ( 7 ) \delta(Y_{\centerdot s}, W)=\frac{Y_{\centerdot s}^TWY_{\centerdot s}}{\parallel Y_{\centerdot s}\parallel ^2}=\frac{1}{\mid Y_{\centerdot s}\mid}\sum_{j:Y_{js=1}}{W_{j\centerdot}Y_{\centerdot s}}\space (7) δ(Y⋅s,W)=∥Y⋅s∥2Y⋅sTWY⋅s=∣Y⋅s∣1j:Yjs=1∑Wj⋅Y⋅s (7)
目标函数(6)等价于 W W W正则化的最小割:因为对应的拉普拉斯方程是 L = I − W ~ L=I-\tilde{W} L=I−W~,又因为公式(6)可以让拉普拉斯方程去掉I,所以等价。
对应的拉普拉斯方程为 L = I − W ~ L=I-\tilde{W} L=I−W~的证明:
L 1 表 示 原 来 的 拉 普 拉 斯 方 程 L = G − 1 / 2 L 1 G − 1 / 2 = G − 1 / 2 ( G − W ) G − 1 / 2 = G − 1 / 2 G G − 1 / 2 − G − 1 / 2 W G − 1 / 2 = I − W ~ \begin{aligned} &L_1表示原来的拉普拉斯方程\\ &L\\ &= G^{-1/2}L_1G^{-1/2}\\ &= G^{-1/2}(G-W)G^{-1/2}\\ &= G^{-1/2}GG^{-1/2}-G^{-1/2}WG^{-1/2}\\ &= I-\tilde{W} \end{aligned} L1表示原来的拉普拉斯方程L=G−1/2L1G−1/2=G−1/2(G−W)G−1/2=G−1/2GG−1/2−G−1/2WG−1/2=I−W~
L = G − 1 / 2 L 1 G − 1 / 2 L= G^{-1/2}L_1G^{-1/2} L=G−1/2L1G−1/2是让每个元素为 L 1 i j G i i G j j \frac{L_{1_{ij}}}{\sqrt{G_{ii}G_{jj}}} GiiGjjL1ij,目的是为了让N-cut的指示向量正交,具体不详细写。 -
下面我们将得到公式(6)与 W W W的谱的关系,通过让k-mean和spectral embedding联系起来。最终表明本文的方法和谱聚类有相同的步骤,可以高效处理大规模数据。
3.1 密集簇与特征向量映射
-
公式(7)的 δ \delta δ函数就是通常所说的瑞利商。这个商或者说系数有几个性质:
(1). 范围在 W W W的最大和最小特征值之间。
证明:
W = V Λ V T , p = V T x δ ( x , W ) = x T W x x T x = x T V Λ V T x x T x = p T Λ p x T x = ∑ i = 1 m λ i p i 2 ∑ i = 1 m x i 2 因 为 λ 1 ≤ λ 2 . . . ≤ λ m λ 1 ∑ i = 1 m p i 2 ∑ i = 1 m x i 2 ≤ δ ( x , W ) ≤ λ m ∑ i = 1 m p i 2 ∑ i = 1 m x i 2 ∑ i = 1 m p i 2 = ∑ i = 1 m ( V ⋅ i T x ) 2 = ∑ i = 1 m x T V ⋅ i V ⋅ i T x = x T x = ∑ i = 1 m x i 2 λ 1 ≤ δ ( x , W ) ≤ λ m \begin{aligned} &W=V\Lambda V^T , p = V^Tx\\ &\delta{(x, W)}=\frac{x^TWx}{x^Tx}=\frac{x^TV\Lambda V^Tx}{x^Tx}=\frac{p^T\Lambda p}{x^Tx}=\frac{\sum_{i=1}^{m}{\lambda_i p_i^2}}{\sum_{i=1}^{m}x_i^2}\\ &因为\lambda_1\le \lambda_2...\le\lambda_m\\ &\frac{\lambda_1 \sum_{i=1}^{m}{p_i^2}}{\sum_{i=1}^{m}x_i^2}\le\delta(x,W)\le \frac{\lambda_m \sum_{i=1}^{m}{p_i^2}}{\sum_{i=1}^{m}x_i^2}\\ &\sum_{i=1}^{m}{p_i^2}=\sum_{i=1}^{m}{(V_{\centerdot i}^Tx)^2}=\sum_{i=1}^{m}{x^TV_{\centerdot i} V_{\centerdot i}^Tx}=x^Tx=\sum_{i=1}^{m}{x_i^2}\\ &\lambda_1\le\delta(x,W)\le \lambda_m \end{aligned} W=VΛVT,p=VTxδ(x,W)=xTxxTWx=xTxxTVΛVTx=xTxpTΛp=∑i=1mxi2∑i=1mλipi2因为λ1≤λ2...≤λm∑i=1mxi2λ1∑i=1mpi2≤δ(x,W)≤∑i=1mxi2λm∑i=1mpi2i=1∑mpi2=i=1∑m(V⋅iTx)2=i=1∑mxTV⋅iV⋅iTx=xTx=i=1∑mxi2λ1≤δ(x,W)≤λm
(2). δ ( x , W ) = δ ( c x , W ) \delta(x,W)=\delta(cx,W) δ(x,W)=δ(cx,W), c c c是非0常数。
δ ( c x , W ) = c x T W c x c x T c x = δ ( x , W ) \delta{(cx, W)}=\frac{cx^TWcx}{cx^Tcx}=\delta(x,W) δ(cx,W)=cxTcxcxTWcx=δ(x,W)
(3). 特征值们是瑞利商的极值或者驻点。 δ ( x , W ) \delta(x,W) δ(x,W)对 x x x求导,懒得写证明了。 -
前d个特征向量张起来的空间里所有向量的瑞利商都 ≥ λ d + 1 \geq \lambda_{d+1} ≥λd+1。
证明:
设 向 量 c ∈ R d × 1 为 各 个 正 交 基 的 系 数 , 不 为 0 向 量 , 那 么 : δ ( c V d , W ) = ∑ i = 1 m δ ( c i V i d , W ) = ∑ i , c i ≠ 0 m δ ( V i d , W ) = . . . ≥ λ m 懒 得 写 了 \begin{aligned} &设向量c\in R^{d\times 1}为各个正交基的系数,不为0向量,那么:\\ &\delta(cV^d,W)=\sum_{i=1}^{m}{\delta(c_iV_i^d,W)}=\sum_{i,c_i \neq 0}^{m}{\delta(V_i^d,W)}=...\geq\lambda_m\\ &懒得写了 \end{aligned} 设向量c∈Rd×1为各个正交基的系数,不为0向量,那么:δ(cVd,W)=i=1∑mδ(ciVid,W)=i,ci=0∑mδ(Vid,W)=...≥λm懒得写了
所以第一大的特征值对应的特征向量就能张出一个密度大于 λ 2 \lambda_2 λ2的空间来投影 W W W, 让我们来搜索最优解。这个发现引出一个初步的方法:用 W W W的特征向量将 W W W降维,也就是把(6)(7)改成:
m a x Y ∈ 1 m × r ∑ s Y ⋅ s T V d Λ d V d Y ⋅ s ∣ Y ⋅ s ∣ ( 8 ) \underset{Y\in 1^{m\times r}}{max}\space \sum_{s}\frac{Y_{\centerdot s}^TV^d\Lambda ^{d}V^dY_{\centerdot s}} {\mid Y_{\centerdot s} \mid} \space (8) Y∈1m×rmax s∑∣Y⋅s∣Y⋅sTVdΛdVdY⋅s (8)
比较(8)和(2),发现当(2)中的 D = U = V r ( Λ r ) − 1 / 2 D=U=V^r(\Lambda^r)^{-1/2} D=U=Vr(Λr)−1/2时与(8)一样。然而但是对 U U U用k-means得不到期望的聚簇,因为目标函数的特征向量都是正交的,所以是非凸的有很多局部最优解。
-
特征向量的元素有正数也有负数。
第一特征向量具有较高的密度函数值δ,但向量元素有正有负使得概念性的解释这个向量困难(如果全是正数就可以把特征向量的每个元素比如 λ i j \lambda_{ij} λij看成第i个元素在第j个聚类上的权重啥啥的,大概能有个关系,称作模糊聚类指标。)。将k-means应用于一组高度密集的模糊聚类指标,将进一步投影包含聚簇中心信息的向量到正象限空间。
一种可能性是通过对称的非负矩阵分解近似矩阵W,但这用np难问题代替了多项式可解的特征分解
我们进行了另一种方法,表明模糊聚类指标是由一个简单的投影特征值派生出来的:将特征向量取绝对值。。。。
当然论文里不是这么写的,是这么写的: W W W是对称实数矩阵, v , λ v,\lambda v,λ是 W W W的一对对应的特征向量和特征值。让 v = v + − v − , v + , v − ∈ R + m × 1 v=v^+-v^-,v^+,v^-\in \mathbb{R}_{+}^{m\times1} v=v+−v−,v+,v−∈R+m×1。那个非负向量 u = v + + v − u=v^++v^- u=v++v−有密度 δ ( u ) ≥ ∣ λ ∣ \delta(u)\geq \mid\lambda\mid δ(u)≥∣λ∣
证明(终于有个证明是给我的了,不用自己搞):
∣ λ ∣ u j = ∣ λ ∣ ∣ v j ∣ = ∣ W j ⋅ v ∣ = ∣ ∑ l W j l v l ∣ ≤ ∑ l W j l ∣ v l ∣ = ∑ l W j l u l = W j u ∣ λ ∣ u j ≤ W j u ∣ λ ∣ u ≤ W u u T ∣ λ ∣ u ≤ u T W u δ ( u , W ) = u T W u u T u ≥ ∣ λ ∣ \begin{aligned} &\mid\lambda\mid u_j=\mid\lambda\mid\mid v_{j}\mid=\mid W_{j\centerdot}v\mid =\mid\sum_{l}{W_{jl}v_l}\mid\le\sum_{l}{W_{jl}\mid v_l\mid}=\sum_{l}{W_{jl}u_l}=W_ju\\ &\mid\lambda\mid u_j\le W_ju\space \space \space \space \space \space\mid\lambda\mid u_\le Wu\\ &u^T\mid\lambda\mid u_\le u^TWu\\ &\delta(u,W)=\frac{u^TWu}{u^Tu}\geq \mid\lambda\mid \end{aligned} ∣λ∣uj=∣λ∣∣vj∣=∣Wj⋅v∣=∣l∑Wjlvl∣≤l∑Wjl∣vl∣=l∑Wjlul=Wju∣λ∣uj≤Wju ∣λ∣u≤WuuT∣λ∣u≤uTWuδ(u,W)=uTuuTWu≥∣λ∣
称 u u u这种特征向量取绝对值的向量叫做推测投影特征向量(projected eigenvectors)。\space\space\space\space 这个是原始数据的亚子。
这个是投影特征向量的亚子,很神奇。于是可以认为这种向量是模糊聚类指标。
然后观察图片可以认为发现投影特征向量是非正交的,因为各个图片有交集,这样可以增加聚类的鲁棒性。 -
SPECTACL算法流程总结:
- 计算邻接矩阵 W W W
- 计算截断特征成分 W ≈ V d Λ d V d T W\approx V^d\Lambda^d{V^{d}}^T W≈VdΛdVdT
- 计算投影特征向量 U j k = ∣ V j k d ∣ ∣ λ k ∣ − 1 / 2 U_{jk}=\mid V_{jk}^{d}\mid\mid \lambda_k\mid^{-1/2} Ujk=∣Vjkd∣∣λk∣−1/2
- 用k-means对 U U U聚类出 r r r个聚簇。
-
当 d = m d=m d=m算法取复杂度的上界。
绝大部分情况 d ≪ m d\ll m d≪m的时候,我们优化的优化目标的近似函数。
根据式子(8),可以讨论本算法的分块计算编码方法。
谱聚类会在 d → m d\rightarrow m d→m的时候得不到好结果,而本方法的实验结果证明平均下来本算法不受影响。
W W W的计算方法不受限制(但是要实对称吧)。谱聚类的k近邻法就可以用。
本方法只有参数 k k k和 ϵ ( 有 时 候 是 k 近 邻 的 k ) \epsilon(有时候是k近邻的k) ϵ(有时候是k近邻的k)。
不能决定 k k k挺伤的。
下面有一种启发式决定 ϵ \epsilon ϵ的方法。还有一种计算 k 和 ϵ k和\epsilon k和ϵ敏感度的方法。
四、实验
-
在很多综合生成的数据集上实验。真实数据上比较Normalized Mutual Information。并利用手写数据集对所得到的聚类进行了定性分析。
-
Mutual Information,互信息,MI, 表示两个变量X与Y是否有关系,以及关系的强弱。定义 为:
I ( X ; Y ) = ∑ x ∈ X ∑ y ∈ Y p ( x , y ) l o g ( p ( x , y ) p ( x ) p ( y ) ) I(X;Y)=\sum_{x\in X}\sum_{y\in Y}p(x,y)log(\frac{p(x,y)}{p(x)p(y)}) I(X;Y)=x∈X∑y∈Y∑p(x,y)log(p(x)p(y)p(x,y))
p ( x , y ) 、 p ( x ) 、 p ( y ) p(x, y)、p(x)、p(y) p(x,y)、p(x)、p(y)分别是联合密度函数和边缘密度函数。
互信息量 I ( x i ; y j ) I(xi;yj) I(xi;yj)在联合概率空间 P ( X Y ) P(XY) P(XY)中的统计平均值。 平均互信息 I ( X ; Y ) I(X;Y) I(X;Y)克服了互信 息量 I ( x i ; y j ) I(xi;yj) I(xi;yj)的随机性,成为一个确定的量。直观上,互信息度量 X 和 Y 共享的信息:它度量知道这两个变量其中一个,对另一个不确定 度减少的程度。例如,如果 X 和 Y 相互独立,则知道 X 不对 Y 提供任何信息,反之亦然,所以它 们的互信息为零。在另一个极端,如果 X 是 Y 的一个确定性函数,且 Y 也是 X 的一个确定性函数,那么传递的所有信息被 X 和 Y 共享:知道 X 决定 Y 的值,反之亦然。因此,在此情形互信息与 Y(或 X)单独包含的不确定度相同,称作 Y(或 X)的熵。而且,这个互信息与 X 的熵和 Y 的熵相同。
python有库,要是因为数据量太大库用不了再自己写。
-
实验比较五种算法:
ϵ − n e i g h b o r h o o d \epsilon-neighborhood ϵ−neighborhood的SPECTACL。 ϵ \epsilon ϵ要让90%的点都有是个邻居以上。
正则化的基于 K N N KNN KNN的SPECTACL( G k n n − 1 / 2 W k n n G k n n − 1 / 2 G_{knn}^{-1/2}W_{knn}G_{knn}^{-1/2} Gknn−1/2WknnGknn−1/2)。 k k k取10.
DBSCAN, m i n P t s = 10 minPts=10 minPts=10
normalized Spectral Clustering ,就是n-cut的谱聚类好像。
Robust Spectral Clustering,RSC, d = 10 d=10 d=10 -
用算法得到的聚类结果和Ground Truth算 F − m e s u r e F-mesure F−mesure作为算法的评估标准
-
对噪音的敏感度:。。。
-
一种启发式的确定 ϵ \epsilon ϵ的方法