动机
- 许多类型的数据维度比较大,导致了计算时间复杂度高。
- 许多高维数据常常聚集在一个低维空间中,例如三维平面的点位于同一个平面上。
我们希望找到数据的一些主方向,而主方向的数量是远远小于数据的维度的。使用这些主方向就可以近似地表示原始数据,从而能够达到降维的目的。这种分析方法被称为主成分分析方法(Principal components analysis)。
最小近似误差
假设我们找到一组在高维空间中的向量集{u1,u2,⋯ ,uM}\{u_1,u_2,\cdots,u_M\}{u1,u2,⋯,uM},这些向量是单位正交的,即
ui⋅uj=uiTuj={0, i≠j1, i=j
u_i\cdot u_j=u_i^Tu_j=\begin{cases}
0,\ i\ne j\\
1,\ i=j
\end{cases}
ui⋅uj=uiTuj={0, i=j1, i=j
若我们令
x~=a1u1+a2u2+⋯+aMuM
\widetilde{x}=a_1u_1+a_2u_2+\cdots+a_Mu_M
x=a1u1+a2u2+⋯+aMuM
且有
ai=uiTx
a_i=u_i^Tx
ai=uiTx
那么x~\widetilde{x}x就是xxx在空间span{u1,u2,⋯ ,uM}span\{u_1,u_2,\cdots,u_M\}span{u1,u2,⋯,uM}上的投影。
我们希望的向量集{u1,u2,⋯ ,uM}\{u_1,u_2,\cdots,u_M\}{u1,u2,⋯,uM}是表示的x~\widetilde{x}x和xxx尽可能地接近,表示的误差如下所示。
E=1N∑n=1N∣∣(x(n)−xˉ)−x~(n)∣∣2
E=\frac{1}{N}\sum_{n=1}^N||(x^{(n)}-\bar{x})-\widetilde{x}^{(n)}||^2
E=N1n=1∑N∣∣(x(n)−xˉ)−x(n)∣∣2
x~\widetilde{x}x的系数由下面公式给出
ai=uiT(x(n)−xˉ)
a_i=u_i^T(x^{(n)}-\bar x)
ai=uiT(x(n)−xˉ)
上式可化简为
E=1N∑n=1N∣∣x(n)−xˉ∣∣2−∑i=1MuiTSuiS=1N∑n=1N(x(n)−xˉ)(x(n)−xˉ)T
E=\frac{1}{N}\sum_{n=1}^N||x^{(n)}-\bar x||^2-\sum_{i=1}^Mu_i^TSu_i\\
S=\frac{1}{N}\sum_{n=1}^N(x^{(n)}-\bar x)(x^{(n)}-\bar x)^T
E=N1n=1∑N∣∣x(n)−xˉ∣∣2−i=1∑MuiTSuiS=N1n=1∑N(x(n)−xˉ)(x(n)−xˉ)T
此时,最小化EEE等价于
maxu1,u2,⋯ ,uM∑i=1MuiTSuis.t.: uiTuj={0, i≠j1, i=j
\max_{u_1,u_2,\cdots,u_M}\sum_{i=1}^Mu_i^TSu_i\\
s.t.:\ u_i^Tu_j=\begin{cases}
0,\ i\ne j\\
1,\ i=j
\end{cases}
u1,u2,⋯,uMmaxi=1∑MuiTSuis.t.: uiTuj={0, i=j1, i=j
可以证明,求解上面的优化问题等价于找SSS的最大的M个特征值对应的特征向量。
对于D×DD\times DD×D的矩阵SSS,由于S=XXTS=XX^TS=XXT,所以SSS必有DDD个特征值,并且可以分解为
S=UΛUT
S=U\Lambda U^T
S=UΛUT
其中,UUU包含SSS所有的特征向量,Λ\LambdaΛ是一个对角矩阵。
最大方差
从另外一种观点来看,我们希望找到一组向量集span{u1,u2,⋯ ,uM}span\{u_1,u_2,\cdots,u_M\}span{u1,u2,⋯,uM},使得数据{x(n)}n=1N\{x^{(n)}\}_{n=1}^N{x(n)}n=1N在上面的方差最大,最大化方差意味着尽可能地保存原始数据的信息。
对于第1个方向u1u_1u1,方差为
var=1N∑n=1N(u1T(x(n)−xˉ))2=u1T1N∑n=1N(x(n)−xˉ)(x(n)−xˉ)Tu1=u1TSu1
\begin{aligned}
var
&=\frac{1}{N}\sum_{n=1}^N(u_1^T(x^{(n)}-\bar x))^2\\
&=u_1^T\frac{1}{N}\sum_{n=1}^N(x^{(n)}-\bar x)(x^{(n)}-\bar x)^Tu_1\\
&=u_1^TSu_1
\end{aligned}
var=N1n=1∑N(u1T(x(n)−xˉ))2=u1TN1n=1∑N(x(n)−xˉ)(x(n)−xˉ)Tu1=u1TSu1
优化的问题为
maxu1 vars.t.: u1Tu1=1
\max_{u_1}\ var\\
s.t.:\ u_1^Tu_1=1
u1max vars.t.: u1Tu1=1
此时,u1u_1u1为SSS最大的特征值对应的特征向量。
对第2个方向,优化的问题为
maxu2 var=u2TSu2s.t.: u2Tu2=1, u1Tu2=0
\max_{u_2}\ var=u_2^TSu_2\\
s.t.:\ u_2^Tu_2=1,\ u_1^Tu_2=0
u2max var=u2TSu2s.t.: u2Tu2=1, u1Tu2=0
此时,u2u_2u2为SSS第2大的特征值对应的特征向量。
可以发现,最大方差的观点和最小近似误差的观点得到的结果是相同的,即主方向为协方差矩阵SSS中特征值最大的那些特征向量。
SVD分解
对于一个M×NM\times NM×N的矩阵AAA,它总可以被分解为
A=UΣVT
A=U\Sigma V^T
A=UΣVT
其中,UUU是矩阵AATAA^TAAT的特征向量组成的,VVV是ATAA^TAATA的特征向量组成的,Σ\SigmaΣ中只有对角线上的元素非0,这些非0元素也被称为奇异值。
令
X~=[x(1)−xˉ x(2)−xˉ ⋯ x(N)−xˉ]
\widetilde{X}=[x^{(1)}-\bar x\ x^{(2)}-\bar x\ \cdots\ x^{(N)}-\bar x]
X=[x(1)−xˉ x(2)−xˉ ⋯ x(N)−xˉ]
此时有
X~X~T=N⋅S
\widetilde{X}\widetilde{X}^T=N\cdot S
XXT=N⋅S
对X~\widetilde{X}X做奇异值分解得到的UUU矩阵即为SSS的特征向量。