← 返回复习站

Methods and tools for big data · Chapter 4

源文件: c4.pdf

Dimensionality reduction | 内容聚合讲解(逻辑增强版)

统计与代数复习 → PCA / SVD / QR → Tall-and-skinny 分布式计算 → Random projection 与 randomized PCA

原始页数
43
知识模块
4
讲解单元
14
聚合单元
12
Example
2
逐页详解
43
Dimensionality reduction

OVERVIEW 01

这组课件在讲什么

中心问题

如何把高维数据压缩到更少坐标,同时保留方差、相似度、谱或两两距离等关键结构?

方法类别

PCA / SVD / QR 属于确定性线性代数主线;cosine sampling 与 random projection 用随机性降低通信或计算。

系统条件

Small data 可单机处理;Big data 中 X 不入内存,矩阵形状、稀疏度和分区决定速度。

目标能力

能从保证、稳定性、通信和矩阵形状四个角度选择降维路线,并读懂推导与图示。

OVERVIEW 02

知识如何推进

主线

协方差矩阵 → 特征方向 → PCA → SVD 稳定实现 → Householder QR → 截断低秩近似。

Big data 延伸

Tall-and-skinny → Gram MapReduce → cosine sampling / tiled QR。

随机化跳转

从 PCA 的最优子空间跳到 JL 保距,再用随机投影、QR 和小矩阵 SVD 组成 randomized PCA。

Examples

课堂面积与容量的 PCA 视觉 Example;Householder 反射把一个分量取反并逐列制造零。

OVERVIEW 03

讲解路线

单元页码类型共同任务补足 / 视觉重点
U01 · 课程范围与三段式路线P001-P002导入封面给出主题,组织图给出 Review、Small data、Big data 的连续路线,两页共同定义本讲边界。公式 / 算法
U02 · 从抽样统计到协方差矩阵P003-P005概念传统统计策略解释为何需要数据压缩;一维统计量与二维协方差随后把“保留什么信息”写成可计算量。公式 / 算法
U03 · 特征分解基础与小数据入口P006-P009复习两页代数复习完成特征值到对角化的链条,随后路线分隔页和引语共同把数学结构转入可计算的小数据方法。公式 / 算法
U04 · 课堂数据上的 PCA 完整流程P010-P014EXAMPLE问题、原始散点、标准化投影、主成分坐标和三步算法是一个不可拆分的 worked example。上下文补足
U05 · 扰动如何暴露特征分解的不稳定性P015-P015推导该页是一段完整扰动推导,单独建立后续比较 SVD 稳定性的尺度。公式 / 算法
U06 · 从二维变换构造一般 SVDP016-P019推导变换图、二维推导、矩形推广和稳定性结论共同完成 SVD 的几何到代数链条。视觉重点
U07 · Householder QR:从反射 Example 到逐列三角化P020-P023EXAMPLEQR 定义、Householder Example、第一轮消元和完整迭代必须连续阅读,才能看清反射如何变成算法。上下文补足
U08 · PCA、SVD 与截断低秩近似P024-P025模型第一页证明 SVD 如何给出协方差谱,第二页紧接着比较实现路线并给出截断规则。视觉重点
U09 · 从单机线性代数切换到分布式矩阵P026-P027系统章节分隔页宣布 Big data,下一页马上定义矩阵形状和分区方式,两页共同改变计算模型。公式 / 算法
U10 · Tall-and-skinny 的 Gram 矩阵 MapReduceP028-P030算法设置、把问题压成 X^\top X、以及直接 MapReduce 实现构成一个完整基线算法。公式 / 算法
U11 · Cosine sampling:从文档相似度到无偏 Gram 近似P031-P035算法长度偏差、余弦定义、采样算法、期望证明与参数复杂度是一条完整的动机到保证链。上下文补足
U12 · Tiled QR 的分布式更新顺序P036-P036算法该页独立给出 block QR 的完整阶段和依赖关系。公式 / 算法
U13 · Random projection 与 randomized PCAP037-P041模型PCA 总结提出随机替代问题,随后定义保距目标、解释随机子空间、列出边界,并组合成 randomized PCA。上下文补足
U14 · 五个关键问题与课程结束P042-P043总结关键点页给出完整回顾入口,结束页只关闭课程;合并后保持结尾连续。公式 / 算法

OVERVIEW 04

核心公式索引

公式 / 模型变量与条件用途单元 / 页码
\bar X,\ \sigma,\ \sigma_{X_i,X_j}均值、标准差与协方差;样本分母采用 n-1描述中心、离散和变量联动U02 / P004-P005
M=PDP^{-1}M 可对角化;D 的对角线为特征值把协方差拆成独立方向U03 / P006-P007
Z_{i,j}=\frac{X_{i,j}-\bar X_i}{\sigma_{X_i}}逐属性标准化消除量纲和范围主导U04 / P014
\lVert\delta D\rVert\le\lVert P^{-1}\rVert\lVert P\rVert\lVert\delta M\rVert矩阵范数满足次乘性评估扰动放大U05 / P015
X=U\Sigma V^\top任意实矩阵;奇异值通常降序稳定分解与低秩近似U06 / P017-P019
H_u=I-\frac{2uu^\top}{u^\top u}u 非零构造 Householder 反射并消零U07 / P020-P023
X^\top X=V\Sigma^2V^\topX 已中心化;课件省略协方差缩放常数由 SVD 读取 PCA 谱U08 / P024-P025
\cos(d_i,d_j)=\frac{\langle d_i,d_j\rangle}{\lVert d_i\rVert\lVert d_j\rVert}两向量范数非零比较方向而非长度U11 / P032
X^\top X\approx DX^{\prime}DX^{\prime} 是采样得到的列余弦矩阵恢复 Gram 矩阵尺度U11 / P034-P035
X^{\prime}=\frac{1}{\sqrt d}XRR 的条目独立同分布、零均值随机保距降维U13 / P038-P040
QQ^\top X=Q(U_1\Sigma V^\top)Q 张成随机候选子空间Randomized PCA 近似 SVDU13 / P041
方法速查: 三种形状矩阵怎么手算 SVD置顶教程 / SVD

目标: 把矩阵拆成 A=U\Sigma V^\top。记法上,V 管输入方向,\Sigma 管缩放,U 管输出方向。

先看矩阵形状,再决定算哪一边。 固定计算 A^\top A 并不总是划算;手算时应选阶数更小的 Gram matrix。

矩阵形状优先计算先得到再恢复另一边
square: n\times nA^\top AAA^\topVU用映射公式恢复
wide: m\times n,\ m<nAA^\top\in\mathbb R^{m\times m}Uv_i=A^\top u_i/\sigma_i
tall-and-skinny: m\times n,\ m>nA^\top A\in\mathbb R^{n\times n}Vu_i=Av_i/\sigma_i
  1. 做 EVD: 解较小 Gram matrix 的 eigenpairs,并把 eigenvectors 归一化。
  2. 得到 singular values: \sigma_i=\sqrt{\lambda_i},按从大到小排。
  3. 恢复另一边: 对每个 \sigma_i>0,使用 u_i=Av_i/\sigma_iv_i=A^\top u_i/\sigma_i
  4. 补零空间: full SVD 需要把缺少的正交单位向量补齐;thin SVD 只保留非零 singular values 对应的列。
  5. 组装: U 的列是 u_i\Sigma 对角线上放 \sigma_i,最后检查 A=U\Sigma V^\top

例 1 · square 方阵:完整走一遍 2\times2 SVD

取一个非对角、满秩、对称正定矩阵:

A=\begin{pmatrix}3&1\\1&3\end{pmatrix},\qquad A^\top A=\begin{pmatrix}10&6\\6&10\end{pmatrix}
\det(A^\top A-\lambda I)=(10-\lambda)^2-36=(\lambda-16)(\lambda-4)=0

所以 eigenvalues 是 \lambda_1=16\lambda_2=4。分别代回线性方程并归一化:

v_1=\frac{1}{\sqrt2}\begin{pmatrix}1\\1\end{pmatrix},\qquad v_2=\frac{1}{\sqrt2}\begin{pmatrix}1\\-1\end{pmatrix}
\sigma_1=\sqrt{16}=4,\qquad \sigma_2=\sqrt4=2
u_1=\frac{Av_1}{4}=v_1,\qquad u_2=\frac{Av_2}{2}=v_2
U=V=\frac1{\sqrt2}\begin{pmatrix}1&1\\1&-1\end{pmatrix},\qquad \Sigma=\begin{pmatrix}4&0\\0&2\end{pmatrix}
U\Sigma V^\top=\frac12\begin{pmatrix}1&1\\1&-1\end{pmatrix}\begin{pmatrix}4&0\\0&2\end{pmatrix}\begin{pmatrix}1&1\\1&-1\end{pmatrix}=\begin{pmatrix}3&1\\1&3\end{pmatrix}=A

这里为什么有 U=V: 不是所有方阵都这样。本例的 A 对称正定,它的 eigenvectors 同时是左右 singular vectors。

例 2 · wide 矩阵:先算较小的 AA^\top

A\in\mathbb R^{2\times3}。如果硬算 A^\top A,要解 3\times3 EVD;改算 AA^\top 只需解 2\times2

A=\begin{pmatrix}1&1&0\\0&1&1\end{pmatrix},\qquad AA^\top=\begin{pmatrix}2&1\\1&2\end{pmatrix}
\det(AA^\top-\lambda I)=(2-\lambda)^2-1=(\lambda-3)(\lambda-1)=0
u_1=\frac1{\sqrt2}\begin{pmatrix}1\\1\end{pmatrix},\quad u_2=\frac1{\sqrt2}\begin{pmatrix}1\\-1\end{pmatrix},\quad \sigma_1=\sqrt3,\quad \sigma_2=1

现在从左 singular vectors 恢复右 singular vectors:

v_1=\frac{A^\top u_1}{\sigma_1}=\frac1{\sqrt6}\begin{pmatrix}1\\2\\1\end{pmatrix},\qquad v_2=\frac{A^\top u_2}{\sigma_2}=\frac1{\sqrt2}\begin{pmatrix}1\\0\\-1\end{pmatrix}
Av_3=0\quad\Longrightarrow\quad v_3=\frac1{\sqrt3}\begin{pmatrix}1\\-1\\1\end{pmatrix}

v_3 对应 input nullspace,只在 full SVD 中出现。组装结果:

U=\frac1{\sqrt2}\begin{pmatrix}1&1\\1&-1\end{pmatrix},\quad \Sigma=\begin{pmatrix}\sqrt3&0&0\\0&1&0\end{pmatrix}
V=\begin{pmatrix}1/\sqrt6&1/\sqrt2&1/\sqrt3\\2/\sqrt6&0&-1/\sqrt3\\1/\sqrt6&-1/\sqrt2&1/\sqrt3\end{pmatrix}
\sigma_1u_1v_1^\top+\sigma_2u_2v_2^\top=\frac12\begin{pmatrix}1&2&1\\1&2&1\end{pmatrix}+\frac12\begin{pmatrix}1&0&-1\\-1&0&1\end{pmatrix}=\begin{pmatrix}1&1&0\\0&1&1\end{pmatrix}=A

例 3 · tall-and-skinny:用 thin SVD 保留有效方向

A\in\mathbb R^{4\times2}。这次 A^\top A 只有 2\times2,比 AA^\top\in\mathbb R^{4\times4} 小。

A=\begin{pmatrix}1&1\\1&1\\1&1\\1&-1\end{pmatrix},\qquad A^\top A=\begin{pmatrix}4&2\\2&4\end{pmatrix}
\det(A^\top A-\lambda I)=(4-\lambda)^2-4=(\lambda-6)(\lambda-2)=0
v_1=\frac1{\sqrt2}\begin{pmatrix}1\\1\end{pmatrix},\quad v_2=\frac1{\sqrt2}\begin{pmatrix}1\\-1\end{pmatrix},\quad \sigma_1=\sqrt6,\quad \sigma_2=\sqrt2
u_1=\frac{Av_1}{\sqrt6}=\frac1{\sqrt3}\begin{pmatrix}1\\1\\1\\0\end{pmatrix},\qquad u_2=\frac{Av_2}{\sqrt2}=\begin{pmatrix}0\\0\\0\\1\end{pmatrix}

rank 是 2,所以实际计算通常采用 thin SVD:

U_r=\begin{pmatrix}1/\sqrt3&0\\1/\sqrt3&0\\1/\sqrt3&0\\0&1\end{pmatrix},\quad \Sigma_r=\begin{pmatrix}\sqrt6&0\\0&\sqrt2\end{pmatrix},\quad V^\top=\frac1{\sqrt2}\begin{pmatrix}1&1\\1&-1\end{pmatrix}
\sigma_1u_1v_1^\top=\begin{pmatrix}1&1\\1&1\\1&1\\0&0\end{pmatrix},\qquad \sigma_2u_2v_2^\top=\begin{pmatrix}0&0\\0&0\\0&0\\1&-1\end{pmatrix}
A=\sigma_1u_1v_1^\top+\sigma_2u_2v_2^\top

如果题目明确要求 full SVD,再补两个左侧零空间方向:

u_3=\frac1{\sqrt2}\begin{pmatrix}1\\-1\\0\\0\end{pmatrix},\qquad u_4=\frac1{\sqrt6}\begin{pmatrix}1\\1\\-2\\0\end{pmatrix}
U=[u_1\ u_2\ u_3\ u_4],\qquad \Sigma=\begin{pmatrix}\sqrt6&0\\0&\sqrt2\\0&0\\0&0\end{pmatrix}

thin 与 full 的区别: 两者重建的 A 完全相同。full SVD 多出的列只负责补成完整 orthonormal basis,不增加非零信息。

统一记法: eigenvalue 开根号得到 singular value;用 Av_i=\sigma_i u_iA^\top u_i=\sigma_i v_i 在左右方向之间转换。某一对 u_i,v_i 同时乘以 -1 仍是同一个 SVD,所以答案的列符号可能不同。

方法进阶: 如何用 QR 压缩 tall-and-skinny 后再做 SVD置顶教程 / QR → SVD

A\in\mathbb R^{m\times n},\ m\gg n。先做 thin QR:

A=QR,\qquad Q\in\mathbb R^{m\times n},\quad Q^\top Q=I_n,\quad R\in\mathbb R^{n\times n}
R=\widetilde U\Sigma V^\top\quad\Longrightarrow\quad A=Q\widetilde U\Sigma V^\top=U\Sigma V^\top,\qquad U=Q\widetilde U

真正做 SVD 的对象从 m\times n 大矩阵变成 n\times n 小矩阵 R。下面复用上一个 4\times2 例子。

第 1 步 · 求 thin QR

把两列记成 c_1=(1,1,1,1)^\topc_2=(1,1,1,-1)^\top。为便于手算,这里用 Gram-Schmidt 写出数值;实际程序通常使用更稳定的 Householder QR 或 TSQR。

r_{11}=\lVert c_1\rVert_2=2,\qquad q_1=\frac{c_1}{r_{11}}=\frac12\begin{pmatrix}1\\1\\1\\1\end{pmatrix}
r_{12}=q_1^\top c_2=1,\qquad z_2=c_2-r_{12}q_1=\frac12\begin{pmatrix}1\\1\\1\\-3\end{pmatrix}
r_{22}=\lVert z_2\rVert_2=\sqrt3,\qquad q_2=\frac{z_2}{r_{22}}=\frac1{2\sqrt3}\begin{pmatrix}1\\1\\1\\-3\end{pmatrix}
Q=\begin{pmatrix}1/2&1/(2\sqrt3)\\1/2&1/(2\sqrt3)\\1/2&1/(2\sqrt3)\\1/2&-3/(2\sqrt3)\end{pmatrix},\qquad R=\begin{pmatrix}2&1\\0&\sqrt3\end{pmatrix}

检查列关系:2q_1=c_1q_1+\sqrt3q_2=c_2,所以 QR=A

第 2 步 · 只对 2\times2R 做 SVD

R^\top R=\begin{pmatrix}4&2\\2&4\end{pmatrix}
V=\frac1{\sqrt2}\begin{pmatrix}1&1\\1&-1\end{pmatrix},\qquad \Sigma=\begin{pmatrix}\sqrt6&0\\0&\sqrt2\end{pmatrix}
\widetilde U=\begin{pmatrix}\sqrt3/2&1/2\\1/2&-\sqrt3/2\end{pmatrix}

这里的 \widetilde UR 的左 singular vectors,不是原矩阵 A 的最终左 singular vectors。

第 3 步 · 把左方向映射回原来的 m 维空间

U_r=Q\widetilde U=\begin{pmatrix}1/\sqrt3&0\\1/\sqrt3&0\\1/\sqrt3&0\\0&1\end{pmatrix}
A=U_r\Sigma V^\top

结果与直接对 A^\top A 求解完全一致。区别是 QR 先把高维行空间压进小矩阵 R,SVD 的核心分解只发生在 n\times n 上。

“加速”具体指什么

  • 计算: thin QR 约为 O(mn^2),小矩阵 SVD 为 O(n^3);如果需要 U,再算 Q\widetilde U
  • 内存与通信: tall-and-skinny 数据可以分块或用 TSQR 先归并出小 R,不必把整个 A 收到一台机器后再做 SVD。
  • 准确说法: 它不一定把高质量 direct thin SVD 的渐近复杂度从 O(mn^2) 降到更低;收益主要是把昂贵分解集中到小矩阵、降低常数和通信,并让分布式实现更自然。
  • 数值稳定性: 上面为了手算才写 R^\top R。程序中应直接调用稳定的 \operatorname{svd}(R);重新形成 Gram matrix 仍会平方 condition number。
方法速查: 如何做 PCA置顶教程 / PCA

目标: 找到数据 variance 最大的方向,把数据投影过去,用更少维度保留主要信息。

  1. 排数据矩阵: 行是样本,列是 feature,得到 X_{raw}
  2. 中心化: 每一列减自己的均值,得到 X。PCA 默认一定要先 center。
  3. 找方向: 可以对 covariance C=X^\top X/(m-1) 做 EVD;更稳定的做法是直接对 centered X 做 SVD。
  4. 排序选 k: 按 eigenvalue 或 \sigma_i^2 从大到小选前 k 个方向,组成 V_k
  5. 得到低维坐标: Z=XV_k。若从 SVD 来,Z=U_k\Sigma_k
  6. 需要重构时: \widehat X=ZV_k^\top,最后把均值加回去。

手算例子

用一个 4\times3 数据矩阵,最后选两个主方向。行是样本,列是 feature:

X_{raw}=\begin{pmatrix}5&3&3\\3&5&3\\2&2&4\\2&2&2\end{pmatrix}
\mu=\left(\frac{5+3+2+2}{4},\frac{3+5+2+2}{4},\frac{3+3+4+2}{4}\right)=(3,3,3)
X=X_{raw}-\mu=\begin{pmatrix}2&0&0\\0&2&0\\-1&-1&1\\-1&-1&-1\end{pmatrix}

样本数 m=4,所以 covariance 要除以 m-1=3

X^\top X=\begin{pmatrix}6&2&0\\2&6&0\\0&0&2\end{pmatrix}
C=\frac{1}{3}X^\top X=\begin{pmatrix}2&2/3&0\\2/3&2&0\\0&0&2/3\end{pmatrix}

C 做 EVD。这个矩阵的第三个 feature 已经和前两个 feature 解耦,所以 characteristic polynomial 可以直接拆开:

\det(C-\lambda I)=\left(\frac23-\lambda\right)\left[\left(2-\lambda\right)^2-\left(\frac23\right)^2\right]
\lambda_1=\frac83,\qquad \lambda_2=\frac43,\qquad \lambda_3=\frac23

对应 eigenvectors 是:

\lambda_1=\frac83:\quad v_1=\frac{1}{\sqrt2}\begin{pmatrix}1\\1\\0\end{pmatrix}
\lambda_2=\frac43:\quad v_2=\frac{1}{\sqrt2}\begin{pmatrix}1\\-1\\0\end{pmatrix}
\lambda_3=\frac23:\quad v_3=\begin{pmatrix}0\\0\\1\end{pmatrix}

