Linear Discriminant Analysis(線性判別分類器)是對費舍爾的線性鑒別方法(FLD)的歸納,屬於監督學習的方法。
LDA的基本思想是將高維的模式樣本投影到最佳鑒別矢量空間,以達到抽取分類信息和壓縮特征空間維數的效果,投影后保證模式樣本在新的子空間有最大的類間距離和最小的類內距離,即模式在該空間中有最佳的可分離性。因此,它是一種有效的特征抽取方法。使用這種方法能夠使投影后模式樣本的類間散布矩陣最大,並且同時類內散布矩陣最小。就是說,它能夠保證投影后模式樣本在新的空間中有最小的類內距離和最大的類間距離,即模式在該空間中有最佳的可分離性。
預備知識
協方差與協方差矩陣
協方差
協方差分為隨機變量的協方差和樣本的協方差。
隨機變量的協方差
跟數學期望、方差一樣,是分布的一個總體參數。協方差是對兩個隨機變量聯合分布線性相關程度的一種度量。兩個隨機變量越線性相關,協方差越大,完全線性無關,協方差為零。定義如下。
$$cov\left(X,Y\right)=E\left[\left(X-E\left[X\right])(Y-E\left[Y\right]\right)\right]$$
因為變量尺度不同,所以不能用若干協方差的大小作為相關性強弱的比較。因此引入相關系數,本質上是對協方差進行歸一化。
$$\eta=\frac{cov\left(X,Y \right )}{\sqrt{var\left(X \right )\cdot var\left(Y \right )}}$$
取值范圍[-1,1]。
樣本的協方差
對於現有的m個樣本,每個樣本均具有n維屬性,每一維屬性我們都可以將其看作是一個隨機變量。每一個樣本$x_j =\left[x_{1j} ,...,x_{nj} \right ]$。那么我們就可以考察樣本集中,兩個隨機變量(兩屬性)間的線性關系。計算和隨機變量的協方差一致。
$$q_{ab}=\frac{\sum_{j=1}^{m}\left(x_{aj}-\bar{x}_a \right )\left(x_{bj}-\bar{x}_b \right )}{m-1}$$
因為在這里我們只有樣本,隨機變量的數學期望未知,用樣本均值代替,所以自由度減一得到m-1。
協方差矩陣
多維隨機變量的協方差矩陣
考慮多維隨機變量,那么原先的兩變量之間的協方差就可以擴展為多維隨機變量中任意兩變量之間的協方差,並進一步構造成協方差矩陣。
$$\Sigma_{i,j}=cov\left(X_i,X_j \right )\\ \Sigma=E\left[\left(X-E\left[X \right ] \right )\left(X-E\left[Y \right ] \right )^T \right ]$$
此時對角線上是各維度的方差,其余均為兩維度之間的協方差。
一般來說,我們希望各維度之間可以相互比較,換言之需要對樣本進行歸一化。
那么定義
$$z_{j\cdot}=\frac{x_{i\cdot}-\bar{x}_i}{\sigma_i}$$
$\bar{x}_i$表示樣本整體在維度i的均值,$\sigma_i$表示維度i上的方差。
$$\hat{\Sigma}=\frac{1}{m-1}\sum_{j=1}^m{z_{\cdot j}{z_{\cdot j}}^T}$$
這樣矩陣內的元素就具有可比性!
散度矩陣
散度矩陣表示為
$$S_i=\sum_{j=1}^m{z_{\cdot j}{z_{\cdot j}}^T}$$
也就是不除以自由度的協方差矩陣。
類內散度矩陣$S_W=S_i+S_j$
類間散度矩陣$S_B=\left(\vec{\mu_i}-\vec{\mu_j} \right )\left(\vec{\mu_i}-\vec{\mu_j} \right )^T$
算法解釋
LDA本質上是要$\max\limits_w {\frac{w^TS_Bw}{w^TS_Ww}}$,將類內散度矩陣和類間散度投影到直線上,並得出到原點的距離。選擇合適的向量使得比值最大。
求解
設
$$J\left(w \right )=\frac{w^TS_Bw}{w^TS_Ww}$$
因為分子分母都為w的二次項,那么與的w模長無關。
不妨設
$$w^TS_Ww$$
可以得出
$$\min \limits_{w}{-w^TS_Bw}\\s.t.\quad w^TS_Ww=1$$
可以運用拉格朗日乘子法
$$l\left(w,\lambda \right )=-w^TS_Bw+\lambda\left(w^TS_Ww-1 \right )\\\frac{\partial l\left(w,\lambda \right )}{\partial w}=-\left(S_B+{S_B}^T\right)w+\lambda\left(S_W+{S_W}^T \right )w=0\\S_Bw=\lambda S_Ww$$
注意到$S_B=\left(\vec{\mu_i}-\vec{\mu_j}\right)\left(\vec{\mu_i}-\vec{\mu_j}\right)^T$
$$\left(\vec{\mu_i}-\vec{\mu_j}\right)\left(\vec{\mu_i}-\vec{\mu_j}\right)^Tw=\lambda S_Ww$$
$\left(\vec{\mu_i}-\vec{\mu_j}\right)^Tw$得到的是一個標量,$\lambda$也是標量,所以
$$w\propto {S_W}^{-1}\left(\vec{\mu_i}-\vec{\mu_j} \right )$$
因為我們只需要知道w的方向,所以具有原始樣本的均值和方差就可以得到答案。