线性判别分析(Linear Discrimination Analysis,LDA)是一种经典的线性学习方法。它既可以用于分类,又可以作为一种降维方法。
1. LDA的基本思想
LDA基本思想比较简单:给定带有标签的训练样本集,设法将样本投影到一条直线上,使得同类样本的投影点尽可能近,异类样本的投影点尽可能远。如果是进行分类,将新样本投影到同样的这条直线上,根据投影点的位置来确定新样本的类别。
举个例子,上图给出了两种不同的投影方式,直观上来看右图更好。因为右图中蓝色和红色数据较为集中,且类别之间的距离明显,而左图边界处数据混杂。
那么如何用数学语言对“同类样本的投影点尽可能近,异类样本的投影点尽可能远”进行表达呢,这里需要引入广义瑞利商。
2. 瑞利商和广义瑞利商
瑞利商是指这样的函数
R
(
A
,
x
)
R(A,x)
R(A,x):
R
(
A
,
x
)
=
x
H
A
x
x
H
x
(1)
R(A,x)=\frac{x^HAx}{x^Hx} \tag{1}
R(A,x)=xHxxHAx(1)其中
x
x
x为非零向量,
A
A
A为
n
×
n
n\times n
n×n的Hermitan矩阵(复共轭对称矩阵,即共轭转置矩阵和自己相等,记为
A
H
=
A
A^H=A
AH=A),这里我们只讨论实数的情况,所以
A
T
=
A
A^T=A
AT=A。瑞利商还有一个很重要的性质:
λ
m
i
n
≤
R
(
A
,
x
)
≤
λ
m
a
x
(2)
\lambda_{min}\le R(A,x) \le \lambda_{max}\tag{2}
λmin≤R(A,x)≤λmax(2)其中
λ
m
i
n
,
λ
m
a
x
\lambda_{min},\lambda_{max}
λmin,λmax是矩阵
A
A
A的最小和最大特征值。
当
x
x
x是标准正交基时,即
x
T
x
=
1
x^Tx=1
xTx=1时,瑞利商退化为
R
(
A
,
x
)
=
x
T
A
x
R(A,x)=x^TAx
R(A,x)=xTAx,这个形式在谱聚类和PCA中都有出现,比如PCA中是
W
T
X
X
T
W
W^TXX^TW
WTXXTW的形式(所以说瑞利商和样本投影方差有关?)。
现在再来看看广义瑞利商的概念:
R
(
A
,
B
,
x
)
=
x
H
A
x
x
H
B
x
(3)
R(A,B,x)=\frac{x^HAx}{x^HBx} \tag{3}
R(A,B,x)=xHBxxHAx(3)其中
x
x
x为非零向量,
A
,
B
A,B
A,B为
n
×
n
n\times n
n×n的Hermitan矩阵。通过标准化,可以将广义瑞利商转化为瑞利商的形式。令
x
=
B
−
1
2
x
′
x=B^{-\frac{1}{2}}x'
x=B−21x′,则(2)变为:KaTeX parse error: No such environment: align* at position 7: \begin{̲a̲l̲i̲g̲n̲*̲}̲R(A,B,x')&=\fra…根据式(2),我们可以知道,
R
(
A
,
B
,
x
′
)
R(A,B,x')
R(A,B,x′)的最大值为矩阵
B
−
1
A
B^{-1}A
B−1A的最大特征值,最小值为
B
−
1
A
B^{-1}A
B−1A的最小特征值。
3. 二分类LDA原理
回顾第一节,LDA的思想是设法将样本投影到一条直线上,使得:
- 同类样本的投影点尽可能近
- 异类样本的投影点尽可能远
现在我们来讨论一下如何用数学语言表示这两条性质,现在我们首先从比较简单的二类LDA入手,分析LDA原理。
给定数据集 D = { ( x i , y i ) } i = 1 m D=\{(x_i,y_i)\}_{i=1}^{m} D={(xi,yi)}i=1m,其中 x i x_i xi为 n n n维向量, y i ∈ { 0 , 1 } y_i \in \{0,1\} yi∈{0,1}。令 X i , μ i , Σ i X_i,\mu_i,\Sigma_i Xi,μi,Σi分别表示第 i ∈ { 0 , 1 } i\in \{0, 1\} i∈{0,1}类样本的集合、均值向量、协方差矩阵,即:KaTeX parse error: No such environment: align* at position 7: \begin{̲a̲l̲i̲g̲n̲*̲}̲\mu_i&=\frac{1}…如果将数据投影到直线 w w w上,则两类样本的中心在直线上的投影分别为 w T μ 0 w^T\mu_0 wTμ0和 w T μ 1 w^T\mu_1 wTμ1(图中实心圆和实心三角)。所有样本在直线上投影的协方差分别为 w T Σ 0 w w^T\Sigma_0w wTΣ0w和 w T Σ 1 w w^T\Sigma_1w wTΣ1w。于是我们可以有下面的结论:
- 同类样本的投影点尽可能近 ⇒ min w T Σ 0 w + w T Σ 1 w \Rightarrow\min{w^T\Sigma_0w+w^T\Sigma_1w} ⇒minwTΣ0w+wTΣ1w
- 异类样本的投影点尽可能远
⇒
max
∥
w
T
μ
0
−
w
T
μ
1
∥
2
2
\Rightarrow\max\|w^T\mu_0-w^T\mu_1\|_2^2
⇒max∥wTμ0−wTμ1∥22
所以我们的优化目标为: arg max w J ( w ) = ∥ 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 (4) \arg\max_wJ(w)=\frac{\|w^T\mu_0-w^T\mu_1\|_2^2}{w^T\Sigma_0w+w^T\Sigma_1w}=\frac{w^T(\mu_0-\mu_1)(\mu_0-\mu_1)^Tw}{w^T(\Sigma_0+\Sigma_1)w}\tag{4} argwmaxJ(w)=wTΣ0w+wTΣ1w∥wTμ0−wTμ1∥22=wT(Σ0+Σ1)wwT(μ0−μ1)(μ0−μ1)Tw(4)我们一般定义类内散度矩阵 S w S_w Sw为: S w = Σ 0 + Σ 1 = ∑ x ∈ X 0 ( x − μ 0 ) ( x − μ 0 ) T + ∑ x ∈ X 1 ( x − μ 1 ) ( x − μ 1 ) T (5) S_w=\Sigma_0+\Sigma_1=\sum_{x \in X_0}(x-\mu_0)(x-\mu_0)^T+\sum_{x \in X_1}(x-\mu_1)(x-\mu_1)^T\tag{5} Sw=Σ0+Σ1=x∈X0∑(x−μ0)(x−μ0)T+x∈X1∑(x−μ1)(x−μ1)T(5)定义类间散度矩阵 S b S_b Sb为: S b = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T (6) S_b=(\mu_0-\mu_1)(\mu_0-\mu_1)^T\tag{6} Sb=(μ0−μ1)(μ0−μ1)T(6)则 J ( w ) J(w) J(w)可重写为: J ( w ) = w T S b w w T S w w (7) J(w)=\frac{w^TS_bw}{w^TS_ww}\tag{7} J(w)=wTSwwwTSbw(7)然后这就是广义瑞利商的形式,那么如何确定 w w w呢?
注意到(7)中分子分母都是关于 w w w的二次项,所以(7)的解与 w w w大小无关,只与其方向有关,不妨取 w T w = 1 w^Tw=1 wTw=1,即 w w w为标准正交基,(4)等价于 arg max w w T S w − 1 S b w s . t . w T w = 1 (8) \arg\max_ww^TS_w^{-1}S_bw s.t. w^Tw=1\tag{8} argwmaxwTSw−1Sbw s.t. wTw=1(8)然后这又又又又是一个约束优化问题,拉格朗日乘子法走起来,对应的拉格朗日函数为 L ( w , λ ) = − w T S w − 1 S b w + λ ( w T w − 1 ) (9) L(w,\lambda)=-w^TS_w^{-1}S_bw+\lambda(w^Tw-1)\tag{9} L(w,λ)=−wTSw−1Sbw+λ(wTw−1)(9)对 w w w求导并令导数等于0可得: S w − 1 S b w = λ w (10) S_w^{-1}S_bw=\lambda w\tag{10} Sw−1Sbw=λw(10)和PCA一样的套路,又变成对 S w − 1 S b S_w^{-1}S_b Sw−1Sb特征分解的问题了。对于二分类来说, S b w S_bw Sbw的方向恒为 μ 0 − μ 1 \mu_0-\mu_1 μ0−μ1,不妨令 S b w = λ ( μ 0 − μ 1 ) S_bw=\lambda (\mu_0-\mu_1) Sbw=λ(μ0−μ1),代入(10)得: w = S w − 1 ( μ 0 − μ 1 ) (11) w=S_w^{-1}(\mu_0-\mu_1)\tag{11} w=Sw−1(μ0−μ1)(11)所以,对于二分类样本,只要求出原始样本的均值和方差就能确定最佳的投影方向 w w w了。
4. 多分类LDA原理
如果是多类向低维投影,则此时投影到的低维空间就不是一条直线,而是一个超平面了。优化目标变为: arg max w W T S w − 1 S b W s . t . W T W = 1 (12) \arg\max_wW^TS_w^{-1}S_bW s.t. W^TW=1\tag{12} argwmaxWTSw−1SbW s.t. WTW=1(12) W W W为低维空间基向量组成的矩阵, W ∈ R d × ( N − 1 ) W \in \mathbb{R}^{d\times(N-1)} W∈Rd×(N−1),其中 N N N为样本类别数。对于约束优化问题(12),同样利用拉格朗日乘子法可以得到 W W W的解是 S w − 1 S b S_w^{-1}S_b Sw−1Sb的 d ′ d' d′个最大非零广义特征值所对应的特征向量组成的矩阵, d ′ ≤ N − 1 d' \le N-1 d′≤N−1。
5. LDA算法流程
输入:
d
d
d维数据集
X
=
{
(
x
i
,
y
i
)
}
i
=
1
m
X=\{(x_i,y_i)\}_{i=1}^{m}
X={(xi,yi)}i=1m,
y
i
∈
{
1
,
2
,
…
,
N
}
y_i \in \{1,2,\dots,N\}
yi∈{1,2,…,N},要降到的维度
d
′
d'
d′
输出:降维后的数据集
X
′
X'
X′
Step1: 计算类内散度矩阵
S
w
S_w
Sw:
S
w
=
∑
i
=
1
N
∑
x
∈
X
i
(
x
−
μ
i
)
(
x
−
μ
i
)
T
S_w=\sum_{i=1}^N\sum_{x\in X_i}(x-\mu_i)(x-\mu_i)^T
Sw=i=1∑Nx∈Xi∑(x−μi)(x−μi)TStep2: 计算类间散度矩阵
S
b
S_b
Sb:
S
b
=
∑
i
=
1
N
m
i
(
μ
i
−
μ
)
(
μ
i
−
μ
)
T
S_b=\sum_{i=1}^Nm_i(\mu_i-\mu)(\mu_i-\mu)^T
Sb=i=1∑Nmi(μi−μ)(μi−μ)T其中
m
i
m_i
mi为第
i
i
i类的样本数目,
μ
\mu
μ为所有样本均值向量
Step3: 计算矩阵
S
w
−
1
S
b
S_w^{-1}S_b
Sw−1Sb
Step4: 对
S
w
−
1
S
b
S_w^{-1}S_b
Sw−1Sb进行奇异值分解,得到奇异值
λ
i
\lambda_i
λi及其对应的特征向量
w
i
w_i
wi,
i
=
1
,
2
,
…
,
N
−
1
i=1, 2, \dots,N-1
i=1,2,…,N−1。
Step5: 取前
d
′
d'
d′大的奇异值对应的特征向量组成投影矩阵
W
W
W
Step6: 计算样本集中每个样本
x
i
x_i
xi在新的低维空间的投影
z
i
z_i
zi:
z
i
=
W
T
x
i
z_i=W^Tx_i
zi=WTxi
Step7: 得到降维后的样本集
X
′
=
{
(
z
i
,
y
i
)
}
i
=
1
m
X'=\{(z_i,y_i)\}_{i=1}^{m}
X′={(zi,yi)}i=1m
5. 小结
LDA降维和PCA降维有很多相似之处:
(1) 两者在降维时都使用了特征分解的思想
(2) 两者都假设数据符合高斯分布,因此LDA和PCA都不适合对非高斯分布的样本进行降维
相对于PCA,LDA又有所不同:
(1) LDA是有监督的降维方法,降维过程中可以使用类别的先验知识经验,而PCA不行
(2) LDA选择分类性能最好的投影方向,而PCA选择最大方差的投影方向,因此LDA有过拟合的风险
(3) LDA最多能降到
N
−
1
N-1
N−1的维数,如果降维维度大于
N
−
1
N-1
N−1,则不能使用LDA,而PCA没有这个限制
(4) 当样本分类信息依赖均值时LDA效果较好;依赖方差的时候PCA效果较好