LDA的算法小结,希望能够帮助到其他人
来源:互联网 发布:五毒成男捏脸数据 编辑:程序博客网 时间:2024/05/21 17:53
在学习LDA之前,有必要将其自然语言处理领域的LDA区别开来,在自然语言处理领域, LDA是隐含狄利克雷分布(Latent Dirichlet Allocation,简称LDA),他是一种处理文档的主题模型。我们本文只讨论线性判别分析,因此后面所有的LDA均指线性判别分析。
1. LDA的思想
LDA是一种监督学习的降维技术,也就是说它的数据集的每个样本是有类别输出的。这点和PCA不同。PCA是不考虑样本类别输出的无监督降维技术。LDA的思想可以用一句话概括,就是“投影后类内方差最小,类间方差最大”。什么意思呢? 我们要将数据在低维度上进行投影,投影后希望每一种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大。
可能还是有点抽象,我们先看看最简单的情况。假设我们有两类数据 分别为红色和蓝色,如下图所示,这些数据特征是二维的,我们希望将这些数据投影到一维的一条直线,让每一种类别数据的投影点尽可能的接近,而红色和蓝色数据中心之间的距离尽可能的大。
上图中国提供了两种投影方式,哪一种能更好的满足我们的标准呢?从直观上可以看出,右图要比左图的投影效果好,因为右图的黑色数据和蓝色数据各个较为集中,且类别之间的距离明显。左图则在边界处数据混杂。以上就是LDA的主要思想了,当然在实际应用中,我们的数据是多个类别的,我们的原始数据一般也是超过二维的,投影后的也一般不是直线,而是一个低维的超平面。
在我们将上面直观的内容转化为可以度量的问题之前,我们先了解些必要的数学基础知识,这些在后面讲解具体LDA原理时会用到。
2. 瑞利商(Rayleigh quotient)与广义瑞利商(genralized Rayleigh quotient)
我们首先来看看瑞利商的定义。瑞利商是指这样的函数
其中
的矩阵即为Hermitan矩阵。
瑞利商
具体的证明这里就不给出了。当向量
,这个形式在谱聚类和PCA中都有出现。
以上就是瑞利商的内容,现在我们再看看广义瑞利商。广义瑞利商是指这样的函数
其中
而分子转化为:
此时我们的
利用前面的瑞利商的性质,我们可以很快的知道,
的最小特征值。如果你看过我写的谱聚类(spectral clustering)原理总结第6.2节的话,就会发现这里使用了一样的技巧,即对矩阵进行标准化。
3. 二类LDA原理
现在我们回到LDA的原理上,我们在第一节说讲到了LDA希望投影后希望同一种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大,但是这只是一个感官的度量。现在我们首先从比较简单的二类LDA入手,严谨的分析LDA的原理。
假设我们的数据集
为第j类样本的协方差矩阵。
由于是两类数据,因此我们只需要将数据投影到一条直线上即可。假设我们的投影直线是向量
我们一般定义类内散度矩阵
同时定义类间散度矩阵
这样我们的优化目标重写为:
仔细一看上式,这不就是我们的广义瑞利商嘛!这就简单了,利用我们第二节讲到的广义瑞利商的性质,我们知道我们的
的最大特征值对应的特征向量!
注意到对于二类的时候,
了。
4. 多类LDA原理
有了二类LDA的基础,我们再来看看多类别LDA的原理。
假设我们的数据集
为第j类样本的协方差矩阵。在二类LDA里面定义的公式可以很容易的类推到多类LDA。
由于我们是多类向低维投影,则此时投影到的低维空间就不是一条直线,而是一个超平面了。假设我们投影到的低维空间的维度为d,对应的基向量为
的矩阵。
此时我们的优化目标应该可以变成为:
其中
但是有一个问题,就是
都是矩阵,不是标量,无法作为一个标量函数来优化!也就是说,我们无法直接用二类LDA的优化方法,怎么办呢?一般来说,我们可以用其他的一些替代优化目标来实现。
常见的一个LDA多类优化目标函数定义为:
其中
的矩阵。
仔细观察上式最右边,这不就是广义瑞利商嘛!最大值是矩阵
为这最大的d个特征值对应的特征向量张成的矩阵。
由于
的秩最大为k-1,即特征向量最多有k-1个。
5. LDA算法流程
在第三节和第四节我们讲述了LDA的原理,现在我们对LDA降维的流程做一个总结。
输入:数据集
,降维到的维度d。
输出:降维后的样本集$D′$
1) 计算类内散度矩阵
2) 计算类间散度矩阵
3) 计算矩阵
4)计算
5) 对样本集中的每一个样本特征
6) 得到输出样本集
以上就是使用LDA进行降维的算法流程。实际上LDA除了可以用于降维以外,还可以用于分类。一个常见的LDA分类基本思想是假设各个类别的样本数据符合高斯分布,这样利用LDA进行投影后,可以利用极大似然估计计算各个类别投影数据的均值和方差,进而得到该类别高斯分布的概率密度函数。当一个新的样本到来后,我们可以将它投影,然后将投影后的样本特征分别带入各个类别的高斯分布概率密度函数,计算它属于这个类别的概率,最大的概率对应的类别即为预测类别。
由于LDA应用于分类现在似乎也不是那么流行,至少我们公司里没有用过,这里我就不多讲了。
6. LDA vs PCA
LDA用于降维,和PCA有很多相同,也有很多不同的地方,因此值得好好的比较一下两者的降维异同点。
首先我们看看相同点:
1)两者均可以对数据进行降维。
2)两者在降维时均使用了矩阵特征分解的思想。
3)两者都假设数据符合高斯分布。
我们接着看看不同点:
1)LDA是有监督的降维方法,而PCA是无监督的降维方法
2)LDA降维最多降到类别数k-1的维数,而PCA没有这个限制。
3)LDA除了可以用于降维,还可以用于分类。
4)LDA选择分类性能最好的投影方向,而PCA选择样本点投影具有最大方差的方向。
这点可以从下图形象的看出,在某些数据分布下LDA比PCA降维较优。
当然,某些某些数据分布下PCA比LDA降维较优,如下图所示:
7. LDA算法小结在主成分分析(PCA)原理总结中,我们对降维算法PCA做了总结。这里我们就对另外一种经典的降维方法线性判别分析(Linear Discriminant Analysis, 以下简称LDA)做一个总结。LDA在模式识别领域(比如人脸识别,舰艇识别等图形图像识别领域)中有非常广泛的应用,因此我们有必要了解下它的算法原理。
在学习LDA之前,有必要将其自然语言处理领域的LDA区别开来,在自然语言处理领域, LDA是隐含狄利克雷分布(Latent Dirichlet Allocation,简称LDA),他是一种处理文档的主题模型。我们本文只讨论线性判别分析,因此后面所有的LDA均指线性判别分析。
- LDA的算法小结,希望能够帮助到其他人
- 希望能够得到高手朋友们的帮助
- 来到了csdn,希望来到这里能够学习到更多的东西,帮助更多的朋友
- 第一次学习写博客。有些激动,希望自己的总结能够帮助到别人,也希望自己日后总结时能够做到提醒自己。
- 一个轻松制作和处理矢量图的工具和方法, 希望对大家能够有帮助
- 分享本人累积多年的java开发视频,希望能够对大家有所帮助!
- 希望能够多多的学习
- IOS常用第三方库,自己mark下,希望对其他人有帮助
- 自定义相机所踩的坑,现在分享出来希望能够帮助的有需要的小伙伴
- 学习Java需要达到的25个目标,希望能够对你的学习及找工作有所帮助
- 一个Exchange 2010 的密码不定期弹框的问题处理,希望对大家能够有所帮助。
- java给Excel文件加密(非只读加密打开文件的加密)希望能够给大家点帮助。
- 希望得到大家的帮助
- 希望能够认识更多的朋友
- 希望能够学到更多的知识
- 希望HTC能够收购Palm的webOS
- C/C++的从入门到高手的pdf宝典,希望对您有帮助
- 一个cocoapods问题的解决,希望能帮助到遇到类似情况的人
- winhex 手工恢复佳能70D视频过程
- 走进数据结构之排序(三)---冒泡排序
- Ubuntu下添加开机启动项的2种方法
- 第一次机房收费系统 “登录”
- Jenkins---安装及配置/jenkins环境搭建
- LDA的算法小结,希望能够帮助到其他人
- 如何查看本地maven仓库地址
- Data Member的布局
- Unity 总裁 John Riccitiello 发话:VR足以匹敌互联网
- Eclipse中已安装的插件如何卸载
- 简单的helloworld 之行
- 第五节:Maven仓库(上)
- golang使用gRPC创建双向流模式
- MyEclipse安装