机器学习: 线性判别分析(LDA)

一、简介

线性判别分析( Linear Discriminant Analysis,简称LDA)是一种经典的线性学习方法,在二分类问题上因为最早由 Fisher,1936提出,亦称“ Fisher判别分析。严格来说LDA与Fisher判别分析稍有不同。前者假设了各类样本的协方差矩阵相同且满秩。

LDA 的思想非常朴素: 给定训练样法将样例投影到一条使得同 样例的投影点尽可能接近、 异类样例投影点尽可能能远离;在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定样本的类别. 如下图所示。

若此时我们使用PCA,我们会得到不可分状况,就是蓝色与绿色样本点都混在一起,详见主成分分析(PCA)

一、两类LDA的情况

可以看见,跟主成分分析(PCA) 一样,LDA事实上也可以看作一种降维方法。那PCA和LDA有什么区别呢?

(1) PCA是无监督的(即不需要类标辅助来进行寻找用来降维的变换矩阵W),而LDA则需要类标来寻找用于降维的变换矩阵W)
(2) 两者的目标也不一样,PCA想要的是所有点与点之间尽可能地分开,而LDA想要寻找样本类间距离最大和类内距离最小的投影矩阵。

我们首先讨论数据集只有两种类别的情况,然后将其推广到多类别的情况。

我们令 X i , μ i , ∑ i X_i,\mu _i, \sum _i Xi,μi,i分别表示第i类样本的集合,均值向量和协方差矩阵。设样本的维度是d,我们使用 w ∈ R d × 1 \boldsymbol{w} \in R^{d\times 1} wRd×1将样本映射到一维空间(直线上)。

现在使同类样例的投影点尽可能接近,可以让同类样例投影点的协方差尽可能小(类比d=1时,样本方差越近则样本点约集中,现在d != 1, 需令其协方差尽可能小),也就是 w T Σ 0 w + w T Σ 1 w \boldsymbol{w}^{\mathrm{T}} \boldsymbol{\Sigma}_{0} \boldsymbol{w}+\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\Sigma}_{1} \boldsymbol{w} wTΣ0w+wTΣ1w尽可能小(投影点的协方差可以将分量展开,可验证确实为此公式)。另外我们希望不同类的样本投影尽可能远离,可以让类中心之间的距离尽可能大,即 ∥ w T μ 0 − w T μ 1 ∥ 2 2 \left\|\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\mu}_{0}-\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\mu}_{1}\right\|_{2}^{2} wTμ0wTμ122 尽可能大.同时考虑二者,则可得到欲最大化的目标

J = ∥ w T μ 0 − w T μ 1 ∥ 2 2 w T Σ 0 w + w T Σ 1 w = w T ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T w w T ( Σ 0 + Σ 1 ) w \begin{aligned} J &=\frac{\left\|\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\mu}_{0}-\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\mu}_{1}\right\|_{2}^{2}}{\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\Sigma}_{0} \boldsymbol{w}+\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\Sigma}_{1} \boldsymbol{w}} \\ &=\frac{\boldsymbol{w}^{\mathrm{T}}\left(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}\right)\left(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}\right)^{\mathrm{T}} \boldsymbol{w}}{\boldsymbol{w}^{\mathrm{T}}\left(\boldsymbol{\Sigma}_{0}+\boldsymbol{\Sigma}_{1}\right) \boldsymbol{w}} \end{aligned} J=wTΣ0w+wTΣ1wwTμ0wTμ122=wT(Σ0+Σ1)wwT(μ0μ1)(μ0μ1)Tw

定义类内散度矩阵 S w \boldsymbol{S_w} Sw(w是指within-class scatter matrix)
S w = Σ 0 + Σ 1 = ∑ x ∈ X 0 ( x − μ 0 ) ( x − μ 0 ) T + ∑ x ∈ X 1 ( x − μ 1 ) ( x − μ 1 ) T \begin{aligned} \mathbf{S}_{w} &=\boldsymbol{\Sigma}_{0}+\boldsymbol{\Sigma}_{1} \\ &=\sum_{\boldsymbol{x} \in X_{0}}\left(\boldsymbol{x}-\boldsymbol{\mu}_{0}\right)\left(\boldsymbol{x}-\boldsymbol{\mu}_{0}\right)^{\mathrm{T}}+\sum_{\boldsymbol{x} \in X_{1}}\left(\boldsymbol{x}-\boldsymbol{\mu}_{1}\right)\left(\boldsymbol{x}-\boldsymbol{\mu}_{1}\right)^{\mathrm{T}} \end{aligned} Sw=Σ0+Σ1=xX0(xμ0)(xμ0)T+xX1(xμ1)(xμ1)T

