1.线性判别分析的目标
类间散度矩阵小,类内散度矩阵大。这个意思就是,同类的点越聚集,而不同类的点越分散。当然前提条件是同一类的样本点符合高斯分布。
2.散度矩阵的定义
C类数据,n个样本点,X为d*n的矩阵,每一个数据点都有d个维度。n_i表示第i类的样本点个数。u_i表示第i类样本点的平均值,注意是对所有n_i个样本点的同一个维度取平均,而u为所有n个样本点的平均,这里仍然是维度的平均组成的向量。
这里需要说明一下,max rank(Sb) = c-1, max rank(Sw) = n-c.
当然也还有总散度矩阵St。St = Sw + Sb 。(公式就不放了)
3.LDA
这里降维主要是利用W(d*d')对X进行操作。Y = W_T * X 转化成d'*n的矩阵。这里的d‘是小于d的,这样才起到降维的作用。降维不是目的,只是手段,评价LDA的好坏的方法还是要回到第一条,使得降维后的样本点类间散度矩阵大,类内散度矩阵小。
这里用到矩阵的2范数和tr的性质。(1) 矩阵的2范数可以写成迹函数。(2)tr(AB)=tr(BA)
迹比问题最大值,可以转化为固定分母为1,max 分子,然后利用拉格朗日求解。
Sb*W = lamba*Sw*W。
当Sw为非奇异矩阵,即Sw可逆,即可左乘Sw的逆,从而求解得到W。W为Sw_-1*Sb的特征向量,lamba为其特征值。
4.LDA存在的问题
(1)当Sw为非奇异矩阵时,则不可求解。注当数据的维度大于样本点个数的时候,容易不可逆。也叫Small Sample Size(SSS)problem.
(2)另一个问题就是rank(Sw_-1*Sb)的问题。rank (Sw_-1*Sb)<= min{rank(Sw_-1),rank(Sb)} = C-1,此时Sw有逆矩阵,即为满秩,没有影响。
意味着max rank(Sw_-1*Sb) = C-1,即可以求解到的W维度最大为C-1。若小于C-1时,容易出现over-lapping,这就是over-reducing 。
5.补充
(1)瑞利商的问题。
这里的广义瑞利商,对应的x为一维向量(d*1),与LDA的目标函数很相似。注意一点LDA的目标函数中的W为d*d'。在某种程度上,可以将求解得到的广义瑞利商的x组成W。通常情况下,W是有要求的。即W_T*W=1。从wi_T*wi=1,wi_T*wj=0。
具体关于瑞利商的内容可以参考张贤达《矩阵分析与应用》。
(2)目标函数的问题
有很多人没有注意规范,直接把tr去掉。(1)矩阵没有除法这个运算(2)默认多类LDA是不能应用广义瑞利商的性质进行求解。因为广义瑞利商中是向量。有的博客中将两者结合起来,并不严谨。
6。LDA改进
(1)针对目标函数。当tr(W_T*Sw*W) = 0,求解目标函数max 。注当L=WR时,tr(L_T*Sw*L) 依然为 0 。具体可以参考一篇文章《A new LDA-based face recognition system which can solve the small sample size problem》
(2)PCA降维,将维度降至n-C。
(3)当然还有很多。。。。可以搜一下SSS overview。Alok Sharma 15年的文章。
看到了很多关于LDA的技术贴,良莠不齐。所以才写了一篇这个,可能有很多细节没有写清楚,大家可以参考一下论文和其他人的博客,也可以在下面留言。
推荐 《Pattern Recognition and Mechine Learning》、《矩阵分析与应用》张贤达、《线性代数及其应用》David C.Lay