LDA原理小结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_16137569/article/details/82385050

  线性判别分析(Linear Discrimination Analysis,LDA)是一种经典的线性学习方法。它既可以用于分类,又可以作为一种降维方法。

1. LDA的基本思想

  LDA基本思想比较简单:给定带有标签的训练样本集,设法将样本投影到一条直线上,使得同类样本的投影点尽可能近,异类样本的投影点尽可能远。如果是进行分类,将新样本投影到同样的这条直线上,根据投影点的位置来确定新样本的类别。

  举个例子,上图给出了两种不同的投影方式,直观上来看右图更好。因为右图中蓝色和红色数据较为集中,且类别之间的距离明显,而左图边界处数据混杂。
  那么如何用数学语言对“同类样本的投影点尽可能近,异类样本的投影点尽可能远”进行表达呢,这里需要引入广义瑞利商。

2. 瑞利商和广义瑞利商

  瑞利商是指这样的函数 R ( A , x )

(1) R ( A , x ) = x H A x x H x
其中 x 为非零向量, A n × n 的Hermitan矩阵(复共轭对称矩阵,即共轭转置矩阵和自己相等,记为 A H = A ),这里我们只讨论实数的情况,所以 A T = A 。瑞利商还有一个很重要的性质:
(2) λ m i n R ( A , x ) λ m a x
其中 λ m i n , λ m a x 是矩阵 A 的最小和最大特征值。
  当 x 是标准正交基时,即 x T x = 1 时,瑞利商退化为 R ( A , x ) = x T A x ,这个形式在谱聚类和PCA中都有出现,比如PCA中是 W T X X T W 的形式(所以说瑞利商和样本投影方差有关?)。
  现在再来看看广义瑞利商的概念:
(3) R ( A , B , x ) = x H A x x H B x
其中 x 为非零向量, A , B n × n 的Hermitan矩阵。通过标准化,可以将广义瑞利商转化为瑞利商的形式。令 x = B 1 2 x ,则(2)变为:
R ( A , B , x ) = x H B 1 2 A B 1 2 x x H B 1 2 B B 1 2 x = x H B 1 A x x H x
根据式(2),我们可以知道, R ( A , B , x ) 的最大值为矩阵 B 1 A 的最大特征值,最小值为 B 1 A 的最小特征值。

3. 二分类LDA原理

  回顾第一节,LDA的思想是设法将样本投影到一条直线上,使得:
  
- 同类样本的投影点尽可能近
- 异类样本的投影点尽可能远
  
  现在我们来讨论一下如何用数学语言表示这两条性质,现在我们首先从比较简单的二类LDA入手,分析LDA原理。


  给定数据集 D = { ( x i , y i ) } i = 1 m ,其中 x i n 维向量, y i { 0 , 1 } 。令 X i , μ i , Σ i 分别表示第 i { 0 , 1 } 类样本的集合、均值向量、协方差矩阵,即:
μ i = 1 | X i | x X i x   ( i = 0 , 1 ) Σ i = x X i ( x μ i ) ( x μ i ) T   ( i = 0 , 1 )
如果将数据投影到直线 w 上,则两类样本的中心在直线上的投影分别为 w T μ 0 w T μ 1 (图中实心圆和实心三角)。所有样本在直线上投影的协方差分别为 w T Σ 0 w w T Σ 1 w 。于是我们可以有下面的结论:
  
- 同类样本的投影点尽可能近 min w T Σ 0 w + w T Σ 1 w
- 异类样本的投影点尽可能远 max w T μ 0 w T μ 1 2 2
  
  所以我们的优化目标为:
(4) arg max w J ( w ) = w T μ 0 w T μ 1 2 2 w T Σ 0 w + w T Σ 1 w = w T ( μ 0 μ 1 ) ( μ 0 μ 1 ) T w w T ( Σ 0 + Σ 1 ) w
我们一般定义类内散度矩阵 S w 为:
(5) S w = Σ 0 + Σ 1 = x X 0 ( x μ 0 ) ( x μ 0 ) T + x X 1 ( x μ 1 ) ( x μ 1 ) T
定义类间散度矩阵 S b 为:
(6) S b = ( μ 0 μ 1 ) ( μ 0 μ 1 ) T
J ( w ) 可重写为:
(7) J ( w ) = w T S b w w T S w w
然后这就是广义瑞利商的形式,那么如何确定 w 呢?
  注意到(7)中分子分母都是关于 w 的二次项,所以(7)的解与 w 大小无关,只与其方向有关,不妨取 w T w = 1 ,即 w 为标准正交基,(4)等价于
(8) arg max w w T S w 1 S b w         s . t .   w T w = 1
然后这又又又又是一个约束优化问题,拉格朗日乘子法走起来,对应的拉格朗日函数为
(9) L ( w , λ ) = w T S w 1 S b w + λ ( w T w 1 )
w 求导并令导数等于0可得:
(10) S w 1 S b w = λ w
和PCA一样的套路,又变成对 S w 1 S b 特征分解的问题了。对于二分类来说, S b w 的方向恒为 μ 0 μ 1 ,不妨令 S b w = λ ( μ 0 μ 1 ) ,代入(10)得:
(11) w = S w 1 ( μ 0 μ 1 )
所以,对于二分类样本,只要求出原始样本的均值和方差就能确定最佳的投影方向 w 了。

4. 多分类LDA原理

  如果是多类向低维投影,则此时投影到的低维空间就不是一条直线,而是一个超平面了。优化目标变为:

(12) arg max w W T S w 1 S b W         s . t .   W T W = 1
W 为低维空间基向量组成的矩阵, W R d × ( N 1 ) ,其中 N 为样本类别数。对于约束优化问题(12),同样利用拉格朗日乘子法可以得到 W 的解是 S w 1 S b d 个最大非零广义特征值所对应的特征向量组成的矩阵, d N 1

5. LDA算法流程

输入: d 维数据集 X = { ( x i , y i ) } i = 1 m y i { 1 , 2 , , N } ,要降到的维度 d
输出:降维后的数据集 X
Step1: 计算类内散度矩阵 S w

S w = i = 1 N x X i ( x μ i ) ( x μ i ) T
Step2: 计算类间散度矩阵 S b
S b = i = 1 N m i ( μ i μ ) ( μ i μ ) T
其中 m i 为第 i 类的样本数目, μ 为所有样本均值向量
Step3: 计算矩阵 S w 1 S b
Step4: S w 1 S b 进行奇异值分解,得到奇异值 λ i 及其对应的特征向量 w i i = 1 , 2 , , N 1
Step5: 取前 d 大的奇异值对应的特征向量组成投影矩阵 W
Step6: 计算样本集中每个样本 x i 在新的低维空间的投影 z i
z i = W T x i

Step7: 得到降维后的样本集 X = { ( z i , y i ) } i = 1 m

5. 小结

  LDA降维和PCA降维有很多相似之处:
  (1) 两者在降维时都使用了特征分解的思想
  (2) 两者都假设数据符合高斯分布,因此LDA和PCA都不适合对非高斯分布的样本进行降维
  相对于PCA,LDA又有所不同:
  (1) LDA是有监督的降维方法,降维过程中可以使用类别的先验知识经验,而PCA不行
  (2) LDA选择分类性能最好的投影方向,而PCA选择最大方差的投影方向,因此LDA有过拟合的风险
  (3) LDA最多能降到 N 1 的维数,如果降维维度大于 N 1 ,则不能使用LDA,而PCA没有这个限制
  (4) 当样本分类信息依赖均值时LDA效果较好;依赖方差的时候PCA效果较好

猜你喜欢

转载自blog.csdn.net/qq_16137569/article/details/82385050
LDA