怎么判断哪个方向真正有代表: 看 eigenvalue 占总 variance 的比例。eigenvalue 越大,数据在对应 eigenvector 方向上展开得越明显,这个方向越有代表性。

\text{total variance}=\lambda_1+\lambda_2+\lambda_3=\frac{14}{3}
\mathrm{EVR}_1=\frac{8/3}{14/3}=\frac47\approx57.1\%
\mathrm{EVR}_2=\frac{4/3}{14/3}=\frac27\approx28.6\%
\mathrm{EVR}_3=\frac{2/3}{14/3}=\frac17\approx14.3\%
\mathrm{cumulative\ EVR}_{1:2}=\frac47+\frac27=\frac67\approx85.7\%

如果题目要求从 3D 降到 2D,或者要求保留约 85\% 的 variance,就选前两个主方向 v_1,v_2。第三个方向 v_3 只解释约 14.3\%,所以在 2D PCA 里丢掉它。

k=2 时:

V_2=\begin{pmatrix}1/\sqrt2&1/\sqrt2\\1/\sqrt2&-1/\sqrt2\\0&0\end{pmatrix}
Z=XV_2=\begin{pmatrix}\sqrt2&\sqrt2\\\sqrt2&-\sqrt2\\-\sqrt2&0\\-\sqrt2&0\end{pmatrix}

这个 Z 就是 4 个样本在两个主方向上的二维 PCA 坐标。它把 4\times3 的 centered data 压成 4\times2

如果要看丢掉第三方向后损失了什么,可以重构近似:

\widehat X=ZV_2^\top=\begin{pmatrix}2&0&0\\0&2&0\\-1&-1&0\\-1&-1&0\end{pmatrix}
\widehat X_{raw}=\widehat X+\mu=\begin{pmatrix}5&3&3\\3&5&3\\2&2&3\\2&2&3\end{pmatrix}

可以看到第三个 feature 的上下波动被抹掉了,因为它对应的 v_3 是最小 variance 方向。

SVD 视角: 如果直接对 centered X 做 SVD,V 仍然给 principal directions,且 covariance eigenvalue 和 singular value 的关系是:

X=U\Sigma V^\top
C=\frac{1}{m-1}X^\top X=V\frac{\Sigma^2}{m-1}V^\top
\lambda_i(C)=\frac{\sigma_i^2}{m-1}

怎么记: 做完 EVD 后,不是“有几个 eigenvectors 就都保留”。先按 eigenvalue 从大到小排序,再看 explained variance ratio/cumulative variance。要选两个方向,就选 eigenvalue 最大的两个方向;它们在这个例子里合计解释 85.7\% 的 variance。

M01

统计与代数复习

把降维目标转成协方差矩阵与谱分解语言。

P001-P009

模块衔接: 从传统统计压缩的局限出发,依次建立方差、协方差、特征值和对角化。

U01 · 导入P001-P002 / 43

课程范围与三段式路线

为什么合在一起讲: 封面给出主题,组织图给出 Review、Small data、Big data 的连续路线,两页共同定义本讲边界。

完整讲解

核心思想: 本讲把降维串成一条主线:先用统计与谱分解描述数据结构,再用 PCA/SVD 求主方向,最后处理大矩阵的通信与近似。
从降维问题出发

本讲研究的是如何把高维数据压缩为更少的坐标,同时尽量保留后续分析需要的结构。封面只给出章节名,路线图补上了学习顺序。

三个分支不是互相替代的算法:Review 提供协方差与谱分解语言;Small data 建立 PCA、SVD、QR;Big data 再处理内存、通信和随机近似。

阅读本讲时要追踪的量

后续每次压缩都要问:保留了什么,丢失了什么,计算代价落在哪里。PCA 保留最大方差方向,cosine sampling 近似 Gram 矩阵,random projection 保留二范数距离。

本单元在知识链中的位置

承接上一单元

课程前三章的大数据处理背景。

本单元任务

建立章节地图与统一问题。

组内推进

P001 定题,P002 给出三阶段结构。

导向下一单元

先补统计与代数工具。

逐页详解P001-P002 · 2 页逐句翻译 · 本页解释
P001
课程封面

原页逐句翻译: 《大数据的方法与工具》,第 4 章“降维(Dimensionality reduction)”;Manuel,2026 年夏季。

本页解释: 封面把本讲定位在大数据方法课程的第四章。后续内容会先建立小数据上的 PCA、SVD 与 QR,再把同一目标搬到无法单机容纳的矩阵。

P002
章节组织

原页逐句翻译: 章节组织:中心主题是“降维”,三条分支分别是“复习”“小数据”“大数据”;本页高亮“复习”。

本页解释: 圆形关系图不是三种并列算法,而是教学路线。当前先补统计量、协方差、特征值和对角化,随后进入小数据算法,最后讨论分布式与随机化。

本单元页间主线: P001 定题,P002 给出三阶段结构。

读完本单元应掌握: 能说出本讲三阶段路线,并区分降维目标与具体算法。
U02 · 概念P003-P005 / 43

从抽样统计到协方差矩阵

为什么合在一起讲: 传统统计策略解释为何需要数据压缩;一维统计量与二维协方差随后把“保留什么信息”写成可计算量。

完整讲解

核心思想: 单变量统计只说明每列自身的离散度;PCA 需要协方差识别属性是否沿同一方向共同变化。
\sigma_{X_1,X_2}=\frac{\sum_{i=1}^{n}(X_{1,i}-\bar X_1)(X_{2,i}-\bar X_2)}{n-1}
传统压缩为什么不够

抽样和分类本身就是两次压缩:总体被样本代表,个体又被类别代表。计算量下降了,但同类个体差异和个性化目标也被抹平。

高维数据允许更细地描述个体,却把问题转成如何在不粗暴分类的前提下压缩属性。

中心与离散程度

均值给出中心,标准差与方差给出一个变量围绕中心的离散程度。标准差与原变量同量纲,方差便于代数运算。

这些量仍是逐列统计,无法判断教室面积增加时容量是否也增加。

协方差如何编码共同变化

协方差把两个变量相对均值的偏差相乘并累加:同号偏差贡献正值,异号偏差贡献负值。协方差为正意味着二者倾向同向变化。

把所有变量对的协方差排成矩阵后,对角线是方差,非对角线是联动。该矩阵实对称,因而能用正交特征向量分解成互不耦合的变化方向。

从数值到方向的关键过渡

只看每列方差会遗漏变量之间的重复信息。两个属性各自方差都很大,却可能几乎沿同一方向变化;若把它们都当作独立信息,就会高估数据的有效维数。协方差矩阵把这一重复性显式放在非对角元素中。

协方差公式先对每个观测减去各自变量均值,再将同一观测上的两个偏差相乘。样本同时高于各自均值或同时低于均值时乘积为正;一高一低时为负。跨样本求和后,符号和大小概括总体联动。

协方差受量纲影响:面积用平方米、容量用人数时,数值尺度不同。PCA Example 会先标准化,使每列以自身标准差为单位。这样协方差矩阵更接近相关系数矩阵,主方向不会被大单位变量自动占据。

矩阵对称性意味着第 i 个变量对第 j 个变量的协方差与反向相同。实对称矩阵具有正交特征向量,因此后面得到的新坐标方向可以彼此垂直,数据在这些方向上的协方差为零。

协方差为零只说明没有线性共同变化,不能一般地推出两个变量统计独立。PCA 只利用二阶线性结构,因此它擅长寻找拉长的线性点云方向,却可能看不到弯曲流形或更高阶依赖。

从本单元到下一单元的逻辑很具体:既然协方差矩阵承载了要保留的结构,就需要找一组方向把它变成对角形式。特征值和特征向量正是完成这一换基的工具。

本单元在知识链中的位置

承接上一单元

U01 提出在保留结构的同时压缩数据。

本单元任务

把“结构”落实为中心、方差和协方差。

组内推进

P003 给动机,P004 建一维统计,P005 推到多维。

导向下一单元

需要特征值工具读取协方差矩阵的方向。

逐页详解P003-P005 · 3 页逐句翻译 · 本页解释
P003
传统统计策略

原页逐句翻译: 统计策略。大数据时代之前:从大总体抽取样本,例如电话调查;基于样本推导总体测量结果;按照这些测量结果对总体分类;依据给定目标作出决策。限制:同一类别中的人并不都会以相似方式行动;目标必须是一般性的,不能个性化。

本页解释: 这页给出降维的动机背景:传统策略先压缩总体为样本,再压缩个体为类别。它能降低处理规模,却会牺牲个体差异;现代高维数据允许保留更多细节,但又引出存储和计算压力。

P004
一维统计量

原页逐句翻译: 统计复习。给定数据集 X=[X_1,\ldots,X_n],中位数对应“中间”值;均值为 \bar X=\sum_{i=1}^{n}\frac{X_i}{n}。标准差是 X_i\bar X 之间的平均距离,表示数据集的离散程度,并由 \sigma=\sqrt{\frac{\sum_{i=1}^{n}(X_i-\bar X)^2}{n-1}} 给出。方差同样衡量离散程度,等于 \sigma^2。这些测量都是一维的。

本页解释: 均值描述中心,标准差与方差描述围绕中心的展开程度。分母 n-1 对应课件采用的样本标准差写法。最后一句指出缺口:这些量单独处理每个变量,尚不能表达两个属性是否共同变化。

P005
协方差与协方差矩阵

原页逐句翻译: 统计复习。给定数据集 [X_1,X_2]=[[X_{1,1},\ldots,X_{1,n}],[X_{2,1},\ldots,X_{2,n}]],协方差为

\sigma_{X_1,X_2}=\frac{\sum_{i=1}^{n}(X_{1,i}-\bar X_1)(X_{2,i}-\bar X_2)}{n-1}

它满足 \sigma_{X_1,X_2}=\sigma_{X_2,X_1}\sigma_{X,X}=\sigma^2;它评估两个维度相对各自均值如何共同变化,并说明二者是否“共同增加”。给定 n 个变量 X_1,\ldots,X_n,协方差矩阵由 (\sigma_{X_i,X_j})_{1\le i,j\le n} 给出。

本页解释: 协方差矩阵把每一对变量的联动关系排成一个对称矩阵,对角线就是各变量方差。PCA 后面会对这个矩阵做谱分解:大特征值对应数据变化最强的方向。

本单元页间主线: P003 给动机,P004 建一维统计,P005 推到多维。

读完本单元应掌握: 能解释协方差符号,并说明协方差矩阵为何是 PCA 的输入。
U03 · 复习P006-P009 / 43

特征分解基础与小数据入口

为什么合在一起讲: 两页代数复习完成特征值到对角化的链条,随后路线分隔页和引语共同把数学结构转入可计算的小数据方法。

完整讲解

核心思想: 对角化把线性变换改写到特征向量基中,每个方向独立缩放;协方差矩阵为实对称矩阵,因此 PCA 能采用这条路线。
M=PDP^{-1}
从特征方向到满秩条件

对线性变换 M,若非零向量 X 满足 MX=\lambda X,这个方向在变换后不转向,只按 \lambda 缩放。课件把“秩为 n”与“有 n 个非零特征值”相连:满秩意味着矩阵可逆,所以 0 不能是特征值;按代数重数计,全部 n 个特征值都非零。反过来,只要有零特征值,就存在非零向量被送到零向量,矩阵必不满秩。

Mn 个两两不同的特征值,对应特征向量必线性无关,因而自动组成一组基。这是可对角化的充分条件,不是必要条件:重复特征值也可能拥有足够多的独立特征向量。

对角化就是一次明确的换基

设原坐标基为 B,特征向量基为 B^{\prime}。课件把 P 定义为从 B^{\prime}B 的过渡矩阵,因此 P 的列是在基 B 中写出的特征向量。计算 P^{-1}x 先把原坐标改写成特征坐标,D 在每个特征坐标上独立缩放,最后 P 把结果送回原坐标,所以 M=PDP^{-1}

这一方向约定也解释了矩阵幂:相邻的 P^{-1}P=I 抵消,于是 M^k=(PDP^{-1})^k=PD^kP^{-1}。复杂的反复矩阵乘法变成对角线上各特征值的 k 次幂。

特征多项式、分裂与重数

特征值也可由 \chi_M(\lambda)=\det(M-\lambda I_n) 的根找到,因为行列式为零恰好说明 M-\lambda I_n 有非零零空间。课件说多项式在 \mathbb K 上分裂,是指它能在该数域中完全分解为一次因子;若不分裂,就缺少足够的本域特征值。

分裂仍不够。对每个特征值 \lambda,特征空间 \ker(M-\lambda I_n) 的维数是几何重数,而它作为特征多项式根出现的次数是代数重数。只有每个特征值的几何重数都达到对应代数重数,全部特征空间合起来才提供 n 个独立特征向量,矩阵才可对角化。不可逆矩阵称为 singular matrix;等价地,它的行列式为零,并含零特征值。

这些条件怎样进入 PCA

PCA 面对的是协方差矩阵。它是实对称矩阵,因此不仅可对角化,还能选取正交归一的特征向量基;这排除了“一般方阵可能没有完整特征基”的障碍。每个特征向量给出一个新坐标轴,对应特征值给出数据沿该轴的方差。按特征值从大到小排序并截断,就得到后续 PCA 的降维规则。

不过,存在分解不等于适合通过展开行列式来计算。特征多项式把理论条件讲清楚,实际算法还要考虑舍入误差、稳定性和矩阵尺寸。P008 把路线切到 Small data,P009 的引语则把问题从“数学上存在”推到“怎样可靠计算”;下一组页面因此先用可视化 Example 建立 PCA,再比较 eigen decomposition、SVD 与 QR。

本单元在知识链中的位置

承接上一单元

U02 得到对称协方差矩阵。

本单元任务

提供读取协方差谱的代数语言。

组内推进

P006 定义特征对,P007 给条件,P008-P009 转入算法。

导向下一单元

用课堂数据 Example 直观看 PCA。

逐页详解P006-P009 · 4 页逐句翻译 · 本页解释
P006
特征值与对角化

原页逐句翻译: 代数复习。令 B 是向量空间 V 的一组基。对 M\in\mathcal M_n(\mathbb K),当且仅当存在特征向量 X\in\mathcal M_{n,1}(\mathbb K) 使 MX=\lambda X 时,\lambda\in\mathbb KM 的特征值。重要性质:若 M 的秩为 n,则它有 n 个非零特征值;若它有两两不同的 n 个特征值,则可对角化;M 可对角化当且仅当其特征向量构成一组基 B^{\prime}M=PDP^{-1},其中 D 的对角线放置特征值,P 是从 B^{\prime}B 的过渡矩阵;任意 k\in\mathbb N 都有 M^k=PD^kP^{-1}

本页解释: 特征向量是线性变换只缩放、不改变方向的方向。对角化把一般矩阵运算转成对角元素上的独立运算,这正是协方差矩阵能按主方向拆开的代数基础。

P007
特征多项式

原页逐句翻译: 代数复习。M 的特征多项式定义为映射 \chi_M:\mathbb K\to\mathbb K\lambda\mapsto\det(M-\lambda I_n)。性质:若 \lambdaM 的特征值,则它是 \chi_M 的根;M 可对角化,当且仅当 \chi_M\mathbb K 上分裂,且每个特征值 \lambda 的特征空间维数等于其重数。一般说明:并非所有方阵都可对角化;任何对称矩阵都可对角化;行列式通常“难以”计算;不可逆矩阵称为奇异矩阵(singular matrix)。

本页解释: 协方差矩阵是实对称矩阵,所以这里最关键的保证是它可以正交对角化。课件同时提醒,直接通过行列式求根并不适合大规模数值计算;后续 SVD 与 QR 提供更稳定、可实现的路线。

P008
进入小数据

原页逐句翻译: 章节组织:中心主题是“降维”,分支为“复习”“小数据”“大数据”;本页高亮“小数据”。

本页解释: 这一分隔页表示先把刚才的统计量和特征分解用于能在单机内存中处理的数据,核心是 PCA 以及支撑它的 SVD、QR。

P009
方法与计算

原页逐句翻译: “我钦佩你计算方法的优雅;骑着真正数学的骏马穿过这些田野一定很好,而像我们这样的人却不得不费力地徒步前行。”——Albert Einstein。

本页解释: 引语在内容上充当过渡:漂亮的数学结构需要落到可计算的方法。后续不只写出分解存在性,还比较稳定性、计算顺序和矩阵形状。

本单元页间主线: P006 定义特征对,P007 给条件,P008-P009 转入算法。

学生问题: P006-P007 · eigenvalue / characteristic polynomial 是什么意思翻译 / 详细解释

问题: page6,7 翻译成中文详细解释。

P006 中文翻译

\mathcal B 是向量空间 V 的一组基。对矩阵 M\in M_n(\mathbb K),如果存在一个特征向量 X\in M_{n,1}(\mathbb K),使得 MX=\lambda X,那么 \lambda\in\mathbb KM 的一个特征值。

MX=\lambda X
  • 特征值和特征向量: MX=\lambda X 的意思是,矩阵 M 作用到向量 X 后,向量方向不变,只被放大、缩小或反向。X 是特征向量,\lambda 是缩放倍数。
  • rank n: 如果 \operatorname{rank}(M)=n,也就是矩阵可逆,那么 0 不是它的特征值。slide 里“有 n 个非零特征值”应理解为:在特征多项式能分解时,按重数计数的 n 个特征值都非零。
  • 两两不同的 n 个特征值: 如果 n 阶矩阵有 n 个互不相同的特征值,那么对应的特征向量线性无关,所以能组成一组基,矩阵可对角化。
  • 可对角化: 可对角化等价于“特征向量足够多,能组成一组基 \mathcal B^{\prime}”。换到这组基以后,矩阵只剩下沿每个特征方向的缩放。
  • 对角化公式: M=PDP^{-1} 中,D 是对角矩阵,对角线上放特征值;P 把特征向量基 \mathcal B^{\prime} 下的坐标转回原基 \mathcal B
  • 矩阵幂: M^k=PD^kP^{-1}。对角矩阵的 k 次方很好算,只要把每个对角元素变成 \lambda_i^k。所以对角化把复杂的矩阵幂变成简单的标量幂。
M=PDP^{-1}\qquad M^k=PD^kP^{-1}

P007 中文翻译

矩阵 M 的特征多项式定义为:\chi_M:\mathbb K\rightarrow\mathbb K,把 \lambda 映射到 \det(M-\lambda I_n)

\chi_M:\mathbb K\rightarrow\mathbb K,\qquad \lambda\mapsto\det(M-\lambda I_n)
  • 特征多项式: \chi_M(\lambda)=\det(M-\lambda I_n)。它的根就是候选特征值。很多教材也写 \det(\lambda I_n-M),根相同,只差一个整体符号。
  • 为什么根对应特征值: MX=\lambda X 可改写成 (M-\lambda I_n)X=0。要有非零解 X,矩阵 M-\lambda I_n 必须不可逆;不可逆等价于 determinant 为 0。所以 \det(M-\lambda I_n)=0
  • splits on \mathbb K: 特征多项式能在 \mathbb K 上完全分解成一次因子。比如在实数域上,有些矩阵的特征值是复数,就不算在 \mathbb R 上 split。
  • 代数重数和几何重数: 特征值作为多项式根出现几次,叫代数重数;它对应的 eigenspace 维度,叫几何重数。矩阵可对角化要求每个特征值的几何重数等于代数重数。
  • 不是所有方阵都可对角化: 有些矩阵特征向量不够,不能形成一组基。
  • 对称矩阵一定可对角化: 这条对 PCA 很关键。covariance matrix 是 symmetric matrix,所以可以用一组正交特征向量分解;这些特征向量就是 PCA 的 principal directions。
  • singular: 不可逆矩阵叫 singular。这里出现它,是因为“是否有非零解”通过 singular/determinant 来判断。

和本章主线的关系: P006-P007 不是抽象代数复习而已。它们解释 PCA 为什么能找“方向”:covariance matrix 对称,所以可对角化;它的 eigenvectors 给出主方向,eigenvalues 表示这些方向上的 variance 大小。

学生追问: 可对角化是不是 rank n 就行了?概念澄清 / 反例

问题: 可对角化难道不是 \operatorname{rank}(M)=n 就行了吗,为什么要 eigenvectors form \mathcal B^{\prime}?

回答: 不是。\operatorname{rank}(M)=n 只说明 M 可逆,也就是 0 不是特征值;它不保证有足够多的特征向量。可对角化要求存在可逆矩阵 P,使得 M=PDP^{-1}。而 P 的列就是一组特征向量。P 要可逆,这些特征向量就必须线性无关并组成一组基 \mathcal B^{\prime}

M=PDP^{-1}

反例:

M=\begin{pmatrix}1&1\\0&1\end{pmatrix}

它的 determinant 是 1,所以 \operatorname{rank}(M)=2,满秩、可逆。但它只有一个特征值 \lambda=1,并且 (M-I)X=0 只给出一条特征向量方向 \operatorname{span}((1,0))。二维空间需要两个线性无关的特征向量才能成基;这里只有一个方向,所以不可对角化。

一句话: 满秩回答“有没有把空间压扁”;可对角化回答“有没有足够多的不变方向”。PCA 关心后者,因为 principal directions 本质上就是 covariance matrix 的 eigenvector basis。

学生追问: 为什么是 PDP^{-1},不是先乘 P基变换 / 坐标顺序

问题: 但是 X 不是都在 \mathcal B^{\prime} 里了吗?PDP^{-1}X 难道不是 \mathcal B 映射到 \mathcal B^{\prime}?为什么是先乘 P^{-1}

回答: 公式 M=PDP^{-1} 默认在原基 \mathcal B 里表示同一个线性变换。输入向量写成列向量 x 时,默认它也是原基坐标 [x]_{\mathcal B},不是特征基坐标。

[x]_{\mathcal B}\xrightarrow{\;P^{-1}\;}[x]_{\mathcal B^{\prime}}\xrightarrow{\;D\;}[Mx]_{\mathcal B^{\prime}}\xrightarrow{\;P\;}[Mx]_{\mathcal B}
  • P 的方向: 如果 P 的列是特征向量在原基里的坐标,那么 P 做的是 \mathcal B^{\prime} 坐标到 \mathcal B 坐标的转换。
  • P^{-1} 的方向: 它反过来,把原基坐标转成特征基坐标。只有到了特征基里,矩阵才变成对角矩阵 D,也就是每个方向单独缩放。
  • 如果 x 已经是特征基坐标: 那就不需要 PDP^{-1}。直接用 D[x]_{\mathcal B^{\prime}} 就够了。
  • 所以顺序不是矛盾: PDP^{-1}x 从右往左读:先用 P^{-1} 进入特征基,再用 D 缩放,最后用 P 回到原基。
学生追问: 特征向量不是都能组成一个基吗?概念澄清 / 线性无关

问题: 可对角化说“特征向量足够多,能组成一组基 \mathcal B^{\\prime}”。但是特征向量难道不是可以组成一个 \mathcal B^{\\prime} 吗?

回答: 不一定。特征向量当然可以收集成一个集合,但“集合”不等于“基”。一组基必须同时满足两个条件:线性无关,并且能 span 整个空间。对 n 维空间来说,就是要能挑出 n 个线性无关的特征向量。

  • 什么时候可以: 如果 n 阶矩阵有 n 个互不相同的特征值,那么对应特征向量线性无关,可以组成 \mathcal B^{\\prime}
  • 什么时候不可以: 如果特征向量方向不够,就不能成基。比如 M=\begin{pmatrix}1&1\\\\0&1\end{pmatrix} 满秩,但只有一个特征向量方向,二维空间需要两个方向,所以它不可对角化。
  • eigenspace 的说法: 每个特征值对应一个 eigenspace。把所有 eigenspace 里的向量合起来,不代表自动得到一组基;关键是这些 eigenspace 的总维度是否加起来等于 n
  • M=PDP^{-1} 的关系: P 的列要放一整组基。如果特征向量不够,P 就不可逆,P^{-1} 不存在,公式就写不出来。
\text{diagonalizable} \Longleftrightarrow \text{there are } n \text{ linearly independent eigenvectors}

一句话: 特征向量“存在”不够;特征向量必须“够多且线性无关”,才叫能组成 \mathcal B^{\\prime}

学生追问: 特征向量能组成 \mathcal B^{\prime},那 x 难道不是 \mathcal B^{\prime} 的?坐标系 / 向量表示

问题: 特征向量难道不是可以组成一个 \mathcal B^{\prime} 吗?那难道 x 不是 \mathcal B^{\prime} 的?

回答: 向量 x 属于向量空间 V,不属于某个基。基只是写坐标的尺子。同一个抽象向量可以用原基 \mathcal B 写,也可以用特征向量基 \mathcal B^{\prime} 写;换基后,向量没变,坐标列变了。

x\in V,\qquad [x]_{\mathcal B}\neq [x]_{\mathcal B^{\prime}}\ \text{ in general }
  • 特征向量组成 \mathcal B^{\prime}: 这句话的意思是“我们可以拿这些特征向量当新坐标轴”。它不是说每个向量自动已经用这组坐标轴写好了。
  • slide 里的 X: 在定义 MX=\lambda X 时,X 是某一个 eigenvector。它是新基 \mathcal B^{\prime} 的一个成员,不是任意输入向量的坐标。
  • 任意向量怎么用 \mathcal B^{\prime} 表示: 如果特征向量已经组成一组基,那么任意 x\in V 都能写成这些特征向量的线性组合。那些线性组合系数才是 [x]_{\mathcal B^{\prime}}
  • 为什么前面还要 P^{-1}: 因为矩阵 M 和输入列向量通常都先写在原基 \mathcal B 下。要进入特征基坐标,先做 [x]_{\mathcal B^{\prime}}=P^{-1}[x]_{\mathcal B}

一句话: \mathcal B^{\prime} 是新坐标系,x 是向量本身;向量可以用这个坐标系表示,但不能说向量“就是”这个坐标系的。

学生追问: EVD 应该怎么求?算法步骤 / 特征分解

问题: EVD 应该怎么求?

回答: EVD 是 eigenvalue decomposition。对一个可对角化的方阵 A,目标是找到一组特征向量,把矩阵写成 A=PDP^{-1}。如果 A 是对称矩阵,可以写成更好的正交形式 A=Q\Lambda Q^\top

A=PDP^{-1}\qquad\text{or, if }A=A^\top,\qquad A=Q\Lambda Q^\top
  • 第 1 步:求特征值。 解特征方程 \det(A-\lambda I)=0。解出来的 \lambda_1,\ldots,\lambda_n 是候选缩放倍数。
  • 第 2 步:求每个特征值对应的特征向量。 对每个 \lambda_i,解齐次线性方程 (A-\lambda_i I)v=0。非零解 v 就是对应的 eigenvector。
  • 第 3 步:检查特征向量够不够。 如果能找到 n 个线性无关的特征向量,就能组成特征向量基,矩阵可对角化。否则普通 EVD 不成立,只能转向 Jordan form 或其他分解;本讲后面主要靠对称矩阵避开这个问题。
  • 第 4 步:组装矩阵。 把特征向量作为列拼成 P=[v_1\ \cdots\ v_n],把特征值放到对角矩阵 D=\operatorname{diag}(\lambda_1,\ldots,\lambda_n)。于是 A=PDP^{-1}
  • 对称矩阵的版本: 如果 A=A^\top,可以把特征向量单位化并选成正交组。此时 Q^{-1}=Q^\top,所以 A=Q\Lambda Q^\top。PCA 用 covariance matrix 时就是这个情况。

小例子:A=\begin{pmatrix}2&1\\1&2\end{pmatrix}。特征方程是 \det(A-\lambda I)=(2-\lambda)^2-1=0,所以特征值是 \lambda=3\lambda=1。对应特征向量可以取 (1,1)^\top(1,-1)^\top。单位化后放进 Q,对角线上放 3,1,得到 A=Q\Lambda Q^\top

A=\begin{pmatrix}2&1\\1&2\end{pmatrix},\qquad \lambda_1=3,\ v_1=\begin{pmatrix}1\\1\end{pmatrix},\qquad \lambda_2=1,\ v_2=\begin{pmatrix}1\\-1\end{pmatrix}

和 PCA 的关系: PCA 不是随便对原始数据矩阵做 EVD,而是通常对 covariance matrix 或 X^\top X 做 EVD。最大的 eigenvalues 对应最大 variance 的方向;这些 eigenvectors 就是 principal components。

学生问题: P009 · Einstein quote 是什么意思问答

问题: P009 · Einstein quote 是什么意思?

回答: 这句话不是在讲 Einstein 本人, 而是在给本章定调: 好的数学方法能把复杂计算变成更省力的路径。quote 里“骑着真正数学的马”指用结构化的数学工具前进; “步行”指没有这些工具时, 只能在原始数据和繁琐计算里硬走。

放到 Chapter 4, 它是在引出 dimensionality reduction: 高维数据直接算很笨重, 但 covariance、eigenvector、PCA、SVD 这些工具能抓住主要方向, 用更低维的表示保留主要结构。后面讲 PCA/SVD/random projection, 都是在回答同一个问题: 怎么用数学结构少走路。

图谱读法: 这是一张累计总图, 不是 P009 的孤立小图。P009 先接到“为什么要降维”和“统计/代数前置”; 后续问题会继续挂到同一张图的相关概念上。

读完本单元应掌握: 能连接协方差矩阵、特征向量、特征值与对角化。
M02

Small data:PCA、SVD 与 QR

在单机条件下完成 PCA Example、稳定 SVD 和 Householder QR。

P010-P025

模块衔接: 用复习中的协方差谱解释 PCA,再以稳定性推动 SVD 和 QR。

U04 · EXAMPLEP010-P014 / 43

课堂数据上的 PCA 完整流程

含上下文补足

为什么合在一起讲: 问题、原始散点、标准化投影、主成分坐标和三步算法是一个不可拆分的 worked example。

完整讲解

核心思想: PCA 先消除量纲影响,再把相关属性旋转到主方向;保留第一主成分等价于以最小正交残差保留最大的方差。
z=Xv_1
Example 的任务

教室面积、容量、黑板数和电脑数构成原始属性。目标是找出有用、无用或冗余属性,但 PCA 不直接按列删除,而是构造新的线性组合。

P011 的散点沿对角方向拉长,说明面积和容量共享一个主要变化因素。把两列原样保留会重复编码这一趋势。

标准化后寻找最大方差方向

P012 先把每列减去均值并除以标准差,使量纲和范围不再支配结果。蓝线沿点云最长方向,这就是第一主成分;黑色线段表示投影残差。

协方差矩阵的最大特征向量给出蓝线方向。沿该方向投影后,样本的一维坐标尽量分散,也就是保留最大方差。

旋转后的信息如何判断

P013 把同一批点写到主成分坐标系。横向第一主成分覆盖较大范围,竖向第二主成分多靠近零。只保留横坐标时,竖线长度就是每个样本被舍弃的部分。

这不是说第二主成分恒为零,而是它在这批数据上的方差小。是否舍弃应看特征值或奇异值贡献,而不是只看某个点。

三步流程与结果

P014 把图形过程整理为标准化、构造协方差矩阵、求并排序特征对。排序把最大方差方向放在前面,为后续截断建立顺序。

Example 最终说明:面积与容量可以被一个主成分高效概括;黑板数、电脑数是否冗余仍需把相应列一起放入数据后计算,不能凭常识直接删。

把五页图形还原成一次计算

设标准化后的样本矩阵每行是一间教室、每列是一个属性。计算协方差矩阵后,最大特征值对应的特征向量给出 P012 蓝线的方向。每个红点与该向量做内积,就得到沿第一主成分的坐标。

P012 的黑线不是回归误差的任意画法,而是从样本点到第一主成分子空间的正交残差。PCA 选择蓝线,使所有样本残差平方和最小;等价地,它使投影坐标的方差最大。这两个表述连接了几何近似与谱优化。

P013 把蓝线变成横轴、与它正交的方向变成纵轴。数据并没有消失,只是换了坐标。真正的降维发生在把第二主成分坐标置零或删除时;此时可用第一主成分坐标和方向近似重构原标准化样本。

若第二特征值与第一特征值接近,点云不会呈细长形,删除第二方向会损失明显信息。当前图的主要依据是横向跨度大、纵向残差总体较小;它支持一维近似,却不提供统一阈值。

标准化也改变了问题含义:它让每个属性先拥有单位方差,适合不希望原始量纲决定权重的情况。若原始尺度本身就是重要权重,则是否标准化需要按任务决定,不能把步骤机械套用到所有数据。

本单元在知识链中的位置

承接上一单元

U03 提供协方差矩阵的特征分解。

本单元任务

把 PCA 从目标推进到可视化算法流程。

组内推进

P010 设问,P011-P013 展示坐标变化,P014 总结步骤。

导向下一单元

比较不同分解方法的数值稳定性。

逐页详解P010-P014 · 5 页逐句翻译 · 本页解释
P010
PCA 的基本想法

原页逐句翻译: 主成分分析。PCA 的基本想法:提供最能突出数据相似性和差异性的“视角”;这个新视角组合原有“特征”,以便最好地概括数据。Example:可以收集的教学教室数据包括面积、可容纳学生人数、黑板数量、台式计算机数量。哪些属性有用、无用或冗余?

本页解释: 这是本讲第一个明确标注的 Example。问题不只是删除某一列,而是寻找原属性的线性组合,使主要变化集中到少数新坐标。面积与容量很可能冗余,图形页会把这种相关性画出来。

P011
原始课堂散点图

原页逐句翻译: 横轴:教室面积。纵轴:学生人数。红色散点表示各教室;横轴可见刻度约为 50、100、150,纵轴可见刻度约为 50、100、150。

本页解释: 点云沿左下到右上方向分布,说明面积与容量强正相关。若分别保存两个属性,会重复记录同一主要趋势;PCA 希望用沿点云长轴的一个坐标吸收大部分变化。

P012
标准化与投影

原页逐句翻译: 横轴:标准化后的教室面积。纵轴:标准化后的学生人数。两轴刻度从约 -12。红点表示标准化样本,蓝色斜线表示主要方向,黑色线段把各点连接到该方向上的投影位置。

本页解释: 标准化后两个变量处于可比较尺度。蓝线沿点云最大方差方向,黑线近似垂直于蓝线,表示样本被压缩到第一主成分时舍弃的正交残差;残差越短,一维近似越好。

P013
主成分坐标

原页逐句翻译: 横轴:第一主成分。纵轴:第二主成分。红点是样本在主成分坐标系中的位置,蓝色水平线表示第二主成分为 0,黑色竖线显示各点到该线的第二主成分偏移;横轴约从 -32,纵轴约从 -11

本页解释: 旋转到主成分坐标后,第一主成分的跨度明显大于第二主成分。若只保留第一主成分,竖直偏移就是被丢弃的信息;图中多数偏移较小,因此这一课堂数据适合一维近似。

P014
PCA 三步流程

原页逐句翻译: 主成分分析流程。第一,标准化变量范围:避免变量取值范围差异过大,确保所有变量“贡献相同”,计算 Z_{i,j}=\frac{X_{i,j}-\bar X_i}{\sigma_{X_i}}。第二,确定变量之间的“关系”:寻找变量间相关性,并构造所有变量的协方差矩阵。第三,识别主成分:计算协方差矩阵的特征值与特征向量,并按非递增顺序重排特征值。

本页解释: 三步分别对应 P011-P013 的视觉变化。标准化解决量纲问题;协方差把联合变化编码成对称矩阵;特征向量给出新轴,特征值给出各轴方差,因此排序后即可决定保留哪些方向。

本单元页间主线: P010 设问,P011-P013 展示坐标变化,P014 总结步骤。

上下文补足: Example prerequisite示例前提

上下文补足:标准 PCA 默认数值特征可比较,且主要结构能由线性子空间表达。标准化公式使用每列的均值和标准差;类别属性需先编码,强非线性结构则可能需要别的方法。

读完本单元应掌握: 能从散点图读出第一主方向,并完整复述 PCA 三步与截断含义。
U05 · 推导P015-P015 / 43

扰动如何暴露特征分解的不稳定性

为什么合在一起讲: 该页是一段完整扰动推导,单独建立后续比较 SVD 稳定性的尺度。

完整讲解

核心思想: 数值稳定性问小输入扰动会被分解放大多少;一般特征分解的放大因子取决于特征向量基的条件性。
稳定性问的是扰动怎样传到结果

这里的输入是待分解矩阵 M,输出关注对角矩阵 D。实际计算中的舍入、测量噪声或近似存储都可写成小扰动 \delta M;稳定性要比较它引起的 \delta D 有多大。公式正确并不自动代表数值稳定,关键是从输入到输出的放大倍数。

由特征分解 M=PDP^{-1} 左乘 P^{-1}、右乘 P,得到 D=P^{-1}MP。课件在这一局部扰动模型中保持基矩阵 P 不变,只考察 M 的变化如何进入同一坐标变换。

完整重建扰动推导

把输入换成 M+\delta M,输出相应写成 D+\delta D,于是

D+\delta D=P^{-1}(M+\delta M)P=P^{-1}MP+P^{-1}\delta MP=D+P^{-1}\delta MP

两边减去 D 后得到 \delta D=P^{-1}\delta MP。对乘积使用范数的次乘性 \lVert ABC\rVert\le\lVert A\rVert\lVert B\rVert\lVert C\rVert,便有

\lVert\delta D\rVert\le\lVert P^{-1}\rVert\lVert P\rVert\lVert\delta M\rVert

这就是式 (4.1)。推导中的每一因子都有来源:中间是输入误差大小,两侧分别是换入特征坐标和换回原坐标的尺度。

课件的 entrywise p-norm

A=(a_{i,j})_{1\le i\le m,\ 1\le j\le n},课件定义

\lVert A\rVert_p=\left(\sum_{i=1}^{m}\sum_{j=1}^{n}|a_{i,j}|^p\right)^{1/p}

这里 mn 是行列数,a_{i,j} 是第 i,j 个条目,p\ge1 控制对大条目的权重。这是把全部矩阵条目当作一个向量后取 p-norm;当 p=2 时就是 Frobenius norm。它不应与所有 induced operator norm 混为一谈,尤其不能默认任意 entrywise p-norm 都满足推导所用的矩阵乘法次乘性;式 (4.1) 的范数边界需要选取与乘法相容的矩阵范数,或另行计入常数。

条件数含义与适用边界

乘积 \kappa(P)=\lVert P^{-1}\rVert\lVert P\rVert 是基矩阵的条件因子。若特征向量彼此接近线性相关,P 接近奇异,\lVert P^{-1}\rVert 会很大,小扰动就可能被明显放大。上界只给最坏情况,不表示每次都达到该倍数;它也固定了 P,没有完整描述扰动后特征向量本身的变化、重特征值的敏感性或特征值重新排序。

这页的作用是为下一单元提供比较尺度。SVD 的左右因子是正交矩阵;在二范数下其范数与逆范数均为 1,不会因换基本身额外放大误差。对 PCA 而言,这说明“求同一个谱结构”可以有数值性质不同的实现路线。

本单元在知识链中的位置

承接上一单元

U04 说明 PCA 要求协方差谱。

本单元任务

说明直接特征分解可能放大数值误差。

组内推进

从相似变换逐步得到扰动范数上界。

导向下一单元

用正交因子构造稳定的 SVD。

逐页详解P015-P015 · 1 页逐句翻译 · 本页解释
P015
数值稳定性

