在 Section 20.2.2 中,我们会显示这等价于最大化似然一个潜在线性高斯模型,又称为 probabilistic PCA.
20.1.2 Derivation of the algorithm#
假设我们有一个数据集 D={xn:n=1:N},其中 xn∈RD. 我们可以用一个 N×D 的数据矩阵 X 来代表这个数据集;我们假设 xˉ=N1∑n=1Nxn=0,可以用中心化数据确保这个条件。
现在我们要用一个低维表示 zn∈RL 来近似 xn. 我们认为每个 xn 都可以用一系列基函数 w1,…,wL 的加权组合来“解释”,wk∈RD, 而这些基函数的权重就是 zn∈RL,也就是说,我们假设 xn≈∑k=1Lznkwk.
zn 向量是 xn 的低维表示,也称作潜在向量,因为它是由数据中未观察到的隐变量组成的。这些隐变量的集合被称作潜在因子。
损失函数:
L(W,Z)=N1∣∣X−ZWT∣∣F2=N1∣∣XT−WZT∣∣F2=N1∣∣XT−WZT∣∣F2=N1n=1∑N∣∣xn−Wzn∣∣2这也被称作(平均)重建误差。
我们想在“ W 是一个正交矩阵 ”这个限制条件下优化这个损失函数,下面我们证明最优解在 W^=UL 取到。
20.1.2.1 Base case#
从一维解的情况开始讨论,w1∈RD,接下来我们再讨论 w2,w3,… 的解。
记数据点关于第一个基向量的系数为 z~1=[z11,…,zN1]∈RN. 重建误差为:
L(w1,z~1)=N1n=1∑N∣∣xn−zn1w1∣∣2=N1n=1∑N(xn−zn1w1)T(xn−zn1w1)=N1n=1∑N[xnTxn−2zn1w1Txn+zn12w1Tw1]=N1n=1∑N[xnTxn−2zn1w1Txn+zn12]其中由正交假设可知 w1Tw1=1. 对 zn1 求导可得:
∂zn1∂L(w1,z1~)=N1[−2w1Txn+2zn1]=0⟹zn1=w1Txn所以最佳的 embedding 就是把数据正交投影到 w1. 把这个解再代入损失函数就得到了该权重的损失:
L(w1)=L(w1,z~1∗(w1))=N1n=1∑N[xnTxn−zn12]=const−N1n=1∑Nzn12接下来对 w1 进行优化, 注意到
L(w1)=−N1n=1∑Nzn12=−N1n=1∑Nw1TxnxnTw1=−w1TΣ^w1其中 Σ 是经验协方差矩阵(因为数据中心化了)。
对于这个问题,如果不限制 ∣∣w1∣∣,我们很难优化,所以我们加入约束条件:∣∣w1∣∣=1 并运用拉格朗日乘子法可得:
L^(w1)=w1TΣ^w1−λ1(w1Tw1−1)对 w1 求导得:
∂w1∂L^(w1)=2Σ^w1−2λ1w1=0⟹Σ^w1=λ1w1因此最佳投影方向是协方差矩阵的特征值。两边乘上 w1T 并使用条件 w1Tw1=1 我们发现:
w1TΣ^w1=λ1由于我们要最小化损失,也就是最大化这个量,我们需要选取最大的特征值对应的特征向量。
20.1.2.2 最优化的权重向量最大化了投影数据的方差#
由于数据被中心化了,我们有:
E[zn1]=E[xnTw1]=E[xn]Tw1=0因此投影数据的方差为:
V[z~1]=E[z~12]−(E[z~1])2=N1n=1∑Nzn12−0=−L(w1)+const因此最小化重建误差就等价于最大化投影数据的方差,这也是为什么经常说 PCA 是找到方差最大的方向。
20.1.2.3 Induction step#
现在我们找另一个方向 w2 来进一步最小化重建误差,约束条件:w1Tw2=0 和 w2Tw2=1. 误差为:
L(w1,z~1,w2,z~2)=N1n=1∑N∣∣xn−zn1w1−zn2w2∣∣2对 w1 和 z1 优化得到和上一个部分一样的结果,对 w2 和 z2 优化得到:
Σ^w2=λ2w2也就是第二大的特征值对应的特征向量。
由此继续下去,可知 W^=UL.
20.1.3 Computational issues#
这一部分我们讨论一些使用 PCA 相关的实际问题。
20.1.3.1 协方差矩阵 vs 相关性矩阵#
我们一直在对协方差矩阵做特征值分解,但是更好的选择是相关性矩阵。
原因:PCA 容易被未标准化的数据误导,有时候方差大的方向仅仅是由于测量尺度不同导致的,下图展示了一个这样的例子。
Note:标准化后的样本数据的协方差矩阵就是原始样本数据的相关矩阵

20.1.3.2 处理高维数据#
现在我们已经把 PCA 转换成了一个找 D×D 的协方差矩阵 XTX 的特征向量的问题。如果 D>N,此时计算 N×N 的 Gram matrix
XXT 速度更快。
令 U 为一个包含 XXT 特征向量的正交矩阵,对应的特征值在 Λ 中。由定义有 (XXT)U=UΛ. 两边同乘 XT 得到:(XTX)(XTU)=(XTU)Λ.
从上式我们可以看到协方差矩阵 XTX 的特征向量是 V=XTU,特征值由 Λ 给出。但是,这些特征向量是未标准化的,因为 ∣∣vj∣∣2=ujTXXTuj=λjujTuj=λj.
标准化后的特征向量由 V=XTUΛ−21 给出。
上述方法提供了计算 PCA 基函数的另一种方法,同时让我们可以使用核技巧,见 Section 20.4.6.
20.1.3.3 用 SVD 计算 PCA#
这一部分我们显示用特征向量法计算 PCA 等价于截断 SVD.
假设 X 以被中心化,令协方差矩阵 Σ∝XTX 的 top L 特征分解矩阵为 UΣΛΣUΣT. 由 Section 20.1.2 的推导可知投影权重的最佳估计是 top L 特征值,所以 W=UΣ.
现在令 UΣΛΣVΣT≈X 为 数据矩阵 X 的 L-truncated SVD 近似. 由第 7 章可知 X 的右奇异向量是 XTX 的特征向量,所以 VX=UΣ=W. (另外,协方差矩阵的特征值和数据矩阵的奇异值之间差一个系数 λk=sk2/N.)
现在假设我们对投影后的结果而不是投影矩阵感兴趣,我们有:
Z=XW=UXSXVXTVX=UXSX最后,如果我们想近似重建数据,我们有:
X^=ZWT=UXSXVXT这和截断 SVD 近似是一模一样的。
因此我们发现对协方差矩阵 Σ 做特征值分解和对数据矩阵 X 做奇异值分解都是做 PCA. 通常倾向于使用后一种方法,主要是计算上方便。对于非常高维的问题,我们可以用随机化的 SVD 算法来减少时间复杂度。