主成分分析(PCA)
1. 坐标投影
主成分分析(PCA, Principal Component Analysis)是最常用的一种线性降维方法。
假设原来的样本是 d 维空间,样本矩阵 X = [ x 1 x 2 ⋯ x m ] ∈ R d × m X=\begin{bmatrix}x_1 & x_2 & \cdots & x_m \end{bmatrix} \in \mathbb{R^{d\times m}} X=[x1x2⋯xm]∈Rd×m, x i ∈ R d x_i \in \mathbb{R^d} xi∈Rd 表示第 i 个样本。为了方便起见,假设样本进行了中心化,即 ∑ i = 1 m x i = 0 \sum_{i=1}^m x_i=0 ∑i=1mxi=0。现在要将样本投影到一个 k 维的超平面,其中 k < d k < d k<d。选取此超平面中的一组标准正交基作为坐标轴,记为 W = [ w 1 w 2 ⋯ w k ] W=\begin{bmatrix}w_1 & w_2 & \cdots & w_k \end{bmatrix} W=[w1w2⋯wk],其中 w i w_i wi 是标准正交向量,即 ∥ w i ∥ 2 = 1 \left \| w_i\right \|_2=1 ∥wi∥2=1, w i T w j = 0 ( i ≠ j ) w_i^Tw_j=0\ (i \neq j) wiTwj=0 (i̸=j)。则每个样本 x i x_i xi 在这个低维坐标系中的投影为 z i = [ z i 1 z i 2 ⋯ z i k ] T z_i=\begin{bmatrix}z_{i1} & z_{i2} & \cdots & z_{ik} \end{bmatrix}^T zi=[zi1zi2⋯zik]T, 其中 z i j = w j T x i z_{ij}=w_j^T x_i zij=wjTxi 是 x i x_i xi 投影到第 j 个坐标轴 w j w_j wj 得到的坐标,证明如下。
证明方法一: x i x_i xi 到第 j 个坐标轴 w j w_j wj 的投影长度为 w j T x i ∥ w i ∥ 2 = w j T x i \frac{w_j^Tx_i}{\left \| w_i\right \|_2}=w_j^Tx_i ∥wi∥2wjTxi=wjTxi,因为 ∥ w i ∥ 2 = 1 \left \| w_i\right \|_2=1 ∥wi∥2=1,所以投影的长度即为坐标。
证明方法二:假设 x i x_i xi 投影在 w j w_j wj 的坐标为 c,则 x i x_i xi 可分解为两个分量,一个分量是 c ⋅ w j c\cdot w_j c⋅wj,另一个是垂直 w j w_j wj 的分量,为 x i − c ⋅ w j x_i-c\cdot w_j xi−c⋅wj,可得 w j T ( x i − c ⋅ w j ) = 0 w_j^T(x_i-c\cdot w_j)=0 wjT(xi−c⋅wj)=0,即 w j T x i = c ∥ w i ∥ 2 2 w_j^Tx_i=c \left \| w_i\right \|_2^2 wjTxi=c∥wi∥22,因为 ∥ w i ∥ 2 = 1 \left \| w_i\right \|_2=1 ∥wi∥2=1, 所以 c = w j T x i c=w_j^Tx_i c=wjTxi
所以,样本 x i x_i xi 在这个低维坐标系中的投影坐标为 z i = W T x i z_i=W^Tx_i zi=WTxi,所有样本投影之后的结果是 Z = W T X Z=W^TX Z=WTX, Z Z Z 的每一列是一个新的样本坐标。下面使用两种优化目标来推导 PCA 的求解公式。
2. 最近重构性
投影之后,利用投影得到的坐标
z
i
z_i
zi 来重构
x
i
x_i
xi,得到
x
^
i
=
∑
j
=
1
k
z
i
j
w
j
=
W
z
i
\hat{x}_i=\sum_{j=1}^kz_{ij}w_j=Wz_i
x^i=∑j=1kzijwj=Wzi。由于 k 比 d 小,因此投影之后一般会有信息损失(除非所有
x
i
x_i
xi 都在 k 维超平面上,即
W
W
W 的列空间里)。信息损失为
∥
x
i
−
x
^
i
∥
2
2
\left \| x_i-\hat{x}_i\right \|_2^2
∥xi−x^i∥22, 即
x
i
x_i
xi 到上述 k 维超平面的距离。要想使信息损失最小,则需要让所有样本到超平面的距离最小化,如下:
∑
i
=
1
m
∥
x
i
−
x
^
i
∥
2
2
=
∑
i
=
1
m
∥
x
i
−
W
z
i
∥
2
2
=
∥
X
−
W
Z
∥
2
2
\sum_{i=1}^m\left \| x_i-\hat{x}_i\right \|_2^2=\sum_{i=1}^m\left \| x_i-Wz_i\right \|_2^2=\left \|X-WZ\right \|_2^2
i=1∑m∥xi−x^i∥22=i=1∑m∥xi−Wzi∥22=∥X−WZ∥22 把
Z
=
W
T
X
Z=W^TX
Z=WTX 代入,根据
∥
A
∥
2
2
=
t
r
(
A
T
A
)
=
t
r
(
A
A
T
)
\left \| A\right \|_2^2=tr(A^TA)=tr(AA^T)
∥A∥22=tr(ATA)=tr(AAT) 得
∥
X
−
W
W
T
X
∥
2
2
=
t
r
(
(
X
−
W
W
T
X
)
T
(
X
−
W
W
T
X
)
)
=
t
r
(
(
X
T
−
X
T
W
W
T
)
(
X
−
W
W
T
X
)
)
=
t
r
(
X
T
X
−
2
⋅
X
T
W
W
T
X
+
X
T
W
W
T
W
W
T
X
)
=
t
r
(
X
T
X
−
2
⋅
X
T
W
W
T
X
+
X
T
W
W
T
X
)
=
t
r
(
X
T
X
−
X
T
W
W
T
X
)
=
t
r
(
X
T
X
)
−
t
r
(
X
T
W
W
T
X
)
\begin{aligned} \left \|X-WW^TX\right \|_2^2 & =tr((X-WW^TX)^T(X-WW^TX)) \\ & = tr((X^T-X^TWW^T)(X-WW^TX)) \\ & = tr(X^TX-2\cdot X^TWW^TX+X^TWW^TWW^TX) \\ & = tr(X^TX-2\cdot X^TWW^TX+X^TWW^TX)\\ & = tr(X^TX-X^TWW^TX) \\ & = tr(X^TX)-tr(X^TWW^TX) \end{aligned}
∥∥X−WWTX∥∥22=tr((X−WWTX)T(X−WWTX))=tr((XT−XTWWT)(X−WWTX))=tr(XTX−2⋅XTWWTX+XTWWTWWTX)=tr(XTX−2⋅XTWWTX+XTWWTX)=tr(XTX−XTWWTX)=tr(XTX)−tr(XTWWTX) 上面的变换主要利用了
W
T
W
=
I
W^TW=I
WTW=I,注意
W
W
W 不是方阵,因此
W
W
T
≠
I
WW^T \neq I
WWT̸=I,不能消去。由于
t
r
(
X
T
X
)
tr(X^TX)
tr(XTX) 是常数,可以从优化目标里去掉,并且:
t
r
(
X
T
W
W
T
X
)
=
t
r
(
(
W
T
X
)
T
(
W
T
X
)
)
=
t
r
(
(
W
T
X
)
(
W
T
X
)
T
)
=
t
r
(
W
T
X
X
T
W
)
tr(X^TWW^TX)=tr((W^TX)^T(W^TX))=tr((W^TX)(W^TX)^T)=tr(W^TXX^TW)
tr(XTWWTX)=tr((WTX)T(WTX))=tr((WTX)(WTX)T)=tr(WTXXTW) 因此最后的优化目标如下:
max
W
t
r
(
W
T
X
X
T
W
)
s
.
t
.
W
T
W
=
I
\max_W tr(W^TXX^TW) \\ s.t. \quad W^TW=I
Wmaxtr(WTXXTW)s.t.WTW=I 由于样本做了中心化,因此
X
X
T
XX^T
XXT 是协方差矩阵。
3. 最大可分性
除了要求信息损失最小之外,也可以从另一个角度去优化,我们希望投影之后的点在超平面上尽可能地分散开,不要都挤到一起,即使投影后的样本点方差最大化。由于
∑
i
=
1
m
z
i
=
∑
i
=
1
m
W
T
x
i
=
W
T
∑
i
=
1
m
x
i
=
0
\sum_{i=1}^mz_i=\sum_{i=1}^mW^Tx_i=W^T\sum_{i=1}^mx_i=0
∑i=1mzi=∑i=1mWTxi=WT∑i=1mxi=0 (因为
x
i
x_i
xi 做了中心化),可以得出
z
i
z_i
zi 的均值也为
0
0
0。所以投影后方差可以表示为
∑
i
=
1
m
∥
z
i
∥
2
2
=
∥
Z
∥
2
2
=
∥
W
T
X
∥
2
2
\sum_{i=1}^m\left \|z_i\right \|_2^2=\left \|Z\right \|_2^2=\left \| W^TX \right \|_2^2
i=1∑m∥zi∥22=∥Z∥22=∥∥WTX∥∥22 根据
∥
A
∥
2
2
=
t
r
(
A
T
A
)
=
t
r
(
A
A
T
)
\left \| A\right \|_2^2=tr(A^TA)=tr(AA^T)
∥A∥22=tr(ATA)=tr(AAT), 有:
∥
W
T
X
∥
2
2
=
t
r
(
(
W
T
X
)
(
W
T
X
)
T
)
=
t
r
(
W
T
X
X
T
W
)
\left \| W^TX \right \|_2^2=tr((W^TX)(W^TX)^T)=tr(W^TXX^TW)
∥∥WTX∥∥22=tr((WTX)(WTX)T)=tr(WTXXTW) 因此优化目标为:
max
W
t
r
(
W
T
X
X
T
W
)
s
.
t
.
W
T
W
=
I
\max_W tr(W^TXX^TW) \\ s.t. \quad W^TW=I
Wmaxtr(WTXXTW)s.t.WTW=I
4. 求解
使用拉格朗日乘子法,令导数为0,可得
X
X
T
W
=
λ
W
XX^TW=\lambda W
XXTW=λW 对
X
X
T
XX^T
XXT 进行特征值分解,将得到的特征值从大到小排列,前 k 个特征值对应的特征向量即为
W
W
W 的各个列向量。然后用
W
T
X
W^TX
WTX 就可求得降维后的样本矩阵
Z
Z
Z。
2103

被折叠的 条评论
为什么被折叠?