原页逐句翻译: 数值稳定性。方法的稳定性定义它如何对小扰动作出“反应”。由 M=PDP^{-1}D=P^{-1}MP;对小扰动 \delta M,有 D+\delta D=P^{-1}(M+\delta M)P,因此 \delta D=P^{-1}\delta MP,转成范数即 \lVert\delta D\rVert\le\lVert P^{-1}\rVert\lVert P\rVert\lVert\delta M\rVert,式 (4.1)。对 m\times n 矩阵 A=(a_{i,j})_{1\le i\le m,\ 1\le j\le n}p 范数定义为 \lVert A\rVert_p=\left(\sum_{i=1}^{m}\sum_{j=1}^{n}|a_{i,j}|^p\right)^{1/p}。式 (4.1) 表明扰动 \lVert\delta M\rVert 可能被放大至 \lVert P^{-1}\rVert\lVert P\rVert 倍。

本页解释: 不稳定不是说公式错误,而是输入中很小的舍入误差会在输出中变大。乘积 \lVert P^{-1}\rVert\lVert P\rVert 是条件放大因子;当特征向量基接近线性相关时,它可能很大。下一单元用正交矩阵构造 SVD,把这一因子压到 1

本单元页间主线: 从相似变换逐步得到扰动范数上界。

读完本单元应掌握: 能解释条件放大因子的来源和它对 PCA 实现的影响。
U06 · 推导P016-P019 / 43

从二维变换构造一般 SVD

为什么合在一起讲: 变换图、二维推导、矩形推广和稳定性结论共同完成 SVD 的几何到代数链条。

完整讲解

核心思想: SVD 选择正交输入和输出方向,使任意矩阵只在这些方向上独立缩放;它统一解释几何、矩形矩阵与稳定性。
A=U\Sigma V^\top
一般变换可拆成什么

P016 展示剪切、伸缩、旋转、反射对正交基的影响。SVD 选择一组特殊输入方向,使一般矩阵在这些方向上只做独立缩放,再用正交方向表达输出。

右奇异向量给输入方向,奇异值给伸缩倍率,左奇异向量给输出方向。

二维推导的每一步

把任意输入展开到正交基后,线性性允许分别作用。内积系数写成转置乘法,就得到两个秩一矩阵之和。

把输入基向量、缩放量和输出基向量分别收集,形成 U\SigmaV^\top 三个因子。

推广到矩形矩阵

矩形矩阵的输入空间与输出空间维数不同,因此 U\SigmaV 的尺寸必须分别检查。秩决定正奇异值个数。

X^\top XXX^\top 共享非零谱;右奇异向量位于属性空间,正适合 PCA。

稳定性为什么改善

UV 正交,逆等于转置,二范数保持不变。相比一般特征向量矩阵 P,SVD 的正交因子不会额外放大扰动。

SVD 存在于任意矩阵,也不要求可逆;这使它成为数据矩阵上的通用工具。

从秩一项理解截断和稳定

二维推导中的每一项都先用右奇异向量从输入抽取一个标量系数,再乘奇异值,最后沿左奇异向量放回输出。多个秩一项相加恢复完整线性映射。一般维度只是把两项扩展为按秩计数的多项。

奇异值为零的项不传递任何输入能量,所以正奇异值个数等于矩阵秩。按奇异值从大到小排列后,前几项描述矩阵最强的输入到输出通道;截断就是删除较弱秩一项,而不是删除原始某几列。

由数据矩阵的右奇异向量可读取属性空间方向,由左奇异向量可读取样本得分方向。二者通过同一奇异值耦合。这个双边结构解释了为什么矩形数据矩阵也能做谱分析,而不需要它本身是方阵。

正交矩阵保持内积和二范数,因此旋转或反射不会把输入误差放大。\Sigma 的尺度是问题本身的尺度,而 UV 不引入额外条件放大。P019 的稳定性比较正是把 UV 的逆替换成转置。

SVD 不唯一主要来自符号、相同奇异值子空间内的基选择和排列;这些变化不会改变由前 k 个奇异方向张成的子空间。理解这一点可以避免把不同软件输出的向量符号差异误判为结果冲突。

图形上可把 SVD 读成先把输入旋转到右奇异方向,再沿坐标轴独立伸缩,最后旋转到左奇异方向。剪切这类看似不能靠单次旋转和轴向缩放完成的变换,也能由这三个阶段的组合表达。

本单元在知识链中的位置

承接上一单元

U05 建立扰动放大标准。

本单元任务

推导 SVD 并解释其谱关系与稳定性。

组内推进

P016 几何,P017 推导,P018 推广,P019 比较。

导向下一单元

QR 用正交变换进一步改善计算流程。

逐页详解P016-P019 · 4 页逐句翻译 · 本页解释
P016
二维线性变换

原页逐句翻译: 线性变换。为简单起见考虑二维情形。矩阵 \begin{pmatrix}1&1\\0&1\end{pmatrix} 对应剪切(Shear);\begin{pmatrix}2&0\\0&1\end{pmatrix} 对应伸缩(Dilution);\begin{pmatrix}\cos\frac{\pi}{4}&\sin\frac{\pi}{4}\\-\sin\frac{\pi}{4}&\cos\frac{\pi}{4}\end{pmatrix} 对应旋转(Rotation);\begin{pmatrix}-1&0\\0&1\end{pmatrix} 对应反射(Reflection)。黄色和绿色基向量展示变换前后的方向与长度。

本页解释: 图应从上方原始正交基开始,沿每个箭头看到底部结果。剪切改变夹角,伸缩只改变一个方向长度,旋转保持长度与夹角,反射保持长度但翻转一个方向。SVD 会把一般线性变换组织成正交变换、轴向缩放、正交变换。

P017
二维 SVD 推导

原页逐句翻译: 奇异值分解。令 \{v_1,v_2\} 为正交归一基,M 为线性变换矩阵。对单位向量 u_1,u_2,有 Mv_1=u_1\sigma_1Mv_2=u_2\sigma_2,其中 \sigma_1,\sigma_2\in\mathbb R。对 x=\langle x,v_1\rangle v_1+\langle x,v_2\rangle v_2,先有 Mx=\langle x,v_1\rangle Mv_1+\langle x,v_2\rangle Mv_2,再得到 Mx=\langle x,v_1\rangle u_1\sigma_1+\langle x,v_2\rangle u_2\sigma_2。又因 \langle x,v_1\rangle=x^\top v_1=v_1^\top x,得到 M=u_1\sigma_1v_1^\top+u_2\sigma_2v_2^\top,矩阵形式为

M=(u_1\ u_2)\begin{pmatrix}\sigma_1&0\\0&\sigma_2\end{pmatrix}\begin{pmatrix}v_1^\top\\v_2^\top\end{pmatrix}

本页解释: 推导先把输入向量分解到右奇异向量方向,再分别缩放,最后沿左奇异向量方向重组。每一项都是一个秩一映射;矩阵乘积把这些项压缩为 SVD 的三因子结构。

P018
一般矩阵的 SVD

原页逐句翻译: 更一般地,对 m\times n 实矩阵 M,可写成 M=U\Sigma V^\top,其中 U=(u_1\ \cdots\ u_m)V=(v_1\ \cdots\ v_n) 都是旋转矩阵,\Sigma 为对角形。尺寸为:M:m\times nU:m\times m\Sigma:m\times nV:n\times n\Sigma 对角元素称为奇异值,U 的列称左奇异向量,V^\top 的行称右奇异向量。若 U\Sigma V^\top 是秩为 rm\times n 矩阵 X 的 SVD,则 \Sigma 恰有 r 个严格正元素,它们是 X^\top Xr 个特征值的平方根,并保留对应重数;V 的列是 X^\top X 的特征向量,U 的列是 XX^\top 的特征向量。

本页解释: 这页把二维推导推广到矩形矩阵。右奇异向量位于属性空间,左奇异向量位于样本空间;非零奇异值把两边配对。对数据矩阵而言,这正好连接 PCA 所需的协方差谱。

P019
SVD 的性质与稳定性

原页逐句翻译: SVD 的一般说明:SVD 不唯一,并且对任何矩阵都存在,无论矩阵是否可逆;只要相应奇异向量同步重排,奇异值也可重排;若 U\Sigma V^\topX^\top 的一个 SVD,则 V\Sigma^\top U^\topX 的一个 SVD。因为 U,V 是旋转矩阵,所以它们正交,即 U^\top U=I_mV^\top V=I_n。稳定性方面,小扰动在特征分解中放大因子为 \lVert P^{-1}\rVert\lVert P\rVert;在 SVD 中为 \lVert U^{-1}\rVert\lVert(V^\top)^{-1}\rVert=\lVert U^\top\rVert\lVert V\rVert=1

本页解释: 关键不是 SVD 一定更快,而是正交因子不会放大二范数误差。奇异值的顺序虽然可变,但算法通常按从大到小排列,以便截断时直接保留最重要方向。

本单元页间主线: P016 几何,P017 推导,P018 推广,P019 比较。

学生追问: P019 · 为什么 SVD 的稳定性因子是 1学生追问 / stability

问题: 图里的 \lVert P^{-1}\rVert\lVert P\rVert\lVert U^{-1}\rVert\lVert (V^\top)^{-1}\rVert=1 是什么意思?

短答案: 它在比较 EVD 和 SVD 对小误差的放大能力。EVD 要用 eigenvector matrix P 换基,P 可能很歪,所以误差可能被 \lVert P^{-1}\rVert\lVert P\rVert 放大;SVD 用的是正交矩阵 U,V,正交矩阵不拉长向量,所以这一部分的放大因子是 1。

  • EVD 那行:A 可对角化,A=PDP^{-1}。计算时要先乘 P^{-1} 进 eigenbasis,再乘 P 回原坐标。两个变换如果很病态,误差就会被放大。
  • SVD 那行:X=U\Sigma V^\top,左右两边 UV 都是 orthogonal matrix。正交矩阵的逆就是转置,且 2-norm 等于 1,所以它们不会额外放大误差。
  • 关键区别: EVD 的 eigenvectors 可能几乎平行,导致 P 很难逆;SVD 的 singular vectors 总能选成正交归一,所以坐标系不会被拉歪。
A=PDP^{-1}
\kappa(P)=\lVert P^{-1}\rVert_2\lVert P\rVert_2
X=U\Sigma V^\top
U^{-1}=U^\top,\qquad (V^\top)^{-1}=V
\lVert U^{-1}\rVert_2\lVert (V^\top)^{-1}\rVert_2=\lVert U^\top\rVert_2\lVert V\rVert_2=1

怎么记: EVD 是“可能用一套歪坐标系算”;SVD 是“只用正交坐标系旋转/反射,再做对角缩放”。所以 SVD 通常更数值稳定。

读完本单元应掌握: 能解释 U\SigmaV^\top 的几何角色、尺寸和稳定性。
U07 · EXAMPLEP020-P023 / 43

Householder QR:从反射 Example 到逐列三角化

含上下文补足

为什么合在一起讲: QR 定义、Householder Example、第一轮消元和完整迭代必须连续阅读,才能看清反射如何变成算法。

完整讲解

核心思想: QR 用正交变换逐列消去下三角元素;先做 QR 再对较小的 R 做 SVD,可还原原矩阵的 SVD。
A=QR
QR 为什么先出现

对高而窄矩阵,直接在原矩阵上做完整 SVD 成本高。QR 把列空间提炼为正交基 Q,把核心数值问题压到较小上三角矩阵 R

Gram-Schmidt 在课件中被标为不稳定;Householder 用正交反射保持范数,适合稳定消元。

反射 Example 的机制

w 分成沿 u 和正交于 u 的分量。Householder 矩阵减去两倍的 u 方向投影,因此 u 分量反号,正交分量不变。

P021 图中的两条绿色向量关于竖直轴对称,直接对应 -c_1u+c_2v

从一个向量到一列零

选择反射使第一列映到第一坐标轴,第一项以下全部变零。后续反射限制在右下子块,避免破坏前面已形成的上三角结构。

重复到 \min(m-1,n) 次后得到 R;所有反射乘积仍正交,转置即可给出逆。

R 上完成 SVD

X=QRR=U_1\Sigma V^\top,则 X=(QU_1)\Sigma V^\topQU_1 仍正交,所以这就是 X 的 SVD。

该流程把大矩阵的列空间构造与较小核心矩阵的谱分解分开,为 distributed QR 和 randomized PCA 提供模板。

消零过程中不变量与尺寸

Householder 矩阵本身正交且对称,连续左乘只改变矩阵的行方向表示,不改变列之间的内积结构。每一步选择反射向量,使当前列的尾部折叠到一个坐标上,因而用一次变换同时制造多个零。

第一轮作用于整列;第二轮把变换嵌入块对角矩阵,只作用于去掉首行首列后的子空间。这样的嵌入让已经完成的第一列保持不动。重复后,所有对角线下元素归零,得到上三角 R

Q 不是每轮反射矩阵的简单原顺序抄写。由 R 等于若干反射左乘 X,再利用每个正交因子的逆为转置,才能整理出 X=QR。推导时要沿等式方向检查乘积顺序,避免把左乘消元顺序和最终 Q 的顺序混淆。

X 高而窄,Q 保留原列空间但可能仍很高,R 只有属性数乘属性数。对 R 做 SVD 的主要计算因此与行数脱钩;最终 QU_1 只负责把较小问题的左奇异方向映回原样本空间。

P021 的几何 Example 是算法正确性的局部模型:沿 u 的分量取反、正交分量保持,保证长度不变。QR 将这个动作选择为把列尾部反射到坐标轴,而不是任意做一次镜像。

本单元在知识链中的位置

承接上一单元

U06 给出稳定但可能昂贵的 SVD。

本单元任务

用 Householder 正交变换构造 QR 并加速 SVD。

组内推进

P020 定义,P021 Example,P022-P023 迭代。

导向下一单元

把 SVD 结果直接接回 PCA 与截断。

逐页详解P020-P023 · 4 页逐句翻译 · 本页解释
P020
QR 与 Householder

原页逐句翻译: QR 分解。列线性无关的任意 X\in\mathcal M_{m,n}(\mathbb K) 可写成 X=QR,其中 Q\in\mathcal M_{m,n}(\mathbb K) 正交,R\in\mathcal M_{n,n}(\mathbb K) 上三角。若 X 可逆,则 R 也可逆。计算 QR 有多种方法:著名的 Gram-Schmidt 不稳定;另两种常见方法基于 Givens rotations 与 Householder reflections,前者较慢但更容易并行。给定向量 u,Householder reflection 为 H_u=I-\frac{2uu^\top}{u^\top u}。在正交归一基 \{u,v\} 中,w=c_1u+c_2v,其中 c_1=\frac{\langle w,u\rangle}{\lVert u\rVert_2^2}c_2=\frac{\langle w,v\rangle}{\lVert v\rVert_2^2}

本页解释: QR 把列空间的方向信息放进正交矩阵,把坐标与尺度放进较小的上三角矩阵。Householder 反射可一次消去一列对角线下方的多个元素,因此适合构造数值稳定的 QR。

P021
Householder 反射 Example

原页逐句翻译:H_u 作用于 w

H_u(w)=\left(I-\frac{2uu^\top}{u^\top u}\right)(c_1u+c_2v)=c_1u+c_2v-\frac{2uu^\top}{u^\top u}(c_1u+c_2v)=c_1u+c_2v-2c_1u-2c_2\frac{u}{u^\top u}\langle u,v\rangle=-c_1u+c_2v

这个 Example 可视化为关于同时与 uv 正交的平面的反射。图中横向黄色轴是 u,竖向黄色轴是 v;绿色 wH_u(w) 分居反射面的两侧,c_1u 变为 c_1H_u(u)c_2v 保持不变。

本页解释: 逐句翻译忠实保留源句“orthogonal to” u “and” v。实际公式用 \langle u,v\rangle=0 消掉交叉项,得到关于超平面 u^\perp 的反射;在这张二维图里,u^\perp 正是由 v 张成的直线。反射只翻转 u 分量,图中绿色向量关于竖直 v 轴对称。

P022
QR 的第一步

原页逐句翻译: Householder 反射可用于求矩阵 X 的 QR 分解。Householder reflection theorem 表明,对范数相近的向量 x,y,存在正交矩阵 Q 使 y=Qx,由此可迭代构造 R,Q。应用思路:确定正交矩阵 Q_1,使 Q_1c_1=(\gamma_1,0,\ldots,0)^\top,其中 \gamma_1c_1 范数相近。此时 R_1 的第一列在首元素 \gamma_1 以下全为 0,右下剩余块记作 X_1,首行其余元素以星号表示。

本页解释: 逐句翻译把源文两处“similar norm”都译为“范数相近”。标准 Householder theorem 要求两向量范数相等,因为正交变换保持二范数;算法中应取 \lVert\gamma_1\rVert=\lVert c_1\rVert。第一个反射一次消去第一列对角线以下全部元素,剩余子矩阵留给下一轮。

P023
QR 迭代与 SVD 加速

原页逐句翻译: 确定正交矩阵 \widetilde Q_2,使 \widetilde Q_2\widetilde c_1=(\gamma_2,0,\ldots,0)^\top;定义 Q_2=\operatorname{diag}(I_{d_1},\widetilde Q_2) 并计算课件所示 R_2=Q_1R_1,得到前两列对角线下方为零、右下剩余块为 X_2 的结构。重复 t=\min(m-1,n) 次,得到 R=Q_tQ_{t-1}\cdots Q_2Q_1X。由正交性 Q^{-1}=Q^\top,所以 X=Q_1^\top\cdots Q_t^\top R=QR。应用到 X 的 SVD:先写 X=QR;再对 R=U_1\Sigma V^\top 做 SVD;最终 X=QU_1\Sigma V^\top=U\Sigma V^\top

本页解释: 每轮只在尚未处理的右下子块上工作,因此已经形成的零不会被破坏。课件刚定义 Q_2,下一行却写 R_2=Q_1R_1;按迭代逻辑应为 R_2=Q_2R_1,疑似课件笔误,逐句翻译仍保留课件原式。先 QR 再 SVD 的价值是把一个高矩阵的问题压到较小的上三角矩阵;这条路线会在分布式 QR 和 randomized PCA 中再次出现。

本单元页间主线: P020 定义,P021 Example,P022-P023 迭代。

上下文补足: source correction图示读取

课件 P023 写出 R_2=Q_1R_1;按前文新构造的第二个反射,常见递推应关注第二步左乘对当前剩余块的作用。HTML 的逐页翻译忠实保留课件写法,完整讲解只使用不依赖该下标细节的迭代结构。

学生追问: P020-P021 · Householder reflection 怎么算学生追问 / QR

问题: Householder reflection 这个公式是什么意思?能不能手算一个例子?

核心意思: 给一个非零向量 u,Householder matrix

H_u=I-2\frac{uu^\top}{u^\top u}

表示“沿着 u 这个法向量做镜面反射”。更准确地说,它把向量在 u 方向上的分量翻号,把所有垂直于 u 的分量保持不变。

  • uu^\top/(u^\top u) 是把任意向量投影到 u 方向上的 projection matrix。
  • 前面的 2 表示:先减掉一次投影会落到垂直平面上,再多减一次投影就翻到另一边。
  • 如果 w=c_1u+zz\perp u,那么 H_u w=-c_1u+z

例子 1: 直接算一次反射

u=\begin{pmatrix}1\\1\end{pmatrix},反射面是和 u 垂直的直线,也就是 x+y=0。要反射 w=\begin{pmatrix}3\\1\end{pmatrix}

u^\top u=1^2+1^2=2
uu^\top=\begin{pmatrix}1\\1\end{pmatrix}\begin{pmatrix}1&1\end{pmatrix}=\begin{pmatrix}1&1\\1&1\end{pmatrix}
H_u=I-2\frac{uu^\top}{u^\top u}=I-\begin{pmatrix}1&1\\1&1\end{pmatrix}=\begin{pmatrix}0&-1\\-1&0\end{pmatrix}
H_uw=\begin{pmatrix}0&-1\\-1&0\end{pmatrix}\begin{pmatrix}3\\1\end{pmatrix}=\begin{pmatrix}-1\\-3\end{pmatrix}

用分量看也一样:wu 方向的系数是 c_1=\langle w,u\rangle/\lVert u\rVert^2=4/2=2,所以平行分量是 2u=(2,2);垂直分量是 w-2u=(1,-1)。反射后平行分量翻号,得到 -2u+(1,-1)=(-1,-3)

例子 2: QR 里怎么用它清零

QR 里想把一列向量下面的元素清成 0。取第一列 x=\begin{pmatrix}4\\3\end{pmatrix},它的长度是 5。我们希望反射后变成 y=\begin{pmatrix}5\\0\end{pmatrix}。选 Householder 法向量

u=x-y=\begin{pmatrix}4\\3\end{pmatrix}-\begin{pmatrix}5\\0\end{pmatrix}=\begin{pmatrix}-1\\3\end{pmatrix}
u^\top u=(-1)^2+3^2=10
H=I-2\frac{uu^\top}{u^\top u}=\begin{pmatrix}0.8&0.6\\0.6&-0.8\end{pmatrix}
Hx=\begin{pmatrix}0.8&0.6\\0.6&-0.8\end{pmatrix}\begin{pmatrix}4\\3\end{pmatrix}=\begin{pmatrix}5\\0\end{pmatrix}

现在把它用在一个矩阵上:

A=\begin{pmatrix}4&1\\3&2\end{pmatrix}
HA=\begin{pmatrix}0.8&0.6\\0.6&-0.8\end{pmatrix}\begin{pmatrix}4&1\\3&2\end{pmatrix}=\begin{pmatrix}5&2\\0&-1\end{pmatrix}=R
H^\top H=I,\quad H^\top=H,\quad A=HR

所以这个例子里已经得到一个 QR 分解:Q=HR=\begin{pmatrix}5&2\\0&-1\end{pmatrix}。有些教材会要求 R 的对角线为正,那只要把第二列/第二行符号同步翻一下即可;清零逻辑不变。

和课件公式的关系: 课件写 w=c_1u+c_2v,就是先把 w 拆成沿 u 的分量和垂直方向的分量。若 \{u,v\} 真的是 orthonormal basis,则分母都是 1;课件保留 \lVert u\rVert_2^2\lVert v\rVert_2^2,是更一般的 projection 写法。

例子 3: 真正按 Householder QR 做两步

取一个 3\times2 矩阵:

A=\begin{pmatrix}4&4\\3&-2\\0&3\end{pmatrix}

第 1 步: 看第一列 x_1=(4,3,0)^\top,长度是 5,目标是把它反射成 (5,0,0)^\top。选

u_1=x_1-\begin{pmatrix}5\\0\\0\end{pmatrix}=\begin{pmatrix}-1\\3\\0\end{pmatrix}
H_1=I-2\frac{u_1u_1^\top}{u_1^\top u_1}=\begin{pmatrix}0.8&0.6&0\\0.6&-0.8&0\\0&0&1\end{pmatrix}
A_1=H_1A=\begin{pmatrix}5&2\\0&4\\0&3\end{pmatrix}

第一列下面已经清零了。接下来不能再动第一行第一列,只处理右下角剩下的子块。

第 2 步: 现在看第二列的下半段 x_2=(4,3)^\top,长度还是 5,目标是 (5,0)^\top。选

u_2=x_2-\begin{pmatrix}5\\0\end{pmatrix}=\begin{pmatrix}-1\\3\end{pmatrix}
\widetilde H_2=\begin{pmatrix}0.8&0.6\\0.6&-0.8\end{pmatrix}
H_2=\begin{pmatrix}1&0&0\\0&0.8&0.6\\0&0.6&-0.8\end{pmatrix}
R=H_2A_1=H_2H_1A=\begin{pmatrix}5&2\\0&5\\0&0\end{pmatrix}

所以 Householder QR 的结构是:

R=H_2H_1A
A=(H_2H_1)^\top R=H_1H_2R
Q=H_1H_2,\qquad A=QR

这就是课件说的“重复反射,逐列把 pivot 下面清成 0”。每个 H_i 都是 orthogonal,所以连乘出来的 Q 仍然 orthogonal。

学生追问: P020 · 上三角矩阵必须是方阵吗学生追问 / QR

问题: 上三角 matrix 的定义是什么?QR 里面的 R 不是方阵时,也能叫上三角吗?

短答案: 方阵上三角是最标准的定义;矩形矩阵也可以有“上三角型”结构。QR 里常见的矩形 R 更准确叫 upper trapezoidal,规则还是:主对角线下面的位置全是 0。

\text{upper triangular square matrix: }r_{ij}=0\quad(i>j)
\text{rectangular upper triangular / upper trapezoidal: }r_{ij}=0\quad(i>j)

比如 Householder QR 例子里得到:

R=\begin{pmatrix}5&2\\0&5\\0&0\end{pmatrix}
r_{21}=0,\qquad r_{31}=0,\qquad r_{32}=0

这些正好都是主对角线下面的位置,所以这个 3\times2 矩阵是合法的 rectangular upper triangular / upper trapezoidal R

为什么会出现矩形: 如果原矩阵 Am\times n,完整 QR 常写成 A=QR,其中 Qm\times mRm\times n。当 m>n 时,R 就是一个高矩形,上面是一个 n\times n 的方阵上三角块,下面多出来的行全是 0。

R=\begin{pmatrix}R_{11}\\0\end{pmatrix},\qquad R_{11}\in\mathbb R^{n\times n}\text{ is upper triangular}

economy QR: 如果用 economy/thin QR,会把下面全 0 的行省掉,所以 R 变成 n\times n 方阵上三角。上面的例子就会写成:

R_{\text{thin}}=\begin{pmatrix}5&2\\0&5\end{pmatrix}
学生追问: P022-P023 · 课件符号和 3×2 例子怎么对应学生追问 / QR

问题: P022-P023 里的 Householder QR 过程,是不是就是前面 3\times2 矩阵例子的计算?

答案: 是。同一个过程。课件是符号版:每一步找一个 orthogonal matrix,把当前子块的第一列反射到坐标轴上;前面的 3\times2 例子就是把这些符号换成具体数字。

X=A=\begin{pmatrix}4&4\\3&-2\\0&3\end{pmatrix}
c_1=\begin{pmatrix}4\\3\\0\end{pmatrix},\qquad \gamma_1=\lVert c_1\rVert=5,\qquad Q_1=H_1
R_1=Q_1X=H_1A=\begin{pmatrix}5&2\\0&4\\0&3\end{pmatrix}

这对应 P022:第一列下面被清成 0,剩下右下角子块就是下一轮要处理的东西。

\widetilde c_1=\begin{pmatrix}4\\3\end{pmatrix},\qquad \gamma_2=5,\qquad \widetilde Q_2=\widetilde H_2
Q_2=\operatorname{diag}(I_1,\widetilde Q_2)=H_2
R=Q_2R_1=Q_2Q_1X=H_2H_1A=\begin{pmatrix}5&2\\0&5\\0&0\end{pmatrix}

这对应 P023:把第二列 pivot 下面也清成 0。截图里如果看到 R_2=Q_1R_1,按迭代逻辑应理解为第二步继续左乘新的 Q_2,也就是 R_2=Q_2R_1

最后把左乘过程反过来,就是 QR:

R=Q_2Q_1X
X=Q_1^\top Q_2^\top R=QR
\text{在这个例子里 }H_1^\top=H_1,\ H_2^\top=H_2,\ \text{所以 }Q=H_1H_2

一句话: P022-P023 是算法模板;前面那个 3\times2 矩阵就是模板的一次完整手算。

读完本单元应掌握: 能从反射公式解释消零,并写出 QR 后做 SVD 的三步。
U08 · 模型P024-P025 / 43

PCA、SVD 与截断低秩近似

为什么合在一起讲: 第一页证明 SVD 如何给出协方差谱,第二页紧接着比较实现路线并给出截断规则。

完整讲解

核心思想: 对中心化数据,SVD 直接给出 PCA:右奇异向量是主方向,奇异值平方按同一比例对应方差;截断较小奇异值即得低秩近似。
X^\top X=V\Sigma^2V^\top
从 SVD 读取 PCA

X^\top X 中的 U^\top U 化为单位阵,留下 V\Sigma^2V^\top。于是 V 是主方向,奇异值平方是方差。

主成分得分 XV 等于 U\Sigma;它把每个样本变换到主坐标。

为什么截断能降维

把奇异值按从大到小排列,只保留前 k 项,就保留方差最大的 k 个方向。数据从 n 个属性变为 k 个坐标。

直接特征分解可能稍快但受稳定性影响;SVD 对一般矩阵存在且使用正交因子,通常更稳。

边界与取舍

课件只给出保留最大 k 个主成分的原则,没有规定 k。实际需要用累计解释方差、存储预算或下游误差选择。

无论采用哪条计算路线,降维结果都由保留的子空间决定;算法差别在稳定性和代价。

由谱到低秩近似的完整含义

数据通常先按列中心化。此时 X^\top X 与样本协方差矩阵只差一个整体缩放常数;这个常数改变特征值大小但不改变特征向量,所以不影响主方向。课件为突出结构省略了该常数。

X 右乘 V 等于把每个样本的属性向量换到右奇异向量基。结果 U\Sigma 的第 j 列就是第 j 个主成分得分;该列平方范数由对应奇异值控制,因此奇异值平方代表该方向贡献。

保留前 k 项后得到的不是原始属性子集,而是一个 k 维线性子空间。重构时用保留得分乘回相应方向,可得到原矩阵的秩 k 近似。被丢弃奇异值的平方和衡量 Frobenius 范数下的重构损失。

P025 对速度的表述是定性比较。显式形成 X^\top X 会把条件数平方,可能损害小奇异值;直接对 X 做 SVD 通常更稳。具体速度仍取决于矩阵尺寸、稀疏性和所用实现。

选择 k 是准确率与资源之间的接口:较大的 k 保留更多方差,也增加存储和下游计算。课件没有规定阈值,因此本讲能保证的是排序与截断机制,不是一个适用于所有任务的固定 k

截断后若要解释某个主成分,必须查看对应右奇异向量中各原属性的系数;主成分得分本身只给样本在新轴上的位置。方向系数与样本得分承担不同角色,不能混为同一张表。

本单元在知识链中的位置

承接上一单元

U07 提供稳定求 SVD 的 QR 路线。

本单元任务

证明 SVD 等价读取 PCA 并定义截断。

组内推进

P024 做代数连接,P025 给工程选择。

导向下一单元

切换到矩阵无法单机容纳的大数据。

逐页详解P024-P025 · 2 页逐句翻译 · 本页解释
P024
PCA 与 SVD 的等价连接

原页逐句翻译:X 是表示数据集的 m\times n 矩阵,其中 m 是 cases 数,n 是 attributes 数。PCA 需要确定协方差矩阵 C=X^\top X 的特征值。利用 X=U\Sigma V^\top

X^\top X=(U\Sigma V^\top)^\top(U\Sigma V^\top)=V\Sigma^\top U^\top U\Sigma V^\top=V\Sigma^2V^\top

主成分为 XV=U\Sigma V^\top V=U\Sigma,奇异值是特征值的平方根。

本页解释: 右奇异向量矩阵就是协方差矩阵的特征向量矩阵,奇异值平方就是沿这些方向的方差。因而可以直接对数据矩阵做 SVD,而不必显式形成协方差矩阵。

P025
截断实现降维

原页逐句翻译: 降维。给定数据集,希望用最少空间保留最多信息。可用两种方式运行 PCA:特征值分解可能稍快但不稳定,特征值对应主成分方差;SVD 可能稍慢但稳定,奇异值平方对应主成分方差。通过截断矩阵,只保留最大的 k 个主成分。

本页解释: 排序后保留前 k 个方向,就是低秩近似。选择越小,存储和后续计算越省,但丢失的方差越多;课件强调的是方法关系与稳定性,并未给出自动选择阈值。

本单元页间主线: P024 做代数连接,P025 给工程选择。

读完本单元应掌握: 能从 X 的 SVD 推出主成分方向、得分和方差。
M03

Big data:Tall-and-skinny 计算

在矩阵不入内存时控制通信、热点与块依赖。

P026-P036

模块衔接: 保留小数据的谱目标,但把矩阵形状、存储和通信加入算法。

U09 · 系统P026-P027 / 43

从单机线性代数切换到分布式矩阵

为什么合在一起讲: 章节分隔页宣布 Big data,下一页马上定义矩阵形状和分区方式,两页共同改变计算模型。

完整讲解

核心思想: 进入大数据阶段,PCA 的目标未变;约束改为数据怎样分区、哪些计算可本地完成,以及哪些结果必须跨节点传输。
X\in\mathbb R^{m\times n},\quad X^\top X\in\mathbb R^{n\times n}
变化的是计算条件

PCA 的数学目标没有改变,但 X 已无法完整驻留内存。矩阵的高宽比、稀疏度和分区方式决定数据移动。

按行、按列、按元素和按块不是展示细节,它们决定 mapper 能看到什么、QR 的块更新放在哪里。

形状为何重要

高而窄矩阵有很多样本和较少属性,允许 n\times n Gram 矩阵留在单机。短而宽或一般形状则可能需要随机投影等不同工具。

布局决定数据移动

同一矩阵按行分区时,每个节点容易计算局部行外积;按列分区时,列范数可本地获得,但列对内积需要跨节点对齐;按块分区则适合矩阵乘法和 tiled QR。选择布局就是选择哪些操作本地、哪些操作通信。

稀疏矩阵不能只用 mn 判断成本,还要看每行非零数 L。后续 MapReduce 基线的发射量与 L 的平方有关;稀疏度若分布不均,某些键仍会成为热点。

Tall-and-skinny 的特殊性是属性数 n 足够小,使 n\times n 的核心矩阵能集中处理。若 n 也很大,Gram 矩阵本身就不再是可放入单机的压缩目标,需要随机 sketch 或分层方法。

本单元在知识链中的位置

承接上一单元

U08 完成单机上的 PCA/SVD。

本单元任务

建立分布式内存、形状和布局约束。

组内推进

P026 切换阶段,P027 定义系统变量。

导向下一单元

利用 tall-and-skinny 形状压缩计算。

逐页详解P026-P027 · 2 页逐句翻译 · 本页解释
P026
进入大数据

原页逐句翻译: 章节组织:中心主题是“降维”,分支为“复习”“小数据”“大数据”;本页高亮“大数据”。

本页解释: 分隔页表示数学目标不变,但实现条件改变:矩阵无法放进单机内存,矩阵形状、存储布局和通信量成为算法的一部分。

P027
分布式矩阵表示

原页逐句翻译: 分布式系统。m\times n 矩阵 X 可以是稠密、稀疏、方阵、tall and skinny(高而窄)或 short and fat(矮而宽)。在多个节点上表示矩阵的方式包括按行或按列、按元素、按块。说明:矩阵不再能放入内存;矩阵形状与表示方式会影响速度。

本页解释: 按行存储适合逐行生成外积,按块存储适合 tiled QR;稀疏度决定一行中真正需要参与配对的元素数。这里先建立系统变量,下一单元专门利用高而窄矩阵的形状。

本单元页间主线: P026 切换阶段,P027 定义系统变量。

读完本单元应掌握: 能说明矩阵形状与分区如何影响通信和算法选择。
U10 · 算法P028-P030 / 43

Tall-and-skinny 的 Gram 矩阵 MapReduce

为什么合在一起讲: 设置、把问题压成 X^\top X、以及直接 MapReduce 实现构成一个完整基线算法。

完整讲解

核心思想: 对 tall-and-skinny 矩阵,MapReduce 以行内乘积和按列对聚合精确形成 X^T X;瓶颈在 L^2 级 shuffle 与热门键。
(X^\top X)_{jk}=\sum_{i=1}^{m}x_{ij}x_{ik}
利用 m\gg n

完整矩阵太高,但 n^2 可以留在单机。形成 X^\top X 后,海量样本维被求和消去,只剩属性对之间的内积。

谱分解随后在 n\times n 矩阵上进行,成本不再随 m 扩展;形成 Gram 矩阵本身仍必须扫描所有行。

Mapper 和 Reducer 在算什么

每行对非零列做两两配对,乘积发给对应列对键。Reducer 汇总同一列对跨所有行的乘积,恰好得到 Gram 矩阵一个条目。

按行存储让 Mapper 可本地生成外积,但一行 L 个非零项会产生 L^2 级消息。

基线的两个瓶颈

shuffle size 随 mL^2 增长,热门键还可能积累 m 个值。前者是网络总量,后者是单 reducer 热点,必须分开理解。

归一化到 [-1,1] 控制元素尺度,为后续基于概率的近似和误差界做准备。

正确性、通信量与数值代价

Gram 矩阵第 j,k 个条目等于所有行上 x_{ij}x_{ik} 的和。Mapper 按行生成这些乘积,Reducer 按列对聚合,所以算法在代数上精确对应矩阵乘法;键只是把求和项路由到正确位置。

对称性意味着 j,kk,j 条目相同,工程实现可只计算一个三角部分再镜像,但课件的复杂度讨论保留一般列对形式。无论是否利用对称性,行内配对数仍由非零列数决定。

Shuffle size 衡量网络中移动的总键值数量;reduce-key complexity 衡量最坏单键的值数。增加 reducer 数量能分散不同键,却不能自动拆掉一个超热门键,因此二者需要不同优化。

形成 X^\top X 会把奇异值平方。原矩阵条件数较大时,小奇异方向更容易受舍入影响;P029 所说“确保奇异值不被显著改变”因此不仅是采样问题,也包含数值稳定性。

把元素缩放到 [-1,1] 控制单个乘积范围,便于概率界和有限精度求和。它不会消除列范数差异,后续 cosine sampling 正是再用列范数调节保留概率。

本单元在知识链中的位置

承接上一单元

U09 给出分布式布局与 tall-and-skinny 形状。

本单元任务

构造精确 Gram 矩阵的 MapReduce 基线。

组内推进

P028 设条件,P029 压缩目标,P030 实现与复杂度。

导向下一单元

用 cosine sampling 降低通信与热点。

逐页详解P028-P030 · 3 页逐句翻译 · 本页解释
P028
Tall-and-skinny 设置

原页逐句翻译: 设置:X 无法放入内存;X 的行数远大于列数,即 m\gg nn^2 可放入单机内存。运行 PCA 时:完整 SVD 的复杂度为 \mathcal O(mn^2);只需要最重要的 k 个奇异值与奇异向量;所需工作为 \mathcal O(mk^2)。能否利用 X 的形状加速?

本页解释: 高而窄意味着样本极多、属性相对少。关键机会是把依赖海量行的数据压缩成一个 n\times n 的小矩阵,再在单机上做谱分解。

P029
把问题压到 Gram 矩阵

原页逐句翻译: 由第 4.22 页,C=X^\top X=V\Sigma^2V^\top,式 (4.2)。C 的维度为 n\times n,且假设单机有 n^2 内存,所以它能放入内存。于是希望计算 X^\top X,避免后续计算依赖 m;随后通过课件标为“??”的引用式求 C 的特征值并恢复 V,\Sigma。主要挑战是高效计算 X^\top X,同时不显著改变 C 的奇异值。准备:矩阵按行存盘;所有元素归一化到 [-1,1],即除以最大元素。

本页解释: 这里“避免依赖 m”是指压缩后的谱分解不再扫描所有行,不是说形成 X^\top X 可以零成本。形成 Gram 矩阵仍需遍历数据并通信;P030 给出直接 MapReduce 基线。

P030
直接 MapReduce 基线

原页逐句翻译: 计算 X^\top X 的简单 MapReduce:Mapper 对第 i 行的所有元素对 (x_{ij},x_{ik}),返回键值对 ((c_j,c_k),x_{ij}x_{ik}),其中 c_j,c_k 分别对应第 j,k 列。Reducer 对同一键 (c_i,c_j) 的值序列 \langle v_1,\ldots,v_R\rangle,其中每个 v_kX 中元素的乘积,R 是非零乘积数,并计算 \sum_{i=1}^{R}v_i。复杂度:通信 shuffle size 为 \mathcal O(mL^2)L 是一行最多非零元素数;单机热点 reduce-key complexity 为 \mathcal O(m)

本页解释: 每个输出键对应 Gram 矩阵的一个列对条目。问题在于一行有 L 个非零元素时会产生平方级配对,而热门列对还会把最多 m 个值集中到一个 reducer;下一单元通过概率采样减轻这两处压力。

