个人总结:降维 从 PCA 到 LDA

个人总结:PCA中,对PCA的原理以及理由进行了一个概述,PCA应该是降维领域名声最大的算法,但是提到PCA,就不得不联想到另外一个名气也不小的降维算法 LDA : Linear Discriminant Analysis,线性判别分析。它在模式识别领域(人脸识别等图像识别领域)用途广泛。同时需要区分自然语言处理的LDA : Latent Dirichlet Allocation, 隐含狄利克雷分布。下面讲到的是线性判别分析。

LDA的目的

这里就需要和PCA进行区分了。PCA是无监督降维技术,面对的是没有类别的数据,而LDA不同,它是有监督降维技术,面对的是类别标记的数据。同时,PCA的目的是在投影后“在特征向量对应的维度最大投影方差”,而LDA的目的是“类内的方差最小化,类间的方差最大化”。用一张图进行理解。

右图相对于左图就更符合LDA的目的。当然实际应用中,数据是多个类别的,原始数据一般也是超过二维的,投影后一般也不是一条直线,而是一个低维的超平面。

首先了解一下瑞利商

瑞利商在LDA的地位就如同协方差矩阵在PCA的地位。

这样的函数R(A, x)

其中x为非零向量,而A为n x n的Hermitan矩阵。Hermitan矩阵即是满足的矩阵,如果矩阵A是实矩阵,则满足的矩阵即为Hermitan矩阵。

瑞利商的重要性质,它的最大值等于矩阵A的最大特征值,最小值等于矩阵A的最小特征值,

当x为标准正交基时,瑞利商退化为

而我们之后要用到的广义瑞利商R(A,B,x):


x为非零向量,而A,B为n x n的Hermitan矩阵。B为正定矩阵,对任意非零向量z,都有 zTBz > 0。

现在有一个问题是想要知道广义瑞利商的最大值和最小值。

首先令

这里B^(-1/2)要求B一定为正定矩阵。内部细节为:存在一个正交矩阵Q,使得B=Q^{T}AQ, A是一个对角矩阵,且对角线上元素均大于0。将A上对角元素开根号,得到B=Q^{T}AQ=Q^{T} A^{1/2}QQ^{T}A^{1/2} Q,于是 B^{1/2}=Q^{T}A^{1/2}Q,故 B^{-1/2}=Q^{T}A^{-1/2}Q.

则分母转化为:


而分子转化为:

最后

于是原广义瑞利商的最大值便为矩阵或者的最大特征值,最小值即为它的最小特征值。

LDA的过程:为什么这么做

二类LDA

这里已经和PCA有了区别,为带标签数据,其中yi∈{0,1}。

假设为第j类(j = 0, 1)样本的均值向量。为第j类样本的协方差矩阵。

由于是两类数据,所以只需将数据投影到一条直线,假设这条直线是向量w,则对任意一个样本xi,它在直线的投影为wTxi。

。对两个类别的中心点,其中\mu _{0} = \frac{1}{N_{0}} \underset{x\in C_{0}}{\sum}x,\mu _{1} = \frac{1}{N_{1}} \underset{x\in C_{1}}{\sum}x.

在ω的投影为。由于要让不同类别数据中心之间的距离尽可能的大,也就是我们要最大化,可以发现当ω方向与\mu_{0}-\mu _{1}方向一致时,该距离达到最大值。

但是会发现按照最大化两类投影中心距离的准则,会将样本点投影到下方黑线上,经过投影有了一部分重叠,显然没办法接受。

所以有了最小化类内距离。现在就需要优化类内方差,使其尽可能小

我们首先表示出两类的方差

D1就可以表示为协方差矩阵的形式,以及D2同理,即最小化。所以优化目标为

定义类内散度矩阵Sw为:

定义类间散度矩阵Sb为:

优化目标重写为:

由于在简化二分类问题中是两个数,令

于是

整理得

可以看出最大化的目标对应了一个矩阵的特征值,这其实就是广义瑞利商。于是LDA降维变成了一个求矩阵特征向量的问题。J(ω)就对应了矩阵最大的特征值,而投影方向就是这个特征值对应的特征向量。

对于二分类问题,始终与方向一致,所以如果只考虑ω的方向不考虑长度,可以得到

\omega = S_{w}^{-1}\left ( \mu _{0}-\mu _{1} \right ).也就是说,二分类时,只要求得类内均值和类内方差,就可得到最佳的投影方向

多类LDA

与上面数据集的区别在于 yi∈{C1,C2, ..., Ck}。此时假设对应的基向量为,组成的矩阵为W,是一个n x d矩阵。

此时优化目标变为

,其中Sb为,Nj为第j类样本的个数,μ为所有样本均值向量。

,Xj为第j类样本集合。

但是,目前的优化目标分子和分母都是矩阵,不是标量,无法作为一个标量函数来实现。只能用其他的替代优化目标来实现。

常见的一个多类LDA优化目标函数定义为:

∏diagA这个符号表示A的主对角线的乘积。W为n x d矩阵。

这个优化过程可以转化为:

所以右边实际上最大为的最大的d个特征值的乘积。对应的W为这最大的d个特征值对应的特征向量张成的矩阵。

由于W是一个利用了样本类别得到的投影矩阵,因此降维的维度d的最大值为k-1。因为Sb中每个μj−μ的秩为1,因此协方差矩阵相加后最大的秩为k(矩阵的秩小于等于各个相加矩阵的秩的和),但由于我们知道前k-1个μj后最后一个μk可以以由前k-1个μj线性表示,因此Sb的秩最大为k-1,即特征向量最多有k-1个。

算法流程

输入数据集。

(1)计算类内散度矩阵Sw。

(2)计算类间散度矩阵Sb。

(3)计算矩阵

(4)计算的最大的d个特征值和对应的d个特征向量(w1,w2,...wd),得到投影矩阵W

(5)对每一个样本特征xi转化为新的样本zi = WTxi

LDA vs PCA

相同点:

(1)两者均可以对数据进行降维

(2)两者在降维时均使用了矩阵特征分解的思想

(3)两者都假设数据符合高斯分布

不同点:

(1)LDA是有监督降维,PCA是无监督降维

(2)LDA维数最多降维到k-1的维数(如果想要降维到大于这个维数则不能使用LDA,当然目前也出现了改进方法可以突破这个限制),PCA则没有限制

(3)LDA除了降维还可以进行分类

(4)LDA选择类间方差最大,类内方差最小的投影方向(分类性能最好),而PCA选择样本点投影具有最大方差的方向。

如图所示:

某些情况下PCA比LDA降维较优,如图所示:

红蓝分别代表两类数据。

LDA总结

虽然可以用来分类,但LDA主要用途还是进行降维。在图像识别相关的数据分析时是一个有力工具。

主要优点:

(1)在降维中可以使用类别这样的先验。而PCA由于是无监督降维便无法使用。

(2)LDA在样本分类信息依赖均值而不是方差的时候,比PCA较优。(因为LDA牵扯到均值和方差,而PCA仅牵涉到方差)

主要缺点:

(1)LDA与PCA都不太适合对非高斯分布样本进行降维

(2)LDA最多只能降到k-1维数,如果大于k-1则无法使用LDA。目前已经出现了进化版本可以解除这个限制。

(3)LDA在样本分类信息依赖方差而不是均值的时候,降维效果不好。

(4)LDA可能过拟合。

(5)LDA对数据的分布做了很强大假设,比如,每个类的数据都是高斯分布。这些假设在实际中并不一定完全满足。

发布了94 篇原创文章 · 获赞 137 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/yyhhlancelot/article/details/90705616