PCA算法提供了一种压缩数据的方式。我们也可以将PCA视为学习数据表示的无监督学习算法。这种表示基于上述简单表示的两个标准。PCA学习一种比原始输入维数更低的表示。它也学会了一种元素之间彼此没有线性相关的表示。这是学习表示中元素统计独立标准的第一步。要实现完全独立性,表示学习算法也必须去掉变量间的非线性关系。
假设有一个
的设计矩阵X,数据的均值为零,
。若非如此,通过预处理地步骤使所有样本减去均值,数据就可以很容易的中心化。X对应的无偏样本协方差矩阵给定义如下
![\large Var[x]=\frac{1}{m-1}X^TX](https://1000bd.com/contentImg/2023/10/30/054541453.gif)
PCA通过线性变换找到一个Var[z]是对角矩阵的表示
。
我们已知设计矩阵X的主成分由
的特征向量给定。从这个角度,我们有
XTX=WΛWT" role="presentation" style="position: relative;">XTX=WΛWT
主成分分析也可以通过奇异值分解(SVD)得到。具体来说,它们是X的右奇异向量。为了说明这点,假设W是奇异值分级X=UΣWT" role="presentation" style="position: relative;">X=UΣWT的右奇异向量。以W作为特征向量基,我么可以得到原来的特征向量方程:
XTX=(UΣWT)TUΣWT=WΣ2WT" role="presentation" style="position: relative;">XTX=(UΣWT)TUΣWT=WΣ2WT
SVD有助于说明PCA后的Var|z|" role="presentation" style="position: relative;">Var|z|是对角的。使用X的SVD分解,X的方差可以表示为:
Var[x]=1m−1XTX=1m−1(UΣWT)TUΣWT=1m−1WΣTUTUΣWT=1m−1WΣ2WT" role="presentation" style="position: relative;">Var[x]=1m−1XTX=1m−1(UΣWT)TUΣWT=1m−1WΣTUTUΣWT=1m−1WΣ2WT
其中,我们使用UTU=I" role="presentation" style="position: relative;">UTU=I,因为根据奇异值的定义矩阵U是正交的。这表明z的协方差满足对角矩阵的要求:
Var[z]=1m−1ZTZ=1m−1WTXTXW=1m−1WTWΣ2WTW=1m−1Σ2" role="presentation" style="position: relative;">Var[z]=1m−1ZTZ=1m−1WTXTXW=1m−1WTWΣ2WTW=1m−1Σ2
其中,再次使用SVD的定义有WTW=I" role="presentation" style="position: relative;">WTW=I。
以上分析指明我们通过线性变换W将数据x投射到z时,得到的数据表示的协方差矩阵是对角的(即Σ2" role="presentation" style="position: relative;">Σ2),立刻可得z中的元素时彼此无关的。PCA这种将数据变换为元素之间彼此不相关表示的能力时PCA的一个重要性质。它是消除数据中未知变化因素的简单表示示例。在PCA中,这个消除是通过寻找输入空间的一个旋转(由W确定),使得方差的主坐标和z相关的新表示空间的基对齐。虽然先关性是数据元素之间依赖关系的一个重要范畴,但我们对于能够消除更复杂形式的特征依赖的表示学习也很感兴趣。对此,我们需要比简单线性变换更强的工具。