本单元页间主线: P028 设条件,P029 压缩目标,P030 实现与复杂度。

学生追问: P028 · PCA/SVD 复杂度为什么是这些量级学生追问 / complexity

问题: 从 SVD 做 PCA 不是还是要算 X^\top X 吗?为什么 full PCA 是 O(mn^2),课件又写 top-k work 是 O(mk^2)?是不是必须靠迭代法?

先纠正: 你质疑得对。不能从原始 dense X\in\mathbb R^{m\times n} 直接把 n 换成 k,然后说总复杂度就是 O(mk^2)。如果还没找到前 k 个主方向,那些方向仍然藏在原来的 n 维 feature space 里。

1. full PCA 为什么是 O(mn²)

完整 covariance 路线确实要算:

C=X^\top X
X\in\mathbb R^{m\times n},\qquad X^\top X\in\mathbb R^{n\times n}
(X^\top X)_{ab}=\sum_{i=1}^{m}x_{ia}x_{ib}
  • X^\top Xn^2 个元素。
  • 每个元素是两个长度为 m 的列向量 dot product,成本是 O(m)
  • 所以形成整个 X^\top X 的成本是 O(mn^2)
  • 之后对 n\times n 矩阵做 EVD 还要 O(n^3)
\text{full covariance PCA}=O(mn^2+n^3)
m\gg n\quad\Longrightarrow\quad O(mn^2+n^3)\approx O(mn^2)

所以 full PCA / full SVD 那行 O(mn^2) 是合理的。

2. 从原始 m×n 数据找 top-k,一般不是 O(mk²)

如果只要前 k 个主方向,实际算法通常不会完整构造 X^\top X。它会反复做矩阵乘法,例如:

Xq\quad\text{and}\quad X^\top y
X\Omega,\qquad \Omega\in\mathbb R^{n\times k}

一次 dense multiplication X\Omega 的规模是:

(m\times n)(n\times k)\quad\Longrightarrow\quad O(mnk)

所以 truncated SVD / Lanczos / randomized SVD 这一类 top-k 方法,常见成本更像:

O(mnk+(m+n)k^2)

这就是你查到“要靠迭代 / randomized / Krylov 方法”的原因。它们避免了 n\times n 的完整 EVD,但没有让原始维度 n 从总成本里完全消失。

还有一个简单下界:原始 dense 矩阵有 mn 个数。一般精确问题至少要读入这些数据,所以当 k^2\ll n 时,声称总成本只有 O(mk^2) 本身就不可能覆盖读入成本。

\text{raw dense input reading cost}=\Omega(mn)
O(mk^2)\lt O(mn)\quad\text{when }k^2\ll n

3. 那 O(mk²) 在什么情况下成立

O(mk^2) 成立的前提是:你已经把问题变成了一个只有 k 列的子问题。也就是说,手上已经有:

Y\in\mathbb R^{m\times k}

这时再算小 covariance:

Y^\top Y\in\mathbb R^{k\times k}
(Y^\top Y)_{ab}=\sum_{i=1}^{m}y_{ia}y_{ib}
\#\text{entries}=k^2,\qquad \text{cost per entry}=O(m)
\text{cost}(Y^\top Y)=O(mk^2)
\text{EVD of }k\times k\text{ matrix costs }O(k^3)
\text{after-reduction cost}=O(mk^2+k^3)\approx O(mk^2)

但这个 Y 不是凭空来的。它可能来自 random projection、column sampling、已有低秩因子、前面某个 QR/sketch 步骤,或者原始矩阵本来就只有 k 个有效列。生成这个 Y 的成本要另算。

4. 这页 slide 应该怎么读

所以这页里的三行更稳妥的读法是:

  • full SVD: 如果完整处理全部 n 个 feature,成本是 O(mn^2)
  • only need top-k: PCA 最后只需要前 k 个重要方向,所以有机会避免完整 full SVD。
  • work needed O(mk²): 这不是从原始 m\times n dense matrix 直接求 top-k 的完整证明;它应理解为“进入 k 维子问题以后,后续分解/小 covariance 的成本”。

因此原来那段需要删改: 不能写成“不用迭代也能从原始矩阵做到 O(mk^2)”。正确说法是:如果从 raw X 求 top-k,通常需要 iterative / randomized / sketch 方法,成本常见为 O(mnk+(m+n)k^2)O(mk^2) 只是已经降到 k 列后的后续成本。

学生追问: P029 · equation ?? 到底指什么学生追问 / reference

问题: slide 里写 “using equation ??”,这个 equation 到底是什么?

答案: 这是课件的交叉引用坏了。它应该指回前面 PCA 和 SVD 的关系,也就是:

C=X^\top X=V\Sigma^2V^\top

这条公式来自 centered data matrix 的 SVD:

X=U\Sigma V^\top
X^\top X=(U\Sigma V^\top)^\top(U\Sigma V^\top)
X^\top X=V\Sigma^\top U^\top U\Sigma V^\top=V\Sigma^2V^\top

它为什么有用: 如果我们能算出小矩阵 C=X^\top X,就能对 C 做 EVD:

C=V\Lambda V^\top
\Lambda=\Sigma^2
\sigma_i=\sqrt{\lambda_i}

所以从 C 的 eigenvectors 可以拿到 PCA/SVD 里的 V;从 C 的 eigenvalues 可以开根号拿到 singular values \Sigma

这页的意思: 对 tall-and-skinny 矩阵,X 太大放不进内存,但 C=X^\top X 只有 n\times n,可以放进单机内存。于是先分布式算 X^\top X,再用这条 broken reference 对应的公式恢复 V\Sigma

读完本单元应掌握: 能从列对键解释 X^\top X 的形成,并区分 shuffle 与 reduce-key 复杂度。
U11 · 算法P031-P035 / 43

Cosine sampling:从文档相似度到无偏 Gram 近似

含上下文补足

为什么合在一起讲: 长度偏差、余弦定义、采样算法、期望证明与参数复杂度是一条完整的动机到保证链。

完整讲解

核心思想: cosine sampling 先排除文档长度的影响,再以无偏重加权减少通信;γ 决定精度与工作量的交换。
p_{jk}=\min\left(1,\frac{\gamma}{\lVert c_j\rVert\lVert c_k\rVert}\right)
为什么原始点积会误判

词频向量的点积同时受方向和长度影响。长文档会因词数大获得高得分,短摘录即使与原文同向也可能被低估。

余弦把内积除以两列范数,比较的是方向。P032 图中夹角小的向量代表相似词分布。

采样概率如何分配

算法用列范数决定每个列对乘积是否发射。min 分支保证概率不超过一,\gamma 统一调节保留率。

被采样值按概率倒数重加权,所以低概率样本虽然少,每个权重更大。

为什么估计在期望上正确

把未采样项记为零,对随机输出求期望时,采样概率与倒数权重相消,得到归一化列内积。

输出 X^{\prime} 是列间余弦矩阵;用列范数对角矩阵 D 左右缩放,恢复 Gram 矩阵尺度。

精度、通信与热点的交换

\gamma 越大,样本越多,谱和条目更易保留,但 shuffle 和 reducer 工作都增加。不同目标给出不同的 \gamma 下界。

列范数必须预计算,带来一次 all-to-all;最小非零值 h 很小时,复杂度中的逆平方项会恶化。

保证的边界

无偏只描述重复随机运行的平均,不保证单次误差为零。Latala 定理提供高概率谱保持,但课件没有展开常数和完整条件。

因此该方法适合通信受限、允许概率近似的 tall-and-skinny PCA。

把随机算法逐步还原

对每个列对,直接算法会发送所有非零乘积。采样算法把是否发送变成 Bernoulli 随机事件。概率由列范数和 \gamma 决定,Reducer 再除以相应尺度,使被保留的少量项代表完整和。

P034 的期望等式应按单个求和项理解:指示变量为一时保留 v_i,为零时丢弃。线性期望允许先分别求每项期望再相加,不要求不同列对的输出在一次运行中完全独立。

X^{\prime} 中的条目是归一化内积,因此对角线在理想情况下接近一。D 左右缩放分别恢复两列的范数;第 j,k 项由余弦乘两列范数,回到原始内积。

若目标是条目近似,\gamma 可随最低关注相似度调节;若目标是谱保持,需要更强的随 n 和相对误差增长的条件。两种下界对应不同质量指标,不能互换。

预计算列范数的 all-to-all 是固定启动成本。采样只有在后续减少的 shuffle 和热点足以抵消这次通信时才有价值;这取决于数据稀疏度、h\gamma 和集群网络。

本单元在知识链中的位置

承接上一单元

U_10 的精确列对计算通信过大。

本单元任务

用余弦归一化和随机采样近似 Gram 矩阵。

组内推进

P031-P032 建概念,P033 算法,P034 证明,P035 代价。

导向下一单元

另一条路线是直接把 QR 按块分布化。

逐页详解P031-P035 · 5 页逐句翻译 · 本页解释
P031
词频相似度的缺陷

原页逐句翻译: 衡量多个文档之间的距离:统计所有词的出现次数;比较得分;若文档有很多共同词,就认为它们相似。限制:取三个文档 d_1,d_2,d_3,其中 d_1,d_2 很长,而 d_3d_1 的摘录。很可能发生什么?

本页解释: 原始内积会偏向长文档:两个长文档即便主题一般,也可能因词数大而有较大重叠;摘录与原文方向接近,却因长度短得到较小点积。余弦相似度通过向量范数归一化,把比较重点从长度移到方向。

P032
Cosine similarity

原页逐句翻译: 对向量 d_i,d_j,余弦相似度定义为 \cos(d_i,d_j)=\frac{\langle d_i,d_j\rangle}{\lVert d_i\rVert\lVert d_j\rVert}。基本想法:两个文档越接近,夹角越小;夹角越小,余弦越大。图中坐标轴为 word1、word2、word3,向量为 d_1,d_2,d_3,白色弧线表示夹角。更精细的策略:按意义对词分类;基于词语义考虑余弦相似度。

本页解释: 图先看方向而不是箭头长度:绿色 d_1 与黄色 d_3 夹角小,即使长度不同也相似;橙色 d_2 指向不同方向。分母把向量归一化,因此余弦只衡量方向一致性。

P033
按余弦概率采样

原页逐句翻译: 固定可在 MapReduce 运行时调节的参数 \gamma。用余弦相似度计算 X^\top X:Mapper 对第 i 行中每对 (x_{ij},x_{ik}),以概率 \min\left(1,\frac{\gamma}{\lVert c_j\rVert\lVert c_k\rVert}\right) 返回 ((c_j,c_k),x_{ij}x_{ik})。Reducer 对键 (c_i,c_j) 的值 \langle v_1,\ldots,v_R\rangle:若 \frac{\gamma}{\lVert c_j\rVert\lVert c_k\rVert}>1,返回 \frac{1}{\lVert c_j\rVert\lVert c_k\rVert}\sum_{i=1}^{R}v_i;否则返回 \frac{1}{\gamma}\sum_{i=1}^{R}v_i

本页解释: 列范数大的列对被较低概率采样,但 reducer 用采样概率的倒数重加权。\gamma 越大,保留项越多、误差越小、通信越大;分支 \min(1,\cdot) 防止概率超过 1

P034
无偏性与恢复 Gram 矩阵

原页逐句翻译: Reducer 实际返回的不是 X^\top X,而是含 X 各列余弦相似度的矩阵 X^{\prime}。令 \bar v_i=v_i 当对应键值对被返回,否则 \bar v_i=0,则输出期望为

\mathbb E\left(\frac{1}{\gamma}\sum_{i=1}^{R}\bar v_i\right)=\frac{1}{\gamma}\Pr(\bar v_i=v_i)\sum_{i=1}^{R}v_i=\frac{1}{\lVert v_j\rVert\lVert v_k\rVert}\sum_{i=1}^{R}v_i

要从 X^{\prime} 恢复 X^\top X,定义对角矩阵 D,其 d_{ii}=\lVert c_i\rVert,再计算 X^\top X\approx DX^{\prime}D。Latala 定理可证明,用余弦相似度采样列时,奇异值以“足够高”的概率被保留。

本页解释: P033 的列范数一直记为 c_j,c_k,P034 期望式分母却突然写成 \lVert v_j\rVert\lVert v_k\rVert,这是符号切换或疑似课件笔误;按列向量记号应与前页保持一致。期望式说明重加权消除了采样偏差,但单次运行仍有随机误差。余弦矩阵去掉列尺度,左右乘 D 把尺度放回。

P035
采样参数与复杂度

原页逐句翻译: 说明:Mapper 使用 \lVert c_i\rVert,所以必须预先计算所有列范数,这需要一次 all-to-all 通信。参数 \gamma 可按目标调整:保留 X^\top X 中相似条目时,\gamma=\Omega(\frac{\log n}{s}),其中 s 是最低余弦相似度;保留 X^\top X 的奇异值时,\gamma=\Omega(\frac{n}{\varepsilon^2}),其中 \varepsilon 是相对误差。令 h 为归一化后最小非零值,shuffle size 为 \mathcal O(\frac{nL\gamma}{h^2}),reduce-key complexity 为 \mathcal O(\frac{\gamma}{h^2})

本页解释: 这页给出真实代价:采样前要付列范数的全局通信;之后 \gamma 控制精度与流量。若 h 很小,复杂度中的 1/h^2 会放大,说明极小非零元素会削弱采样收益。

本单元页间主线: P031-P032 建概念,P033 算法,P034 证明,P035 代价。

上下文补足: sampling expectation推导入口

上下文补足:若随机变量以概率 p 取值 v/p、否则取 0,则其期望为 p(v/p)=v。P034 的重加权使用同一原则,只是目标值是归一化列内积。

学生追问: P031-P035 · cosine similarity sampling 这几页到底在干什么学生追问 / sampling

问题: 这几页从文档相似度跳到 MapReduce 采样,再跳到恢复 covariance product,中间到底怎么连起来?

总线索: 目标仍然是计算 tall-and-skinny 矩阵的 X^\top X。朴素做法要对每一行产生很多列对乘积,shuffle 太大。cosine sampling 的想法是:不要无差别发送所有列对,只更积极地保留“重要/相似”的列对,然后用无偏缩放把结果拉回正确尺度。

1. P031-P032: 为什么先讲 document cosine similarity

  • 把一个 document 看成 word-count vector:每个坐标是一类词出现的次数。
  • 直接比较 common word count 会偏向长文档。长文档天然有更多词,和很多文档都会有交集。
  • cosine similarity 改成看夹角:长度影响被除掉,更关注两个向量的方向是否相似。
\cos(d_i,d_j)=\frac{\langle d_i,d_j\rangle}{\lVert d_i\rVert\lVert d_j\rVert}

如果夹角小,cosine 接近 1,表示方向接近;如果夹角接近 90 度,cosine 接近 0,表示共同结构弱。课件用文档做入口,是因为后面要把“文档向量相似”换成“矩阵列向量相似”。

2. 真正目标: 算 X^\top X 的列对内积

X 的第 j 列是 c_j。那么 covariance-like product 的第 (j,k) 个元素是:

(X^\top X)_{jk}=c_j^\top c_k=\sum_i x_{ij}x_{ik}
  • 朴素 MapReduce:每一行 i 对所有非零列对 (j,k) 发出 x_{ij}x_{ik}
  • Reducer 对同一个 key (c_j,c_k) 的值求和,就得到 c_j^\top c_k
  • 问题:如果每行有 L 个非零元素,这一行会产生大约 L^2 个列对,shuffle 会爆。

3. P033: Mapper 为什么按这个概率采样

课件把列对 (c_j,c_k) 的发送概率设成:

p_{jk}=\min\left(1,\frac{\gamma}{\lVert c_j\rVert\lVert c_k\rVert}\right)
  • \gamma 是调节采样强度的参数。越大,发送越多,估计越稳,但通信越贵。
  • 分母是两列的 norm product。后面 reducer 要估计 cosine similarity,所以这个 norm product 必须进入缩放。
  • 如果 \gamma/(\lVert c_j\rVert\lVert c_k\rVert)\ge1,概率截断为 1,表示这个列对全部保留。
  • 如果概率小于 1,就只抽样一部分行里的乘积,再用 1/\gamma 做缩放。

所以 mapper 不是直接估计 X^\top X,而是在准备估计列之间的 cosine similarity。

4. P034: Reducer 返回的是 cosine matrix,不是 X^\top X

令一行贡献为:

v_i=x_{ij}x_{ik}

如果这个 pair 被采样,就令 \bar v_i=v_i;如果没被采样,就令 \bar v_i=0。当 p_{jk}=\gamma/(\lVert c_j\rVert\lVert c_k\rVert)<1 时:

\mathbb E(\bar v_i)=p_{jk}v_i
\mathbb E\left(\frac{1}{\gamma}\sum_i\bar v_i\right)=\frac{1}{\gamma}p_{jk}\sum_i v_i
=\frac{1}{\lVert c_j\rVert\lVert c_k\rVert}\sum_i x_{ij}x_{ik}
=\frac{c_j^\top c_k}{\lVert c_j\rVert\lVert c_k\rVert}=\cos(c_j,c_k)

这说明 reducer 的期望输出是列 c_j 和列 c_k 的 cosine similarity。若采样概率被截断为 1,reducer 直接返回 (1/(\lVert c_j\rVert\lVert c_k\rVert))\sum_i v_i,也是同一个 cosine 值。

5. 为什么用 DX^{\prime}D 能恢复 X^\top X

X^{\prime} 是 reducer 得到的 cosine similarity matrix:

X^{\prime}_{jk}\approx\frac{c_j^\top c_k}{\lVert c_j\rVert\lVert c_k\rVert}

再定义 diagonal matrix:

D=\operatorname{diag}(\lVert c_1\rVert,\lVert c_2\rVert,\ldots,\lVert c_n\rVert)

那么:

(DX^{\prime}D)_{jk}=\lVert c_j\rVert X^{\prime}_{jk}\lVert c_k\rVert
\approx \lVert c_j\rVert\frac{c_j^\top c_k}{\lVert c_j\rVert\lVert c_k\rVert}\lVert c_k\rVert=c_j^\top c_k
DX^{\prime}D\approx X^\top X

这就是 P034 的核心:先估计 cosine matrix,再把 column norm 乘回去,恢复 covariance product 的尺度。

P034 最后提到 Latala's theorem,作用不是让你在这里证明定理,而是说明:在合适的采样强度下,用 cosine similarity 采样得到的近似矩阵,可以以足够高概率保留原来 X^\top X 的 singular values。也就是说,这个近似不是只在单个 entry 上看起来合理,还能在谱性质上保持可用。

一个 2 列小例子

取两列:

c_1=\begin{pmatrix}3\\4\end{pmatrix},\qquad c_2=\begin{pmatrix}4\\0\end{pmatrix}
c_1^\top c_2=12,\qquad \lVert c_1\rVert=5,\qquad \lVert c_2\rVert=4
\cos(c_1,c_2)=\frac{12}{5\cdot4}=0.6
D=\operatorname{diag}(5,4),\qquad X^{\prime}_{12}=0.6
(DX^{\prime}D)_{12}=5\cdot0.6\cdot4=12=(X^\top X)_{12}

6. P035: gamma、预计算和复杂度怎么读

  • 列范数要预先算: mapper 的采样概率用到 \lVert c_j\rVert,所以所有 column norms 必须先被计算并分发。这就是课件说的 all-to-all communication。
  • \gamma 控制精度和通信: \gamma 越大,采样概率越高,shuffle 越大,但保留相似项和 singular values 的概率也更高。
  • 保留相似 entries: 课件写 \gamma=\Omega(\log n/s),其中 s 是最低 cosine similarity 阈值。
  • 保留 singular values: 课件写 \gamma=\Omega(n/\varepsilon^2),其中 \varepsilon 是 relative error。
  • 复杂度: 若每行最多有 L 个非零元素,且归一化后最小非零值是 h,课件给出 shuffle size 和 reduce key complexity:
