AI机动队
首发于AI机动队
主成分分析PCA——深度学习花书第五章(六)

主成分分析PCA——深度学习花书第五章(六)

接下来总结经典的无监督学习模型主成分分析(Principal component analysis, 简称PCA)。Ian分别在第二章和第五章从不同角度讨论了PCA算法,分别是在第二章线性代数中本征分解和奇异值分解SVD之后和第五章无监督学习模型中,这里总结在一起。

问题定义

机器学习有一类常见问题是有损压缩(lossy compression),即我们对于原数据进行一些压缩以减少存储空间,这个过程中不可避免地会损失一些原有的信息,我们希望尽量减小精度的损失。

我们将这一问题用数学表示:假设我们有m个 R^n 空间中点 \left\{ x^{(1)},...,x^{(m)} \right\} 的集合,对于每一个 x^{(i)}\in R^n ,我们希望找到对应的压缩后的矢量 c^{(i)}\in R^l ,其中 l<m ,我们有编码函数 f(x)=c ,还有可以利用压缩后的信息重构原信息的解码函数,并希望重构的信息与原信息尽量相同,即 x\approx g(f(x)) 。假设我们用矩阵乘法来解码,则 g(c)=Dc ,其中 D\in R^{n\times l} 是解码矩阵。

为了使问题简化,PCA算法限制D的列是正交归一的。

有损压缩问题可表述为使得重构的点与原信息点的距离最小的优化问题,用公式表述为 c^* = argmin_c ||x-g(c)||^2 = argmin_c (x-g(c))^T(x-g(c))

优化问题

g(c)=Dc 代入最小化公式并化简得 c^* = argmin_c -2x^TDc+c^Tc

令其梯度为零,则可得到 c=D^Tx

所以编码函数为 f(x)=D^Tx

而PCA的重构操作则是 r(x)=g(f(x)) = DD^Tx

为了使重构结果与原输入距离最小,D的优化问题可用公式表示为 D^* = argmin_D \sqrt{\sum_{i,j}{(x_j^{(i)}-r(x^{(i)})_j)^2}}

其正交归一的限制条件为 D^TD = I_l

我们先来考虑 l=1 的情况,矩阵D就是一个向量d,优化问题转化为

d^* = argmin_d \sum_i ||x^{(i)}-(x^{(i)})^Tdd^T||^2 ,其中 ||d||_2=1

我们将所有的输入用一个 X\in R^{m \times n} 的矩阵表示,则可用矩阵的Frobenius norm来表示d的优化问题

d^* = argmin_d \sum_i ||X-Xdd^T||_F^2 ,其中 d^Td=1

利用矩阵的Frobenius norm与迹的关系 ||A||_F = \sqrt{Tr(AA^T)} ,代入并简化式子有

d^* = argmin_d -2Tr(X^TXdd^T) + Tr(X^TXdd^Tdd^T)

并且由于 d^Td=1 ,可以进一步简化为

d^* = argmin_d -Tr(X^TXdd^T) = argmax_dTr(d^TX^TXd)

通过上式可以看出,这个极值问题可以用 X^TX 的本征分解来解决,即 X^TX 的最大的本征值对应的本征矢量为d的最优解,这是对 l=1 的情况,用本征分解得到的first principle component。推广到 l>1 的情况,则D的最优解为 X^TX 的 最大的l 个本征值对应的本征矢量组成的矩阵。

从表征空间角度理解PCA

除了将PCA看做是一种压缩数据的方法,我们还可以将其看做是一种学习数据表征方式的无监督学习算法。我们可以将PCA看做是从高维空间到低维空间的映射,并且在低维空间中的元素间是线性无关的。

对于原数据的矩阵 X\in R^{m \times n} ,为方便讨论,我们可以假设 E[x]=0 ,因为我们总是可以预处理我们的数据并减掉一个线性项使期为零。则无偏的协方差可表示为

Var[x] = \frac{1}{m-1}X^TX

而PCA就是要找到一个通过线性变换的方式 z=W^Tx ,使得 Var[z] 是对角的,从而使在新的表征空间的元素间是无关的。

前面我们利用 X^TX 的本征分解来解决PCA问题,即 X^TX = W\Lambda W^T 。这里,我们也可以用另一种方法,即对X的奇异值分解(关于本征分解和奇异值分解的区别,可回顾线性代数——深度学习花书第二章)来表示PCA问题。

X=U\Sigma W^T ,其中 U,W 为正交矩阵, \Sigma 为对焦矩阵,则 X^TX=(U\Sigma W^T)^TU\Sigma W^T=W\Sigma ^2 W^T

Var[x]=\frac{1}{m-1}W\Sigma ^2 W^T

Var(z)=\frac{1}{m-1}Z^TZ = \frac{1}{m-1}W^TX^TXW = \frac{1}{m-1}W^TW\Sigma ^2 W^TW=\frac{1}{m-1}\Sigma ^2

可以看出经过PCA转换后,协方差只有对角上才有值,所以z的元素间是线性无关的,相当于对原空间做了一个旋转(通过矩阵W),使得方差大的方向落在新空间的各个主轴上,如下图所示,在原空间中,方差最大的方向并不是在轴线上,经过PCA的线性转换后,在新空间 z=W^Tx 中方差最大的方向沿着 z_1 轴方向,而次大的沿着 z_2 轴方向。


至此,花书第五章机器学习基础基本总结完毕,后面还有关于随机梯度下降(Stochastic Gradient Descent)的讨论,准备在第八章深度神经网络的优化方法中再总结。

编辑于 2018-07-23

文章被以下专栏收录