五、 线性判别分析 LDA

线性判别分析(Linear Discriminant Analysis,LDA)是一种经典的有监督数据降维方法,同时也经常被用来对数据进行降维。它是 Ronald Fisher 在 1936 年发明的,因此也称为是 Fisher Discriminant Analysis (FDA)。

1 LDA 原理

LDA 是为了分类服务的,因此目标是希望找到一个投影方向 w w w,使得投影后的样本尽可能按照原始类别分开。

假设现有数据集 D = ( x 1 , y 1 ) , ( x 1 , y 1 ) , ⋅ ⋅ ⋅ , ( x n , y n ) D = {(x_1, y_1), (x_1, y_1), \cdot \cdot \cdot ,(x_n, y_n)} D=(x1,y1),(x1,y1),,(xn,yn),其中任意样本 x i x_i xi m m m 维向量,数据集中共有 K K K 个类别。定义 N j N_j Nj 为第 j j j 类样本的个数, X j X_j Xj 为第 j j j 类样本的集合, μ j \mu_j μj 为第 j j j 类样本的均值向量, ∑ j \sum_j j 为第 j j j 类样本的“方差”。

因此,原始均值 μ i \mu_i μi 和投影后的均值 μ ~ i \tilde{\mu}_i μ~i 的表达式为分别为:

μ i = 1 N i ∑ x ∈ w i x \mu_i=\frac{1}{N_i}\sum_{x\in w_i}x μi=Ni1xwix
μ ~ i = 1 N i ∑ x ∈ w i w T x = w T 1 N i ∑ x ∈ w i x = w T μ i \tilde{\mu}_i=\frac{1}{N_i}\sum_{x\in w_i}w^Tx=w^T\frac{1}{N_i}\sum_{x\in w_i}x=w^T\mu_i μ~i=Ni1xwiwTx=wTNi1xwix=wTμi

方差
s ~ i 2 = ∑ x ∈ w i ( w T x − μ ~ i ) 2 = ∑ x ∈ w i ( w T x − w T μ i ) 2 = ∑ x ∈ w i w T ( x − μ i ) ( x − μ i ) T w = w T S i w \begin{aligned} \tilde{s}_i^2&=\sum_{x\in w_i}(w^Tx-\tilde{\mu}_i)^2\\ &=\sum_{x\in w_i}(w^Tx-w^T\mu_i)^2\\ &=\sum_{x\in w_i}w^T(x-\mu_i)(x-\mu_i)^Tw\\ &=w^TS_iw \end{aligned} s~i2=xwi(wTxμ~i)2=xwi(wTxwTμi)2=xwiwT(xμi)(xμi)Tw=wTSiw

定义 μ \mu μ 为为所有样本的均值,则

μ = 1 n ∑ i = 1 n x i \mu=\frac{1}{n}\sum_{i=1}^nx_i μ=n1i=1nxi

定义全局散度 S t S_t St 为:

S t = ∑ i = 1 n ( x i − μ ) ( x i − μ ) T S_t=\sum_{i=1}^n(x_i-\mu)(x_i-\mu)^T St=i=1n(xiμ)(xiμ)T

定义类内散度 S w S_w Sw 为:

S w = ∑ k = 1 K ∑ x i ∈ C k ( x i − μ k ) ( x i − μ k ) T S_w=\sum_{k=1}^K\sum_{x_i\in C_k}(x_i-\mu_k)(x_i-\mu_k)^T Sw=k=1KxiCk(xiμk)(xiμk)T

如果把全局散度定义为类内散度与类间散度之和,即 S t = S b + S w S_t=S_b+S_w St=Sb+Sw,那么 类间散度矩阵 S b S_b Sb 可表示为:

S b = S t − S w = ∑ i = 1 n ( x i − μ ) ( x i − μ ) T − ∑ k = 1 K ∑ x i ∈ C k ( x i − μ k ) ( x i − μ k ) T = ∑ k = 1 K N k ( μ k − μ ) ( μ k − μ ) T \begin{aligned} S_b&=S_t-S_w\\ &=\sum_{i=1}^n(x_i-\mu)(x_i-\mu)^T - \sum_{k=1}^K\sum_{x_i\in C_k}(x_i-\mu_k)(x_i-\mu_k)^T\\ &=\sum_{k=1}^K{N_k(\mu_k-\mu)(\mu_k-\mu)^T} \end{aligned} Sb=StSw=i=1n(xiμ)(xiμ)Tk=1KxiCk(xiμk)(xiμk)T=k=1KNk(μkμ)(μkμ)T

LDA 主要思想的描述我们的目标就是要投影后最大化类间均值差同时最小化类内方差大小,因此目标函数可以认为是最大化:

J ( w ) = W T S b W W T S w W J(w)=\frac{W^TS_bW}{W^TS_wW} J(w)=WTSwWWTSbW

其中, W W W 是目标投影超平面, W T W = I W^TW=I WTW=I

求导:

d d w J ( w ) = d d w ( W T S b W W T S w W ) = ( W T S w W ) d d w ( W T S b W ) − ( W T S b W ) d d w ( W T S w W ) = ( W T S w W ) 2 S b W − ( W T S b W ) 2 W T S w W \begin{aligned} \frac{d}{dw}J(w) &=\frac{d}{dw}(\frac{W^TS_bW}{W^TS_wW})\\ &=(W^TS_wW)\frac{d}{dw}(W^TS_bW) - (W^TS_bW)\frac{d}{dw}(W^TS_wW)\\ &=(W^TS_wW)2S_bW - (W^TS_bW)2W^TS_wW \end{aligned} dwdJ(w)=dwd(WTSwWWTSbW)=(WTSwW)dwd(WTSbW)(WTSbW)dwd(WTSwW)=(WTSwW)2SbW(WTSbW)2WTSwW