\mathrm{shuffle}=O(nL\gamma/h^2)
\mathrm{reduce\ key\ complexity}=O(\gamma/h^2)

这两个式子要按“采样后实际发送和聚合的列对数量”理解。h 越小,说明归一化后有很小的非零项;为了不漏掉这些贡献,需要更高采样强度,复杂度会变差。

一句话: P031-P035 不是在换一个相似度公式而已。它把 X^\top X 的列对求和问题,改写成“抽样估计 column cosine matrix,再用 column norms 缩放回来”的 MapReduce 近似计算方案。

学生追问: P030-P035 · 全量 X^\top X 与 cosine sampling 复杂度分别是多少学生追问 / complexity

统一符号: X\in\mathbb R^{m\times n}m 是行数,n 是列数;每行最多有 L 个非零元素,所以 \operatorname{nnz}(X)\le mLh 是归一化后最小非零值,\gamma 控制采样强度。

1. 全量、精确构造 X^\top X

(j,k) 个 entry 是两个长度为 m 的 column vectors 做 dot product:

(X^\top X)_{jk}=\sum_{i=1}^m x_{ij}x_{ik}
\text{dense arithmetic}=\Theta(mn^2)

如果利用 row sparsity,mapper 对每行的非零元素两两配对。每行最多产生 L^2 个乘积:

\text{mapper pair work}=O(mL^2)
\text{full shuffle}=O(mL^2)
\text{full reduce-key complexity}=O(m)
\text{dense result memory}=\Theta(n^2)
  • 为什么 reduce-key 是 O(m): 固定一个 column pair (j,k),最多每一行都贡献一个 x_{ij}x_{ik}
  • dense 是 sparse 的特例:L=n 时,O(mL^2)=O(mn^2)
  • 结果本身: 如果最终显式保存完整 dense Gram matrix,就绕不开 \Theta(n^2) 个输出 entries。

2. cosine sampling 方法的成本

这个方法先算 column norms,再对 row 内的 column pairs 以概率

p_{jk}=\min\left(1,\frac{\gamma}{\lVert c_j\rVert\lVert c_k\rVert}\right)

决定是否发给 reducer。课件给出的通信和单 key 聚合上界是:

\text{sampled shuffle}=O\left(\frac{nL\gamma}{h^2}\right)
\text{sampled reduce-key complexity}=O\left(\frac{\gamma}{h^2}\right)

