赞
踩
线性判别分析( Linear Discriminant Analysis,简称LDA)是一种经典的线性学习方法,在二分类问题上因为最早由 Fisher,1936提出,亦称“ Fisher判别分析。严格来说LDA与Fisher判别分析稍有不同。前者假设了各类样本的协方差矩阵相同且满秩。
LDA 的思想非常朴素: 给定训练样法将样例投影到一条使得同 样例的投影点尽可能接近、 异类样例投影点尽可能能远离;在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定样本的类别. 如下图所示。
若此时我们使用PCA,我们会得到不可分状况,就是蓝色与绿色样本点都混在一起,详见主成分分析(PCA)。
可以看见,跟主成分分析(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} w∈Rd×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μ0−wTμ1∥∥22 尽可能大.同时考虑二者,则可得到欲最大化的目标
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
定义类内散度矩阵
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
以及类间散度矩阵 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
S b w = λ S w w \mathbf{S}_{b} \boldsymbol{w}=\lambda \mathbf{S}_{w} \boldsymbol{w} Sbw=λSww
此处求解待补充,建议查看《南瓜书PumpkinBook》
现在我们将其推广到多类的情形,并且讨论不仅仅时映射到一维空间的情况(即降维)。
设类别的数目为N,且第i类示例数为 m i m_i mi,总样本数量为m。由于此时存在多个类,我们不能再用类均值投影点的差值使得类中心之间的距离尽可能大。此时转换一个思路,如果说我们的映射能够使得所有样本点之间都尽量的远离(也就是全局的协方差尽可能大),但类内的样本点都尽可能大靠拢(也就是类内样本点的协方差尽可能小),那么此时就相当于类与类之间的样本点会远离(否则全局协方差不可能是大的)。
因此,我们定义全局散度矩阵
S
t
=
∑
i
=
1
m
(
x
i
−
μ
)
(
x
i
−
μ
)
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=1∑NSwi
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=x∈Xi∑(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
事实上,依照严格的协方差定义,应该是要在求和项前除以样本数,但周老师的书里面都没有除以样本数。但从目标公式来看,这并不影响 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=1∑N(μi−μ)(μi−μ)T
上面的情况都是使用 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} Sw−1Sb的最大特征向量,而对于 S w − 1 S b ∈ R d × d \mathbf{S}_{w}^{-1} \mathbf{S}_{b} \in R^{d\times d} Sw−1Sb∈Rd×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,…,wN−1)∈Rd×(N−1)
那么我们有
{
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\{
同样地,我们希望这些映射仍能满足类间距离尽可能大,类内距离尽可能小,因此有
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} Wmax∑i=1N−1wiTSwwi∑i=1N−1wiTSbwi
也就是
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} Sw−1Sb的N-1个最大广义特征值所对应的特征向量组成的矩阵.(为什么这里是N-1个仍待探究)
问题: S w − 1 \mathbf{S}_{w}^{-1} Sw−1并不总是存在的
在实践中, S w − 1 \mathbf{S}_{w}^{-1} Sw−1通常是退化的,比如数据是具有大维度d的图像向量,而数据集的大小小于d。
此时我们通常先对数据进行一个PCA,来降低数据的维度。
然后进行一个LDA,使得测试数据更容易进行分类,准确率更高。
我们称y为Most Expressive Features (MEF):使用PCA得到的特征(投影)。我们称z为Most Discriminating Features (MDF)利用LDA获得的特征(投影)。
(1)当训练集较小时,PCA的表现优于LDA。
(2)当样本数量较大且对每一类具有代表性时,LDA的表现往往优于PCA。
[1] 《机器学习》周志华
[2]《南瓜书PumpkinBook》
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。