所以,

d d w J ( w ) = 0 ⇒ ( W T S w W ) 2 S b W − ( W T S b W ) 2 W T S w W = 0 \begin{aligned} &\frac{d}{dw}J(w)=0\\ &\Rightarrow (W^TS_wW)2S_bW - (W^TS_bW)2W^TS_wW = 0 \end{aligned} dwdJ(w)=0(WTSwW)2SbW(WTSbW)2WTSwW=0

除以 2 W T S w W 2W^TS_wW 2WTSwW,则有:

⇒ ( W T S w W W T S w W ) S b W − ( W T S b W W T S w W ) W T S w W = 0 ⇒ S b W − J ( w ) S w W = 0 ⇒ S w − 1 S b W − J ( w ) W = 0 \begin{aligned} &\Rightarrow (\frac{W^TS_wW}{W^TS_wW})S_bW - (\frac{W^TS_bW}{W^TS_wW})W^TS_wW = 0\\ &\Rightarrow S_bW - J(w)S_wW = 0 \\ &\Rightarrow S_w^{-1}S_bW - J(w)W = 0 \end{aligned} (WTSwWWTSwW)SbW(WTSwWWTSbW)WTSwW=0SbWJ(w)SwW=0Sw1SbWJ(w)W=0

该问题等价于:

S b W = λ S w W    ,    λ = J ( w ) = s c a l a r S_bW=\lambda S_wW \ \ , \ \ \lambda=J(w)=scalar SbW=λSwW  ,  λ=J(w)=scalar

或者说:

S w − 1 S b W = λ W S_w^{-1}S_bW=\lambda W Sw1SbW=λW

因此,求解最近投影平面 W = { w 1 , w 2 , . . . , w d } W=\{w_1,w_2,...,w_d\} W={w1,w2,...,wd},即求解 S w − 1 S b S_w^{-1}S_b Sw1Sb 矩阵前 d d d 个最大的特征值对应的特征向量组成的矩阵。

至此,可以得出 LDA 的求解步骤为:
(1)计算数据集中每个类别样本的均值向量 μ j \mu_j μj,及总体均值向量 μ \mu μ
(2)计算类内散度矩阵 S w S_w Sw,全局散度矩阵 S t S_t St,并得到类间散度 S b = S t − S w S_b=S_t-S_w Sb=StSw
(3)对矩阵 S w − 1 S b S_w^{-1}S_b Sw1Sb 进行特征值分解,将特征值从大到小排列
(4)取特征值前 d d d 大的对应的特征向量 w 1 , w 2 , . . . , w d w_1,w_2,...,w_d w1,w2,...,wd,通过以下映射将 m m m 维样本映射到 d d d 维:
x i ′ = [ w 1 T x i w 2 T x i ⋅ ⋅ ⋅ w d T x i ] x_i' = \begin{bmatrix} w_1^Tx_i \\ w_2^Tx_i \\ \cdot \cdot \cdot\\ w_d^Tx_i \end{bmatrix} xi=w1Txiw2TxiwdTxi

2 LDA 与 PCA 的比较

PCA 和 LDA 两种降维方法的求解过程来看,它们确实有着很大的相似性,但对应的原理却有所区别。

首先从目标出发:

  • PCA 选择的是投影后数据方差最大的方向,由于它是无监督的,因此 PCA 假设方差越大,信息量越多,用主成分来表示原始数据可以去除冗余的维度,达到降维的目的。
  • LDA 选择的是投影后类内方差小、类间方差大的方向,用到了类别标签信息,为了找到数据中具有判别性的维度,使得原始数据在这些方向上投影后,不同类别尽可能区分开。

举一个简单的例子,在语音识别中,我们想从一段音频中提取出人的语音信号,这时可以使用 PCA 先进行降维,过滤掉一些固定频率(方差较小)的背景噪声,但如果我们的需求是从这段音频中区分出声音属于哪个人,那么我们应该使用 LDA 对数据进行降维,使每个人的语音信号具有区分性。

另外,在人脸识别领域中, PCA,LDA 都会被频繁使用。基于 PCA 的人脸识别方法也称为 特征脸( Eigenface ) 方法, 该方法将人脸图像按行展开形成一个高维向量,对多个人脸特征的协方差矩阵做特征值分解,其中较大特征值对应的特征向量具有与人脸相似的形状,故称为特征脸。

相同点

  • 两者均可以对数据进行降维。
  • 两者在降维时均使用了矩阵特征分解的思想
  • 两者都假设数据符合高斯分布。

不同点

  • LDA 是有监督的降维方法,而 PCA 是无监督的降维方法
  • LDA 降维最多降到类别数 K − 1 K-1 K1 的维数,而 PCA 没有这个限制
  • LDA 除了可以用于降维,还可以用于分类
  • LDA 选择分类性能最好的投影方向,而 PCA 选择样本点投影具有最大方差的方向

3 LDA 常见问题

对高维数据,由于在某些维度上缺少观测值。 S w S_w Sw 常常是 奇异的(不满秩的),常用的两种解决方法:

  • 在 FDA 之前先应用 PCA
  • 重构 S w S_w Sw 使 S w ′ = S w + β I d S_w' = S_w + \beta I_d Sw=Sw+βId

你可能感兴趣的:(机器学习)