費雪線性判別

来自testwiki
118.160.130.204留言2024年11月13日 (三) 17:15的版本 两类情况
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转到导航 跳转到搜索

模式识别中,费雪线性判别(Fisher's linear discriminant)是一种线性判别方法,其意图是在分类类别为c类时,将d维空间(样品点是d维向量)中的数据点投影到c-1维空间上去,使得不同类的样本点在这个空间上的投影尽量分离,同类的尽量紧凑。

两类情况

在二类判别时,费雪线性判别将d维空间中的数据点投影到一条直线上去,使得不同类的样本点在这条直线上的投影尽量分离,同类的样本点在这条直线上尽量紧凑。假设有两类样本集𝒟1的类别为ω1,样本数为n1𝒟2的类别为ω2,样本数为n2。定义样本均值mi和类内散布Si

𝐦i=1nix𝒟i𝐱,i=1,2
𝐒i=x𝒟i(𝐱𝐦i)(𝐱𝐦i)t,i=1,2

投影直线的方向向量为w,样本投影在直线上的值为y。则可得两类样本投影后的均值和类内散布为m~is~i2i=1,2。

y=𝐰t𝐱m~i=𝐰t𝐦i,i=1,2
s~i2=y𝒴i(ym~i)2=x𝒟i(𝐰t𝐱𝐰t𝐦i)2=x𝒟i𝐰t(𝐱𝐦i)(𝐱𝐦i)t𝐰=𝐰t𝐒i𝐰

要使不同类的样本点的投影尽量分离,同类尽量紧凑,可以使两类的投影的均值的差异尽量大,其方差的和尽量小,也就是要求|m~1m~2|2s~12+s~22最大化。

𝑱(𝐰)=|m~1m~2|2s~12+s~22=(𝐰t𝐦1𝐰t𝐦2)2𝐰t𝐒1𝐰+𝐰t𝐒2𝐰=𝐰t(𝐦1𝐦2)(𝐦1𝐦2)t𝐰𝐰t(𝐒1+𝐒2)𝐰=𝐰t𝐒𝐁𝐰𝐰t𝐒𝐖𝐰
𝐒𝐁=(𝐦1𝐦2)(𝐦1𝐦2)t,𝐒𝐖=(𝐒1+𝐒2)

可以证明当w满足𝐒𝐁𝐰=λ𝐒𝐖𝐰,即w的方向与𝐒𝐖1(𝐦1𝐦2)相同时,J(w)取得最大值。剩下的问题就是如何求解阈值w0,也就是在这个一维空间中把两类分开的那个点的位置。当J(w)超过w0就判决为某一类别ω,否则就判决为另一类别。然而目前并没有一个通用的选取方法。

在两个类别的分布是多元正态分布,且协方差矩阵相同时,根据贝叶斯决策理论,𝐰=Σ1(𝐮1𝐮2),并且w0是一个与w和先验概率有关的常数。我们可以用样本均值与样本协方差去估计uiΣ。更一般地说,如果我们对投影后的数据进行平滑,或用一维高斯函数进行拟合,ω0就位于使两类的后验概率相同的位置上。

多类情况

费雪线性判别在面对二类判别时,将两类样本向一条直线投影,也就是将数据从d维空间向1维空间投影。这样在面对c个类的判别时,所要做就是将数据从d维空间向c-1维空间投影。这就需要推广投影方程、类间散布矩阵SB和类内散布矩阵SW。从d维空间向c-1维空间的投影是通过c-1投影方程进行的:

yi=𝐰it𝐱,𝐱𝒟ii=1,,c1

这里的𝒟i为第i类的样本集。设𝐲=[y1,y2,,yc1]t𝐖=[w1,w2,,wc1],c-1个方程可以更简练地表达:

𝐲=𝐖t𝐱,𝐲𝒴ii=1,,c1

这里的𝒴i为第i类的样本的投影向量集。类间散布矩阵SB和类内散布矩阵SW可以由总体散布矩阵ST和总体均值向量m推导得到: 𝐦=1n𝐱𝐱=1ni=1cni𝐦i𝐒T=𝐱(𝐱𝐦)(𝐱𝐦)t

𝐒T=i=1c𝐱𝒟i(𝐱𝐦i+𝐦i𝐦)(𝐱𝐦i+𝐦i𝐦)t=i=1c𝐱𝒟i(𝐱𝐦i)(𝐱𝐦i)t+i=1c𝐱𝒟i(𝐦i𝐦)(𝐦i𝐦)T

由此定义类间散布矩阵SB和类内散布矩阵SW

𝐒W=i=1c𝐱𝒟i(𝐱𝐦i)(𝐱𝐦i)t𝐒𝐁=i=1c𝐱𝒟i(𝐦i𝐦)(𝐦i𝐦)T

𝐒T=𝐒W+𝐒𝐁

那么样本数据的投影向量的类间散布矩阵𝐒~𝐁和类内散布矩阵𝐒~𝐖:即为:

𝐒~𝐁=i=1c𝐲𝒴i(𝐦~i𝐦~)(𝐦~i𝐦~)T=𝐖t𝐒𝐁𝐖

𝐒~𝐖=i=1c𝐲𝒴i(𝐲𝐦~i)(𝐲𝐦~i)t=𝐖t𝐒𝐖𝐖

与两类情况类似,要找到某一W使得类内散布尽量小,类间散布尽量大。但这里的类内散布和类间散布不再是一个值,而是一个矩阵。矩阵的行列式是矩阵的特征值的乘积,也就是数据在各个主要方向的方差的积,相当于类别散布超椭球体的体积的平方。故使用行列式来度量散布,这样判别函数即为𝑱(𝐰)=|𝐒~𝐁||𝐒~𝐖|=|𝐖t𝐒𝐁𝐖||𝐖t𝐒𝐖𝐖|

可以证明,当W的列向量wi𝐒𝐁𝐰i=λi𝐒𝐖𝐰i的广义特征向量时,可以使得J(w)最大。因为SB中c个秩为1或0的矩阵相加,而且其中只有c-1个矩阵是相互独立的。所以SB的秩最多为c-1。所以最多只有c-1个特征向量是非零的。

应用

人脸识别

人脸识别中,每一个人脸图像具有大量的像素点。LDA主要用来将特征减少到一个可以处理的数目在进行分类。每一个新的维度都是原先像素值的线性组合,这就构成了一个模板。这样获得的线性组合被称为Fisher faces,而通过主成分分析获得的则称为特征脸

参考文献