在个人总结: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。
。对两个类别的中心点,其中,.
在ω的投影为和。由于要让不同类别数据中心之间的距离尽可能的大,也就是我们要最大化,可以发现当ω方向与方向一致时,该距离达到最大值。
但是会发现按照最大化两类投影中心距离的准则,会将样本点投影到下方黑线上,经过投影有了一部分重叠,显然没办法接受。
所以有了最小化类内距离。现在就需要优化类内方差,使其尽可能小。
我们首先表示出两类的方差
D1就可以表示为协方差矩阵的形式,以及D2同理,即最小化。所以优化目标为
定义类内散度矩阵Sw为:
定义类间散度矩阵Sb为:
优化目标重写为:
由于在简化二分类问题中和是两个数,令
于是
整理得
可以看出最大化的目标对应了一个矩阵的特征值,这其实就是广义瑞利商。于是LDA降维变成了一个求矩阵特征向量的问题。J(ω)就对应了矩阵最大的特征值,而投影方向就是这个特征值对应的特征向量。
对于二分类问题,始终与方向一致,所以如果只考虑ω的方向不考虑长度,可以得到
.也就是说,二分类时,只要求得类内均值和类内方差,就可得到最佳的投影方向。
多类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对数据的分布做了很强大假设,比如,每个类的数据都是高斯分布。这些假设在实际中并不一定完全满足。