机器学习笔记之——降维(二)主成分分析(PCA)

主成分分析(PCA)


1. 坐标投影

主成分分析(PCA, Principal Component Analysis)是最常用的一种线性降维方法。

假设原来的样本是 d 维空间,样本矩阵 X = [ x 1 x 2 ⋯ x m ] ∈ R d × m X=\begin{bmatrix}x_1 &amp; x_2 &amp; \cdots &amp; x_m \end{bmatrix} \in \mathbb{R^{d\times m}} X=[x1x2xm]Rd×m x i ∈ R d x_i \in \mathbb{R^d} xiRd 表示第 i 个样本。为了方便起见,假设样本进行了中心化,即 ∑ i = 1 m x i = 0 \sum_{i=1}^m x_i=0 i=1mxi=0。现在要将样本投影到一个 k 维的超平面,其中 k &lt; d k &lt; d k<d。选取此超平面中的一组标准正交基作为坐标轴,记为 W = [ w 1 w 2 ⋯ w k ] W=\begin{bmatrix}w_1 &amp; w_2 &amp; \cdots &amp; w_k \end{bmatrix} W=[w1w2wk],其中 w i w_i wi 是标准正交向量,即 ∥ w i ∥ 2 = 1 \left \| w_i\right \|_2=1 wi2=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} &amp; z_{i2} &amp; \cdots &amp; z_{ik} \end{bmatrix}^T zi=[zi1zi2zik]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 wi2wjTxi=wjTxi,因为 ∥ w i ∥ 2 = 1 \left \| w_i\right \|_2=1 wi2=1,所以投影的长度即为坐标。
证明方法二:假设 x i x_i xi 投影在 w j w_j wj 的坐标为 c,则 x i x_i xi 可分解为两个分量,一个分量是 c ⋅ w j c\cdot w_j cwj,另一个是垂直 w j w_j wj 的分量,为 x i − c ⋅ w j x_i-c\cdot w_j xicwj,可得 w j T ( x i − c ⋅ w j ) = 0 w_j^T(x_i-c\cdot w_j)=0 wjT(xicwj)=0,即 w j T x i = c ∥ w i ∥ 2 2 w_j^Tx_i=c \left \| w_i\right \|_2^2 wjTxi=cwi22,因为 ∥ w i ∥ 2 = 1 \left \| w_i\right \|_2=1 wi2=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 xix^i22, 即 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=1mxix^i22=i=1mxiWzi22=XWZ22 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) A22=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 &amp; =tr((X-WW^TX)^T(X-WW^TX)) \\ &amp; = tr((X^T-X^TWW^T)(X-WW^TX)) \\ &amp; = tr(X^TX-2\cdot X^TWW^TX+X^TWW^TWW^TX) \\ &amp; = tr(X^TX-2\cdot X^TWW^TX+X^TWW^TX)\\ &amp; = tr(X^TX-X^TWW^TX) \\ &amp; = tr(X^TX)-tr(X^TWW^TX) \end{aligned} XWWTX22=tr((XWWTX)T(XWWTX))=tr((XTXTWWT)(XWWTX))=tr(XTX2XTWWTX+XTWWTWWTX)=tr(XTX2XTWWTX+XTWWTX)=tr(XTXXTWWTX)=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=WTi=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=1mzi22=Z22=WTX22 根据 ∥ A ∥ 2 2 = t r ( A T A ) = t r ( A A T ) \left \| A\right \|_2^2=tr(A^TA)=tr(AA^T) A22=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) WTX22=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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值