以及类间散度矩阵 S b \boldsymbol{S_b} Sb(b是指between-class scatter matrix)

S b = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T \mathbf{S}_{b}=\left(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}\right)\left(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}\right)^{\mathrm{T}} Sb=(μ0μ1)(μ0μ1)T

因此我们的目标转化为以下形式,又称 S b , S w \boldsymbol{S_b,S_w} Sb,Sw的广义瑞利商(generalized Rayleigh quotient)

J = w T S b w w T S w w J=\frac{\boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{b} \boldsymbol{w}}{\boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{w} \boldsymbol{w}} J=wTSwwwTSbw

因为上式中分子分母都是关于 w \boldsymbol{w} w的二次型,所以目标值域 w \boldsymbol{w} w的方向相关。我们令 w T S w w \mathrm{w^T}\mathbf{S}_{w} \boldsymbol{w} wTSww,此时可以使用拉格朗日乘子法求 w \boldsymbol{w} w,如下所示:

min ⁡ w − w T S b w  s.t.  w T S w w = 1 \begin{array}{ll} \min _{w} & -\boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{b} \boldsymbol{w} \\ \text { s.t. } & \boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{w} \boldsymbol{w}=1 \end{array} minw s.t. wTSbwwTSww=1

S b w = λ S w w \mathbf{S}_{b} \boldsymbol{w}=\lambda \mathbf{S}_{w} \boldsymbol{w} Sbw=λSww

此处求解待补充,建议查看《南瓜书PumpkinBook》

一、多类LDA的情况

现在我们将其推广到多类的情形,并且讨论不仅仅时映射到一维空间的情况(即降维)。

设类别的数目为N,且第i类示例数为 m i m_i mi,总样本数量为m。由于此时存在多个类,我们不能再用类均值投影点的差值使得类中心之间的距离尽可能大。此时转换一个思路,如果说我们的映射能够使得所有样本点之间都尽量的远离(也就是全局的协方差尽可能大),但类内的样本点都尽可能大靠拢(也就是类内样本点的协方差尽可能小),那么此时就相当于类与类之间的样本点会远离(否则全局协方差不可能是大的)。

因此,我们定义全局散度矩阵

S t = ∑ i = 1 m ( x i − μ ) ( x i − μ ) T \begin{aligned} \mathbf{S}_{t} &=\sum_{i=1}^{m}\left(\boldsymbol{x}_{i}-\boldsymbol{\mu}\right)\left(\boldsymbol{x}_{i}-\boldsymbol{\mu}\right)^{\mathrm{T}} \end{aligned} St=i=1m(xiμ)(xiμ)T

其中 μ \mu μ是所有样本的均值向量。

类内矩阵散度 S w \boldsymbol{S_w} Sw跟原来的定义一致,原来是两个,现在是N个。

S w = ∑ i = 1 N S w i \mathbf{S}_{w}=\sum_{i=1}^{N} \mathbf{S}_{w_{i}} Sw=i=1NSwi
S w i = ∑ x ∈ X i ( x − μ i ) ( x ˙ − μ i ) T \mathbf{S}_{w_{i}}=\sum_{\boldsymbol{x} \in X_{i}}\left(\boldsymbol{x}-\boldsymbol{\mu}_{i}\right)\left(\dot{\boldsymbol{x}}-\boldsymbol{\mu}_{i}\right)^{\mathrm{T}} Swi=xXi(xμi)(x˙μi)T

