拉普拉斯矩阵(Laplace Matrix)与瑞利熵(Rayleigh quotient)
作者:桂。
时间:2017-04-13 07:43:03
链接:http://www.cnblogs.com/xingshansi/p/6702188.html
声明:欢迎被转载,不过记得注明出处哦~

前言
前面分析了非负矩阵分解(NMF)的应用,总觉得NMF与谱聚类(Spectral clustering)的思想很相似,打算分析对比一下。谱聚类更像是基于图(Graph)的思想,其中涉及到一个重要概念就是拉普拉斯矩阵(Laplace matrix),想着先梳理一下这个矩阵:
1)拉普拉斯矩阵基本定义
2)拉普拉斯矩阵意义及性质
3)瑞利熵(Rayleigh quotient)
内容为自己的学习记录,很多地方都借鉴了别人,最后一并给出链接。
一、拉普拉斯矩阵基本定义
对于图G,一般用点的集合V和边的集合E来描述:G(V,E)。现在有这样一个图,如何定义拉普拉斯矩阵呢?这里涉及到两个常用矩阵:邻接矩阵、度矩阵。

从最简单的应用入手,不同数据点相通权重为1,不相通权重为0.
首先求解邻接矩阵W:

将每一列求和,这个数值的对角形式对应就是度矩阵D:
$d_i = \sum\limits_{j=1}^{n}w_{ij}$
写成矩阵形式:
$\mathbf{D} = \left( \begin{array}{ccc} d_1 & \ldots & \ldots \\ \ldots & d_2 & \ldots \\ \vdots & \vdots & \ddots \\ \ldots & \ldots & d_n \end{array} \right)$

从而得到拉普拉斯矩阵L的定义:
$L= D-W$

二、拉普拉斯矩阵意义及性质
不失一般性,$v_i$与$v_j$的权重不再是1而是$w_{ij}$,$f(v_i)$表示节点$v_i$的函数,对应实际应用它可以是一个概率值、一个像素值等等。
对任意向量$f$,

这样一来,拉普拉斯矩阵的意义就比较明显了,它是一种基于欧式距离的测度,如果$w_{ij} = 1$,上式对应就是多有数据点的距离之和,同时也可以看出:D对应二次项,W对应不同一次项相乘。拉普拉斯矩阵是半正定的,且对应的n个实数特征值都大于等于0,即:$0 =\lambda_1 \leq \lambda_2 \leq... \leq \lambda_n$。
三、瑞利熵
提到拉普拉斯矩阵,就不能不提瑞利熵。
A-普通瑞利熵
给出定义:

因为对h幅值进行条件,不会影响R的取值,同时也不会改变h向量的方向,对于一般优化问题(以max为例,其他类似):

可以转化为拉格朗日乘子问题:

c为常数,即:

可以看出:
- R的最大值就是L最大特征值,R的最小值就是L最小特征值
- h的解,就是L对应的特征向量
是不是很熟悉啊?
- 简单回顾一下主成分分析(PCA)算法:
设p为矩阵A的单位投影矩阵,最大化投影结果:
PCA就是瑞利熵理论的一个应用。
后面分析谱聚类(Spectral clustering),其中RatioCut算法也是瑞利熵的一个应用。
B-泛化瑞利熵
为什么叫泛化呢?对于

可以看到分子是一般形式,而分母是${{h^*}Dh}$在D取单位阵时的特殊情况,将其一般化:

同理可以得到:

适当变形:

这个时候表达式就是:

