LDA线性判别分类器
线性判别分类器由向量
w
w
w和偏差项
b
b
b构成。给定样例
x
x
x,其按照如下规则预测获得类别标记
y
y
y,即
y
=
s
i
g
n
(
w
T
x
+
b
)
y=sign(w^Tx+b)
y=sign(wTx+b)
后面统一使用小写表示列向量,转置表示行向量。
分类过程分为如下两步:
- 首先,使用权重向量w将样本空间投影到直线上去
- 然后,寻找直线上一个点把正样本和负样本分开。
为了寻找最有的线性分类器,即 w w w和 b b b,一个经典的学习算法是线性判别分析(Fisher’s Linear Discriminant Analysis,LDA)。
简要来说,LDA的基本想法是使不同的样本尽量原理,使同类样本尽量靠近。
这一目标可以通过扩大不同类样本的类中心距离,同时缩小每个类的类内方差来实现。
在一个二分类数据集上,分别记所有正样本的的均值为 μ + \mu_+ μ+,协方差矩阵为 Σ + \Sigma_+ Σ+;所有负样本的的均值为 μ − \mu_- μ−,协方差矩阵为 Σ − \Sigma_- Σ−。
类间距离
投影后的类中心间距离为正类中心的投影点值减去负类投影点值:
S
B
(
w
)
=
(
w
T
μ
+
−
w
T
μ
−
)
2
S_B(w)=(w^T\mu_+-w^T\mu_-)^2
SB(w)=(wTμ+−wTμ−)2
类内距离
同时,类内方差可写为:
S
W
(
w
)
=
∑
x
(
w
T
x
i
−
w
T
μ
+
)
2
+
∑
x
(
w
T
x
i
−
w
T
μ
−
)
2
n
−
1
S_W(w)=\frac{\sum_x(w^Tx_i-w^T\mu_+)^2+\sum_x(w^Tx_i-w^T\mu_-)^2}{n-1}
SW(w)=n−1∑x(wTxi−wTμ+)2+∑x(wTxi−wTμ−)2
= ∑ x ( w T ( x i − μ + ) ) 2 + ∑ x ( w T ( x i − μ − ) ) 2 n − 1 =\frac{\sum_x(w^T(x_i-\mu_+))^2+\sum_x(w^T(x_i-\mu_-))^2}{n-1} =n−1∑x(wT(xi−μ+))2+∑x(wT(xi−μ−))2
= ∑ x w T ( x i − μ + ) ( w T ( x i − μ + ) ) T + ∑ x w T ( x i − μ − ) ( w T ( x i − μ − ) ) T n − 1 =\frac{\sum_xw^T(x_i-\mu_+)(w^T(x_i-\mu_+))^T+\sum_xw^T(x_i-\mu_-)(w^T(x_i-\mu_-))^T}{n-1} =n−1∑xwT(xi−μ+)(wT(xi−μ+))T+∑xwT(xi−μ−)(wT(xi−μ−))T
= w T ∑ x ( x i − μ + ) ( x i − μ + ) T w + w T ∑ x ( x i − μ − ) ( x i − μ − ) T w n − 1 =\frac{w^T\sum_x(x_i-\mu_+)(x_i-\mu_+)^Tw+w^T\sum_x(x_i-\mu_-)(x_i-\mu_-)^Tw}{n-1} =n−1wT∑x(xi−μ+)(xi−μ+)Tw+wT∑x(xi−μ−)(xi−μ−)Tw
其中
∑
x
(
x
i
−
μ
+
)
(
x
i
−
μ
+
)
T
n
−
1
=
Σ
+
\frac{\sum_x(x_i-\mu_+)(x_i-\mu_+)^T}{n-1} = \Sigma_+
n−1∑x(xi−μ+)(xi−μ+)T=Σ+
是正类的协方差矩阵,注意
x
(
x
i
−
μ
+
)
x(x_i-\mu_+)
x(xi−μ+)
是列向量,所以协方差是一个长宽等于数据维度的方阵。
最后:
S W ( w ) = w T Σ + w + w T Σ − w S_W(w)=w^T\Sigma_+w+w^T\Sigma_-w SW(w)=wTΣ+w+wTΣ−w
优化目标
线性判别式的总目标就是最大化类间距离,最小化类内方差,类似于聚类:
arg max w J ( w ) = S B ( w ) S W ( w ) \mathop{\arg\max}\limits_{w} J(w) = \frac{S_B(w)}{S_W(w)} wargmaxJ(w)=SW(w)SB(w)
= ( w T μ + − w T μ − ) 2 w T Σ + w + w T Σ − w =\frac{(w^T\mu_+-w^T\mu_-)^2}{w^T\Sigma_+w+w^T\Sigma_-w} =wTΣ+w+wTΣ−w(wTμ+−wTμ−)2
= w T ( μ + − μ − ) ( w T ( μ + − μ − ) ) T w T ( Σ + − Σ − ) w = \frac{w^T(\mu_+-\mu_-)(w^T(\mu_+-\mu_-))^T}{w^T(\Sigma_+-\Sigma_-)w} =wT(Σ+−Σ−)wwT(μ+−μ−)(wT(μ+−μ−))T
= w T ( μ + − μ − ) ( μ + − μ − ) T w w T ( Σ + − Σ − ) w = \frac{w^T(\mu_+-\mu_-)(\mu_+-\mu_-)^Tw}{w^T(\Sigma_+-\Sigma_-)w} =wT(Σ+−Σ−)wwT(μ+−μ−)(μ+−μ−)Tw
看到这个形式,我们根据上一篇文档的知识知道这个可以使用广义瑞利商来求极大值。
广义瑞利商
**背景介绍及推导见(瑞利商(Rayleigh quotient)与广义瑞利商(genralized Rayleigh quotient)
**
下面只摘抄一些:
广义瑞利商是指这样的函数
R
(
A
,
B
,
x
)
R(A,B,x)
R(A,B,x):
R
(
A
,
B
,
x
)
=
X
H
A
x
X
H
B
x
R(A,B,x) = \cfrac{X^{H}Ax}{X^{H}Bx}
R(A,B,x)=XHBxXHAx
其中𝑥为非零向量,而𝐴,𝐵为
n
×
n
n×n
n×n的Hermitan矩阵。𝐵为正定矩阵。
令
A
=
(
μ
+
−
μ
−
)
(
μ
+
−
μ
−
)
T
A=(\mu_+-\mu_-)(\mu_+-\mu_-)^T
A=(μ+−μ−)(μ+−μ−)T
B = Σ + − Σ − B= \Sigma_+-\Sigma_- B=Σ+−Σ−
arg max w J ( w ) = w T A w w T B w \mathop{\arg\max}\limits_{w} J(w) = \frac{w^TAw}{w^TBw} wargmaxJ(w)=wTBwwTAw
这个就很广义瑞利商了。
至于w的值,使用拉格朗日乘子法可以求解得到:
B − 1 A w = λ w B^{-1}Aw = \lambda w B−1Aw=λw
B − 1 ( μ + − μ − ) ( μ + − μ − ) T w = λ w B^{-1}(\mu_+-\mu_-)(\mu_+-\mu_-)^Tw = \lambda w B−1(μ+−μ−)(μ+−μ−)Tw=λw
由于
(
μ
+
−
μ
−
)
T
w
(\mu_+-\mu_-)^Tw
(μ+−μ−)Tw
是行向量乘列向量,所以结果是一个标量,
那我们知道:
B
−
1
(
μ
+
−
μ
−
)
∝
λ
w
B^{-1}(\mu_+-\mu_-) \propto \lambda w
B−1(μ+−μ−)∝λw
( Σ + − Σ − ) − 1 ( μ + − μ − ) ∝ w (\Sigma_+-\Sigma_-)^{-1}(\mu_+-\mu_-) \propto w (Σ+−Σ−)−1(μ+−μ−)∝w
由于w我们只关注方向而不是长度,所以可以认为:
w b e s t = ( Σ + − Σ − ) − 1 ( μ + − μ − ) w_{best} =(\Sigma_+-\Sigma_-)^{-1}(\mu_+-\mu_-) wbest=(Σ+−Σ−)−1(μ+−μ−)