SVD在最小二乘问题求解中的应用
字数 1327 2025-10-28 08:36:45

SVD在最小二乘问题求解中的应用

题目描述
考虑一个超定线性方程组 Ax = b,其中 A ∈ R^(m×n) (m > n),b ∈ R^m。由于方程数量多于未知数数量,通常不存在精确解。最小二乘问题的目标是寻找一个向量 x ∈ R^n,使得残差向量 r = b - Ax 的 2-范数最小,即最小化 ||b - Ax||₂。

解题过程

第一步:问题转化与正规方程
最小化 ||b - Ax||₂ 等价于最小化其平方:
||b - Ax||₂² = (b - Ax)^T (b - Ax)
通过求导并令导数为零,可以得到著名的正规方程:
A^T A x = A^T b
如果矩阵 A 是列满秩的(即 rank(A) = n),那么 A^T A 是 n×n 的对称正定矩阵,正规方程存在唯一解:x = (A^T A)^{-1} A^T b。

第二步:正规方程的数值缺陷
尽管正规方程在理论上是正确的,但在数值计算中直接求解可能存在风险。当矩阵 A 的条件数较大(即病态问题)时,计算 A^T A 会放大条件数,因为 cond(A^T A) ≈ [cond(A)]²。这会导致解 x 对数据中的微小误差非常敏感,数值不稳定。

第三步:引入SVD进行稳健求解
奇异值分解(SVD)提供了另一种更数值稳定的求解方法。对矩阵 A 进行SVD:
A = U Σ V^T
其中:

  • U ∈ R^(m×m) 是正交矩阵(U^T U = I)
  • V ∈ R^(n×n) 是正交矩阵(V^T V = I)
  • Σ ∈ R^(m×n) 是矩形对角矩阵,其对角线元素 σ₁ ≥ σ₂ ≥ ... ≥ σₙ ≥ 0 称为奇异值。

第四步:利用SVD表达最小二乘解
将SVD代入残差表达式:
||b - Ax||₂ = ||b - U Σ V^T x||₂
由于正交变换不改变2-范数(||Uy||₂ = ||y||₂),令 y = V^T x,则:
||b - Ax||₂ = ||U^T b - Σ y||₂
进一步展开,利用U的分块结构(U = [U₁ U₂],其中U₁对应前n列),可以得到最小二乘解为:
x = V Σ⁺ U^T b
其中 Σ⁺ 是 Σ 的伪逆,它是一个 n×m 的对角矩阵,其对角线元素为:
Σ⁺_ii = 1/σ_i (如果 σ_i > 0)
Σ⁺_ii = 0 (如果 σ_i = 0)

第五步:处理秩亏情况
当 A 不是列满秩(即 rank(A) = r < n)时,正规方程法会失败(因为 A^T A 不可逆),但SVD方法依然有效。此时,我们只取非零奇异值对应的部分,解可以写为:
x = V₁ Σ₁⁻¹ U₁^T b
其中 Σ₁ 是 r×r 的对角矩阵包含非零奇异值,V₁ 和 U₁ 是对应的奇异向量。这个解是所有最小二乘解中 2-范数最小的解,称为最小范数最小二乘解。

第六步:数值稳定性优势
SVD方法的主要优势在于数值稳定性。通过直接使用奇异值 σ_i,避免了计算 A^T A 带来的条件数平方问题。在计算中,我们可以设定一个阈值,将非常小的奇异值视为零,从而自动处理秩亏或接近秩亏的矩阵,有效控制误差。

SVD在最小二乘问题求解中的应用 题目描述 考虑一个超定线性方程组 Ax = b,其中 A ∈ R^(m×n) (m > n),b ∈ R^m。由于方程数量多于未知数数量,通常不存在精确解。最小二乘问题的目标是寻找一个向量 x ∈ R^n,使得残差向量 r = b - Ax 的 2-范数最小,即最小化 ||b - Ax||₂。 解题过程 第一步:问题转化与正规方程 最小化 ||b - Ax||₂ 等价于最小化其平方: ||b - Ax||₂² = (b - Ax)^T (b - Ax) 通过求导并令导数为零,可以得到著名的正规方程: A^T A x = A^T b 如果矩阵 A 是列满秩的(即 rank(A) = n),那么 A^T A 是 n×n 的对称正定矩阵,正规方程存在唯一解:x = (A^T A)^{-1} A^T b。 第二步:正规方程的数值缺陷 尽管正规方程在理论上是正确的,但在数值计算中直接求解可能存在风险。当矩阵 A 的条件数较大(即病态问题)时,计算 A^T A 会放大条件数,因为 cond(A^T A) ≈ [ cond(A) ]²。这会导致解 x 对数据中的微小误差非常敏感,数值不稳定。 第三步:引入SVD进行稳健求解 奇异值分解(SVD)提供了另一种更数值稳定的求解方法。对矩阵 A 进行SVD: A = U Σ V^T 其中: U ∈ R^(m×m) 是正交矩阵(U^T U = I) V ∈ R^(n×n) 是正交矩阵(V^T V = I) Σ ∈ R^(m×n) 是矩形对角矩阵,其对角线元素 σ₁ ≥ σ₂ ≥ ... ≥ σₙ ≥ 0 称为奇异值。 第四步:利用SVD表达最小二乘解 将SVD代入残差表达式: ||b - Ax||₂ = ||b - U Σ V^T x||₂ 由于正交变换不改变2-范数(||Uy||₂ = ||y||₂),令 y = V^T x,则: ||b - Ax||₂ = ||U^T b - Σ y||₂ 进一步展开,利用U的分块结构(U = [ U₁ U₂ ],其中U₁对应前n列),可以得到最小二乘解为: x = V Σ⁺ U^T b 其中 Σ⁺ 是 Σ 的伪逆,它是一个 n×m 的对角矩阵,其对角线元素为: Σ⁺_ ii = 1/σ_ i (如果 σ_ i > 0) Σ⁺_ ii = 0 (如果 σ_ i = 0) 第五步:处理秩亏情况 当 A 不是列满秩(即 rank(A) = r < n)时,正规方程法会失败(因为 A^T A 不可逆),但SVD方法依然有效。此时,我们只取非零奇异值对应的部分,解可以写为: x = V₁ Σ₁⁻¹ U₁^T b 其中 Σ₁ 是 r×r 的对角矩阵包含非零奇异值,V₁ 和 U₁ 是对应的奇异向量。这个解是所有最小二乘解中 2-范数最小的解,称为最小范数最小二乘解。 第六步:数值稳定性优势 SVD方法的主要优势在于数值稳定性。通过直接使用奇异值 σ_ i,避免了计算 A^T A 带来的条件数平方问题。在计算中,我们可以设定一个阈值,将非常小的奇异值视为零,从而自动处理秩亏或接近秩亏的矩阵,有效控制误差。