又回到了普通瑞利熵问题,求解就方便了。
- 简单回顾一下Fisher线性判别分析(Linear discriminant analysis, LDA)算法:
Fisher判别准则函数:
分子分母分别是类内、类间距离。这个准则函数就是泛化瑞利熵的形式。
LDA是泛化瑞利熵的一个应用。
后面分析谱聚类(Spectral clustering),其中NCut算法也是泛化瑞利熵的一个应用。
参考:
瑞利熵:https://en.wikipedia.org/wiki/Rayleigh_quotient
拉普拉斯矩阵:http://www.cnblogs.com/pinard/p/6221564.html
拉普拉斯矩阵(Laplace Matrix)与瑞利熵(Rayleigh quotient)的更多相关文章
- 拉普拉斯矩阵(Laplacian Matrix) 及半正定性证明
摘自 https://blog.csdn.net/beiyangdashu/article/details/49300479 和 https://en.wikipedia.org/wiki/Lapla ...
- SC3聚类 | 拉普拉斯矩阵 | Laplacian matrix | 图论 | R代码
Laplacian和PCA貌似是同一种性质的方法,坐标系变换.只是拉普拉斯属于图论的范畴,术语更加专业了. 要看就把一篇文章看完整,再看其中有什么值得借鉴的,总结归纳理解后的东西才是属于你的. 问题: ...
- 拉普拉斯矩阵(Laplacian matrix)
原文地址:https://www.jianshu.com/p/f864bac6cb7a 拉普拉斯矩阵是图论中用到的一种重要矩阵,给定一个有n个顶点的图 G=(V,E),其拉普拉斯矩阵被定义为 L = ...
- graph Laplacian 拉普拉斯矩阵
转自:https://www.kechuang.org/t/84022?page=0&highlight=859356,感谢分享! 在机器学习.多维信号处理等领域,凡涉及到图论的地方,相信小伙 ...
- R语言编程艺术# 矩阵(matrix)和数组(array)
矩阵(matrix)是一种特殊的向量,包含两个附加的属性:行数和列数.所以矩阵也是和向量一样,有模式(数据类型)的概念.(但反过来,向量却不能看作是只有一列或一行的矩阵. 数组(array)是R里更一 ...
- 【Math for ML】矩阵分解(Matrix Decompositions) (下)
[Math for ML]矩阵分解(Matrix Decompositions) (上) I. 奇异值分解(Singular Value Decomposition) 1. 定义 Singular V ...
- 【Math for ML】矩阵分解(Matrix Decompositions) (上)
I. 行列式(Determinants)和迹(Trace) 1. 行列式(Determinants) 为避免和绝对值符号混淆,本文一般使用\(det(A)\)来表示矩阵\(A\)的行列式.另外这里的\ ...
- R语言编程艺术#02#矩阵(matrix)和数组(array)
矩阵(matrix)是一种特殊的向量,包含两个附加的属性:行数和列数.所以矩阵也是和向量一样,有模式(数据类型)的概念.(但反过来,向量却不能看作是只有一列或一行的矩阵. 数组(array)是R里更一 ...
- NumPy 矩阵库(Matrix)
NumPy 矩阵库(Matrix) NumPy 中包含了一个矩阵库 numpy.matlib,该模块中的函数返回的是一个矩阵,而不是 ndarray 对象. 一个 的矩阵是一个由行(row)列(col ...
随机推荐
- 每天一个linux命令(39)--ifconfig命令
许多人非常熟悉Windows下的ipconfig 命令行工具,它被用来获取网络接口配置信息并对此进行修改.Linux系统拥有一个类似的工具,也就是ifconfig(interfaces config ...
- linux中添加环境变量(python为例)
最近想用Django搭建个人博客,之前学了些python基础语法,准备边学习Django边实战操作.自己有一个阿里云服务器,用的centOS,自带的是python2.7版本,我直接安装了python3 ...
- JavaScript的连续赋值的思考
下面是一个连续赋值的例子: 在这里面,先创建a对象并添加n:1,然后将a对象赋值给b,这时候a和b引用同一个对象.最后我们要着重理解这最后一行代码 a.x = a = {n:2}; 按照我们平常的思维 ...
- WeMall商城系统的Android app商城中的wemall-mobile代码
wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改. [适合研究学习,支持wemall3.x版本] 1.快 ...
- 1856: [Scoi2010]字符串
1856: [Scoi2010]字符串 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 847 Solved: 434[Submit][Status] D ...
- php简单分页
<?php //详情联系QQ:1195989301 自己引用数据库类文件 $c = $db->get_one("select count(*) from `{$DT_PRE}br ...
- Vue学习之路---No.5(分享心得,欢迎批评指正)
同样,首先我们还是回顾一下昨天讲到的东西: 1.常用的Vue修饰器 2.当利用js方法不修改数据,但也可以改变视图时,我们需要整体返回再整体接收 (如: items.example1 = items. ...
- ORM-Dapper学习<一>
ORM 框架简介 对象-关系映射(Object/Relation Mapping,简称ORM),是随着面向对象的软件开发方法发展而产生的.面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关 ...
- 关于struts2中的default-action-ref
struts2中的default-action-ref一般用于,在请求无效或错误时将请求指引到错误页面.我这次的用法是在请求首页之前先发送请求到后台,进行数据获取后再转至首页显示,但是出了一个问题,d ...
- 深入浅出数据结构C语言版(5)——链表的操作
上一次我们从什么是表一直讲到了链表该怎么实现的想法上:http://www.cnblogs.com/mm93/p/6574912.html 而这一次我们就要实现所说的承诺,即实现链表应有的操作(至于游 ...