由此推导的类间矩阵散度 S b \boldsymbol{S_b} Sb
S b = S t − S w = ∑ i = 1 m ( x i − μ ) ( x i − μ ) T − ∑ i = 1 N ∑ x ∈ X i ( x − μ i ) ( x − μ i ) T = ∑ i = 1 N ( ∑ x ∈ X i ( ( x − μ ) ( x − μ ) T − ( x − μ i ) ( x − μ i ) T ) ) = ∑ i = 1 N ( ∑ x ∈ X i ( ( x − μ ) ( x T − μ T ) − ( x − μ i ) ( x T − μ i T ) ) ) = ∑ i = 1 N ( ∑ x ∈ X i ( x x T − x μ T − μ x T + μ μ T − x x T + x μ i T + μ i x T − μ i μ i T ) ) = ∑ i = 1 N ( ∑ x ∈ X i ( − x μ T − μ x T + μ μ T + x μ i T + μ i x T − μ i μ i T ) ) = ∑ i = 1 N ( − ∑ x ∈ X i x μ T − ∑ x ∈ X i μ x T + ∑ x ∈ X i μ μ T + ∑ x ∈ X i x μ i T + ∑ x ∈ X i μ i x T − ∑ x ∈ X i μ i μ i T ) = ∑ i = 1 N ( − m i μ i μ T − m i μ μ i T + m i μ μ T + m i μ i μ i T + m i μ i μ i T − m i μ i μ i T ) = ∑ i = 1 N ( − m i μ i μ T − m i μ μ i T + m i μ μ T + m i μ i μ i T ) = ∑ i = 1 N m i ( − μ i μ T − μ μ i T + μ μ T + μ i μ i T ) = ∑ i = 1 N m i ( μ i − μ ) ( μ i − μ ) T \begin{aligned} \mathbf{S}_b &= \mathbf{S}_t - \mathbf{S}_w \\ &= \sum_{i=1}^m(\boldsymbol x_i-\boldsymbol\mu)(\boldsymbol x_i-\boldsymbol\mu)^{\mathrm{T}}-\sum_{i=1}^N\sum_{\boldsymbol x\in X_i}(\boldsymbol x-\boldsymbol\mu_i)(\boldsymbol x-\boldsymbol\mu_i)^{\mathrm{T}} \\ &= \sum_{i=1}^N\left(\sum{\boldsymbol x\in X_i}\left((\boldsymbol x-\boldsymbol\mu)(\boldsymbol x-\boldsymbol\mu)^{\mathrm{T}}-(\boldsymbol x-\boldsymbol\mu_i)(\boldsymbol x-\boldsymbol\mu_i)^{\mathrm{T}}\right)\right) \\ &= \sum_{i=1}^N\left(\sum_{\boldsymbol x\in X_i}\left((\boldsymbol x-\boldsymbol\mu)(\boldsymbol x^{\mathrm{T}}-\boldsymbol\mu^{\mathrm{T}})-(\boldsymbol x-\boldsymbol\mu_i)(\boldsymbol x^{\mathrm{T}}-\boldsymbol\mu_i^{\mathrm{T}})\right)\right) \\ &= \sum_{i=1}^N\left(\sum_{\boldsymbol x\in X_i}\left(\boldsymbol x\boldsymbol x^{\mathrm{T}} - \boldsymbol x\boldsymbol\mu^{\mathrm{T}}-\boldsymbol\mu\boldsymbol x^{\mathrm{T}}+\boldsymbol\mu\boldsymbol\mu^{\mathrm{T}}-\boldsymbol x\boldsymbol x^{\mathrm{T}}+\boldsymbol x\boldsymbol\mu_i^{\mathrm{T}}+\boldsymbol\mu_i\boldsymbol x^{\mathrm{T}}-\boldsymbol\mu_i\boldsymbol\mu_i^{\mathrm{T}}\right)\right) \\ &= \sum_{i=1}^N\left(\sum_{\boldsymbol x\in X_i}\left(- \boldsymbol x\boldsymbol\mu^{\mathrm{T}}-\boldsymbol\mu\boldsymbol x^{\mathrm{T}}+\boldsymbol\mu\boldsymbol\mu^{\mathrm{T}}+\boldsymbol x\boldsymbol\mu_i^{\mathrm{T}}+\boldsymbol\mu_i\boldsymbol x^{\mathrm{T}}-\boldsymbol\mu_i\boldsymbol\mu_i^{\mathrm{T}}\right)\right) \\ &= \sum_{i=1}^N\left(-\sum_{\boldsymbol x\in X_i}\boldsymbol x\boldsymbol\mu^{\mathrm{T}}-\sum_{\boldsymbol x\in X_i}\boldsymbol\mu\boldsymbol x^{\mathrm{T}}+\sum_{\boldsymbol x\in X_i}\boldsymbol\mu\boldsymbol\mu^{\mathrm{T}}+\sum_{\boldsymbol x\in X_i}\boldsymbol x\boldsymbol\mu_i^{\mathrm{T}}+\sum_{\boldsymbol x\in X_i}\boldsymbol\mu_i\boldsymbol x^{\mathrm{T}}-\sum_{\boldsymbol x\in X_i}\boldsymbol\mu_i\boldsymbol\mu_i^{\mathrm{T}}\right) \\ &= \sum_{i=1}^N\left(-m_i\boldsymbol\mu_i\boldsymbol\mu^{\mathrm{T}}-m_i\boldsymbol\mu\boldsymbol\mu_i^{\mathrm{T}}+m_i\boldsymbol\mu\boldsymbol\mu^{\mathrm{T}}+m_i\boldsymbol\mu_i\boldsymbol\mu_i^{\mathrm{T}}+m_i\boldsymbol\mu_i\boldsymbol\mu_i^{\mathrm{T}}-m_i\boldsymbol\mu_i\boldsymbol\mu_i^{\mathrm{T}}\right) \\ &= \sum_{i=1}^N\left(-m_i\boldsymbol\mu_i\boldsymbol\mu^{\mathrm{T}}-m_i\boldsymbol\mu\boldsymbol\mu_i^{\mathrm{T}}+m_i\boldsymbol\mu\boldsymbol\mu^{\mathrm{T}}+m_i\boldsymbol\mu_i\boldsymbol\mu_i^{\mathrm{T}}\right) \\ &= \sum_{i=1}^Nm_i\left(-\boldsymbol\mu_i\boldsymbol\mu^{\mathrm{T}}-\boldsymbol\mu\boldsymbol\mu_i^{\mathrm{T}}+\boldsymbol\mu\boldsymbol\mu^{\mathrm{T}}+\boldsymbol\mu_i\boldsymbol\mu_i^{\mathrm{T}}\right) \\ &= \sum_{i=1}^N m_i(\boldsymbol\mu_i-\boldsymbol\mu)(\boldsymbol\mu_i-\boldsymbol\mu)^{\mathrm{T}} \end{aligned} Sb=StSw=i=1m(xiμ)(xiμ)Ti=1NxXi(xμi)(xμi)T=i=1N(xXi((xμ)(xμ)T(xμi)(xμi)T))=i=1N(xXi((xμ)(xTμT)(xμi)(xTμiT)))=i=1N(xXi(xxTxμTμxT+μμTxxT+xμiT+μixTμiμiT))=i=1N(xXi(xμTμxT+μμT+xμiT+μixTμiμiT))=i=1N(xXixμTxXiμxT+xXiμμT+xXixμiT+xXiμixTxXiμiμiT)=i=1N(miμiμTmiμμiT+miμμT+miμiμiT+miμiμiTmiμiμiT)=i=1N(miμiμTmiμμiT+miμμT+miμiμiT)=i=1Nmi(μiμTμμiT+μμT+μiμiT)=i=1Nmi(μiμ)(μiμ)T

