1. Definitions(定义)

主成分分析(principal components analysis, PCA)简称PCA,是一种广泛应用于数据降维(data dimensionality reduction)、有损数据压缩(lossy data compression)、特征提取(feature extraction)以及数据可视化等的一种技术,也被称为Karhunen-Lo`eve变换。

关于PCA的定义主要有两种:

  • PCA是一种将数据投影到低维线性空间(principal subspace,主成子空间)使得投影之后的差异最大的正交投影。
  • PCA是一种最小化平均投影成本(average projection cost),投影点与数据点之间的均方距离最小,即数据损失精度最小。

2. Example (例子)

我们通过一个有损压缩的例子来介绍PCA。假设我们有m个数据点{x(1),,x(m)},其中数据维度为x(1)Rn。因此,存储这些数据,需要m×n个单元。为了节省存储单元,我们考虑有损压缩。有损压缩,意味着我们可以用较少的存储单元储存数据,当然,这会损失些精度。因此我们要尽量的减少精度的损失。

我们将这些数据压缩成低维数据,即每一个x(i)Rn都可以找到一个对应的cRl,(nl)。这里,我们用映射f:RnRl来表示,即f(x)=c。对应的解压缩,我们用函数g:RlRn来表示,即x^=g(f(x))

为了解压缩尽量简单,我们限制解压缩是经过一个线性变换矩阵D来完成,则解压缩信号表示为g(c)=Dc。这里,我们限制矩阵D是列正交矩阵(矩阵中列两两正交)。一般来说,增大D的能量,需要降低c的能量,因此,我们对D进行归一化处理(归一化与未归一化大部分情况的结果是相等的,但也存在一些情况下归一化的情况更好,因此通常我们会对D进行归一化处理)。

我们从矩阵乘法的角度来理解x=Dc。通常,我们理解矩阵乘法从图的左图出发,但一般不会考虑右图的理解方式。这里,我们从右图的理解方式出发。由于D是列正交的,因此{di}i[l]张成了一个l空间,而{di}i[l]则是这个Rl空间的一组完备正交基x在基di上的投影即为ci。我们用{di}i[l]线性表出x

(3)x=i[l]cidi

深度学习笔记之主成分分析
为了使得解压之后的数据损失尽可能少的精度,我们需要通过使得如下损失函数(也称,代价函数 cost function)最小来得到压缩数据的具体表达式
(4)R=xDc2

损失函数是关于c的线性变换(xDc)的范数,因此是convex的(所有的范数均是convex function)。

通过导数工具,有

(5)Rc=c(xTx2xTDc+cTDTDc)(6)=(a)c(xTx2xTDc+cTc)(7)=2DTx2c

其中(a)成立,由于D是列正交矩阵,因此DTD=Il。通过令偏导为0,我们找到函数的驻点c=DTx

给定解压矩阵D,我们从损失精度最小的角度出发,得到了压缩数据的表达式c=DTx,对应解压缩数据为r(x)=DDTx为此,我们仍需要确定D的形式。这里,我们仍然从损失精度最小的角度出发

(8)D=argminDxDDTxs.t.DTD=Il

显然,我们要从从这个方程中解出D来是不可能的。

但是,我们是有nx(i)数据的,定义XRm×n,其中Xi:=(x(i))T

(9)D=argminDXTDDTXTF(10)=argminDXXDDTF(11)=argminDTr[(XXDDT)T(XXDDT)](12)=argminDTr(XTX)Tr(DTXTXD)(13)=argmaxDTr(DTXTXD)

这里D是列正交矩阵,即DTD=Il。为使Tr(DTXTXD)最大,因此选择XTX最大的l个特征矢量作为D的列向量。对应地,

(14)XTX[ξ1,,ξl]=[ξ1,,ξl]Diag(λ1,,λl)

其中ξi表示最大的l个特征值λi[l]对应的特征矢量,[l]表示最大的l个特征值组成的结合。因此maxTr(DTXTXD)=ilλi

Remarks:

  • 基于上述表述,我们知道矩阵D选择数据矩阵XTX的最大l个特征值λi[l]所对应的特征向量ξi作为其列,最大程度的保留了矩阵XTX的能量。
  • 这里所得到D=[ξ1,,ξl]并不是驻点,如果XTDDTXTFD求偏导,并令偏导为零,得到D=0,显然这并不是最后的计算结果。

相关文章: