卷一能做什么与不能做什么
在初阶课程里你学过对角化:当方阵 A 拥有足够多的特征向量时,A = P D P^-1。谱定理对对称矩阵把这一点变得极为优美——正交的 P 与实特征值。但你遇到的大多数矩阵并非方阵,许多方阵根本不可对角化。我们需要一个永不失效的分解。
奇异值分解正是这样的分解。每个 m×n 实矩阵 A 都可写成 A = U Sigma V^T,其中 U 与 V 是正交矩阵,Sigma 是非负对角矩阵。没有假设,没有例外。
两组基,而非一组
对角化只用一组基:输入与输出用同一组特征基。这正是它如此受限的原因。SVD 的关键一步是放松这一点:在输入空间用一组标准正交基 v_1, ..., v_n,在输出空间用一组可能不同的标准正交基 u_1, ..., u_m。V 的列是右[[singular-vectors|奇异向量]],U 的列是左奇异向量。
定义关系极其简洁:A v_i = sigma_i u_i。输入一个右奇异向量,输出一个缩放后的左奇异向量。缩放因子 sigma_i >= 0 就是奇异值。把它与特征值关系 A x = lambda x 对比——后者输入与输出方向相同——见奇异值与特征值的对比。
一幅拉伸的图景
几何上,A 把单位球面映成一个椭球面——这就是 SVD 的几何。V^T 旋转输入,使奇异方向对齐坐标轴;Sigma 沿每个轴按 sigma_i 拉伸;U 把结果旋转到位。旋转、拉伸、再旋转:这就是一切线性映射的全部内容。
A 2x2 example: A = [3, 0; 4, 5]
The unit circle { x : ||x|| = 1 } maps to an ellipse.
The longest radius of that ellipse = sigma_1 (largest stretch)
The shortest radius = sigma_2 (smallest stretch)
Direction v_1 (input) is sent to direction u_1 (output), scaled by sigma_1.
Direction v_2 (input) is sent to direction u_2 (output), scaled by sigma_2.
So A = U * diag(sigma_1, sigma_2) * V^T with
columns of V = v_1, v_2 (orthonormal input axes)
columns of U = u_1, u_2 (orthonormal output axes)