事实上,依照严格的协方差定义,应该是要在求和项前除以样本数,但周老师的书里面都没有除以样本数。但从目标公式来看,这并不影响 w \boldsymbol{w} w求解的准确性。但在有些资料里面类间散度矩阵定义为 ∑ i = 1 N ( μ i − μ ) ( μ i − μ ) T \sum_{i=1}^{N}(\boldsymbol\mu_i-\boldsymbol\mu)(\boldsymbol\mu_i-\boldsymbol\mu)^{\mathrm{T}} i=1N(μiμ)(μiμ)T

三、LDA用于降维

上面的情况都是使用 w \boldsymbol{w} w将样本映射到一维空间。也就是把样本直接降到了一维。

我们看到在以下公式中,
S b w = λ S w w \mathbf{S}_{b} \boldsymbol{w}=\lambda \mathbf{S}_{w} \boldsymbol{w} Sbw=λSww

w \boldsymbol{w} w其实是可看成矩阵 S w − 1 S b \mathbf{S}_{w}^{-1} \mathbf{S}_{b} Sw1Sb的最大特征向量,而对于 S w − 1 S b ∈ R d × d \mathbf{S}_{w}^{-1} \mathbf{S}_{b} \in R^{d\times d} Sw1SbRd×d,其特征向量不止一个。

