我们知道,解决过拟合的问题除了正则化和添加数据之外,降维就是最好的方法。降维的思路来源于维度灾难的问题,从几何角度来看,我们知道 n n n 维球的体积为: C R n CR^n CRn 那么在球体积与边长为 2 R 2R 2R 的超立方体比值为: lim n → 0 C R n 2 n R n = 0 \lim\limits_{n\rightarrow0}\frac{CR^n}{2^nR^n}=0 n→0lim2nRnCRn=0
当 n n n比较小的时候,数据分布还比较均匀,但是随着 n n n增大,也就是维度增加的时候,数据的分布会及其不均匀,因为球的体积占比会非常小,在高维数据中,主要样本都分布在立方体的边缘,这就是所谓的维度灾难,所以数据集更加稀疏。
降维的算法分为:
- 直接降维,特征选择
- 线性降维,PCA,MDS等
- 分线性,流形包括 Isomap,LLE 等
假设数据集为:
X
=
(
x
1
,
x
2
,
⋯
,
x
N
)
T
=
(
x
1
T
x
2
T
⋮
x
p
T
)
=
(
x
11
x
21
…
x
1
p
x
21
x
22
…
x
2
p
⋮
⋮
⋮
⋮
x
p
1
x
p
2
…
x
p
p
)
N
∗
p
X=(x_1,x_2,\cdots,x_N)^T=\left(\begin{array}{c}x_{1}^T \\ x_{2}^T\\ \vdots \\ x_{p}^T\end{array}\right)=\left(\begin{array}{c}x_{11} x_{21} \dots x_{1p}\\ x_{21} x_{22} \dots x_{2p}\\ \vdots \quad \vdots \quad \vdots \quad \vdots \\ x_{p1} x_{p2} \dots x_{pp} \end{array}\right)_{N*p}
X=(x1,x2,⋯,xN)T=⎝⎜⎜⎜⎛x1Tx2T⋮xpT⎠⎟⎟⎟⎞=⎝⎜⎜⎜⎛x11x21…x1px21x22…x2p⋮⋮⋮⋮xp1xp2…xpp⎠⎟⎟⎟⎞N∗p
1
N
=
(
1
1
⋮
1
)
N
∗
1
1_N=\left(\begin{array}{c}1 \\ 1\\ \vdots \\1\end{array}\right)_{N*1}
1N=⎝⎜⎜⎜⎛11⋮1⎠⎟⎟⎟⎞N∗1
x
i
∈
R
p
,
i
=
1
,
2
⋯
N
x_{i} \in \mathbb{R}^{p},i = 1,2 \cdots N
xi∈Rp,i=1,2⋯N
样本均值:
x
‾
p
∗
1
=
1
N
∑
i
=
1
N
x
i
\overline{x}_{p*1}=\frac{1}{N}\sum\limits_{i=1}^Nx_i
xp∗1=N1i=1∑Nxi
样本方差:
S
p
∗
p
=
1
N
∑
i
=
1
N
(
x
i
−
X
‾
)
(
x
i
−
X
‾
)
T
S_{p*p}=\frac{1}{N}\sum\limits_{i=1}^N(x_i-\overline{X})(x_i-\overline{X})^T
Sp∗p=N1i=1∑N(xi−X)(xi−X)T
为了方便,我们首先将协方差矩阵(数据集)写成中心化的形式:
x
‾
p
∗
1
=
1
N
∑
i
=
1
N
x
i
=
1
N
(
x
1
,
x
2
,
⋯
,
x
N
)
(
1
1
⋮
1
)
N
∗
1
=
1
N
X
T
1
N
\overline{x}_{p*1}=\frac{1}{N}\sum\limits_{i=1}^Nx_i=\frac{1}{N}(x_1,x_2,\cdots,x_N)\left(\begin{array}{c}1 \\ 1\\ \vdots \\1\end{array}\right)_{N*1}=\frac{1}{N}X^T1_N
xp∗1=N1i=1∑Nxi=N1(x1,x2,⋯,xN)⎝⎜⎜⎜⎛11⋮1⎠⎟⎟⎟⎞N∗1=N1XT1N
S
=
1
N
∑
i
=
1
N
(
x
i
−
X
‾
)
(
x
i
−
X
‾
)
T
=
1
N
(
x
1
−
X
‾
,
x
2
−
X
‾
,
⋯
,
x
N
−
X
‾
)
(
x
1
−
X
‾
,
x
2
−
X
‾
,
⋯
,
x
N
−
X
‾
)
T
=
1
N
(
X
T
−
X
‾
1
N
T
)
(
X
T
−
X
‾
1
N
T
)
T
=
1
N
(
X
T
−
1
N
X
T
1
N
1
N
T
)
(
X
T
−
1
N
X
T
1
N
1
N
T
)
T
=
1
N
X
T
(
I
N
−
1
N
1
N
1
N
T
)
(
I
N
−
1
N
1
N
1
N
T
)
T
X
=
1
N
X
T
H
N
H
N
T
X
=
1
N
X
T
H
N
H
N
X
=
1
N
X
T
H
X
\begin{aligned} S &=\frac{1}{N}\sum\limits_{i=1}^N(x_i-\overline{X})(x_i-\overline{X})^T\\ \\ &=\frac{1}{N}(x_1-\overline{X},x_2-\overline{X},\cdots,x_N-\overline{X})(x_1-\overline{X},x_2-\overline{X},\cdots,x_N-\overline{X})^T\\\\ &=\frac{1}{N}(X^T-\overline{X}1_N^T)(X^T-\overline{X}1_N^T)^T\\\\ &=\frac{1}{N}(X^T-\frac{1}{N}X^T1_N1_N^T)(X^T-\frac{1}{N}X^T1_N1_N^T)^T\\\\ &=\frac{1}{N}X^T(I_N-\frac{1}{N}1_N1_N^T)(I_N-\frac{1}{N}1_N1_N^T)^TX\\ \\ &=\frac{1}{N}X^TH_NH_N^TX\\ \\ &=\frac{1}{N}X^TH_NH_NX\\\\ &=\frac{1}{N}X^THX \end{aligned}
S=N1i=1∑N(xi−X)(xi−X)T=N1(x1−X,x2−X,⋯,xN−X)(x1−X,x2−X,⋯,xN−X)T=N1(XT−X1NT)(XT−X1NT)T=N1(XT−N1XT1N1NT)(XT−N1XT1N1NT)T=N1XT(IN−N11N1NT)(IN−N11N1NT)TX=N1XTHNHNTX=N1XTHNHNX=N1XTHX
这个式子利用了中心矩阵
H
H
H的对称性,这也是一个投影矩阵。
定义;中心矩阵centeringmatrix:
H
N
=
I
N
−
1
N
1
N
1
N
T
H_N=I_N-\frac{1}{N}1_N1_N^T
HN=IN−N11N1NT
H
N
H_N
HN 每个样本减去均值,会使图像向中心移动
S
=
1
N
X
T
H
H
T
X
S = \frac { 1 } { N } X ^ { T } H H ^ { T } X
S=N1XTHHTX中心矩阵
H
N
H_N
HN具有以下性质
H
N
=
I
N
−
1
N
1
N
1
N
T
H_N=I_N-\frac{1}{N}1_N1_N^T
HN=IN−N11N1NT
H N T = I N − 1 N 1 N 1 N T = H N H_N^T=I_N-\frac{1}{N}1_N1_N^T=H_N HNT=IN−N11N1NT=HN
H 2 = H ⋅ H = ( I N − 1 N 1 N 1 N T ) ( I N − 1 N 1 N 1 N T ) = I N − 2 N 1 N 1 N T + 1 N 2 1 N 1 N T 1 N 1 N T = I N − 1 N 1 N 1 N T = H N H ^ { 2 } = H \cdot H = ( I _ { N } - \frac { 1 } { N } 1 _ { N } 1 _ { N } ^ { T } ) ( I _ { N } - \frac { 1 } { N } 1 _ { N } 1 _ { N } ^ { T } ) \\ \\ = I _ { N } - \frac { 2 } { N } 1 _ { N } 1 _ { N } ^ { T } + \frac { 1 } { N ^ { 2 } } 1 _ { N } 1 _ { N } ^ { T } 1 _ { N } 1 _ { N } ^ { T } = I _ { N } - \frac { 1 } { N } 1 _ { N } 1 _ { N } ^ { T } = H _ { N } H2=H⋅H=(IN−N11N1NT)(IN−N11N1NT)=IN−N21N1NT+N211N1NT1N1NT=IN−N11N1NT=HN
所以: S = 1 N X T H H T X = 1 N X T H X S = \frac { 1 } { N } X ^ { T } H H ^ { T } X = \frac { 1 } { N } X ^ { T } H X S=N1XTHHTX=N1XTHX
1 线性降维-主成分分析 PCA
主成分分析中,我们的基本想法是将所有数据投影到一个字空间中,从而达到降维的目标,为了寻找这个子空间,我们基本想法是:
- 所有数据在子空间中更为分散
- 损失的信息最小,即:在补空间的分量少
总结一下就是,一个中心,两个基本点
一个中心:
将一组可能线性相关的变量,通过正交变换变换成一组线性无关的变量(主成分),原始特征空间的重构:相关
→
\rightarrow
→无关
两个基本点:
- 最大投影方差:即数据足够分散
- 最小重构距离:从投影返回到原始数据的代价
最大投影方差与最小重构距离是PCA中心思想的两种不同角度,实际上表述的是同一个意思,但方差比较大时,数据才会比较分散,那么重构回去时比较简单;若数据比较集中,甚至比较极端点,数据经过降维后都变成了一个点,基本上是重构不回去的。
原来的数据很有可能各个维度之间是相关的,于是我们希望找到一组 p p p 个新的线性无关的单位基 u i u_i ui,降维就是取其中的 q q q 个基。于是对于一个样本 x i x_i xi,经过这个坐标变换后: x i ^ = ∑ i = 1 p ( u i T x i ) u i = ∑ i = 1 q ( u i T x i ) u i + ∑ i = q + 1 p ( u i T x i ) u i \hat{x_i}=\sum\limits_{i=1}^p(u_i^Tx_i)u_i=\sum\limits_{i=1}^q(u_i^Tx_i)u_i+\sum\limits_{i=q+1}^p(u_i^Tx_i)u_i xi^=i=1∑p(uiTxi)ui=i=1∑q(uiTxi)ui+i=q+1∑p(uiTxi)ui
1.1 最大投影方差
方法
1、中心化,每个样本点减去均值
x
i
−
X
‾
x_i- \overline{X}
xi−X
2、投影,求最大方差
假设投影到
μ
1
\mu_{1}
μ1 上,投影过程为
(
x
i
−
X
ˉ
)
T
μ
1
\left.\mathbf{(} x_{i}-\bar{X}\right)^{T} \mu_{1} \quad
(xi−Xˉ)Tμ1
s
.
t
.
μ
1
T
μ
1
=
1
s.t. \quad \mu_{1}^{T} \mu_{1}=1
s.t.μ1Tμ1=1,这里假设
μ
1
\mu_{1}
μ1的模是1
投影后方差为:(因为投影前已经减去了均值,所以这里可以直接平方)
J
=
1
N
∑
i
=
1
N
(
(
x
i
−
X
ˉ
)
T
μ
1
)
2
=
1
N
∑
i
=
1
N
μ
1
T
(
x
i
−
X
ˉ
)
(
x
i
−
X
ˉ
)
T
μ
1
=
μ
1
T
(
∑
i
=
1
N
1
N
(
x
i
−
X
ˉ
)
(
x
i
−
X
ˉ
)
T
)
μ
1
=
μ
1
T
S
μ
1
\begin{aligned} J &=\frac{1}{N} \sum_{i=1}^{N}\left(\left(x_{i}-\bar{X}\right)^{T} \mu_{1}\right)^{2} \\ &=\frac{1}{N} \sum_{i=1}^{N} \mu_{1}^{T}\left(x_{i}-\bar{X}\right)\left(x_{i}-\bar{X}\right)^{T} \mu_{1} \\ &=\mu_{1}^{T}\left(\sum_{i=1}^{N} \frac{1}{N}\left(x_{i}-\bar{X}\right)\left(x_{i}-\bar{X}\right)^{T}\right) \mu_{1} \\ &=\mu_{1}^{T} S \mu_{1} \end{aligned}
J=N1i=1∑N((xi−Xˉ)Tμ1)2=N1i=1∑Nμ1T(xi−Xˉ)(xi−Xˉ)Tμ1=μ1T(i=1∑NN1(xi−Xˉ)(xi−Xˉ)T)μ1=μ1TSμ1
上述问题就是以下的优化问题:
μ
=
a
r
g
m
a
x
μ
1
T
S
μ
1
\mu=\mathop{argmax} \mu_{1}^{T} S \mu_{1}
μ=argmaxμ1TSμ1
s
.
t
.
μ
1
T
μ
1
=
1
s.t. \quad \mu_{1}^{T} \mu_{1}=1
s.t.μ1Tμ1=1
采用拉格朗日乘值法进行求解:
L
(
μ
1
,
λ
)
=
μ
1
T
S
μ
1
+
λ
(
1
−
μ
1
T
μ
1
)
∂
L
∂
μ
1
=
2
S
μ
1
−
2
λ
μ
1
=
0
S
μ
1
=
λ
μ
1
\begin{array}{l} L\left(\mu_{1}, \lambda\right)=\mu_{1}^{T} S \mu_{1}+\lambda\left(1-\mu_{1}^{T} \mu_{1}\right) \\ \\ \frac{\partial L}{\partial \mu_{1}}=2 S \mu_{1}-2 \lambda \mu_{1}=0 \\ \\ S \mu_{1}=\lambda \mu_{1} \end{array}
L(μ1,λ)=μ1TSμ1+λ(1−μ1Tμ1)∂μ1∂L=2Sμ1−2λμ1=0Sμ1=λμ1
所以,要求的就是协方差矩阵S的特征向量
上面以一个
μ
1
\mu_{1}
μ1为例进行介绍的,下面介绍多个单位基的情况。
原来的数据很有可能各个维度之间是相关的,于是我们希望找到一组
p
p
p 个新的线性无关的单位基
u
i
u_i
ui,降维就是取其中的
q
q
q 个基。于是对于一个样本
x
i
x_i
xi,经过这个坐标变换后:
x
i
^
=
∑
i
=
1
p
(
u
i
T
x
i
)
u
i
=
∑
i
=
1
q
(
u
i
T
x
i
)
u
i
+
∑
i
=
q
+
1
p
(
u
i
T
x
i
)
u
i
\hat{x_i}=\sum\limits_{i=1}^p(u_i^Tx_i)u_i=\sum\limits_{i=1}^q(u_i^Tx_i)u_i+\sum\limits_{i=q+1}^p(u_i^Tx_i)u_i
xi^=i=1∑p(uiTxi)ui=i=1∑q(uiTxi)ui+i=q+1∑p(uiTxi)ui 对于数据集来说,我们首先将其中心化然后再去上面的式子的第一项,并使用其系数的平方平均作为损失函数并最大化:
J
=
1
N
∑
i
=
1
N
∑
j
=
1
q
(
(
x
i
−
X
ˉ
)
T
μ
j
)
2
=
∑
j
=
1
q
μ
j
T
S
μ
j
\begin{aligned} J &=\frac{1}{N}\sum\limits_{i=1}^N\sum\limits_{j=1}^q \left(\left(x_{i}-\bar{X}\right)^{T} \mu_{j}\right)^{2} \\ &=\sum\limits_{j=1}^q\mu_{j}^{T} S \mu_{j} \end{aligned}
J=N1i=1∑Nj=1∑q((xi−Xˉ)Tμj)2=j=1∑qμjTSμj
s
.
t
.
μ
j
T
μ
j
=
1
s.t. \quad \mu_{j}^{T} \mu_{j}=1
s.t.μjTμj=1
由于每个基都是线性无关的,于是每一个
u
j
u_j
uj 的求解可以分别进行,使用拉格朗日乘子法:
argmax
u
j
L
(
u
j
,
λ
)
=
argmax
u
j
u
j
T
S
u
j
+
λ
(
1
−
u
j
T
u
j
)
\underset{u_{j}}{\operatorname{argmax}}L(u_j,\lambda)=\underset{u_{j}}{\operatorname{argmax}} u_j^TSu_j+\lambda(1-u_j^Tu_j)
ujargmaxL(uj,λ)=ujargmaxujTSuj+λ(1−ujTuj) 于是:
S
u
j
=
λ
u
j
Su_j=\lambda u_j
Suj=λuj 可见,我们需要的基就是协方差矩阵的特征向量。损失函数最大取在本征值前
q
q
q 个最大值。
1.2 最小重构代价
对于向量
x
i
x_{i}
xi在
u
k
u_{k}
uk 方向的投影值为
x
i
T
u
k
x_{i}^Tu_{k}
xiTuk ,投影值和单位向量的乘机为
(
x
i
T
u
k
)
u
k
(x_{i}^Tu_{k})u_{k}
(xiTuk)uk
所以 完整的是
x
i
=
∑
k
=
1
p
(
x
i
T
u
k
)
u
k
x_{i}=\sum\limits_{k=1}^p(x_{i}^Tu_{k})u_{k}
xi=k=1∑p(xiTuk)uk
为什么使用求和就可以呢,以二维坐标系进行简单说明(见下图)怎么表示向量
x
x
x呢,其实就是下图中x,y轴上的两个向量的加和,其中在x轴上的向量的值实际上就是向量
x
x
x在x轴上的投影在乘上x轴的单位向量,这就是上面式子的原因。
用PCA进行降维,降维后的维度为q,并且q<p
x
^
i
=
∑
k
=
1
q
(
x
i
T
u
k
)
u
k
\hat{x}_{i}=\sum\limits_{k=1}^q(x_{i}^Tu_{k})u_{k}
x^i=k=1∑q(xiTuk)uk
重构代价是:
J
=
1
N
∑
i
=
1
N
∥
x
i
−
x
^
i
∥
2
=
1
N
∑
i
=
1
N
∥
∑
k
=
q
+
1
p
(
x
i
T
u
k
)
u
k
∥
2
=
1
N
∑
i
=
1
N
∑
k
=
q
+
1
p
(
x
i
T
u
k
)
2
\begin{aligned} J &=\frac{1}{N} \sum_{i=1}^{N}\left\|x_{i}-\hat{x}_{i}\right\|^{2} \\ &=\frac{1}{N} \sum_{i=1}^{N}\left\|\sum_{k=q+1}^{p}\left(x_{i}^{T} u_{k}\right) u_{k}\right\|^{2} \\ &=\frac{1}{N} \sum_{i=1}^{N} \sum_{k=q+1}^{p}\left(x_{i}^{T} u_{k}\right)^{2} \end{aligned}
J=N1i=1∑N∥xi−x^i∥2=N1i=1∑N∥∥∥∥∥∥k=q+1∑p(xiTuk)uk∥∥∥∥∥∥2=N1i=1∑Nk=q+1∑p(xiTuk)2
x
i
x_{i}
xi进行中心化(PCA需要中心化),重构代价如下:
J
=
1
N
∑
i
=
1
N
∑
k
=
q
+
1
p
(
(
x
i
−
X
ˉ
)
T
u
k
)
2
=
∑
k
=
q
+
1
p
∑
i
=
1
N
1
N
(
(
x
i
−
X
ˉ
)
T
u
k
)
2
=
∑
k
=
q
+
1
p
u
k
T
S
u
k
(
这
里
可
以
写
是
因
为
最
小
投
影
方
差
那
一
样
)
s.t.
u
k
T
u
k
=
1
\begin{aligned} J &=\frac{1}{N} \sum_{i=1}^{N} \sum_{k=q+1}^{p}\left(\left(x_{i}-\bar{X}\right)^{T} u_{k}\right)^{2} \\ &=\sum_{k=q+1}^{p} \sum_{i=1}^{N} \frac{1}{N}\left(\left(x_{i}-\bar{X}\right)^{T} u_{k}\right)^{2} \\ &=\sum_{k=q+1}^{p} u_{k}^{T} S u_{k} (这里可以写是因为最小投影方差那一样)\\ \text { s.t. } & u_{k}^{T} u_{k}=1 \end{aligned}
J s.t. =N1i=1∑Nk=q+1∑p((xi−Xˉ)Tuk)2=k=q+1∑pi=1∑NN1((xi−Xˉ)Tuk)2=k=q+1∑pukTSuk(这里可以写是因为最小投影方差那一样)ukTuk=1 最小重构代价J:
J
=
1
N
∑
i
=
1
N
∑
k
=
q
+
1
p
(
(
x
i
−
X
ˉ
)
T
u
k
)
2
=
∑
k
=
q
+
1
p
u
k
T
S
u
k
s.t.
u
k
T
u
k
=
1
\begin{aligned} J &=\frac{1}{N} \sum_{i=1}^{N} \sum_{k=q+1}^{p}\left(\left(x_{i}-\bar{X}\right)^{T} u_{k}\right)^{2} \\ &=\sum_{k=q+1}^{p} u_{k}^{T} S u_{k} \\ \text { s.t. } & u_{k}^{T} u_{k}=1 \end{aligned}
J s.t. =N1i=1∑Nk=q+1∑p((xi−Xˉ)Tuk)2=k=q+1∑pukTSukukTuk=1
优化问题:
argmax
u
j
L
(
u
j
,
λ
)
=
argmax
u
j
u
j
T
S
u
j
+
λ
(
1
−
u
j
T
u
j
)
\underset{u_{j}}{\operatorname{argmax}}L(u_j,\lambda)=\underset{u_{j}}{\operatorname{argmax}}u_j^TSu_j+\lambda(1-u_j^Tu_j)
ujargmaxL(uj,λ)=ujargmaxujTSuj+λ(1−ujTuj)
损失函数最小取在本征值剩下的个最小的几个值。
最大投影方差与最小重构代价的区别
- 原先由p维取前q维
- 最大投影方差目标前q最大
- 最小重构代价目标后p−q维方差最小
1.3 从SVD 角度看PCA与PCoA
特征值分解
若S为n阶对称阵,则必有正交矩阵G使得
S
=
G
K
G
T
=
G
K
G
−
1
G
T
G
=
I
K
=
[
k
1
0
…
0
0
k
2
…
0
⋮
⋮
⋱
⋮
0
0
…
k
p
]
k
1
≥
k
2
≥
⋯
≥
k
p
S=G K G^{T}=GKG^{-1} \quad G^{T} G=I \quad K=\left[\begin{array}{cccc} k_{1} & 0 & \dots & 0 \\ 0 & k_{2} & \dots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \dots & k_{p} \end{array}\right] \quad k_{1} \geq k_{2} \geq \dots \geq k_{p}
S=GKGT=GKG−1GTG=IK=⎣⎢⎢⎢⎡k10⋮00k2⋮0……⋱…00⋮kp⎦⎥⎥⎥⎤k1≥k2≥⋯≥kp
其中S是方阵,G是这个矩阵甲的特征向量组成的矩阵,K是一个对角阵,每一个对角线上的元素就是一个特征值。一个矩阵的一组特征向量是一组正交向量。
SVD奇异值分解
在现实的世界中,遇到的大部分矩阵都不是方阵,怎样描述这样普通的矩阵的重要特征?答案是可以使用奇异值分解来解决。
A 是一个N * M的矩阵,那么得到的U是一个N * N的方阵(里面的向量是正交的,称为左奇异向量),Σ是一个N * M的矩阵(除了对角线的元素都是0,对角线上的元素称为奇异值),
V
T
V^T
VT是一个m * m的矩阵(里面的向量也是正交的,称为右奇异向量)
上面是对下面可能会用到的知识进行简单的介绍。
实际训练时常常使⽤的 SVD 直接求得这q个特征向量。
-
原始数据为 X X X,中心化矩阵 H = I − 1 N 1 N 1 N T H=I-\frac{1}{N}1_{N}1_{N}^T H=I−N11N1NT
-
对数据进行中心化(中心化矩阵可以实现中心化的功能,可见本章节开始) H X HX HX
-
对中心化后的数据集进行奇异值分解: H X = U Σ V T , U T U = I N , V T V = I p , Σ : N × p HX=U\Sigma V^T,U^TU=I_N,V^TV=I_p,\Sigma:N\times p HX=UΣVT,UTU=IN,VTV=Ip,Σ:N×p
于是:
S
=
1
N
X
T
H
X
=
1
N
X
T
H
T
H
X
=
1
N
V
Σ
T
Σ
V
T
S=\frac{1}{N}X^THX=\frac{1}{N}X^TH^THX=\frac{1}{N}V\Sigma^T\Sigma V^T
S=N1XTHX=N1XTHTHX=N1VΣTΣVT
因为S是实对称阵,所以:
S
=
G
K
G
T
S=G K G^{T}
S=GKGT
G
=
V
K
=
Σ
2
G=V \quad K=\Sigma^2
G=VK=Σ2
因此,我们直接对中心化后的数据集进行 SVD,就可以得到特征值和特征向量
V
V
V,在新坐标系中的坐标就是:
H
X
⋅
V
HX\cdot V
HX⋅V 由上面的推导,我们也可以得到另一种方法 PCoA 主坐标分析,定义并进行特征值分解:
T
=
H
X
X
T
H
=
U
Σ
Σ
T
U
T
T=HXX^TH=U\Sigma\Sigma^TU^T
T=HXXTH=UΣΣTUT
T
T
T和
S
S
S有相同的特征值
- S S S:特征分解,得到方向(主成分),然后 H X ⋅ V → HX⋅V \rightarrow HX⋅V→坐标
- T T T:特征分解,直接得到坐标
T T T主坐标分析(principle coordinate analysis)PCoA
由于:
H
X
⋅
V
=
U
Σ
V
T
V
=
U
Σ
HX⋅V=U\Sigma V^TV=U\Sigma
HX⋅V=UΣVTV=UΣ
T
U
Σ
=
U
Σ
Σ
T
U
T
⋅
U
Σ
=
U
Σ
(
Σ
T
Σ
)
TU\Sigma=U\Sigma\Sigma^TU^T⋅U \Sigma=U\Sigma(\Sigma^T\Sigma)
TUΣ=UΣΣTUT⋅UΣ=UΣ(ΣTΣ)
U
Σ
U\Sigma
UΣ为特征向量组成的矩阵,
Σ
T
Σ
\Sigma^T\Sigma
ΣTΣ为特征值矩阵。于是可以直接得到坐标。这两种方法都可以得到主成分,但是由于方差矩阵是
p
×
p
p\times p
p×p 的,而
T
T
T 是
N
×
N
N\times N
N×N 的,所以对样本量较少的时候可以采用 PCoA的方法。
1.4 从概率角度看PCA:p-PCA
下面从概率的角度对 PCA 进行分析,概率方法也叫 p-PCA。我们使用线性模型,类似之前 LDA,我们选定一个方向,对原数据
x
∈
R
p
x\in\mathbb{R}^p
x∈Rp ,降维后的数据为
z
∈
R
q
,
q
<
p
z\in\mathbb{R}^q,q<p
z∈Rq,q<p。降维通过一个矩阵变换(投影)进行。设
z
z
z的先验:
z
∼
N
(
O
q
1
,
I
q
q
)
x
=
W
z
+
μ
+
ε
ε
∼
N
(
0
,
σ
2
I
p
p
)
\begin{aligned} z & \sim \mathcal{N}\left(\mathbb{O}_{q 1}, \mathbb{I}_{q q}\right) \\ \\ x &=W z+\mu+\varepsilon \\ \\ \varepsilon & \sim \mathcal{N}\left(0, \sigma^{2} \mathbb{I}_{p p}\right) \end{aligned}
zxε∼N(Oq1,Iqq)=Wz+μ+ε∼N(0,σ2Ipp)
σ
2
I
p
=
[
σ
2
0
…
0
0
σ
2
…
0
⋮
⋮
⋱
⋮
0
0
…
σ
2
]
\sigma^{2} I_{p}=\left[\begin{array}{cccc} \sigma^{2} & 0 & \dots & 0 \\ 0 & \sigma^{2} & \dots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \dots & \sigma^{2} \end{array}\right]
σ2Ip=⎣⎢⎢⎢⎡σ20⋮00σ2⋮0……⋱…00⋮σ2⎦⎥⎥⎥⎤
基于上面的先验,可得
z
,
x
∣
z
,
x
.
z
∣
x
z,x|z,x.z|x
z,x∣z,x.z∣x
线性高斯模型:
P
−
P
C
A
=
{
Inference,
p
(
z
∣
x
)
Learing,
w
,
μ
,
σ
2
→
E
M
P-P C A=\left\{\begin{array}{ll} \text {Inference,} & p(z | x) \\ \text {Learing,} & w, \mu, \sigma^{2} \rightarrow E M \end{array}\right.
P−PCA={Inference,Learing,p(z∣x)w,μ,σ2→EM
对于
z
z
z的分布如上,那么x的分布就如上图
那么可知
{
z
∼
N
(
0
,
I
)
x
=
w
z
+
μ
+
ϵ
ϵ
∼
N
(
0
,
σ
2
I
)
ϵ
⊥
z
E
[
x
∣
z
]
=
E
[
w
z
+
μ
+
ϵ
]
=
w
z
+
μ
Var
[
x
∣
z
]
=
Var
[
w
z
+
μ
+
ϵ
]
=
σ
2
I
x
∣
z
∼
N
(
w
z
+
u
,
σ
2
I
)
\left\{\begin{array}{l} z \sim N(0, I) \\ \\ x=w z+\mu+\epsilon \\\\ \epsilon \sim N\left(0, \sigma^{2} I\right) \\ \\ \epsilon \perp z \\ \\ E[x | z]=E[w z+\mu+\epsilon]=w z+\mu \\ \\ \operatorname{Var}[x | z]=\operatorname{Var}[w z+\mu+\epsilon]=\sigma^{2} I \\ \\ x | z \sim N\left(w z+u, \sigma^{2} I\right) \end{array}\right.
⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧z∼N(0,I)x=wz+μ+ϵϵ∼N(0,σ2I)ϵ⊥zE[x∣z]=E[wz+μ+ϵ]=wz+μVar[x∣z]=Var[wz+μ+ϵ]=σ2Ix∣z∼N(wz+u,σ2I)
上面的前四个是已知条件,第5,6,7个是根据前面的逐步推出来的。其中第5个式子,因为
z
z
z是先验调条件,因此可以当作常数。
E
[
x
]
=
E
[
w
z
+
μ
+
ϵ
]
=
E
[
w
z
+
μ
]
+
E
[
ϵ
]
=
μ
Var
[
x
]
=
Var
[
w
z
+
μ
+
ϵ
]
=
Var
[
w
z
]
+
Var
[
ϵ
]
=
w
I
w
T
+
σ
2
I
=
w
w
T
+
σ
2
I
x
∼
N
(
μ
,
w
w
T
+
σ
2
)
\begin{array}{l} E[x]=E[w z+\mu+\epsilon]=E[w z+\mu]+E[\epsilon]=\mu \\ \\ \operatorname{Var}[x]=\operatorname{Var}[w z+\mu+\epsilon]=\operatorname{Var}[w z]+\operatorname{Var}[\epsilon]=w I w^{T}+\sigma^{2} I=w w^{T}+\sigma^{2} I \\ \\ x \sim N\left(\mu, w w^{T}+\sigma^{2}\right) \end{array}
E[x]=E[wz+μ+ϵ]=E[wz+μ]+E[ϵ]=μVar[x]=Var[wz+μ+ϵ]=Var[wz]+Var[ϵ]=wIwT+σ2I=wwT+σ2Ix∼N(μ,wwT+σ2)
之前的公式:
x
=
[
x
a
x
b
]
μ
=
[
μ
0
μ
1
]
Σ
=
[
Σ
a
a
Σ
a
b
Σ
b
a
Σ
b
b
]
x=\left[\begin{array}{l} x_{a} \\ x_{b} \end{array}\right] \quad \mu=\left[\begin{array}{l} \mu_{0} \\ \mu_{1} \end{array}\right] \quad \Sigma=\left[\begin{array}{ll} \Sigma_{a a} & \Sigma_{a b} \\ \Sigma_{b a} & \Sigma_{b b} \end{array}\right]
x=[xaxb]μ=[μ0μ1]Σ=[ΣaaΣbaΣabΣbb]
已知: x ∼ N ( μ , Σ ) x b , a = x b − Σ b a Σ a a − 1 x a μ b . a = μ b − Σ b a Σ a a − 1 μ a Σ b b . a = Σ b b − Σ b a Σ a a − 1 Σ a b schur complementary x b = x b . a + Σ b a Σ a a − 1 x a E [ x b ∣ x a ] = μ b . a + Σ b a Σ a a − 1 x a V a r [ x b ∣ x a ] = V a r [ x b . a ] = Σ b b . a x b ∣ x a ∼ N ( μ b . a + Σ b a Σ a a − 1 x a , Σ b b . a ) \begin{array}{l} \text { 已知: } x \sim N(\mu, \Sigma) \\ \\ x_{b, a}=x_{b}-\Sigma_{b a} \Sigma_{a a}^{-1} x_{a} \\ \\ \mu_{b . a}=\mu_{b}-\Sigma_{b a} \Sigma_{a a}^{-1} \mu_{a} \\ \\ \Sigma_{b b . a}=\Sigma_{b b}-\Sigma_{b a} \Sigma_{a a}^{-1} \Sigma_{a b} \quad \text { schur complementary } \\ \\ x_{b}=x_{b . a}+\Sigma_{b a} \Sigma_{a a}^{-1} x_{a} \\ \\ E\left[x_{b} | x_{a}\right]=\mu_{b . a}+\Sigma_{b a} \Sigma_{a a}^{-1} x_{a} \\ \\ V a r\left[x_{b} | x_{a}\right]=V a r\left[x_{b . a}\right]=\Sigma_{b b . a} \\ \\ x_{b} | x_{a} \sim N\left(\mu_{b . a}+\Sigma_{b a} \Sigma_{a a}^{-1} x_{a}, \Sigma_{b b . a}\right) \end{array} 已知: x∼N(μ,Σ)xb,a=xb−ΣbaΣaa−1xaμb.a=μb−ΣbaΣaa−1μaΣbb.a=Σbb−ΣbaΣaa−1Σab schur complementary xb=xb.a+ΣbaΣaa−1xaE[xb∣xa]=μb.a+ΣbaΣaa−1xaVar[xb∣xa]=Var[xb.a]=Σbb.axb∣xa∼N(μb.a+ΣbaΣaa−1xa,Σbb.a)
推导:
[
x
z
]
∼
(
[
μ
0
]
[
0
Δ
Δ
T
I
]
)
\begin{array}{l}{\left[\begin{array}{l}x \\ z\end{array}\right] \sim\left(\left[\begin{array}{l}\mu \\ 0\end{array}\right]\left[\begin{array}{cc}0 & \Delta \\ \Delta^{T} & I\end{array}\right]\right)}\end{array}
[xz]∼([μ0][0ΔTΔI])
Δ
=
Cov
(
x
,
z
)
=
E
[
(
x
−
μ
)
(
z
−
0
)
T
]
=
E
[
(
x
−
μ
)
z
T
]
=
E
[
(
w
z
+
ϵ
)
z
T
]
=
E
[
w
z
z
T
+
ϵ
z
T
]
=
w
E
[
z
z
T
]
+
E
[
ϵ
]
⋅
E
[
z
T
]
=
w
⋅
I
+
0
=
w
\begin{array}{l}\Delta=\operatorname{Cov}(x, z) \\ \\ =E[(x-\mu)(z-0)^T] \\ \\ =E\left[(x-\mu) z^{T}\right] \\ \\ =E\left[(w z+\epsilon)z^{T}\right] \\ \\=E\left[w z z^{T}+\epsilon z^{T}\right] \\ \\ =w E\left[z z^{T}\right]+E[\epsilon] \cdot E\left[z^{T}\right] \\ \\ =w \cdot I+0 \\ \\ =w\end{array}
Δ=Cov(x,z)=E[(x−μ)(z−0)T]=E[(x−μ)zT]=E[(wz+ϵ)zT]=E[wzzT+ϵzT]=wE[zzT]+E[ϵ]⋅E[zT]=w⋅I+0=w
上面的
E
[
z
z
T
]
E\left[z z^{T}\right]
E[zzT]可以看作求方差,因为
z
z
z的均值是0
[
x
z
]
∼
(
[
μ
0
]
[
O
Δ
Δ
T
I
]
)
=
(
[
μ
0
]
[
w
w
T
+
σ
2
I
w
w
T
I
]
)
\begin{array}{l} {\left[\begin{array}{l} x \\ z \end{array}\right] \sim\left(\left[\begin{array}{l} \mu \\ 0 \end{array}\right]\left[\begin{array}{cc} O & \Delta \\ \Delta^{T} & I \end{array}\right]\right)=\left(\left[\begin{array}{l} \mu \\ 0 \end{array}\right]\left[\begin{array}{ll} w w^{T}+\sigma^{2} I & w \\ w^{T} & I \end{array}\right]\right)}\end{array}
[xz]∼([μ0][OΔTΔI])=([μ0][wwT+σ2IwTwI])
联合概率
[
x
z
]
∼
N
(
μ
^
,
Σ
^
)
\begin{array}{l}{\left[\begin{array}{l} x \\ z \end{array}\right] \sim N(\hat{\mu}, \hat{\Sigma})} \end{array}
[xz]∼N(μ^,Σ^)
对于这个模型,我么可以使用期望-最大(EM)的算法进行学习,在进行推断的时候需要求得
p
(
z
∣
x
)
p(z|x)
p(z∣x),推断的求解过程和线性高斯模型类似。
p
(
z
∣
x
)
=
p
(
x
∣
z
)
p
(
z
)
p
(
x
)
E
[
x
]
=
E
[
W
z
+
μ
+
ε
]
=
μ
Var
[
x
]
=
W
W
T
+
σ
2
I
p
p
⟹
p
(
z
∣
x
)
=
N
(
W
T
(
W
W
T
+
σ
2
I
)
−
1
(
x
−
μ
)
,
I
−
W
T
(
W
W
T
+
σ
2
I
)
−
1
W
)
\begin{array}{c} p(z | x)=\frac{p(x | z) p(z)}{p(x)} \\ \\ \mathbb{E}[x]=\mathbb{E}[W z+\mu+\varepsilon]=\mu \\ \\ \operatorname{Var}[x]=W W^{T}+\sigma^{2} \mathbb{I}_{p p} \\ \\ \Longrightarrow p(z | x)=\mathcal{N}\left(W^{T}\left(W W^{T}+\sigma^{2} \mathbb{I}\right)^{-1}(x-\mu), \mathbb{I}-W^{T}\left(W W^{T}+\sigma^{2} \mathbb{I}\right)^{-1} W\right) \end{array}
p(z∣x)=p(x)p(x∣z)p(z)E[x]=E[Wz+μ+ε]=μVar[x]=WWT+σ2Ipp⟹p(z∣x)=N(WT(WWT+σ2I)−1(x−μ),I−WT(WWT+σ2I)−1W)
小结
降维是解决维度灾难和过拟合的重要方法,除了直接的特征选择外,我们还可以采用算法的途径对特征进行筛选,线性的降维方法以 PCA 为代表,在 PCA 中,我们只要直接对数据矩阵进行中心化然后求奇异值分解或者对数据的协方差矩阵进行分解就可以得到其主要维度。非线性学习的方法如流形学习将投影面从平面改为超曲面。