问题引入
在高维情形下常出现样本稀疏、距离计算困难等问题,这是所有机器学习方法共同面临的问题,称为维数灾难
。
为了缓解维数灾难一个重要途径就是“降维”。通过某种数学变换将原始高维属性空间转变为一个低维子空间,在该子空间中样本密度大幅提高,距离计算也变得更加容易。
主成分分析
主成分分析(Principal Component Analysis)PCA
是最常用的一种降维方法。若存在一个超平面能够对所有样本进行恰当表达,它应该满足这样的性质:
- 最近重构性:样本点到该超平面的距离足够近
- 最大可分性:样本点在该超平面的投影尽可能能分开
1.最近重构性
假定数据样本进行了中心化,即 ∑ i x i = 0 \sum_{i}x_i=0 ∑ixi=0,投影变换后得到的新坐标系为 { w 1 , w 2 , ⋯ , w d } \left \{ w_1,w_2,\cdots,w_d \right \} {w1,w2,⋯,wd}, w i w_i wi为标准正交基向量。
若丢弃新坐标系中的部分坐标,即将维度降低到 d ′ < d d' <d d′<d,则样本点 x i x_i xi在低维坐标系中的投影是 z i = ( z i 1 ; z i 2 ; ⋯ ; z i d ′ ) z_i=(z_{i1};z_{i2};\cdots;z_{id'}) zi=(zi1;zi2;⋯;zid′), z i j = w j T x i z_{ij}=w_j^Tx_i zij=wjTxi是 x i x_i xi在低维坐标系下第 j j j维的坐标。若基于 z i z_i zi重构 x i x_i xi,则 x i ^ = ∑ j = 1 d ′ z i j w j \hat{x_i}=\sum_{j=1}^{d'}z_{ij}w_j xi^=∑j=1d′zijwj。
于是原样本点
x
i
x_i
xi与基于投影重构的样本点
x
i
^
\hat{x_i}
xi^之间的距离为:
∑
i
=
1
m
∥
∑
j
=
1
d
′
z
i
j
w
j
−
x
i
∥
2
2
=
∑
i
=
1
m
z
i
T
z
i
−
2
∑
i
=
1
m
x
i
T
W
T
x
i
+
c
o
n
s
t
∝
−
t
r
(
W
T
(
∑
i
=
1
m
x
i
x
i
T
)
W
)
\begin{array}{c} \sum_{i=1}^{m}\left \| \sum_{j=1}^{d'}z_{ij}w_{j}-x_i\right \|^2_2=\sum_{i=1}^{m}z_i^Tz_i -2\sum_{i=1}^{m}x_i^TW^Tx_i+const \\ \\ \propto -tr(W^T(\sum_{i=1}^{m}x_ix_i^T )W) \\ \end{array}
∑i=1m∥∥∥∑j=1d′zijwj−xi∥∥∥22=∑i=1mziTzi−2∑i=1mxiTWTxi+const∝−tr(WT(∑i=1mxixiT)W)
根据最近重构性,上式应该被最小化,则:
m
i
n
W
−
t
r
(
W
T
X
X
T
W
)
s
.
t
.
W
T
W
=
I
\begin{array}{l} {min}_W\quad -tr(W^TXX^TW) \\ s.t.\quad W^TW=I \end{array}
minW−tr(WTXXTW)s.t.WTW=I
2.最大可分性
样本点 x i x_i xi在新空间的超平面上投影为 W T x i W^Tx_i WTxi,若所有样本点投影尽可能分开,应使投影后样本点的方差最大化。
投影后样本点方差为
∑
i
W
T
x
i
x
i
T
W
\sum_{i}W^Tx_ix_i^TW
∑iWTxixiTW,则优化目标为:
m
a
x
W
t
r
(
W
T
X
X
T
W
)
s
.
t
.
W
T
W
=
I
\begin{array}{l} {max}_W\quad tr(W^TXX^TW) \\ s.t.\quad W^TW=I \end{array}
maxWtr(WTXXTW)s.t.WTW=I
求解
两种方法优化目标等价。
对它们使用拉格朗日乘子法得:
X
X
T
W
=
λ
W
XX^TW=\lambda W
XXTW=λW
故只需对协方差矩阵
X
X
T
XX^T
XXT特征值分解,将求得的特征值排序,取前
d
′
d'
d′个特征值对应的特征向量构成
W
=
(
w
1
,
w
2
,
⋯
,
w
d
′
)
W=(w_1,w_2,\cdots,w_{d'})
W=(w1,w2,⋯,wd′),这就是主成分分析的解。
小结
PCA仅需保留 W W W与样本的均值向量即可通过向量减法和矩阵-向量乘法将新样本投影到低维空间中。
降维导致对应最小的 d − d ′ d-d' d−d′个特征值的特征向量被舍弃了,而舍弃这部分信息往往很有必要:
- 一方面,舍弃这部分信息使样本采样密度增大,这正式降维的重要动机;
- 另一方面,当数据收到噪声影响时,最小的特征值所对应的特征向量往往与噪声有关,将其社区能达到去噪效果。
核主成分分析
线性降维方法假设从高维空间到低维空间的函数映射是线性的,可现实常需要非线性映射才能找到合适的低维嵌入。
非线性降维的常用方法是基于核技巧对线性降维方法“核化”,核主成分分析(KPCA)
便是一种。
z
i
z_i
zi为样本点
x
i
x_i
xi在高维特征空间中的像,我们把高维特征空间的数据投影到
W
W
W确定的超平面上,即PCA求解:
(
∑
i
=
1
m
z
i
z
i
T
)
W
=
λ
W
(\sum_{i=1}^{m}z_iz_i^T)W=\lambda W
(i=1∑mziziT)W=λW
则
W
=
1
λ
(
∑
i
=
1
m
z
i
z
i
T
)
W
=
∑
i
=
1
m
z
i
z
i
T
W
λ
=
∑
i
=
1
m
z
i
α
i
W=\frac{1}{\lambda}(\sum_{i=1}^{m}z_iz_i^T)W=\sum_{i=1}^{m}z_i\frac{z_i^TW}{\lambda}=\sum_{i=1}^{m}z_i\alpha_i
W=λ1(i=1∑mziziT)W=i=1∑mziλziTW=i=1∑mziαi
其中
α
i
=
1
λ
z
i
T
W
\alpha_i=\frac{1}{\lambda}z_i^TW
αi=λ1ziTW。
既然是非线性降维,我们可假定
z
i
=
ϕ
(
x
i
)
z_i=\phi (x_i)
zi=ϕ(xi),当
ϕ
\phi
ϕ可以显示的表达出来时,通过它将样本映射到高维特征空间,再在特征空间实施PCA即可。
(
∑
i
=
1
m
ϕ
(
x
i
)
ϕ
(
x
i
T
)
)
W
=
λ
W
W
=
∑
i
=
1
m
ϕ
(
x
i
)
α
i
\begin{array}{c} (\sum_{i=1}^{m}\phi(x_i)\phi(x_i^T))W=\lambda W \\ \\ W=\sum_{i=1}^{m}\phi(x_i)\alpha_i \end{array}
(∑i=1mϕ(xi)ϕ(xiT))W=λWW=∑i=1mϕ(xi)αi
但一般情况下我们并不知道
ϕ
\phi
ϕ具体形式,于是引入核函数
k
(
x
i
,
x
j
)
=
ϕ
(
x
i
)
ϕ
(
x
i
T
)
k(x_i,x_j)=\phi(x_i)\phi(x_i^T)
k(xi,xj)=ϕ(xi)ϕ(xiT),于是有:
K
A
=
λ
A
KA=\lambda A
KA=λA
它仍是一个特征值分解问题,取
K
K
K最大的
d
′
d'
d′个特征值对应的特征向量即可。
对新样本
x
x
x,它投影后的第
j
j
j维坐标为
z
j
=
w
j
T
ϕ
(
x
)
=
∑
i
=
1
m
α
i
j
ϕ
(
x
i
)
T
ϕ
(
x
)
=
∑
i
=
1
m
α
i
j
k
(
x
i
,
x
)
z_j=w_j^T\phi (x)=\sum_{i=1}^{m}\alpha_i^j\phi(x_i)^T\phi(x)=\sum_{i=1}^{m}\alpha_i^jk(x_i,x)
zj=wjTϕ(x)=i=1∑mαijϕ(xi)Tϕ(x)=i=1∑mαijk(xi,x)
显然KPCA需对所有样本求和,因此计算成本较大。
Reference
《机器学习》周志华