还要把课件公式没有写进同一行的成本补上:

  • column norm 预计算: 扫一遍非零元素,arithmetic 为 O(\operatorname{nnz}(X))=O(mL);随后要聚合并向 workers 分发 n 个 norms。
  • mapper 本地 pair 检查: 按课件伪代码逐个检查 row 内所有 pairs,最直接实现仍要 O(mL^2) 次本地检查。采样首先减少的是发出去的 records 和 reducer load,不自动消除 pair enumeration。
  • 恢复尺度: reducer 得到 X' 后计算 DX'D。若只保存 sampled nonzeros,缩放成本与 \operatorname{nnz}(X') 成正比;若强制 materialize dense 结果,仍需 \Theta(n^2) 空间。

3. 两种方法直接对照

项目全量 X^\top Xcosine sampling
结果精确 Gram matrix无偏但有随机误差的近似
mapper pair workO(mL^2)朴素实现仍为 O(mL^2)
shuffleO(mL^2)O(nL\gamma/h^2)
单个 reduce keyO(m)O(\gamma/h^2)
额外预计算无 sampling normsO(mL) 算 norms,再做 all-to-all / broadcast
dense 输出内存\Theta(n^2)若 dense materialize,仍是 \Theta(n^2)

4. 什么时候 sampling 才真的省

比较 shuffle 上界:

\frac{\text{sampled shuffle}}{\text{full shuffle}}=\frac{nL\gamma/h^2}{mL^2}=\frac{n\gamma}{mLh^2}
\text{shuffle 有明显收益时:}\quad \frac{\gamma}{h^2}\ll\frac{mL}{n}
\text{单 key 负载有明显收益时:}\quad \frac{\gamma}{h^2}\ll m

dense 情况 L=n 下:

\text{full shuffle}=O(mn^2)
\text{sampled shuffle}=O(n^2\gamma/h^2)

此时收益条件简化为 \gamma/h^2\ll m。如果 h 很小,或为了高精度把 \gamma 设得很大,sampling 的通信优势会缩小甚至消失。

5. 把精度要求代入复杂度

课件给出两种常见的 \gamma 选择:

\gamma=\Omega\left(\frac{\log n}{s}\right)\quad\Longrightarrow\quad \text{shuffle}=O\left(\frac{nL\log n}{s h^2}\right)
\gamma=\Omega\left(\frac{n}{\varepsilon^2}\right)\quad\Longrightarrow\quad \text{shuffle}=O\left(\frac{n^2L}{\varepsilon^2h^2}\right)
  • s 是希望保留的最低 cosine similarity;阈值越低,采样越贵。
  • \varepsilon 是 singular value relative error;误差要求越小,采样越贵。

结论: cosine sampling 的核心收益是把课件中的 shuffle 从 O(mL^2) 降到 O(nL\gamma/h^2),并把单 key reducer load 从 O(m) 降到 O(\gamma/h^2)。它是近似通信优化,不是“免费把所有本地算术也降掉”。

读完本单元应掌握: 能写出余弦相似度,解释采样重加权、DX^{\prime}D 恢复和 \gamma 取舍。
U12 · 算法P036-P036 / 43

Tiled QR 的分布式更新顺序

为什么合在一起讲: 该页独立给出 block QR 的完整阶段和依赖关系。

完整讲解

核心思想: tiled QR 将“处理一列、更新尾部”提升为“处理一个对角块、更新相关块”,在依赖顺序中暴露可并行的块操作。
X=QR
把 Householder 搬到块上

单机 QR 逐列消零;tiled QR 把列和尾部更新提升为矩阵块操作。每个 tile 可驻留一个节点,局部 QR 产生的变换再传播。

对角块先处理,同一块行与块列随后调整,右下尾部最后更新。该顺序保证所有依赖已就绪。

并行性与顺序性

同一阶段中互不依赖的块更新可以并行,但下一个对角块要等待前一阶段完成。算法速度取决于块大小、节点布局与通信。

得到较小 R 后,仍可沿 U07 的路线在 R 上做 SVD。

本单元在知识链中的位置

承接上一单元

U_11 通过采样近似 Gram 矩阵。

本单元任务

给出不显式形成 Gram 的分布式 QR 路线。

组内推进

按对角块逐阶段传播 Householder 更新。

导向下一单元

比较最优 PCA 与更通用的随机投影。

逐页详解P036-P036 · 1 页逐句翻译 · 本页解释
P036
Distributed QR

原页逐句翻译: 分布式 QR。第 4.21 页说明,先把 X 分解为 X=QR 可加速 X 的 SVD。Householder reflection theorem 可扩展成 tiled QR decomposition,适用于 X 无法放入内存的情形;tile 是可存储并在不同节点处理的矩阵块。把 X 表示成高而窄的块后:求对角块 X_{k,k} 的 QR;调整其右侧所有块 X_{k,j};调整其下方所有块 X_{i,k} 及这些块右侧的 X_{i,j};对所有对角块重复。

本页解释: 更新顺序体现数据依赖:对角块产生的正交变换必须先传播到同一块行和块列,再更新右下尾部。块可分布存储并并行处理,但每个对角阶段之间仍有顺序依赖。

本单元页间主线: 按对角块逐阶段传播 Householder 更新。

学生追问: P036-P037 · distributed QR 与 PCA big picture 详细讲解学生追问 / distributed QR

问题: P036 只列了四条 tiled QR 步骤,没有写 block 到底怎样更新;P037 又突然回到 PCA 总结。两页的连接是:先解决“大矩阵如何稳定分解”,再说明这个分解如何服务 PCA。

1. P036 为什么要 tiled QR

X\in\mathbb R^{m\times n} 太大,不能整体放进一台机器内存。把它切成能独立存储的 tiles:

X=\begin{pmatrix}X_{11}&X_{12}&\cdots\\X_{21}&X_{22}&\cdots\\\vdots&\vdots&\ddots\end{pmatrix}
  • 每个 X_{ij} 是一个 matrix block,可以放在不同节点或磁盘分区上。
  • 目标仍是 X=QR,其中 Q^\top Q=IR 是 upper triangular。
  • 算法不能只修改当前 diagonal tile;同一个 orthogonal transform 必须同步作用于右侧 tiles,才能保持整个矩阵等价。

2. 第 k 轮:先处理 diagonal tile

先对当前 diagonal block 做局部 QR:

X_{kk}=Q_{kk}R_{kk}
X_{kj}\leftarrow Q_{kk}^\top X_{kj},\qquad j>k

第一式把 diagonal tile 变成 triangular block。第二式把同一个 Q_{kk}^\top 应用到该 block row 的右侧;如果不更新右侧,局部等式成立,但整体 X=QR 会被破坏。

3. 再消去 diagonal tile 下方的 blocks

对每个 i>k,把当前 triangular block 和下面的 X_{ik} 竖直堆起来,再做一次 QR:

\begin{pmatrix}R_{kk}\\X_{ik}\end{pmatrix}=Q_{ik}\begin{pmatrix}R_{kk}^{\mathrm{new}}\\0\end{pmatrix}

这一步把 X_{ik} 消成 0。对右边每一列 tile,必须应用同一个变换:

\begin{pmatrix}X_{kj}\\X_{ij}\end{pmatrix}\leftarrow Q_{ik}^\top\begin{pmatrix}X_{kj}\\X_{ij}\end{pmatrix},\qquad j>k

因此 P036 的 “adjust blocks below and blocks on their right” 不是模糊描述,而是一次 block elimination 加一次 trailing update。

4. 重复后怎样得到全局 QR

把每次 tile QR 产生的 orthogonal left transform 按执行顺序记成 Q_1,Q_2,\ldots,Q_t。它们逐步把 X 变成 R

R=Q_tQ_{t-1}\cdots Q_2Q_1X
X=Q_1^\top Q_2^\top\cdots Q_t^\top R=QR,\qquad Q=Q_1^\top Q_2^\top\cdots Q_t^\top

实现中通常不显式形成巨大 dense Q。保存 Householder vectors 或 tile reflectors;需要计算 QzQ^\top z 时再按顺序应用。

5. tiled QR、TSQR 和后续 SVD 的关系

  • tiled QR: 通用 block QR,沿 diagonal panels 推进并更新 trailing matrix。
  • TSQR: tall-and-skinny 的特殊优化。各节点先对自己的 row block 做 QR,再把多个小 R_i 堆叠并用 reduction tree 继续 QR。
\;X_i=Q_iR_i
\begin{pmatrix}R_1\\R_2\\\vdots\end{pmatrix}=Q_RR

得到小矩阵 R\in\mathbb R^{n\times n} 后,再做:

\;R=\widetilde U\Sigma V^\top
\;X=(Q\widetilde U)\Sigma V^\top

这与置顶的 QR → SVD 手算块 是同一个代数关系,只是 P036 把 QR 的产生过程分布到多个 tiles / nodes。

6. 复杂度和 distributed 的真正收益

  • dense tall matrix 的 QR arithmetic 仍是 O(mn^2);tiled/distributed QR 不会把必需的 floating-point work 凭空消掉。
  • 收益是 tiles 能放入内存、局部更新可并行、通信能按 panel 或 reduction tree 组织。
  • 后续核心 SVD 只处理 n\times nR,成本约 O(n^3)
  • QR/Householder 是 backward stable;如果为了省事重新形成 R^\top R 再做 EVD,仍会平方 condition number。

7. P037 为什么紧接着问 “best PCA 比 random 好多少”

P037 把前面所有工具收回 PCA workflow:

  1. 中心化或标准化数据。
  2. 用 SVD/QR 得到 singular values 和 principal directions。
  3. 按 explained variance 选前 k 个 prominent dimensions。
  4. 在低维 scores 上继续 clustering、regression 或 visualization。

PCA 给出最佳 rank-k 近似,但求这个最优解可能很贵。P037 最后一问不是否定 PCA,而是在引出 M7:如果 random projection 更便宜,它和最优 PCA 的差距是否可接受?

一句话: P036 解决“矩阵放不进内存时,怎样稳定地产生 QR”;P037 说明产生 QR/SVD 的目的仍是找 PCA 子空间,并把下一步自然导向随机近似。

读完本单元应掌握: 能按依赖顺序描述 tiled QR,并指出可并行部分与阶段屏障。
M04

Random projection 与 randomized PCA

用概率保距和随机候选子空间扩展降维方法。

P037-P043

模块衔接: 从确定性最优 PCA 转向带误差与概率条件的快速近似。

U13 · 模型P037-P041 / 43

Random projection 与 randomized PCA

含上下文补足

为什么合在一起讲: PCA 总结提出随机替代问题,随后定义保距目标、解释随机子空间、列出边界,并组合成 randomized PCA。

完整讲解

核心思想: 随机投影不寻找数据最优方向,而近似保留欧氏几何;Randomized PCA 再在随机找到的候选子空间内用 QR 和 SVD 排序。
X^{\prime}=\frac1{\sqrt d}XR
为什么考虑随机方法

PCA 给出按方差意义最优的低维子空间,但求解谱可能昂贵。P037 问随机解与最优解差多少,把目标从精确最优转成可证明近似。

随机投影不先寻找数据最优方向,而是用随机矩阵把坐标混合并降到 d 维。

JL 保证保留什么

Johnson-Lindenstrauss 结论关注欧氏范数和两两欧氏距离,允许 1\pm\varepsilon 的乘性扭曲。目标维数远小于原维数。

一除以根号 d 的缩放控制投影后能量;保证带有高概率或期望限定,不应解读为每次都精确保距。

随机混合为何优于随机挑坐标

直接挑坐标可能漏掉只出现在少数坐标上的差异。随机子空间先把差异扩散到多个输出坐标,降低整体遗漏概率。

矩阵条目独立、零均值、对称和单位方差等条件控制偏差与尾界。

术语和适用边界

random projection 通常不满足 R^2=R,也不要求特征值只有零和一;它是算法意义的随机映射。课件明确限制在二范数。

乘法复杂度仍含 mnd,但稀疏 R 可减少实际乘法。能近似保范数的矩阵称 sketching matrix。

Randomized PCA 的完整链

先随机得到候选子空间,再用 QR 正交化为 QB=Q^\top X 把原矩阵投到该子空间,在较小的 B 上做 SVD。

QU_1 把左奇异向量抬回原空间,得到 QQ^\top X 的低秩近似。若随机子空间覆盖主导奇异方向,近似接近 PCA;否则质量下降。

把保证、直觉和算法对齐

JL 的对象是有限点集的两两距离。若所有点的距离都近似保持,许多依赖欧氏几何的下游任务仍可在低维空间运行;但坐标本身没有可解释的主成分顺序,也不保证最大化方差。

随机挑原坐标失败的反例来自稀疏差异:若关键差异恰好在未选坐标上,距离会归零。随机线性组合让每个输出坐标都混合多个输入坐标,使单个关键坐标的信息分散到多个观测。

目标维数 d 越大,随机误差尾部越小,但矩阵乘法和存储随 d 增长。稀疏随机矩阵减少乘法次数,是速度与集中性质之间的另一层取舍。

Randomized PCA 并不把随机投影结果直接当作最终主成分。它先用随机映射寻找近似列空间,再在该空间内运行确定性的 QR 和 SVD;随机性负责缩小搜索范围,SVD 负责在范围内排序。

最终近似 QQ^\top XXQ 张成子空间上的正交投影。若 Q 遗漏重要左奇异方向,对应信息无法由后续小矩阵 SVD 恢复,所以随机阶段的覆盖质量决定整体上限。

本单元在知识链中的位置

承接上一单元

U12 已能对 tall-and-skinny 矩阵分布式求 QR。

本单元任务

建立概率保距映射并组合 randomized PCA。

组内推进

P037 设问,P038-P040 建模型,P041 合成算法。

导向下一单元

用五个关键问题收束全章。

逐页详解P037-P041 · 5 页逐句翻译 · 本页解释
P037
从最优到随机

原页逐句翻译: 全局回顾。简要总结:数据有很多变量;用 SVD 计算 PCA;依据 PCA 结果忽略低贡献,只保留最“突出”的维度;基于 PCA“近似”继续执行任务。关于 PCA:它在小数据和 tall-and-skinny 大数据上都有效;它寻找“最佳”解。最佳解比随机解好多少?

本页解释: 这一页把确定性主线收束为低秩近似,并提出新问题。PCA 追求按方差意义最优的子空间,但求最优可能昂贵;随机投影改为用概率保证换取更低成本。

P038
Johnson-Lindenstrauss 保距

原页逐句翻译: 随机投影:构造保持点对距离的映射。设置与目标:把 \mathbb R^n 中的 m 个点 (u_i)_{1\le i\le n} 映射为 \mathbb R^d 中的 m 个点,且 d\ll n;对所有 i,j,确保 \lVert v_i\rVert_2\approx\lVert u_i\rVert_2\lVert v_i-v_j\rVert_2\approx\lVert u_i-u_j\rVert_2,式 (4.3)。Johnson-Lindenstrauss lemma 表明,随机投影后任意两点距离以高概率最多被 1\pm\varepsilon 因子扭曲。若 X^{\prime}=\frac{1}{\sqrt d}XR,其中 R\in\mathbb R^{n\times d} 的条目独立同分布且均值为零,则 X^{\prime} 更小,并在期望意义保留所有两两距离。

本页解释: 课件同一句写“m points”,却把点列下标上界写成 n,存在符号不一致;逐句翻译保留两者以便核对。随机矩阵把高维坐标混合到较低维空间,缩放因子控制投影后的平均能量。保证针对欧氏距离,并带有概率与误差参数;它不是 PCA 的最优方差方向,而是一次无需求协方差谱的保距嵌入。

P039
随机子空间的直觉

原页逐句翻译: 随机投影的直觉。把随机向量投到固定子空间:考虑 \mathbb R^nm 个点,均匀随机固定 k 个坐标;若两向量只在少数坐标不同,投影后距离可能彻底改变。把固定向量投到随机子空间:考虑 \mathbb R^nm 个点并投到 k 维子空间;只在少数坐标不同的向量会把差异“铺开”到所有坐标,避免遗漏“重要”坐标。生成 R=(r_{i,j}) 时,不同条目分布影响方差和误差尾界;r_{i,j} 独立同分布、均值为零,通常选关于零对称且方差为一的分布。

本页解释: 核心区别是“抽若干原坐标”与“先随机混合再降维”。混合让局部差异扩散,降低恰好漏掉关键信息的概率;条目分布决定集中速度,因此均值和方差条件不是装饰。

P040
Random projection 的边界

原页逐句翻译: 说明:随机投影通常不是代数意义的投影,常有 R^2\ne RR 的特征值也不一定属于 \{0,1\},它只是与投影相差 \varepsilon。式 (4.3) 的要求不能推广到其他范数。投影向量的范数期望为 \sqrt{d/n},误差随 d 指数减小。时间复杂度为 \mathcal O(mnd)。投影矩阵可以做得非常稀疏,以很少精度损失换取明显加速。若矩阵 M 使 Mx 在小误差内保持 x 的范数,则称 M 为 sketching matrix。

本页解释: P038 的 R\in\mathbb R^{n\times d} 通常是矩形矩阵,此时 R^2 与特征值都没有定义。P040 所列 R^2=R 和特征值属于 \{0,1\} 是方阵投影算子的代数判据,不能直接套到该矩形随机映射矩阵。这里的“projection”是算法名称;课件其余结论限定在二范数,稀疏随机矩阵可减少乘法次数,但精度仍由目标维数与分布控制。

P041
Randomized PCA

原页逐句翻译: 大数据降维要保留数据的重要结构性质:tall-and-skinny 情形可用 SVD;其他情形可用随机投影;PCA 能保证好结果,随机投影则未必。Randomized PCA:随机投影 XX^{\prime};对 X^{\prime}=QR 做 QR;计算 B=Q^\top X;对 B=U_1\Sigma V^\top 做 SVD;用 QQ^\top X=Q(U_1\Sigma V^\top)=U\Sigma V^\top 近似 X 的 SVD;再按通常方式完成 PCA。

本页解释: 随机投影先找到一个较小的候选列空间,QR 把它正交化;随后只需在压缩矩阵上做 SVD。最后左乘 Q 把结果抬回原空间。误差来自候选子空间未完全覆盖 X 的主导奇异方向。

本单元页间主线: P037 设问,P038-P040 建模型,P041 合成算法。

上下文补足: guarantee scope模型边界

上下文补足:课件只给出 JL lemma 的定性版本。具体所需维数 d 与点数、误差和失败概率有关;此处不添加课件未给出的常数或完整界,只保留“高概率、二范数、乘性误差”三项适用条件。

学生追问: P038-P041 · random projection 到 randomized PCA 详细讲解学生追问 / randomized PCA

问题: 这四页先说保距,再讨论 random matrix 是否算 projection,最后突然出现 QR 和 SVD。主线是:random projection 先提供便宜的 sketch;randomized PCA 再用 sketch 找到候选 subspace,并在其中恢复近似 SVD。

0. 先把 random projection 讲成一句普通话

random projection 是:随机生成一组新的低维坐标轴,然后让所有数据点都在这同一组坐标轴上计算新坐标。它不是把每个点随机扔到一个位置,也不是为每个点重新抽一次矩阵。

把随机矩阵按列写开:

R=\begin{pmatrix}r_1&r_2&\cdots&r_d\end{pmatrix}\in\mathbb R^{n\times d}
x'=\frac1{\sqrt d}xR=\frac1{\sqrt d}\begin{pmatrix}\langle x,r_1\rangle&\langle x,r_2\rangle&\cdots&\langle x,r_d\rangle\end{pmatrix}
  • 原来的点 x\in\mathbb R^nn 个 coordinates。
  • R 的第 jr_j\in\mathbb R^n 是随机产生的第 j 个新方向。
  • 新坐标 x'_j=\langle x,r_j\rangle/\sqrt dx 与这个方向的 dot product。
  • 随机性只发生在最开始抽取 R。一旦 R 固定,x\mapsto xR/\sqrt d 就是普通的 deterministic linear transformation。

手算:把两个三维点映到二维

取两个三维点,并从 Rademacher distribution 中抽到一个 entries 只有 \pm1 的矩阵:

x_1=\begin{pmatrix}1&0&0\end{pmatrix},\qquad x_2=\begin{pmatrix}0&1&0\end{pmatrix},\qquad R=\begin{pmatrix}1&1\\1&-1\\-1&1\end{pmatrix}
x'_1=\frac1{\sqrt2}x_1R=\frac1{\sqrt2}\begin{pmatrix}1&1\end{pmatrix}
x'_2=\frac1{\sqrt2}x_2R=\frac1{\sqrt2}\begin{pmatrix}1&-1\end{pmatrix}

三维空间里的距离是:

\lVert x_1-x_2\rVert_2=\left\lVert\begin{pmatrix}1&-1&0\end{pmatrix}\right\rVert_2=\sqrt2
\lVert x'_1-x'_2\rVert_2=\left\lVert\frac1{\sqrt2}\begin{pmatrix}0&2\end{pmatrix}\right\rVert_2=\sqrt2

这次随机抽取恰好把这两个点的距离完整保留下来。一般不会每个距离都完全相等;random projection 要求的是:当 d 足够大时,所有关注的距离以高概率只发生小比例误差。

方法低维方向从哪里来是否读取数据后再选方向
直接删 coordinates原坐标轴中的若干条通常不需要
random projection随机矩阵 R 的列不需要;先抽 R,再统一映射
PCA数据 covariance/SVD 得到的 principal directions需要;方向由数据决定

最容易记错的点:random projection 的输出 XR 可以直接作为低维数据;randomized PCA 中的 X\Omega 只是用来探测 dominant subspace 的中间结果,后面还要经过 QR 和 small SVD。

1. P038 的维度和目标

统一写成:有 m 个 points u_1,\ldots,u_m\in\mathbb R^n,希望映射到 v_i\in\mathbb R^d,其中 d\ll n

X\in\mathbb R^{m\times n},\qquad R\in\mathbb R^{n\times d},\qquad X'=\frac1{\sqrt d}XR\in\mathbb R^{m\times d}
\lVert v_i\rVert_2\approx\lVert u_i\rVert_2,\qquad \lVert v_i-v_j\rVert_2\approx\lVert u_i-u_j\rVert_2

因为 pairwise distance 也是 difference vector 的 norm,只要同一个 random map 对所有 relevant vectors 近似保 norm,就能同时近似保 pairwise distances。

2. 为什么 1/\sqrt d 能校准 norm

假设 R_{jk} iid、mean 0、variance 1。对固定 row vector x

\mathbb E\left[\left\lVert\frac1{\sqrt d}xR\right\rVert_2^2\right]=\frac1d\sum_{\ell=1}^d\mathbb E\left[\left(\sum_{j=1}^n x_jR_{j\ell}\right)^2\right]=\lVert x\rVert_2^2

cross terms 在 expectation 中消失,variance-1 terms 留下 \sum_jx_j^2。Johnson-Lindenstrauss lemma 进一步给出 concentration:对有限的 m 个点,常见量级是 d=O(\varepsilon^{-2}\log m),使所有 pairwise distances 以高概率落在 1\pm\varepsilon 范围内。

3. P039:固定 coordinates 为什么容易漏信息

  • 如果只随机保留若干原始 coordinates,两点的差异刚好集中在被丢掉的 coordinates 上,distance 会突然变成 0。
  • random subspace 会先把原坐标混合;一个集中在少数 coordinates 的差异会扩散到多个 projected coordinates,不容易被整体漏掉。
  • 所有 points 必须复用同一个 R。每个 point 使用不同 random matrix,pairwise distance 就失去共同坐标系。

常见 entries 可以选 Gaussian,或 Rademacher:

R_{jk}\sim N(0,1)
P(R_{jk}=1)=P(R_{jk}=-1)=\frac12

二者都满足 zero mean 和 unit variance;不同 distribution 会改变常数、tail bound 和乘法成本。

4. P040:为什么 random projection 往往不是代数意义的 projection

严格的 orthogonal projection matrix P 满足:

P^2=P,\qquad P^\top=P,\qquad \operatorname{eigenvalues}(P)\subseteq\{0,1\}

这里的 R\in\mathbb R^{n\times d} 通常是 rectangular,R^2 甚至没有定义;它只是一个 random embedding。课件说“不是 algebraic projection”,指的是它不要求 idempotent,而只要求 Euclidean geometry 近似保留。

缩放 convention 也要分开:

  • 课件公式使用 iid variance-1 entries 和 1/\sqrt d 缩放,此时 expected squared norm 等于原 norm。
  • 如果取未重新缩放的 random orthogonal d-dimensional subspace,projected norm 的典型比例会写成 \sqrt{d/n}。两种说法来自不同 normalization,不冲突。

保距结论主要针对 ℓ2。不能直接把同一证明搬到 ℓ1ℓ∞

5. P040 的复杂度和 sparse sketch

dense multiplication 的课件复杂度是:

X_{m\times n}R_{n\times d}:\qquad O(mnd)

如果 R 很 sparse,乘法只处理 nonzero entries,成本随 \operatorname{nnz}(R) 降低。能近似保 norm 的随机线性 map 常称为 sketching matrix。这里的“sketch”强调压缩后仍保留任务需要的结构,不表示每个 entry 都接近原值。

6. P041:randomized PCA 的矩阵尺寸逐步变化

设目标 rank 为 k,取 oversampled width ℓ=k+p

步骤矩阵尺寸作用
random range finderY=X\Omegam×ℓ捕获 dominant column space
thin QRY=QR_YQ:m×ℓ得到 orthonormal basis
compressB=Q^\top Xℓ×n把大矩阵压进候选 subspace
small SVDB=U_B\Sigma V^\topU_B:ℓ×ℓ在小矩阵上找 directions
lift backU=QU_Bm×ℓ映回原 row space
QQ^\top X=Q(Q^\top X)=QB=Q(U_B\Sigma V^\top)=(QU_B)\Sigma V^\top=U\Sigma V^\top

QQ^\top XX 在 sampled column space 上的 projection。若 Q 已捕获 dominant range,它就接近最佳 low-rank approximation。

7. random projection 和 randomized PCA 不要混成一件事

random projectionrandomized PCA
随机矩阵用途直接生成低维 representation XR只用来寻找候选 subspace
后续 QR/SVD通常不需要需要 QR 和 small SVD
最优性近似保距,不追求最佳 variance近似 PCA dominant subspace
最终 directionsrandom directionssmall SVD 得到的 V_k

配套数值过程见置顶的 random projection / randomized PCA 手算块

8. randomized PCA 的成本、误差和 power iteration

ℓ≪n 时,常见 dense 成本可概括为:

O(mn\ell)+O(m\ell^2)+O(n\ell^2)
  • O(mnℓ) 来自与 X 的大矩阵乘法,通常是主导项。
  • p 个 oversampling columns 降低漏掉 dominant directions 的风险。
  • singular values 衰减慢时,可使用 Y=(XX^\top)^qX\Omega 做 power iteration;它放大谱间距,但每增加一次 q 都增加对数据的 passes 和矩阵乘法。
  • PCA directions 是 V_k;scores 是 XV_k\approx U_k\Sigma_k

一句话: P038-P040 说明 random sketch 为什么能近似保留 Euclidean geometry;P041 把这个 sketch 当作 range finder,再用 QR 和 small SVD 把随机子空间修正成近似 PCA 子空间。

学生追问: P038-P040 · random projection 后 norm 与距离到底是什么关系学生追问 / JL 保距

问题: 降维以后 \ell_2 norm 还是原来一样吗?两个点之间的 distance 到底是相等、期望相等,还是近似相等?

1. 先给准确答案:通常不严格相等

定义 random map:

f(x)=\frac1{\sqrt d}xR,\qquad R\in\mathbb R^{n\times d}
命题是否成立真正含义
\lVert f(x)\rVert_2=\lVert x\rVert_2一般不严格成立某一次随机抽到的 R 会产生误差
\mathbb E_R\lVert f(x)\rVert_2^2=\lVert x\rVert_2^2成立对随机矩阵的所有可能抽取取平均,squared norm 无偏
\lVert f(x)\rVert_2\approx\lVert x\rVert_2以高概率成立d 足够大时,单次抽取也大概率接近期望

所以“期望完全相等”和“这一次计算完全相等”是两句话。课件中的 1/\sqrt d 正是用来校准期望;若去掉它,在 entries variance 为 1 时会有:

\mathbb E_R\lVert xR\rVert_2^2=d\lVert x\rVert_2^2

2. JL lemma 给出的“近似相等”怎样写

对一个固定向量 x,希望单次随机映射满足:

(1-\varepsilon)\lVert x\rVert_2^2\leq\lVert f(x)\rVert_2^2\leq(1+\varepsilon)\lVert x\rVert_2^2

若直接比较 norm 而不是 squared norm,则是:

\sqrt{1-\varepsilon}\,\lVert x\rVert_2\leq\lVert f(x)\rVert_2\leq\sqrt{1+\varepsilon}\,\lVert x\rVert_2

\varepsilon 是允许的 relative distortion。它越小,要求的 projected dimension d 越大。

3. 为什么保 norm 会推出保 pairwise distance

distance 本身就是 difference vector 的 norm。因为 f 是 linear map:

f(x_i)-f(x_j)=f(x_i-x_j)
(1-\varepsilon)\lVert x_i-x_j\rVert_2^2\leq\lVert f(x_i)-f(x_j)\rVert_2^2\leq(1+\varepsilon)\lVert x_i-x_j\rVert_2^2

因此要保留 m 个点的所有 pairwise distances,本质上要让同一个 R 同时近似保留所有 difference vectors x_i-x_j 的 norm。

4. 为什么不可能对整个 \mathbb R^n 的所有向量都保距

d<n 时,map x\mapsto xR 一定有 nontrivial null space:

\dim\ker(R)\geq n-d>0
\exists z\neq0:\quad zR=0\quad\Longrightarrow\quad\lVert f(z)\rVert_2=0\neq\lVert z\rVert_2

这里把 row-vector map 的 kernel 简写成 \ker(R)。结论是:random projection 只能对预先给定的有限数据集高概率保距,不能同时保住空间中的每一个向量。

5. 同一个 3\to2 例子也能出现距离误差

继续使用前一个块中的随机矩阵:

R=\begin{pmatrix}1&1\\1&-1\\-1&1\end{pmatrix},\qquad x_2=\begin{pmatrix}0&1&0\end{pmatrix},\qquad x_3=\begin{pmatrix}0&0&1\end{pmatrix}
f(x_2)=\frac1{\sqrt2}\begin{pmatrix}1&-1\end{pmatrix},\qquad f(x_3)=\frac1{\sqrt2}\begin{pmatrix}-1&1\end{pmatrix}
\lVert x_2-x_3\rVert_2=\sqrt2
\lVert f(x_2)-f(x_3)\rVert_2=2

这次 distance 被放大了 2/\sqrt2=\sqrt2 倍。原因不是公式失效,而是这个玩具例子只有 d=2,没有足够维度给出小误差保证。前一个点对恰好完全保距,也不代表所有点对都会完全保距。

6. d 要多大

m 个固定数据点,若允许 relative distortion \varepsilon,并把失败概率控制在 \delta 附近,典型 JL 量级是:

d=O\!\left(\frac{\log(m/\delta)}{\varepsilon^2}\right)
  • m 增大时,d 只按 logarithm 增长。
  • 允许误差减半时,d 大约要增大到原来的四倍。
  • 这是 high-probability bound,不是说每次随机抽取都必然成功。

一句话: random projection 后的 norm 和 distance 通常不严格相等;经过 1/\sqrt d 校准后,它们在期望上无偏,并在 d 足够大时对有限数据集以高概率近似保持。

学生追问: P039 · fixed coordinates 是什么意思学生追问 / coordinate selection

问题: “只随机保留若干 fixed coordinates”中的 fixed coordinates 是什么?它和 random subspace 有什么区别?

1. coordinate 就是原始 feature 所在的坐标轴

设一个数据点有四个原始 features:

x=\begin{pmatrix}x_1&x_2&x_3&x_4\end{pmatrix}=x_1e_1+x_2e_2+x_3e_3+x_4e_4
e_1=\begin{pmatrix}1\\0\\0\\0\end{pmatrix},\quad e_2=\begin{pmatrix}0\\1\\0\\0\end{pmatrix},\quad e_3=\begin{pmatrix}0\\0\\1\\0\end{pmatrix},\quad e_4=\begin{pmatrix}0\\0\\0\\1\end{pmatrix}

e_1,\ldots,e_4 就是 original coordinate axes。例如四列分别表示 height、weight、age、income,那么“保留 coordinate 1 和 2”就是只保留 height、weight 两列。

这里的 fixed 表示方向仍固定在原始坐标轴上,没有 rotation,也没有把多个 features 混合起来。可以随机决定保留哪几列,但选中的方向仍只能来自 e_1,\ldots,e_n

2. coordinate selection 在矩阵上是什么

如果只保留第 1、2 个 coordinates,可以写成 selector matrix:

P_S=\begin{pmatrix}e_1&e_2\end{pmatrix}=\begin{pmatrix}1&0\\0&1\\0&0\\0&0\end{pmatrix}
xP_S=\begin{pmatrix}x_1&x_2\end{pmatrix}

这个操作只是删掉 x_3,x_4。被删 coordinates 中的信息不会转移到保留下来的 coordinates。

3. 为什么差异可能直接消失

设两个点只在第 3 个 coordinate 上不同:

x=\begin{pmatrix}0&0&10&0\end{pmatrix},\qquad y=\begin{pmatrix}0&0&0&0\end{pmatrix}
\lVert x-y\rVert_2=10
xP_S=yP_S=\begin{pmatrix}0&0\end{pmatrix}\quad\Longrightarrow\quad\lVert xP_S-yP_S\rVert_2=0

因为 coordinate 3 被完整删除,原来大小为 10 的差异没有任何出口,distance 直接从 10 变成 0。

4. random subspace 怎样把差异混到多个新 coordinates

random projection 不要求新方向等于某个 e_i。它的每个新方向通常混合多个 original coordinates。用一个 4\to2 示意矩阵:

R=\begin{pmatrix}1&0\\0&1\\1&1\\1&-1\end{pmatrix},\qquad f(z)=\frac1{\sqrt2}zR
f(x)-f(y)=\frac1{\sqrt2}\begin{pmatrix}10&10\end{pmatrix}
\lVert f(x)-f(y)\rVert_2=10

原本只在 coordinate 3 上的差异,同时进入了两个 projected coordinates。这里恰好保距只是为了展示 mixing;一般的 random projection 仍然只保证近似保距。

coordinate selectionrandom subspace / random projection
新方向从原轴 e_i 中挑选多个原轴的随机线性组合
一个输出 coordinate通常等于某一个 x_i等于 \langle x,r_j\rangle
稀疏差异对应原轴被删时会完全消失通常分散进入多个输出 coordinates

5. 为什么所有 points 必须复用同一个坐标系

当所有点使用同一个 R 时,两个投影点的差可以写成:

f(x_i)-f(x_j)=\frac1{\sqrt d}(x_i-x_j)R

于是 projected distance 仍对应原来的 difference vector x_i-x_j。如果两个点分别使用 R_iR_j

\frac1{\sqrt d}x_iR_i-\frac1{\sqrt d}x_jR_j\neq\frac1{\sqrt d}(x_i-x_j)R

两组数字分别以不同随机方向为坐标轴,直接相减没有统一几何意义。coordinate selection 也一样:所有 points 必须保留同一组 columns。

一句话: fixed coordinates 是原始 features 对应的坐标轴;随机保留 coordinates 只是随机删列,而 random projection 会先用随机线性组合形成一套新的共享坐标轴。

读完本单元应掌握: 能区分 PCA 最优子空间与随机保距,并复述 randomized PCA 的 QR-SVD 流程。
U14 · 总结P042-P043 / 43

五个关键问题与课程结束

为什么合在一起讲: 关键点页给出完整回顾入口,结束页只关闭课程;合并后保持结尾连续。

完整讲解

核心思想: 选择方法时先确定要保留的结构,再看数据形状与资源约束:PCA 求最大方差子空间,余弦采样控制通信,随机投影以概率近似保距。
X=U\Sigma V^\top
五个问题如何对应主线

降维通过排序并截断主成分完成;SVD 的右奇异向量给 PCA 方向,奇异值平方给方差。

Cosine similarity 去除向量长度影响;tall-and-skinny 可用 Gram MapReduce、cosine sampling 或 distributed QR;random projection 用概率保证换取快速近似。

回顾顺序

先确认数学对象和保证,再比较实现代价:精确或近似、单机或分布式、通信或计算、最优子空间或保距随机映射。P043 没有新增内容。

本单元在知识链中的位置

承接上一单元

U_13 完成随机化路线。

本单元任务

把全讲压缩成五个可检查的问题。

组内推进

P042 回顾,P043 结束。

导向下一单元

回到导航按问题定位对应单元。

逐页详解P042-P043 · 2 页逐句翻译 · 本页解释
P042
关键问题回顾

原页逐句翻译: 关键点:如何执行降维?SVD 与 PCA 有什么关系?什么是 cosine similarity?如何处理 tall-and-skinny 大数据?什么是 random projections?

本页解释: 五个问题依次对应本讲的完整知识链:截断主成分、数据矩阵与协方差谱、归一化方向相似度、分布式 Gram/QR、概率保距与 randomized PCA。

P043
课程结束

原页逐句翻译: 谢谢!

本页解释: 结束页没有新增技术内容。回看时可从 P042 的五个问题进入对应单元,并用原图和逐页翻译核对符号。

本单元页间主线: P042 回顾,P043 结束。

读完本单元应掌握: 能独立回答 P042 的五个问题并指出各自来源单元。