主要思想
主成分分析对原始高维空间进行线性变换,将所有数据投影到一个低维度子空间中,从而达到降维的目标。
为了寻找这 个子空间,我们基本想法是:
- 最大可分性:样本在这个超平面的投影尽可能分得开
- 最近重构性:样本点到超平面的距离足够近
基于最近重构性
目标:为了使得样本点到超平面的距离足够近
假如数据集是n维的,共有m个数据( x ( 1 ) , x ( 2 ) , … , x ( m ) ) (x^{(1)}, x^{(2)}, \dots, x^{(m)})(x(1),x(2),…,x(m)),原坐标系为 { w 1 , w 2 , … , w n } , \left\{w_{1}, w_{2}, \ldots, w_{n}\right\},{w1,w2,…,wn}, 其中 w ww 是标准 正交基, 即 ||w ∥ 2 = 1 , w i T w j = 0 w \|_{2}=1, w_{i}^{T} w_{j}=0w∥2=1,wiTwj=0 。
将数据从n维降到p维,则新的坐标系为 { w 1 , w 2 , … , w p } \left\{w_{1}, w_{2}, \ldots, w_{p}\right\}{w1,w2,…,wp},样本点 x ( i ) x^{(i)}x(i) 在p维坐标系中的投影为: z ( i ) = ( z 1 ( i ) , z 2 ( i ) , … , z p ( i ) ) T z^{(i)}=\left(z_{1}^{(i)}, z_{2}^{(i)}, \ldots, z_{p}^{(i)}\right)^{T}z(i)=(z1(i),z2(i),…,zp(i))T。其中, z j ( i ) = w j T x ( i ) z_{j}^{(i)}=w_{j}^{T} x^{(i)}zj(i)=wjTx(i) 是 x ( i ) x^{(i)}x(i) 在低维坐标系里第j维的坐标。
如果用 z ( i ) z^{(i)}z(i) 来恢复原始数据 x ( i ) x^{(i)}x(i),则得到的恢复数据 x ˉ ( i ) = ∑ j = 1 p z j ( i ) w j = W z ( i ) , \bar{x}^{(i)}=\sum_{j=1}^{p} z_{j}^{(i)} w_{j}=W z^{(i)},xˉ(i)=∑j=1pzj(i)wj=Wz(i), 其中, W WW为标准正交基组成的矩阵,维度为nxp,可以理解为p个维度为n的基向量。
考虑整个样本集,我们希望所有的样本到这个超平面的距离足够近,即最小化下式:
∑ i = 1 m ∥ x ˉ ( i ) − x ( i ) ∥ 2 2 = ∑ i = 1 m ∥ W z ( i ) − x ( i ) ∥ 2 2 = ∑ i = 1 m ( W z ( i ) ) T ( W z ( i ) ) − 2 ∑ i = 1 m ( W z ( i ) ) T x ( i ) + ∑ i = 1 m x ( i ) T x ( i ) = ∑ i = 1 m z ( i ) T z ( i ) − 2 ∑ i = 1 m z ( i ) T W T x ( i ) + ∑ i = 1 m x ( i ) T x ( i ) = ∑ i = 1 m z ( i ) T z ( i ) − 2 ∑ i = 1 m z ( i ) T z ( i ) + ∑ i = 1 m x ( i ) T x ( i ) = − ∑ i = 1 m z ( i ) T z ( i ) + ∑ i = 1 m x ( i ) T x ( i ) = − t r ( W T ( ∑ i = 1 m x ( i ) x ( i ) T ) W ) + ∑ i = 1 m x ( i ) T x ( i ) = − t r ( W T X X T W ) + ∑ i = 1 m x ( i ) T x ( i ) \begin{aligned} \sum_{i=1}^{m}\left\|\bar{x}^{(i)}-x^{(i)}\right\|_{2}^{2} &=\sum_{i=1}^{m}\left\|W z^{(i)}-x^{(i)}\right\|_{2}^{2} \\ &=\sum_{i=1}^{m}\left(W z^{(i)}\right)^{T}\left(W z^{(i)}\right)-2 \sum_{i=1}^{m}\left(W z^{(i)}\right)^{T} x^{(i)}+\sum_{i=1}^{m} x^{(i) T} x^{(i)} \\ &=\sum_{i=1}^{m} z^{(i) T} z^{(i)}-2 \sum_{i=1}^{m} z^{(i) T} W^{T} x^{(i)}+\sum_{i=1}^{m} x^{(i) T} x^{(i)} \\ &=\sum_{i=1}^{m} z^{(i) T} z^{(i)}-2 \sum_{i=1}^{m} z^{(i) T} z^{(i)}+\sum_{i=1}^{m} x^{(i) T} x^{(i)} \\ &=-\sum_{i=1}^{m} z^{(i) T} z^{(i)}+\sum_{i=1}^{m} x^{(i) T} x^{(i)} \\ &=-t r\left(W^{T}\left(\sum_{i=1}^{m} x^{(i)} x^{(i) T}\right) W\right)+\sum_{i=1}^{m} x^{(i) T} x^{(i)} \\ &=-t r\left(W^{T} X X^{T} W\right)+\sum_{i=1}^{m} x^{(i) T} x^{(i)} \end{aligned}i=1∑m∥∥∥xˉ(i)−x(i)∥∥∥22=i=1∑m∥∥∥Wz(i)−x(i)∥∥∥22=i=1∑m(Wz(i))T(Wz(i))−2i=1∑m(Wz(i))Tx(i)+i=1∑mx(i)Tx(i)=i=1∑mz(i)Tz(i)−2i=1∑mz(i)TWTx(i)+i=1∑mx(i)Tx(i)=i=1∑mz(i)Tz(i)−2i=1∑mz(i)Tz(i)+i=1∑mx(i)Tx(i)=−i=1∑mz(i)Tz(i)+i=1∑mx(i)Tx(i)=−tr(WT(i=1∑mx(i)x(i)T)W)+i=1∑mx(i)Tx(i)=−tr(WTXXTW)+i=1∑mx(i)Tx(i)
其中第(1) 步用到了 x ˉ ( i ) = W z ( i ) , \bar{x}^{(i)}=W z^{(i)},xˉ(i)=Wz(i), 第二步用到了平方和展开, 第 (3) 步用到了矩阵转置公式 ( A B ) T = B T A T (A B)^{T}=B^{T} A^{T}(AB)T=BTAT 和 W T W = I , W^{T} W=I,WTW=I, 第 (4) 步用到了
= W T x ( i ) , =W^{T} x^{(i)},=WTx(i), 第 (5) 步合并同类项, 第
(6) 步用到了 z ( i ) = W T x ( i ) z^{(i)}=W^{T} x^{(i)}z(i)=WTx(i) 和矩阵的迹,第7步将代数和表达为矩阵形式。
注意到 ∑ i = 1 m x ( i ) x ( i ) T \sum_{i=1}^{m} x^{(i)} x^{(i) T}∑i=1mx(i)x(i)T 是数据集的协方差矩阵, W的每一个向量 w j w_{j}wj 是标准正交基。而 ∑ i = 1 m x ( i ) T x ( i ) \sum_{i=1}^{m} x^{(i) T} x^{(i)}∑i=1mx(i)Tx(i) 是一个常量。最小化上式等价于:
arg min ⏟ W − tr ( W T X X T W ) s.t. W T W = I \underbrace{\arg \min }_{W}-\operatorname{tr}\left(W^{T} X X^{T} W\right) \text { s.t. } W^{T} W=IWargmin−tr(WTXXTW) s.t. WTW=I
J ( W ) = − tr ( W T X X T W + λ ( W T W − I ) ) J(W)=-\operatorname{tr}\left(W^{T} X X^{T} W+\lambda\left(W^{T} W-I\right)\right)J(W)=−tr(WTXXTW+λ(WTW−I))
对W求导有 − X X T W + λ W = 0 , -XX^{T} W+\lambda W=0,−XXTW+λW=0, 整理下即为
X X T W = λ W X X^{T} W=\lambda WXXTW=λW最小值对应的W由协方差矩阵 X X T X X^{T}XXT 最大的p个特征值对应的特征向量组成。λ \lambdaλ为协方差矩阵X X T X X^{T}XXT的特征值矩阵,特征值在对角线上,当数据集从n维降到p维时,只需要找到最大的p个协方差矩阵的特征值对应的特征向量组成的W WW矩阵,根据z ( i ) = W T x ( i ) z^{(i)}=W^{T} x^{(i)}z(i)=WTx(i)可以将数据降维。
基于最大投影方差
Z = W T X Z=W^{T} XZ=WTX代表样本在新坐标系的投影,投影方差为W T X X T W W^{T} X X^{T} WWTXXTW,最大化方差等同于最大化方差的trace
arg max ⏟ W tr ( W T X X T W ) s.t. W T W = I \underbrace{\arg \max }_{W} \operatorname{tr}\left(W^{T} X X^{T} W\right) \text { s.t. } W^{T} W=IWargmaxtr(WTXXTW) s.t. WTW=I
对比基于最近重构性中的目标函数可以发现,除符合不同外两者一致。
利用拉格朗日方法
J ( W ) = tr ( W T X X T W + λ ( W T W − I ) ) J(W)=\operatorname{tr}\left(W^{T} X X^{T} W+\lambda\left(W^{T} W-I\right)\right)J(W)=tr(WTXXTW+λ(WTW−I))
对 W 求 导 有 X X T W + λ W = 0 整 理 下 即 为 X X T W = − λ W 对W求导有 XX^{T} W+\lambda W=0 整理下即为 \\ X X^{T} W=-\lambda W对W求导有XXTW+λW=0整理下即为XXTW=−λW
同上一节,-λ \lambdaλ为协方差矩阵X X T X X^{T}XXT的特征值矩阵,特征值在对角线上。
算法流程
求样本 x ( i ) x^{(i)}x(i)的p维主成分等同于求样本集协方差矩阵的X X T X X^{T}XXT的前p个特征值对应的特征向量矩阵W WW,根据z ( i ) = W T x ( i ) z^{(i)}=W^{T} x^{(i)}z(i)=WTx(i)可以x ( i ) x^{(i)}x(i)进行降维。
输入:n维样本集( x ( 1 ) , x ( 2 ) , … , x ( m ) ) (x^{(1)}, x^{(2)}, \dots, x^{(m)})(x(1),x(2),…,x(m))
输出:p维样本集( x ( 1 ) , x ( 2 ) , … , x ( m ) ) (x^{(1)}, x^{(2)}, \dots, x^{(m)})(x(1),x(2),…,x(m))
- 样本中心化 x ( i ) = x ( i ) − 1 m ∑ j = 1 m x ( j ) x^{(i)} = x^{(i)} - \frac{1}{m}\sum_{j=1}^{m}x^{(j)}x(i)=x(i)−m1∑j=1mx(j)
- 计算协方差矩阵X X T XX^TXXT
- 对X X T XX^TXXT进行特征值分解
- 取出最大的p个特征值对应的特征向量,标准化后组成特征向量矩阵W WW
- 对每个样本进行线性变化z ( i ) = W T x ( i ) z^{(i)}=W^{T} x^{(i)}z(i)=WTx(i)
- 输出p维样本集