为什么使用PCA
从过拟合说起
在数据量小、数据维度高,模型较为复杂时,很容易产生过拟合。训练误差小而泛化误差较大被称为过拟合,而我们所追求的是泛化误差较小,为了解决过拟合问题,一般有以下的解决方案,一是最直接有效的方法,增加数据量,但是增加数据量成本一般较高,二是进行正则化,规范参数空间防止过拟合,三是进行降维。
- 解决过拟合问题的方法
- 增加数据量/数据扩增
- 正则化,如在损失函数中加入L1范数和L2范数
- 降维
- 特征选择:过滤法、包装法和嵌入法
- 线性降维:LDA、PCA
- 非线性降维 :流形
维度灾难
维度灾难,一般指在涉及到向量的计算的问题中,随着维数的增加,计算量呈指数倍增长的一种现象。在机器学习中,当数据的维度增加时,对于数据的需求量将会几何式增长。
下面尝试从几何的角度去理解维度灾难。在二维空间中,有一个边长为1的正方形,正方形有一个内切圆,相似的,在三维空间中,有一个边长为1的正方体,正方体有一个内接球,以此类推,超立方体和超球体的体积在各个维度中如下表所示
维度 | 超立方体体积 | 超球体体积 |
---|---|---|
2 | 1 | k 2 π ( 0.5 ) 2 k_2\pi(0.5)^2 k2π(0.5)2 |
3 | 1 | k 3 π ( 0.5 ) 3 k_3\pi(0.5)^3 k3π(0.5)3 |
4 | 1 | k 4 π ( 0.5 ) 4 k_4\pi(0.5)^4 k4π(0.5)4 |
…… | …… | …… |
n | 1 | k n π ( 0.5 ) n k_n\pi(0.5)^n knπ(0.5)n |
其中 k i , i = 1 , 2 , … … , n k_i,i = 1,2,……,n ki,i=1,2,……,n为常数,当n趋向于无穷时,超球体的体积将会趋近于0,也就是说,在高维空间中,超球体的内部是“空的”,大部分数据都分布在超球体和超立方体之间的“边边角角”中,这也就造成了数据样本的稀疏性,同时也会导致样本的空间分布不均匀,进而导致难以进行分类。从几何的角度我们会发现,很多我们在低维空间中的直觉在高维空间中是不work的。因此,面对特别高维的数据时,如果数据量不够大,我们会需要进行降维。
模型定义
PCA的两种推导
可以将PCA模型总结为“一个中心,两个基本点”
- 一个中心:原始特征空间的重构。PCA的核心是对特征空间进行重构,将原本相关的特征转化为互相正交。
- 两个基本点
- 最大投影方差:样本点在所求超平面上的投影尽可能分开
- 最小重构距离:样本点到所求超平面的距离都足够近
基于两种性质,能够得到主成分分析的两种等价推导。
数据准备
对于数据集
{
x
i
,
i
=
1
,
2...
n
}
\{x_i,i=1,2...n\}
{xi,i=1,2...n},
x
i
x_i
xi为p维向量,定义矩阵
X
=
(
x
1
,
x
2
,
.
.
.
,
x
n
)
T
X = (x_1,x_2,...,x_n)^T
X=(x1,x2,...,xn)T
定义样本均值矩阵
x
ˉ
=
1
n
∑
x
i
=
1
n
(
x
1
x
2
.
.
.
x
n
)
(
1
1
.
.
.
1
)
T
=
1
n
X
T
1
n
\begin{aligned} \bar{x}&=\frac{1}{n}\sum x_i\\ &=\frac{1}{n}\begin{pmatrix}x_1&x_2&...&x_n\end{pmatrix}\begin{pmatrix}1&1&...&1\end{pmatrix}^T\\ &=\frac{1}{n}X^T1_n \end{aligned}
xˉ=n1∑xi=n1(x1x2...xn)(11...1)T=n1XT1n
其中
1
n
=
(
1
1
.
.
.
1
)
T
1_n=\begin{pmatrix}1&1&...&1\end{pmatrix}^T
1n=(11...1)T
定义样本协方差矩阵
S
=
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
\begin{aligned} S=& \frac{1}{n}(x_i-\bar{x})(x_i-\bar{x})^T\\ &= \frac{1}{n} \begin{pmatrix} x_1-\bar{x}&x_2-\bar{x}&...&x_n-\bar{x} \end{pmatrix} \begin{pmatrix} x_1-\bar{x}&x_2-\bar{x}&...&x_n-\bar{x} \end{pmatrix}^T \end{aligned}
S=n1(xi−xˉ)(xi−xˉ)T=n1(x1−xˉx2−xˉ...xn−xˉ)(x1−xˉx2−xˉ...xn−xˉ)T
其中
(
x
1
−
x
ˉ
x
2
−
x
ˉ
.
.
.
x
n
−
x
ˉ
)
=
(
x
1
x
2
.
.
.
x
n
)
−
(
x
ˉ
x
ˉ
.
.
.
x
ˉ
)
=
X
T
−
x
ˉ
(
1
1
.
.
.
1
)
=
X
T
−
1
n
X
T
1
n
1
n
T
=
X
T
(
I
n
−
1
n
1
n
1
n
T
)
\begin{aligned} &\begin{pmatrix} x_1-\bar{x}&x_2-\bar{x}&...&x_n-\bar{x} \end{pmatrix}\\ &=\begin{pmatrix} x_1&x_2&...&x_n \end{pmatrix}- \begin{pmatrix} \bar{x}&\bar{x}&...&\bar{x} \end{pmatrix} \\ &=X^T-\bar{x}\begin{pmatrix}1&1&...&1\end{pmatrix}\\ &= X^T-\frac{1}{n}X^T1_n1_n^T\\ &=X^T(I_n-\frac{1}{n}1_n1_n^T) \end{aligned}
(x1−xˉx2−xˉ...xn−xˉ)=(x1x2...xn)−(xˉxˉ...xˉ)=XT−xˉ(11...1)=XT−n1XT1n1nT=XT(In−n11n1nT)
则可知
S
=
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
\begin{aligned} S &= \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 \end{aligned}
S=n1XT(In−n11n1nT)(In−n11n1nT)TX=n1XTHnHnTX
其中
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
T
H
n
2
=
H
n
\begin{aligned} H_n = H_n^T\\ H_n^2=H_n \end{aligned}
Hn=HnTHn2=Hn
则
S
=
1
n
X
T
H
n
X
S = \frac{1}{n}X^TH_nX
S=n1XTHnX
最大投影方差
从最大投影方差角度去考虑,也即是说样本点在超平面上的投影应当尽可能分开,则应当使投影后样本方差最大化。如图,样本点投影到y_1方向后样本会较为分散,y_1方向就是我们所需要寻找的“主成分”。
记
w
w
w为我们所要求的主成分方向,由于我们不需要考虑其长度,故可以先规定
w
T
w
=
1
w^Tw=1
wTw=1,则中心化后的样本点
x
i
x_i
xi在
w
w
w上的投影为
(
x
i
−
x
ˉ
)
T
w
(x_i-\bar{x})^Tw
(xi−xˉ)Tw,则投影点的样本协方差矩阵为
J
=
1
n
∑
i
=
1
n
[
(
x
i
−
x
ˉ
)
T
w
]
2
=
1
n
∑
i
=
1
n
w
T
(
x
i
−
x
ˉ
)
(
x
i
−
x
ˉ
)
T
w
=
1
n
w
T
(
∑
i
=
1
n
(
x
i
−
x
ˉ
)
(
x
i
−
x
ˉ
)
T
)
w
=
1
n
w
T
S
w
\begin{aligned} J &= \frac{1}{n}\sum_{i=1}^{n}{[(x_i-\bar{x})^Tw]^2}\\ &=\frac{1}{n}\sum_{i=1}^{n}w^T(x_i-\bar{x})(x_i-\bar{x})^Tw\\ &=\frac{1}{n}w^T(\sum_{i=1}^{n}(x_i-\bar{x})(x_i-\bar{x})^T)w\\ &=\frac{1}{n}w^TSw \end{aligned}
J=n1i=1∑n[(xi−xˉ)Tw]2=n1i=1∑nwT(xi−xˉ)(xi−xˉ)Tw=n1wT(i=1∑n(xi−xˉ)(xi−xˉ)T)w=n1wTSw
则问题转化为求
w
^
=
a
r
g
m
a
x
w
w
T
S
w
s.t.
w
T
w
=
1
\begin{aligned} &\hat{w} = \mathop{\mathrm{argmax}}\limits_{w}{w^TSw}\\ &\text{ s.t. } w^Tw = 1 \end{aligned}
w^=wargmaxwTSw s.t. wTw=1
使用拉格朗日乘子法求解该问题
L
(
w
,
λ
)
=
w
T
S
w
+
λ
(
1
−
w
T
w
)
∂
L
∂
w
=
2
S
w
−
2
λ
w
=
0
S
w
=
λ
w
\begin{aligned} L(w,\lambda) = w^TSw + \lambda (1-w^Tw)\\ \frac{\partial L}{\partial w}= 2Sw-2\lambda w=0\\ Sw = \lambda w \end{aligned}
L(w,λ)=wTSw+λ(1−wTw)∂w∂L=2Sw−2λw=0Sw=λw
观察最后得到的式子后我们不难发现,所求的
w
w
w实际上就是样本协方差矩阵的特征向量,而
λ
\lambda
λ则是对应的特征值而对该式子左右各左乘一个
w
T
w^T
wT后式子变成了
w
T
S
w
=
λ
w
T
w
J
=
λ
\begin{aligned} w^TSw& = \lambda w^Tw\\ J&=\lambda \end{aligned}
wTSwJ=λwTw=λ
也即是说对于越大的特征值对应的特征向量,投影点样本协方差就越大,则可以根据特征值进行排序,确定主成分的顺位,保留排位靠前的主成分,进而实现降维。
最小重构距离
为表达方便,下面直接使用已经中心化后的数据,也即
∑
x
i
=
0
\sum x_i=0
∑xi=0(我太懒了),记
W
=
(
w
1
w
2
.
.
.
w
d
)
W = \begin{pmatrix}w_1&w_2&...&w_d\end{pmatrix}
W=(w1w2...wd),其中
w
i
w_i
wi为重构特征空间后的坐标轴向量,且
w
i
T
w
i
=
1
w_i^Tw_i = 1
wiTwi=1则对于每一个样本点,可以使用新坐标系进行重构,也即
x
i
=
∑
k
=
1
d
(
x
i
T
w
k
)
w
k
x_i = \sum_{k=1}^{d}{(x_i^Tw_k)w_k}
xi=∑k=1d(xiTwk)wk,舍弃一些特征,只取
p
p
p个特征则可得
x
i
^
=
∑
k
=
1
p
(
x
i
T
w
k
)
w
k
\hat{x_i} = \sum_{k=1}^{p}{(x_i^Tw_k)w_k}
xi^=∑k=1p(xiTwk)wk,则重构距离可以表示为
J
=
∑
i
=
1
n
∥
x
i
−
x
i
^
)
∥
2
=
∑
i
=
1
n
∥
∑
k
=
1
d
(
x
i
T
w
k
)
w
k
−
∑
k
=
1
p
(
x
i
T
w
k
)
w
k
∥
2
=
∑
i
=
1
n
∥
∑
k
=
p
+
1
d
(
x
i
T
w
k
)
w
k
∥
2
\begin{aligned} J &= \sum_{i = 1}^n\left \| x_i-\hat{x_i})\right \|^2 \\ &=\sum_{i = 1}^n\left \|\sum_{k=1}^{d}{(x_i^Tw_k)w_k}-\sum_{k=1}^{p}{(x_i^Tw_k)w_k}\right \|^2\\ &=\sum_{i = 1}^n\left \|\sum_{k=p+1}^{d}{(x_i^Tw_k)w_k}\right \|^2\\ \end{aligned}
J=i=1∑n∥xi−xi^)∥2=i=1∑n
k=1∑d(xiTwk)wk−k=1∑p(xiTwk)wk
2=i=1∑n
k=p+1∑d(xiTwk)wk
2
对于
∥
∑
k
=
p
+
1
d
(
x
i
T
w
k
)
w
k
∥
\left \|\sum_{k=p+1}^{d}{(x_i^Tw_k)w_k}\right \|
∑k=p+1d(xiTwk)wk
,该式子可视为在以
w
p
+
1
,
w
p
+
1
,
.
.
.
,
w
d
w_{p+1},w_{p+1},...,w_{d}
wp+1,wp+1,...,wd为基向量的坐标系中求向量
(
x
i
T
w
p
+
1
x
i
T
w
p
+
2
.
.
.
x
i
T
w
n
)
\begin{pmatrix}x_i^Tw_{p+1}&x_i^Tw_{p+2}&...&x_i^Tw_{n}\end{pmatrix}
(xiTwp+1xiTwp+2...xiTwn)的模长,则式子可改写为
J
=
∑
i
=
1
n
∑
k
=
p
+
1
d
(
x
i
T
w
k
)
2
=
∑
k
=
p
+
1
d
∑
i
=
1
n
w
k
T
x
i
x
i
T
w
=
n
∑
k
=
p
+
1
d
w
k
T
S
w
\begin{aligned} J &= \sum_{i = 1}^n\sum_{k=p+1}^{d}(x_i^Tw_k)^2\\ &=\sum_{k=p+1}^{d}\sum_{i = 1}^nw_k^Tx_ix_i^Tw\\ &=n\sum_{k=p+1}^{d}w_k^TSw \end{aligned}
J=i=1∑nk=p+1∑d(xiTwk)2=k=p+1∑di=1∑nwkTxixiTw=nk=p+1∑dwkTSw
同样使用拉格朗日乘子法进行求解,将会得到与最大投影方差角度一样的结果
小结
PCA仅仅只需要保留 W ∗ W^* W∗(大小排位靠前的特征值所对应的特征向量组成的矩阵)与样本均值向量(用于中心化),即可通过简单的矩阵减法和乘法将新样本投影到低维空间中去,尽管因舍弃了某些特征,导致低维空间与高维空间必然有所不同,会舍弃掉一部分信息,但是这是必要的,一方面,舍弃这部分信息后将使得样本信息密度增大,另一方面,数据受到噪音影响是,最小的特征值所对应的特征向量往往与噪音有关,将他们舍弃能够一定程度上起到去噪的效果。