作者丨DeAlVe
学校丨某211硕士生
研究方向丨模式识别与机器学习
线性判别分析(Linear Discriminant Analysis, LDA)是一种有监督降维方法,有关机器学习的书上一定少不了对 PCA 和 LDA 这两个算法的介绍。LDA 的标准建模形式是这样的(这里以两类版本为例,文章会在几个关键点上讨论多类情况):
其中,是类间散布矩阵,是类内散布矩阵, w 是投影直线:
怎么样,一定非常熟悉吧,经典的 LDA 就是长这个样子的。这个式子的目标也十分直观:将两类样本投影到一条直线上,使得投影后的类间散布矩阵与类内散布矩阵的比值最大。
三个加粗的词隐含着三个问题:
1. 为什么是类间散布矩阵呢?直接均值之差 m1-m2 不是更符合直觉吗?这样求出来的解和原来一样吗?
2. 为什么是投影到直线,而不是投影到超平面?PCA 是把 d 维样本投影到 c 维 (c<d),LDA 为什么不能也投影到 c 维,而是直接投影到 1 维呢?同样地,在 K 类 LDA 中,为什么书上写的都是投影到 K-1 维,再高一点不行吗?这是必然吗?
3. 为什么是类间散布与类内散布的比值呢?差值不行吗?
这篇文章就围绕这三个问题展开。我们先回顾一下经典 LDA 的求解,然后顺次讲解分析这三个问题。
回顾经典LDA
原问题等价于这个形式:
然后就可以用拉格朗日乘子法了:
求导并令其为 0:
得到解:
对矩阵进行特征值分解就可以得到 w。但是有更简单的解法:
而其中是一个标量,所以和 λw 共线,得到:
求解完毕。非常优雅,不愧是教科书级别的经典算法,整个求解一气呵成,标准的拉格朗日乘子法。但是求解中还是用到了一个小技巧:是标量,从而可以免去特征值分解的麻烦。
那么,我们能不能再贪心一点,找到一种连这个小技巧都不需要的求解方法呢?答案是可以,上面的问题在下一节中就能得到解决。