因此,若设 W = ( w 1 , w 2 , … , w i , … , w N − 1 ) ∈ R d × ( N − 1 ) \mathbf{W}=\left(\boldsymbol{w}_{1}, \boldsymbol{w}_{2}, \ldots, \boldsymbol{w}_{i}, \ldots, \boldsymbol{w}_{N-1}\right) \in \mathbb{R}^{d \times(N-1)} W=(w1,w2,,wi,,wN1)Rd×(N1)

那么我们有

{ tr ⁡ ( W T S b W ) = ∑ i = 1 N − 1 w i T S b w i tr ⁡ ( W T S w W ) = ∑ i = 1 N − 1 w i T S w w i \left\{\begin{aligned} \operatorname{tr}\left(\mathbf{W}^{\mathrm{T}} \mathbf{S}_{b} \mathbf{W}\right) &=\sum_{i=1}^{N-1} \boldsymbol{w}_{i}^{\mathrm{T}} \mathbf{S}_{b} \boldsymbol{w}_{i} \\ \operatorname{tr}\left(\mathbf{W}^{\mathrm{T}} \mathbf{S}_{w} \mathbf{W}\right) &=\sum_{i=1}^{N-1} \boldsymbol{w}_{i}^{\mathrm{T}} \mathbf{S}_{w} \boldsymbol{w}_{i} \end{aligned}\right. tr(WTSbW)tr(WTSwW)=i=1N1wiTSbwi=i=1N1wiTSwwi

同样地,我们希望这些映射仍能满足类间距离尽可能大,类内距离尽可能小,因此有

max ⁡ W ∑ i = 1 N − 1 w i T S b w i ∑ i = 1 N − 1 w i T S w w i \max \limits_{\mathbf{W}}\cfrac{ \sum_{i=1}^{N-1}\boldsymbol w_i^{\mathrm{T}}\mathbf{S}b \boldsymbol w_i}{\sum_{i=1}^{N-1}\boldsymbol w_i^{\mathrm{T}}\mathbf{S}_w \boldsymbol w_i} Wmaxi=1N1wiTSwwii=1N1wiTSbwi

也就是
max ⁡ W tr ⁡ ( W T S b W ) tr ⁡ ( W T S w W ) \max\limits_{\mathbf{W}}\cfrac{ \operatorname{tr}(\mathbf{W}^{\mathrm{T}}\mathbf{S}_b \mathbf{W})}{\operatorname{tr}(\mathbf{W}^{\mathrm{T}}\mathbf{S}w \mathbf{W})} Wmaxtr(WTSwW)tr(WTSbW)

此时仍根据拉格朗日乘子法求解
S b W = λ S w W \mathbf{S}_{b} \mathbf{W}=\lambda \mathbf{S}_{w} \mathbf{W} SbW=λSwW

W \boldsymbol{W} W的闭式解则是 S w − 1 S b \mathbf{S}_{w}^{-1} \mathbf{S}_{b} Sw1Sb的N-1个最大广义特征值所对应的特征向量组成的矩阵.(为什么这里是N-1个仍待探究)

问题: S w − 1 \mathbf{S}_{w}^{-1} Sw1并不总是存在的

在实践中, S w − 1 \mathbf{S}_{w}^{-1} Sw1通常是退化的,比如数据是具有大维度d的图像向量,而数据集的大小小于d。

此时我们通常先对数据进行一个PCA,来降低数据的维度。

在这里插入图片描述
然后进行一个LDA,使得测试数据更容易进行分类,准确率更高。
在这里插入图片描述
我们称y为Most Expressive Features (MEF):使用PCA得到的特征(投影)。我们称z为Most Discriminating Features (MDF)利用LDA获得的特征(投影)。

四、PCA和LDA的区别

(1)当训练集较小时,PCA的表现优于LDA。
(2)当样本数量较大且对每一类具有代表性时,LDA的表现往往优于PCA。

参考资料

[1] 《机器学习》周志华
[2]《南瓜书PumpkinBook》

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值