二维线性判别分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二维线性判别分析
摘要
线性判别分析(LDA)是一个常用的进行特征提取和降维的方法。在许多涉及到高维数据,如人脸识别和图像检索的应用中被广泛使用。经典的LDA方法固有的限制就是所谓的奇异性问题,即当所有的散列矩阵是奇异的时,它就不再适用了。比较有名的解决奇异性问题的方法是在使用LDA方法之前先用主成分分析(PCA)对数据进行降维。这个方法就叫做PCA+LDA,在人脸识别领域被广泛应用。然而,由于涉及到散列矩阵的特征值分解,这个方法在时间和空间上都需要很高的成本。
在本文中,我们提出了一种新的LDA算法,叫做2D-LDA,即二维线性判别分析方法。2D-LDA方法彻底解决了奇异性问题,并且具有很高的效率。2D-LDA和经典LDA之间主要的区别在于数据表示模型。经典LDA采用矢量表示数据,而2D-LDA使用矩阵表示数据。我们对2D-LDA+LDA,即如何结合2D-LDA和经典LDA,在经典LDA之前使用2D-LDA进一步降维的问题进行了研究。将本文提出的算法应用于人脸识别,并与PCA+LDA进行了比较。实验表明:2D-LDA+LDA的方法识别更精确,并且效率更高。
1概述
线性判别分析[2][4]是一个著名的特征提取和降维的方法。已经被广泛应用于人脸识别[1]、图像检索[6]、微列阵数据分类[3]等应用中。经典的LDA算法就是将数据投影到低维的向量空间,使类间距离和类内距离的比值最大化,从而得到最佳的分类效果。最佳的投影方向可以通过散列矩阵的特征值分解计算得到。经典LDA算法的一个限制是其目标函数的散列矩阵必须是奇异的。对于许多应用了,如人脸识别,所有散列矩阵的问题都可以是奇异的,因为其数据都是高维的,并且通常矩阵的尺寸超过了数据点的额数目。这就是所谓的“欠采样或奇异性问题[5]”。
近年来,许多用于解决这种高维、欠采样问题的方法被提出,包括伪逆LDA、PCA+LDA和正则LDA。在文献[5]中可以了解更多细节。在这些LDA的扩展方法中,PCA+LDA受到了广泛的关注,尤其实在人脸识别领域[1]。这个方法包括两个阶段,其中一个阶段就是在LDA方法之前使用PCA对数据进行降维。以前
的LDA 扩展一般是大型矩阵的特征值分解计算,这不仅降低了效率,也使得它很难扩展到大型数据集。
在本文中,我们提出了一种新的方法来解决此前的LDA 扩展的特征分解计算的问题。新颖之处在于它采用了不同的数据表示模型。在这种模式下,每个数据被表示为一个矩阵,而不是一个向量,并且数据集被表示为矩阵的集合,而不是一个单一的大矩阵。这种模式在文献[7][8][9]中被用于对SVD 和PCA 的泛化。不同于经典的LDA ,我们考虑的是数据在二维空间中的投影。在第3节中,我们将降维问题规划为一个优化问题。不同于经典的LDA ,没有已有的解决优化问题的方法,于是,我们探索得到了一个新的方法,即2D-LDA 。为了更进一步降低数据的维数,我们将2D-LDA 和LDA 进行了结合,即2D-LDA+LDA 。
我们在三个著名的人脸数据集上对2D-LDA 、2D-LDA+LDA 方法进行了测试,和目前被广泛应用于人脸识别的PCA+LDA 方法进行了比较。
实验结果表明:
1、2D-LDA 方法适用于高维采样数据,如人脸图像,并且不用考虑经典LDA 方法的奇异性问题。
2、2D-LDA 和2D-LDA+LDA 相较于PCA+LDA 方法在时间和空间上的消耗明显降低,而识别精度相差不多。
2LDA 概述
在这个部分,我们对经典的LDA 方法进行了简单的介绍。
给定一个数据矩阵A ∈R N ×n ,经典的LDA 旨在找到一个变换G ∈R N ×ℓ,对于A 的每一列a i ,在N 维空间中对应在L 维空间的向量b i 。即:
G :a i ∈R N →b i =G T a i ∈R ℓ(ℓ 同样的,经典LDA 方法旨在找到一个向量空间G 包含 g i i =1ℓ,其中G = g 1,g 2,….,g ℓ ,这样,每一个a i 通过 g 1T ∙a i ,…,g ℓT ∙a i T ∈R ℓ投射到向量空间G 中。 假定初始数据被分为k 个类A = ∏1,…,∏k ,其中∏i 包含了第i 类的n i 个数据点,并且 n i k i =1=n 。经典LDA 旨在找到这样的最佳转换G 使得原始高维类的结构保存在低维空间中。 一般来说,如果每个类都是紧密分组,但能够很好的与其他类分离开来,那么称这个为高质量集群。在判别分析中,定义两个矩阵来衡量集群质量: 类内散列度矩阵S w : S w = x −m i x −m i T x∈∏i k i =1 类间散列度矩阵S b : S b = n i m 1−m 2 m 1−m 2 T k i =1 其中 m i =1n i x x∈∏i 表示第i 类的中心点, m =1 x x∈∏i k i =1 表示全局中心点。 通过S w 和S b 可以很容易的计算出类内向量距离和类间距离。在线性变换G 产生的低维空间(或线性投影向量空间G )中,类内距离矩阵和类间距离矩阵是: S b L =G T S b G ,S w L =G T S w G . 一个最佳变换G 能够最大化S b L ,最小化S w L 。线性判别中常见的优化方法包 括(见[4]): max G trace S 2L −1S b L and min G trace S b L −1S w L (1) 等价于下面的广义特征值问题: S b x =λS w x ,λ≠0 如果S b 是非奇异的,则有k-1个对应的特征矩阵向量的非零特征值。因此,经典的LDA 算法最多降维k-1。一个稳定的计算特征值分解的方法是应用SVD 的散射矩阵,可在文献[6]了解细节。 3二维线性判别分析 本文提出的2D-LDA 和经典LDA 最大的不同在于数据的表示模型。经典的LDA 使用矢量表示数据,2D-LDA 使用矩阵表示数据。在本节我们将看到,2D-LDA 的数据矩阵表示模型导致了更小尺寸的矩阵的特征分解。更具体地说,2D-LDA 的特征分解的矩阵尺寸为r ×r 和c ×c ,它比经典LDA 的矩阵尺寸更小,这大大减少了LDA 算法的时间和空间复杂度。 不同于经典的LDA ,2D-LDA 认为 ℓ1×ℓ2 维空间ℒ⨂ℛ是以下两个空间的张量积: