降维
降维可以提升特征表达能力,降低训练复杂度。
PCA最大方差理论
如何定义主成分?从这种定义出发,如何设计目标函数使得降维达到提取主成分的目的?针对这个目标函数,如何对PCA问题进行求解?
速记:通过低维向量表达原始数据,那么低维向量所包含的信息就是主成分。PCA的目标是最大化投影方差。
详细:对于给定的一组数据点
{
v
1
,
v
2
,
.
.
.
,
v
n
}
\{v_1,v_2,...,v_n\}
{v1,v2,...,vn},其中所有向量均为列向量,中心化后的表示为
{
x
1
,
x
2
,
.
.
.
,
x
n
}
=
{
v
1
−
μ
,
v
2
−
μ
−
μ
,
.
.
.
,
v
n
−
μ
}
\{x_1,x_2,...,x_n\}=\{v_1-\mu,v_2-\mu-\mu,...,v_n-\mu\}
{x1,x2,...,xn}={v1−μ,v2−μ−μ,...,vn−μ},其中
μ
=
1
n
∑
i
=
1
n
v
i
\mu=\frac{1}{n}\sum_{i=1}^nv_i
μ=n1∑i=1nvi。我们知道,向量内积在几何上表示为第一个向量投影到第二个向量上的长度,因此向量
x
i
x_i
xi在
ω
\omega
ω(单位方向向量)上的投影坐标可以表示为
(
x
i
,
ω
)
=
x
i
T
ω
(x_i,\omega)=x_i^T\omega
(xi,ω)=xiTω。所以目标是找到一个投影方向
ω
\omega
ω,使得
x
1
,
x
2
,
.
.
.
,
x
n
x_1,x_2,...,x_n
x1,x2,...,xn在
ω
\omega
ω上的投影方差尽可能大。易知,投影之后均值为0(因为
μ
‘
=
1
n
∑
i
=
1
n
x
i
T
ω
=
(
1
n
∑
i
=
1
n
x
i
T
)
ω
=
0
\mu^`=\frac{1}{n}\sum_{i=1}^nx_i^T\omega=(\frac{1}{n}\sum_{i=1}^nx_i^T)\omega=0
μ‘=n1∑i=1nxiTω=(n1∑i=1nxiT)ω=0,这也是进行中心化的意义),因此投影后的方差可以表示为
D
(
x
)
=
1
n
∑
i
=
1
n
(
x
i
T
ω
)
2
=
1
n
∑
i
=
1
n
(
x
i
T
ω
)
T
(
x
i
T
ω
)
=
1
n
∑
i
=
1
n
ω
T
x
i
x
i
T
ω
=
ω
T
(
1
n
∑
i
=
1
n
x
i
x
i
T
)
ω
D(x)=\frac{1}{n}\sum_{i=1}^n(x_i^T\omega)^2 =\frac{1}{n}\sum_{i=1}^n(x_i^T\omega)^T(x_i^T\omega) =\frac{1}{n}\sum_{i=1}^n\omega^Tx_ix_i^T\omega =\omega^T(\frac{1}{n}\sum_{i=1}^nx_ix_i^T)\omega
D(x)=n1i=1∑n(xiTω)2=n1i=1∑n(xiTω)T(xiTω)=n1i=1∑nωTxixiTω=ωT(n1i=1∑nxixiT)ω
仔细一看,
ω
T
(
1
n
∑
i
=
1
n
x
i
x
i
T
)
ω
\omega^T(\frac{1}{n}\sum_{i=1}^nx_ix_i^T)\omega
ωT(n1∑i=1nxixiT)ω其实就是样本协方差矩阵,将其写为
∑
\sum
∑。另外由于
ω
\omega
ω是单位方向向量,即有
ω
T
ω
=
1
\omega^T\omega=1
ωTω=1。因此要求解一个最大化问题,可表示为
{
m
a
x
{
ω
T
∑
ω
}
s
.
t
.
ω
T
ω
=
1
\begin{cases} max\{\omega^T\sum\omega\}\\ s.t. \omega^T\omega=1 \end{cases}
{max{ωT∑ω}s.t.ωTω=1
引入拉格朗日乘子,并对
ω
\omega
ω求导令其为0,便可以推出
∑
ω
=
λ
ω
\sum\omega=\lambda\omega
∑ω=λω,此时
D
(
x
)
=
ω
T
∑
ω
=
λ
ω
T
ω
=
λ
D(x)=\omega^T\sum\omega=\lambda\omega^T\omega=\lambda
D(x)=ωT∑ω=λωTω=λ
x
x
x投影后的方差就是协方差矩阵的特征值。我们要找的最大方差也就是协方差矩阵最大的特征值,最佳投影方向就是最大特征所对应的特征向量。次佳投影方向位于最佳投影方向的正交空间中,是第二大特征值对于的特征向量,以此类推。至此,得到以下PCA的求解方法。
(1)对样本数据进行中心化处理。
(2)求样本协方差矩阵
(3)对协方差矩阵进行特征值分解,将特征值从大到小排列。
(4)取特征值前d大对应的特征向量
ω
1
,
ω
2
,
.
.
.
,
ω
d
\omega_1,\omega_2,...,\omega_d
ω1,ω2,...,ωd,通过以下映射将n维样本映射到d维。
x
i
‘
=
[
ω
1
T
x
i
ω
2
T
x
i
⋮
ω
d
T
x
i
]
x_i^`=\begin{bmatrix} \omega_1^Tx_i \\ \omega_2^Tx_i \\ \vdots \\ \omega_d^Tx_i \end{bmatrix}
xi‘=⎣⎢⎢⎢⎡ω1Txiω2Txi⋮ωdTxi⎦⎥⎥⎥⎤
新的
x
i
‘
x_i^`
xi‘的第d维就是
x
i
x_i
xi在第d个主成分
ω
d
\omega_d
ωd方向上的投影。
PCA最小平方误差理论
看书
线性判别分析
LDA,是一种有监督学习算法,经常被用来对数据进行降维。在PCA中,算法没有考虑数据的标签,只是把原数据映射到一些方差比较大的方向上而已。所以,使用有时使用PCA算法进行降维后再进行分类的效果会非常差。
对于具有类别标签的数据,应当如何设计目标函数舍得降维的过程中不损失类别信息?在这种目标下,应当如何进行求解?
速记:找到一个投影方向,舍得投影后样本尽可能按照原始类别分开。
详细:中心思想:最大化类间距离和最小化类内距离。具体看书。LDA由于模型 简单,表达能力有一定局限性,可以通过引入核函数扩展LDA方法以处理分布较为复杂的数据。
PCA与LDA
LDA和PCA作为经典的降维算法,如何从应用的角度分析其原理的异同?从数学推导的角度,两种降维算法在目标函数上有何区别与联系?
速记:对无监督的任务使用PCA,有监督则用LDA。二者求解方法相似,但原理不同,PCA选择的是投影后数据方差最大的方向。LDA选择的是投影后类内方差小,类间方差大的方向。