LDA的建模和分类面

现有分类G和随机变量X,LDA的思想就是根据后验概率P(G|X)对分类面进行线性建模。由贝叶斯公式,得到

(1)P(G=k|X=x)=P(X=x|G=k)P(G=k)l=1KP(X=x|G=k)P(G=k)(2)=fk(x)πkl=1Kfl(x)πl

LDA/QDA模型的基本假设是likelihood X|G符合高斯分布,即:

fk(x)=1(2π)p/2|Σk|1/2e12(xμk)TΣk1(xμk)

对于LDA而言,其假设所有类的协方差矩阵都相等,即Σk=Σk,而QDA则没有这样的假设。

下面我们考察LDA的分类面(decision boundary):

(3)logP(G=k|X=x)P(G=l|X=x)=logfk(x)fl(x)+logπkπl(4)=logπkπl12(μk+μl)TΣ1(μkμl)+xTΣ1(μkμl)

可见这是x的线性函数,即LDA中的『Linear』。由此得到线性判别函数为:

δkLDA(x)=xTΣ1μk12μkTΣ1μk+logπk

相应的,QDA的判别函数为:

(5)δkQDA(x)=12log|Σk|12(xμk)TΣk1(xμk)+logπk

注意到这是x的二次函数,即QDA中的『Quadratic』。

参数估计和分类

最后分类,很显然应该将样本归入判别函数较大的那一类去:

G(x)=argmaxkδk(x)

当然判别函数中相关的参数需要通过样本来估计,无偏估计为:

π^=Nk/N μ^k=gk=kxi/Nk Σ^=k=1Kgi=k(xiμ^k)(xiμ^k)TNK

其中Nk是第k类的样本数量

Fisher降维

我发现网上大部分笔记对这一节都没有深入介绍,当然书上这部分也的确写得不是很直观。我尽可能做一份详细的注解,方便后来同学理解。

这一节所有的大写X表示一个N×p的矩阵,N是样本点的个数,p是样本维数。

基于协方差的投影变换(样本球形化)

从式(5)我们发现,如果协方差阵Σk是一个单位矩阵的话,那么x属于哪一类就仅仅取决于它和每一类中心点μk的距离xμk22了。于是很自然的想法是,能不能通过对样本投影,使得Σk=I呢?简化的,对于LDA而言,既然所有类的协方差矩阵相同,那么同样的投影变换是否可以施加给所有的$\mathbf{x}$,使得Σ=I

答案是肯定的,我们知道协方差矩阵Σ是对称正定矩阵,有特征值分解Σ(p×p)=UDUT,且特征值dl>0。对样本做如下变换:

(6)xD1/2UTx

可得:

Σ=E[(xμ)(xμ)T]=D1/2UTE[(xμ)(xμ)T]UD1/2=D1/2UTΣUD1/2=D1/2UT(UDUT)UD1/2=I

这样,给定一个新样本$\mathbf{x}$,LDA就可以通过如下两步计算进行分类:

  1. 对输入样本球形化(sphere):xD1/2UTx
  2. 在新的空间中,计算x和各类中心点μk的欧几里德距离(2-范数),并把它归入与之距离最小的那个类(注意还需乘上先验πk

第1步之所以被称作『球形化』,是因为协方差矩阵Σ定义了一个椭球(的焦距),当Σ=I时就是一个球形。

降维

由上一节我们看到,通过球形化样本,将数据投射到一个新的空间,在这个空间中,协方差矩阵Σ=I,对新样本的分类仅取决于每个类的中心点。这就意味着我们其实只需要K个点就能保留所有的分类信息。

进一步的,这K个点组成了一个K1维的仿射空间,通过向这个空间投影,我们可以用K1维表示样本的分类信息。

那么接下来的问题是,能不能进一步降维到L<K1呢?

Fisher的回答是,只要投影后各类中心点尽可能地散开,那这就是一个好的降维方法。而所谓『尽可能地散开』就是『variance尽可能大』的意思。

基于这个思想,Fisher提出了以下投影方法:

  1. 计算每个类的中心点,得到中心点矩阵M(K×p)
  2. 计算类内(within-class)的协方差矩阵W(p×p)=k=1Ki=1Nk(xkiμk)(xkiμk)T
  3. 计算中心点投影M=MW1/2(利用特征值分解W=UDUT
  4. 计算投影后的类间(between-class)协方差矩阵 B(p×p)=k=1K(mkm¯)(mkm¯)T, 其中mk表示M的第k行转置后得到的向量,m¯j=1Ki=1KMij
  5. 计算B的特征值分解B=VDBVTV的各列向量vl就定义了(Fisher)最优的投影子空间(按对应特征值由大到小顺序排列)
  6. 得到原始样本的Fisher主元zl=vlTx,其中vl=W1/2vl

我对以上步骤做一些说明:

  • 第2步计算M=MW1/2,根据我们上一节的描述(6),这个变换将中心点投影到一个新的子空间mD1/2UTm,在这个空间中,类内(within-class)样本的协方差W=I

  • 第5步计算B的特征向量,按对应特征值从大到小其实是以下优化目标的解(可参考PCA)

maximizeaTBas.t.aTa=1
  • 第4步我们把投影变换展开,可得B=D1/2UT[k=1K(mkm¯)(mkm¯)T]UD1/2=W1/2BW1/2,定义a=W1/2a,有aTBa=aTBa,这也就是第6步中的vl=W1/2vl

  • 另外以上所谓的『协方差矩阵』并不是严格意义上的『样本协方差矩阵』。由于我们只对最优化解感兴趣,协方差前面乘以的常数并不影响最终结果。

综上我们可以总结得到,Fisher变换是在解如下优化问题:

maxaaTBas.t.aTWa=1

或者等价的:

maxaaTBaaTWa

即,使得降维后样本的类间(between-class)方差尽可能地大,而类内(with-class)方差尽可能地小。

LDA和Logistic Regression的比较

这一节我们比较一下Linear Discriminent Analysis和Logistic Regression。对于LDA,由3式,其分类面为:

logP(G=k|X=x)P(G=l|X=x)=logπkπl12(μk+μl)TΣ1(μkμl)+xTΣ1(μkμl)=αk0+αkTx

相应的Logistic Regression的分类面:

logP(G=k|X=x)P(G=l|X=x)=βk0+βkTx

可见两者实质是一样的。但对于参数估计而言,LDA估计的是高斯分布下的均值和方差。从这点看,LR的假设更弱,因而也更general一些。

另外由1式,可知LDA的优化目标其实是联合分布P(G=k,X=x)(分母上的边缘分布可看作常数),而LR是直接优化后验P(G=k|X=x)