谱--从矩阵到图形

这几天看到的各种文章中,总会不约而同的出现一个词——谱(spectral)
     一看是看到这个谱,反映出来的是光谱、频谱,这一下把我带到沟里了,怎么想都想不明白。折腾了很久了之后,终于发现,此谱乃数学中的谱。那到底这个神奇的谱是什么呢?
     或许,对于不是学数学出生的同志们来说,第一个接触到谱的概念应该是在线性代数之中的一个角落。可能很多人学过之后就再也记不起来了。现在回忆一下,有一个矩阵A,求得其特征值后,特征值中的最大值是…,哈哈,可能有的同志已经回忆起来了,就是 半径。有了第一印象后,就暂且先把谱理解为矩阵最大的特征值的一个华丽外号吧。这个谱是矩阵的函数,有一个很好的性质就是它的值小于或者等于矩阵的范数。好了,现在肯定会想到,谱有什么用?和图形又有什么关系呢?下面我们就从谱聚类(spectral clustering)来看一看。
     谱聚类可谓是近年来最火的聚类算法(没有之一),貌似完胜大家熟悉的K-means。在流形学习和深度学习中也一度出现它的身影。甚至有人更是硬把谱跟大数据扯上关系,说是大数据成就了谱聚类,但我觉得在没想清楚大数据本质之前就这么炒作还是有点儿过了(大家心中都一个佛,但谁又真的知道佛是什么样子),这个貌似上世纪90年代就有了。在我看来,谱聚类算得上是K-means的一种扩展,或者说K-means可以算是谱聚类的一种特殊情况。再通俗点儿说,K-means方法适用的空间是欧式空间,而谱聚类没有这个限制,就好像一个是在实数域一个是在复数域,更确切的说一个适用于平面一个适用于扭曲的平面。有兴趣的还可以看看黎曼几何的相关知识,广义相对论等高深的理论就是在这儿产生的,按照其中说发我们地球上的重力就是由于这种扭曲造成的,在这儿我就不多说了。好吧,直接看看谱聚类。谱聚类其实就是干的图形分割的事,它的基本想法是在空间中找到几个连通图(几类)同时保证各个连通图中之内的关系最为紧密而之间的关系最为疏远(体现在连接的边上),这就相当于是做了一个图分割。那么又是怎么通过谱这样一个矩阵的方式来作的呢?首先,计算各个点之间的连接边的权重构成矩阵表示,这个可以用很多方法来定义这个权重,也会导致不同的结果。有了权重之后,计算这些点的拉普拉斯矩阵。这个矩阵的求法很简单,把权重矩阵表示中每个点和自己的边的权重(肯定是0)换成自己和另外点的边的权重之和,同时将自己和另外点的权重变为负值就行。这样的拉普拉斯矩阵有很好的性质,它是半正定的矩阵,同时计算上的表现力非常强,这里就不做推导了,有兴趣的看了相关文献就会知道了。然后我们对拉普拉斯矩阵作特征值分解,按从小到大排序后,取前K个(聚成K类)特征值。然后再用k-means的方法对这N个(样本点数)K维(K个特征值)向量进行聚类就完成了。
     在这儿从连接矩阵和图形的,主要就是求谱的对象——拉普拉斯矩阵。真是因为它的性质使得谱聚类完成了图分割干的事。推导过程大家可以看看《A Tutorial on Spectral Clustering》,在这就不写了,CSDN打公式太难了。
     看到这儿,可能还是理解不够透彻。没关系,后续在流形正则化(manifold regularization)中肯定会有更进一步的理解。现在我们可以把谱的概念从矩阵转换到图上了,这对后续理解流形正则化很有帮助。 

你可能感兴趣的:(算法,机器学习,clustering)