1.SVD
1.1 特征值和特征向量:
由特征值和特征向量的??=??关系,我们可以得出:
A
x
=
λ
x
Ax = \lambda x
Ax=λx
A
A
A:
n
×
n
n\times n
n×n 的实对称矩阵;
λ
:
\lambda:
λ: 特征值;
x
x
x:特征向量
求出特征值和特征向量我们可以对矩阵进行分解。
假设矩阵A的?个特征值
λ
1
≤
λ
2
≤
.
.
.
≤
λ
n
\lambda_1 ≤ \lambda_2 ≤ ...≤\lambda_n
λ1≤λ2≤...≤λn,以及这?个特征值所对应的特征向量
{
w
1
,
w
2
,
.
.
.
w
n
}
\{w_1,w_2,...w_n\}
{w1,w2,...wn},如果这?个特征向量线性无关,那么矩阵
A
A
A可以分解为:
A
=
W
∑
W
−
1
A=W\sum W^{-1}
A=W∑W−1
W
W
W:?个特征向量所张成的?×?维矩阵;
∑
\sum
∑:n个特征值为主对角线的?×?维矩阵;
标准化后: ∣ ∣ w i ∣ ∣ 2 = 1 ||w_i||^2=1 ∣∣wi∣∣2=1,可以得出: W − 1 = W T W^{-1} = W^T W−1=WT, A = W ∑ W T A=W\sum W^{T} A=W∑WT
1.2 SVD定义:
使用SVD可以对任意矩阵进行分解,而不要求方阵。
m
×
n
m\times n
m×n的矩阵A的SVD定义为:
A
=
U
∑
V
T
A = U\sum V^T
A=U∑VT
- U : U: U: m × m m\times m m×m 的矩阵
- ∑ : \sum: ∑: m × n m\times n m×n 的矩阵 除了对角线元素其他都为0;
-
U
:
U:
U:
m
×
n
m\times n
m×n 的矩阵
1.3 如何求分解:
-
右奇异矩阵:
( A T A ) v i = λ v i (A^TA)v_i=\lambda v_i (ATA)vi=λvi
所有特征向量 v i v_i vi张成一个 n × n n\times n n×n的矩阵 V V V,即我们SVD中的 V V V -
左奇异矩阵:
( A T A ) u i = λ u i (A^TA)u_i=\lambda u_i (ATA)ui=λui
所有特征向量 u i u_i ui张成一个 n × n n\times n n×n的矩阵 U U U,即我们SVD中的 U U U -
奇异矩阵:
A = U Σ V T ⇒ A V = U Σ V T V ⇒ A V = U Σ ⇒ A v i = σ i u i ⇒ σ i = A v i / u i A=U \Sigma V^{T} \Rightarrow A V=U \Sigma V^{T} V \Rightarrow A V=U \Sigma \Rightarrow A v_{i}=\sigma_{i} u_{i} \Rightarrow \sigma_{i}=A v_{i} / u_{i} A=UΣVT⇒AV=UΣVTV⇒AV=UΣ⇒Avi=σiui⇒σi=Avi/ui
由上述公式便可求出奇异值和奇异矩阵。 -
为什么 A T A A^TA ATA 的特征向量组成SVD中的 V V V矩阵:
A = U Σ V T ⇒ A T = V Σ T U T ⇒ A T A = V Σ T U T U Σ V T = V Σ 2 V T A=U \Sigma V^{T} \Rightarrow A^{T}=V \Sigma^{T} U^{T} \Rightarrow A^{T} A=V \Sigma^{T} U^{T} U \Sigma V^{T}=V \Sigma^{2} V^{T} A=UΣVT⇒AT=VΣTUT⇒ATA=VΣTUTUΣVT=VΣ2VT -
由上述可以得出矩阵A的奇异值和 A T A A^TA ATA的特征值满足下列关系:
σ i = λ i \sigma_i = \sqrt{\lambda_i} σi=λi
详细推导见[9]。
2.PCA:
2.1 基础数学知识:
- PCA的目标:最大化投影方差。信号具有较大方差, 噪声具有较小方差, 信号与噪声之比称为信噪比。信噪比越大意味着数据的质量越好, 反之, 信噪比越小意味着数据的质量越差
- 内积与投影: A ⋅ B = ∣ A ∣ ∣ B ∣ cos ( α ) A \cdot B=|A||B| \cos (\alpha) A⋅B=∣A∣∣B∣cos(α)
- 方差: Var ( a ) = 1 m ∑ i = 1 m ( a i − μ ) 2 \operatorname{Var}(a)=\frac{1}{m} \sum_{i=1}^{m}\left(a_{i}-\mu\right)^{2} Var(a)=m1∑i=1m(ai−μ)2
- 协方差:
c o v ( X , Y ) = E [ ( X − E [ X ] ) ( Y − E [ Y ] ) ] = 1 n ∑ i = 1 n ( x i − E ( X ) ) ( y i − E ( Y ) ) = 1 m X X T cov(X, Y)=\mathrm{E}[(X-\mathrm{E}[X])(Y-\mathrm{E}[Y])] = \frac{1}{n} \sum_{i=1}^{n}\left(x_{i}-E(X)\right)\left(y_{i}-E(Y)\right) =\frac{1}{m} X X^{\mathrm{T}} cov(X,Y)=E[(X−E[X])(Y−E[Y])]=n1∑i=1n(xi−E(X))(yi−E(Y))=m1XXT - 矩阵求导: ∂ A ⊤ A ∂ A = A \frac{\partial A^{\top} A}{\partial A}=A ∂A∂A⊤A=A
1.2 理论推导-最大化投影方差:
以下从最大化投影方差角度来讲解如何实现PCA,设数据点为 { v 1 , v 2 , … , v n } \left\{v_{1}, v_{2}, \ldots, v_{n}\right\} {v1,v2,…,vn},所有向量为列向量
- 去中心化: { x 1 , x 2 , … , x n } = { v 1 − μ , v 2 − μ , … , v n − μ } \left\{\boldsymbol{x}_{1}, \boldsymbol{x}_{2}, \ldots, \boldsymbol{x}_{n}\right\}=\left\{\boldsymbol{v}_{1}-\boldsymbol{\mu}, \boldsymbol{v}_{2}-\boldsymbol{\mu}, \ldots, \boldsymbol{v}_{n}-\boldsymbol{\mu}\right\} {x1,x2,…,xn}={v1−μ,v2−μ,…,vn−μ},去中心化的目的是为了使得投影后的数据均值为0;
- 求投影方差: D ( x ) = 1 n ∑ i = 1 n ( x i T ω ) 2 = ω T ( 1 n ∑ i = 1 n x i x i T ) ω D(\boldsymbol{x})=\frac{1}{n} \sum_{i=1}^{n}\left(\boldsymbol{x}_{i}^{\mathrm{T}} \boldsymbol{\omega}\right)^{2} = \omega^{\mathrm{T}}\left(\frac{1}{n} \sum_{i=1}^{n} \boldsymbol{x}_{i} \boldsymbol{x}_{i}^{\mathrm{T}}\right) \boldsymbol{\omega} D(x)=n1∑i=1n(xiTω)2=ωT(n1∑i=1nxixiT)ω
- 样本协方差矩阵: C = ∑ i = 1 n x i x i T C=\sum_{i=1}^{n} \boldsymbol{x}_{i} \boldsymbol{x}_{i}^{\mathrm{T}} C=∑i=1nxixiT,投影后的方差即协方差矩阵的特征值;
- 协方差矩阵进行特征值分解 ( λ 1 , λ 2 , . . . λ n ) (\lambda_1, \lambda_2,...\lambda_n) (λ1,λ2,...λn),并求解对应的特征向量 ( e 1 , e 2 , . . . e n ) (e_1, e_2,...e_n) (e1,e2,...en);
- 特征向量按对应特征值大小从上到下按行排列成矩阵,取前 d d d行组成矩阵P;
- Y = P X Y=PX Y=PX即为降维到 d d d维后的数据;
- 降维后的信息占比: ∑ i = 1 d λ i 2 / ∑ i = 1 n λ i 2 \sqrt{\sum^{d}_{i=1}{\lambda_i^2}/\sum^{n}_{i=1}{\lambda_i^2}} ∑i=1dλi2/∑i=1nλi2
3. LDA(Linear Discriminant Analysis)
3.1理论推导:
LDA的主要思想是:最大化类间距离,最小化类内距离;
二分类样本,两类是
C
1
,
C
2
C_1, C_2
C1,C2, 均值分别为
μ
1
=
1
N
1
∑
x
∈
C
1
x
,
μ
2
=
1
N
2
∑
x
∈
C
2
x
\mu_1=\frac{1}{N_{1}} \sum_{x \in C_{1}} x, \mu_2=\frac{1}{N_{2}} \sum_{x \in C_{2}} x
μ1=N11∑x∈C1x,μ2=N21∑x∈C2x
- 投影后类间距离: D ( C 1 , C 2 ) = ∥ μ ~ 1 − μ ~ 2 ∥ 2 2 = ∥ w T ( μ 1 − μ 2 ) ∥ 2 2 D(C 1, C 2)=\left\|\widetilde{\mu}_{1}-\widetilde{\mu}_{2}\right\|_{2}^{2}=\left\|w^{T}\left(\mu_{1}-\mu_{2}\right)\right\|_{2}^{2} D(C1,C2)=∥μ 1−μ 2∥22=∥∥wT(μ1−μ2)∥∥22
- 优化目标(最大化类间方差): max ω ∥ ω T ( μ 1 − μ 2 ) ∥ 2 2 ; s . t . ω T ω = 1 \max _{\omega}\left\|\omega^{\mathrm{T}}\left(\mu_{1}-\mu_{2}\right)\right\|_{2}^{2} ;s.t.\omega^{\mathrm{T}} \omega=1 maxω∥∥ωT(μ1−μ2)∥∥22;s.t.ωTω=1
- 最小化投影后类内方差: D 1 = ∑ x ∈ C 1 ( ω T x − ω T μ 1 ) 2 = ∑ x ∈ C 1 ω T ( x − μ 1 ) ( x − μ 1 ) T ω D_{1}=\sum_{x \in C_{1}}\left({\omega}^{\mathrm{T}}{x}-{\omega}^{\mathrm{T}} \boldsymbol{\mu}_{1}\right)^{2}=\sum_{{x} \in \mathcal{C}_{1}} {\omega}^{\mathrm{T}}\left(\boldsymbol{x}-\boldsymbol{\mu}_{1}\right)\left({x}-{\mu}_{1}\right)^{\mathrm{T}}{\omega} D1=∑x∈C1(ωTx−ωTμ1)2=∑x∈C1ωT(x−μ1)(x−μ1)Tω, D 2 D_{2} D2 有同样的结果;
- 综合目标: J ( ω ) = ω T ( μ 1 − μ 2 ) ( μ 1 − μ 2 ) T ω ∑ x ∈ C i ω T ( x − μ i ) ( x − μ i ) T ω J(\omega)=\frac{\omega^{\mathrm{T}}\left(\mu_{1}-\mu_{2}\right)\left(\mu_{1}-\mu_{2}\right)^{\mathrm{T}} \omega}{\sum_{x \in C_{i}} \omega^{\mathrm{T}}\left(x-\mu_{i}\right)\left(x-\mu_{i}\right)^{\mathrm{T}} \omega} J(ω)=∑x∈CiωT(x−μi)(x−μi)TωωT(μ1−μ2)(μ1−μ2)Tω
- 对其求导令其为0: ∂ J ( ω ) ∂ ω = ( ∂ ω T S B ω ∂ ω ω T S w ω − ∂ ω T S w ω ∂ ω ω T S B ω ) ( ω T S w ω ) 2 = 0 \frac{\partial J(\omega)}{\partial \omega}=\frac{\left(\frac{\partial \omega^{\mathrm{T}} S_{B} \omega}{\partial \omega} \omega^{\mathrm{T}} S_{w} \omega-\frac{\partial \omega^{\mathrm{T}} S_{w} \omega}{\partial \omega} \omega^{\mathrm{T}} S_{B} \omega\right)}{\left(\omega^{\mathrm{T}} S_{w} \omega\right)^{2}}=0 ∂ω∂J(ω)=(ωTSwω)2(∂ω∂ωTSBωωTSwω−∂ω∂ωTSwωωTSBω)=0
- 最佳投影方向: J ω = S w − 1 ( μ 1 − μ 2 ) J_{\omega}=S_{w}^{-1}\left(\mu_{1}-\mu_{2}\right) Jω=Sw−1(μ1−μ2)
算法假设:
LDA算法的实现对数据分布做了很多强假设:
- 每个类数据都是高斯分布
- 各个类的协方差相等
实际训练过程中,由于test是没有标签的所以我们不能对test做同样的LDA操作,也就无法使用。
PCA vs LDA
PCA | LDA | |
---|---|---|
有无监督 | 无监督学习 | 有监督学习 |
目标 | 方差最大的方向 | 最大化类间距离、 最小化类内距离 |
强假设 | 数据满足高斯分布、 各个类的协方差相等 |
参考资料:
1. 一文详解LDA主题模型
2. LDA(Latent Dirichlet Allocation)主题模型
3. LDA-math-汇总 LDA数学八卦
4. Introduction to Latent Dirichlet Allocation
5. LSA(Latent semantic analysis)
6. 通俗理解潜在语义分析LSA
7. 文本主题模型之非负矩阵分解(NMF)
8. PCA的数学原理(转)
9. 奇异值分解(SVD)原理与在降维中的应用