基于Krylov子空间的LSMR算法求解线性最小二乘问题
字数 4706 2025-12-21 17:16:14

基于Krylov子空间的LSMR算法求解线性最小二乘问题

我将为你详细讲解这个算法,包括其背景、基本原理、推导过程和实现细节。

1. 问题背景与问题描述

线性最小二乘问题是线性代数中的经典问题:
给定矩阵 \(A \in \mathbb{R}^{m \times n}\)(通常 \(m \geq n\))和向量 \(b \in \mathbb{R}^m\),我们希望找到 \(x \in \mathbb{R}^n\) 使得残差范数最小:

\[\min_{x} \|Ax - b\|_2 \]

传统解法的问题

  1. 正规方程法:求解 \(A^T A x = A^T b\),但当 \(A\) 条件数大时,\(A^T A\) 的条件数是 \(A\) 条件数的平方,数值不稳定
  2. QR分解:数值稳定但计算成本高,对大规模稀疏矩阵不高效
  3. 共轭梯度法(CG):只能用于对称正定系统

LSMR的诞生
LSMR(Least Squares Minimal Residual)是Christopher C. Paige和Michael A. Saunders在2011年提出的算法,专门为求解最小二乘问题而设计,是著名LSQR算法的改进版本。

2. 算法核心思想

LSMR的核心思想是:在Krylov子空间中寻找最小残差的解

Krylov子空间定义:

\[\mathcal{K}_k(A^T A, A^T b) = \text{span}\{A^T b, (A^T A)A^T b, \dots, (A^T A)^{k-1}A^T b\} \]

但LSMR实际上工作在更优的空间上。

3. 算法推导步骤

步骤1:双对角化过程(Golub-Kahan双对角化)

这是算法的关键预处理步骤:

初始化

\[\beta_1 u_1 = b, \quad \alpha_1 v_1 = A^T u_1 \]

其中 \(\beta_1 = \|b\|_2\)\(\alpha_1 = \|A^T u_1\|_2\),且 \(u_1\)\(v_1\) 是单位向量。

迭代过程(对 \(i = 1, 2, \dots\)):

  1. 正向迭代:

\[\beta_{i+1} u_{i+1} = A v_i - \alpha_i u_i \]

其中 \(\beta_{i+1} = \|A v_i - \alpha_i u_i\|_2\)

  1. 反向迭代:

\[\alpha_{i+1} v_{i+1} = A^T u_{i+1} - \beta_{i+1} v_i \]

其中 \(\alpha_{i+1} = \|A^T u_{i+1} - \beta_{i+1} v_i\|_2\)

结果
经过 \(k\) 步迭代后,我们得到:

\[U_{k+1} = [u_1, u_2, \dots, u_{k+1}] \in \mathbb{R}^{m \times (k+1)}, \quad U_{k+1}^T U_{k+1} = I \]

\[ V_k = [v_1, v_2, \dots, v_k] \in \mathbb{R}^{n \times k}, \quad V_k^T V_k = I \]

\[ B_k = \begin{bmatrix} \alpha_1 \\ \beta_2 & \alpha_2 \\ & \beta_3 & \alpha_3 \\ & & \ddots & \ddots \\ & & & \beta_k & \alpha_k \\ & & & & \beta_{k+1} \end{bmatrix} \in \mathbb{R}^{(k+1) \times k} \]

满足:

\[A V_k = U_{k+1} B_k \]

\[ A^T U_{k+1} = V_k B_k^T + \alpha_{k+1} v_{k+1} e_{k+1}^T \]

步骤2:问题转化

原始问题转化为:

\[\min_{x \in \mathcal{K}_k(A^T A, A^T b)} \|Ax - b\|_2 \]

由于 \(x = V_k y\) 对于某个 \(y \in \mathbb{R}^k\),我们有:

\[\|Ax - b\|_2 = \|A V_k y - b\|_2 = \|U_{k+1} B_k y - \beta_1 e_1\|_2 = \|B_k y - \beta_1 e_1\|_2 \]

因为 \(U_{k+1}\) 是列正交的。

关键点:原 \(m \times n\) 问题转化为 \((k+1) \times k\) 的双对角最小二乘问题,维度大大降低。

步骤3:LSMR的优化准则

与LSQR不同,LSMR最小化的是:

\[\|A^T (Ax - b)\|_2 \]

等价于正规方程的残差范数。

推导

\[A^T (A V_k y - b) = A^T (U_{k+1} B_k y - \beta_1 u_1) \]

\[ = (V_k B_k^T + \alpha_{k+1} v_{k+1} e_{k+1}^T) B_k y - \beta_1 A^T u_1 \]

\[ = V_k B_k^T B_k y + \alpha_{k+1} v_{k+1} e_{k+1}^T B_k y - \beta_1 \alpha_1 v_1 \]

定义 \(T_k = B_k^T B_k\),这是一个对称三对角矩阵:

\[T_k = \begin{bmatrix} \alpha_1^2 + \beta_2^2 & \alpha_2 \beta_2 \\ \alpha_2 \beta_2 & \alpha_2^2 + \beta_3^2 & \alpha_3 \beta_3 \\ & \alpha_3 \beta_3 & \alpha_3^2 + \beta_4^2 & \ddots \\ & & \ddots & \ddots & \alpha_k \beta_k \\ & & & \alpha_k \beta_k & \alpha_k^2 + \beta_{k+1}^2 \end{bmatrix} \]

步骤4:递推求解

LSMR通过QR分解和Givens旋转高效求解:

定义矩阵

\[R_k = \begin{bmatrix} \rho_1 & \theta_2 \\ & \rho_2 & \theta_3 \\ & & \ddots & \ddots \\ & & & \rho_{k-1} & \theta_k \\ & & & & \rho_k \end{bmatrix}, \quad \bar{R}_k = \begin{bmatrix} R_k \\ \phi_{k+1} e_k^T \end{bmatrix} \]

递推关系

  1. 初始化:

\[\rho_1 = \alpha_1, \quad \bar{\phi}_1 = \beta_1, \quad \phi_1 = \beta_1 \]

  1. 对于 \(i = 1, 2, \dots\):
    a. 应用Givens旋转消去 \(\beta_{i+1}\):

\[ \begin{bmatrix} c_i & s_i \\ -s_i & c_i \end{bmatrix} \begin{bmatrix} \rho_i \\ \beta_{i+1} \end{bmatrix} = \begin{bmatrix} \hat{\rho}_i \\ 0 \end{bmatrix} \]

其中 \(c_i^2 + s_i^2 = 1\)

b. 更新:

\[ \theta_{i+1} = s_i \alpha_{i+1}, \quad \rho_{i+1} = -c_i \alpha_{i+1} \]

c. 更新残差:

\[ \begin{bmatrix} \bar{\phi}_i \\ \phi_{i+1} \end{bmatrix} = \begin{bmatrix} c_i & s_i \\ -s_i & c_i \end{bmatrix} \begin{bmatrix} \phi_i \\ 0 \end{bmatrix} \]

5. 完整LSMR算法

算法伪代码

输入: A, b, 最大迭代次数k_max,容差tol
输出: 近似解x

1. 初始化:
   β₁ = ||b||₂, u₁ = b/β₁
   α₁ = ||Aᵀu₁||₂, v₁ = Aᵀu₁/α₁
   w₁ = v₁
   x = 0
   ρ̄₁ = α₁, ϕ̄₁ = β₁
   
2. for i = 1 to k_max do
   // 双对角化
   βᵢ₊₁uᵢ₊₁ = Avᵢ - αᵢuᵢ
   αᵢ₊₁vᵢ₊₁ = Aᵀuᵢ₊₁ - βᵢ₊₁vᵢ
   
   // 更新QR分解
   ρᵢ = sqrt(ρ̄ᵢ² + βᵢ₊₁²)
   cᵢ = ρ̄ᵢ/ρᵢ, sᵢ = βᵢ₊₁/ρᵢ
   θᵢ₊₁ = sᵢαᵢ₊₁
   ρ̄ᵢ₊₁ = -cᵢαᵢ₊₁
   ϕᵢ = cᵢϕ̄ᵢ
   ϕ̄ᵢ₊₁ = sᵢϕ̄ᵢ
   
   // 更新解
   ζᵢ = ϕᵢ/ρᵢ
   x = x + ζᵢwᵢ
   
   // 更新搜索方向
   wᵢ₊₁ = vᵢ₊₁ - (θᵢ₊₁/ρᵢ)wᵢ
   
   // 检查收敛
   if |ϕ̄ᵢ₊₁|/β₁ < tol then
       break
   end if
   
   // 重新正交化(可选,提高数值稳定性)
   for j = 1 to i do
       wᵢ₊₁ = wᵢ₊₁ - (wⱼᵀwᵢ₊₁)wⱼ
   end for
   wᵢ₊₁ = wᵢ₊₁/||wᵢ₊₁||₂
   
3. end for

6. LSMR的优势与特性

  1. 数值稳定性:相比LSQR,LSMR能更准确地求解病态问题
  2. 单调收敛:残差范数 \(\|A^T(Ax_k - b)\|_2\) 单调递减
  3. 无需额外存储:只需存储最近几个向量
  4. 自适应正则化:自动处理秩亏问题

7. 收敛性分析

重要性质

  • LSMR等价于MINRES方法应用于正规方程 \(A^T A x = A^T b\)
  • 残差满足:

\[ \|A^T(Ax_k - b)\|_2 = |\bar{\phi}_{k+1}| \]

  • 误差估计:

\[ \|x_k - x_*\|_2 \leq \frac{|\bar{\phi}_{k+1}|}{\sigma_{min}(A)} \]

其中 \(\sigma_{min}(A)\) 是A的最小奇异值

8. 实际应用中的考虑

预处理技术
为了加速收敛,常用预处理:

\[\min_{x} \|AM^{-1}y - b\|_2, \quad x = M^{-1}y \]

其中M是预处理子,通常取为对角矩阵或不完全Cholesky分解。

停止准则

  1. 相对残差:\(\|A^T(Ax - b)\|_2 / \|A^T b\|_2 < \text{tol}\)
  2. 迭代次数限制
  3. 残差不再显著下降

内存优化

  • 使用矩阵-向量乘积而非显式存储A
  • 只存储最近的几个向量而非全部基向量
  • 实现短递归(3项递推关系)

9. 与相关算法的比较

特性 LSQR LSMR CGNR
最小化目标 |Ax-b|₂ |Aᵀ(Ax-b)|₂ |Aᵀ(Ax-b)|₂
稳定性 更好 较差
存储需求 O(m+n) O(m+n) O(m+n)
适合问题 良态最小二乘 病态最小二乘 对称正定正规方程

10. 应用场景

  1. 大规模稀疏最小二乘:如CT重建、图像处理
  2. 正则化问题:Tikhonov正则化的求解
  3. 矩阵补全:协同过滤推荐系统
  4. 压缩感知:稀疏信号恢复
  5. 大地测量:GPS定位等大规模平差问题

LSMR算法将大规模最小二乘问题转化为一系列小型三对角子问题,通过Krylov子空间方法高效求解,兼具数值稳定性和计算效率,是大规模稀疏最小二乘问题的首选算法之一。

基于Krylov子空间的LSMR算法求解线性最小二乘问题 我将为你详细讲解这个算法,包括其背景、基本原理、推导过程和实现细节。 1. 问题背景与问题描述 线性最小二乘问题 是线性代数中的经典问题: 给定矩阵 \( A \in \mathbb{R}^{m \times n} \)(通常 \( m \geq n \))和向量 \( b \in \mathbb{R}^m \),我们希望找到 \( x \in \mathbb{R}^n \) 使得残差范数最小: \[ \min_ {x} \|Ax - b\|_ 2 \] 传统解法的问题 : 正规方程法:求解 \( A^T A x = A^T b \),但当 \( A \) 条件数大时,\( A^T A \) 的条件数是 \( A \) 条件数的平方,数值不稳定 QR分解:数值稳定但计算成本高,对大规模稀疏矩阵不高效 共轭梯度法(CG):只能用于对称正定系统 LSMR的诞生 : LSMR(Least Squares Minimal Residual)是Christopher C. Paige和Michael A. Saunders在2011年提出的算法,专门为求解最小二乘问题而设计,是著名LSQR算法的改进版本。 2. 算法核心思想 LSMR的核心思想是: 在Krylov子空间中寻找最小残差的解 Krylov子空间 定义: \[ \mathcal{K}_ k(A^T A, A^T b) = \text{span}\{A^T b, (A^T A)A^T b, \dots, (A^T A)^{k-1}A^T b\} \] 但LSMR实际上工作在更优的空间上。 3. 算法推导步骤 步骤1:双对角化过程(Golub-Kahan双对角化) 这是算法的关键预处理步骤: 初始化 : \[ \beta_ 1 u_ 1 = b, \quad \alpha_ 1 v_ 1 = A^T u_ 1 \] 其中 \( \beta_ 1 = \|b\|_ 2 \),\( \alpha_ 1 = \|A^T u_ 1\|_ 2 \),且 \( u_ 1 \) 和 \( v_ 1 \) 是单位向量。 迭代过程 (对 \( i = 1, 2, \dots \)): 正向迭代: \[ \beta_ {i+1} u_ {i+1} = A v_ i - \alpha_ i u_ i \] 其中 \( \beta_ {i+1} = \|A v_ i - \alpha_ i u_ i\|_ 2 \) 反向迭代: \[ \alpha_ {i+1} v_ {i+1} = A^T u_ {i+1} - \beta_ {i+1} v_ i \] 其中 \( \alpha_ {i+1} = \|A^T u_ {i+1} - \beta_ {i+1} v_ i\|_ 2 \) 结果 : 经过 \( k \) 步迭代后,我们得到: \[ U_ {k+1} = [ u_ 1, u_ 2, \dots, u_ {k+1}] \in \mathbb{R}^{m \times (k+1)}, \quad U_ {k+1}^T U_ {k+1} = I \] \[ V_ k = [ v_ 1, v_ 2, \dots, v_ k] \in \mathbb{R}^{n \times k}, \quad V_ k^T V_ k = I \] \[ B_ k = \begin{bmatrix} \alpha_ 1 \\ \beta_ 2 & \alpha_ 2 \\ & \beta_ 3 & \alpha_ 3 \\ & & \ddots & \ddots \\ & & & \beta_ k & \alpha_ k \\ & & & & \beta_ {k+1} \end{bmatrix} \in \mathbb{R}^{(k+1) \times k} \] 满足: \[ A V_ k = U_ {k+1} B_ k \] \[ A^T U_ {k+1} = V_ k B_ k^T + \alpha_ {k+1} v_ {k+1} e_ {k+1}^T \] 步骤2:问题转化 原始问题转化为: \[ \min_ {x \in \mathcal{K}_ k(A^T A, A^T b)} \|Ax - b\|_ 2 \] 由于 \( x = V_ k y \) 对于某个 \( y \in \mathbb{R}^k \),我们有: \[ \|Ax - b\|_ 2 = \|A V_ k y - b\| 2 = \|U {k+1} B_ k y - \beta_ 1 e_ 1\|_ 2 = \|B_ k y - \beta_ 1 e_ 1\| 2 \] 因为 \( U {k+1} \) 是列正交的。 关键点 :原 \( m \times n \) 问题转化为 \( (k+1) \times k \) 的双对角最小二乘问题,维度大大降低。 步骤3:LSMR的优化准则 与LSQR不同,LSMR最小化的是: \[ \|A^T (Ax - b)\|_ 2 \] 等价于正规方程的残差范数。 推导 : \[ A^T (A V_ k y - b) = A^T (U_ {k+1} B_ k y - \beta_ 1 u_ 1) \] \[ = (V_ k B_ k^T + \alpha_ {k+1} v_ {k+1} e_ {k+1}^T) B_ k y - \beta_ 1 A^T u_ 1 \] \[ = V_ k B_ k^T B_ k y + \alpha_ {k+1} v_ {k+1} e_ {k+1}^T B_ k y - \beta_ 1 \alpha_ 1 v_ 1 \] 定义 \( T_ k = B_ k^T B_ k \),这是一个对称三对角矩阵: \[ T_ k = \begin{bmatrix} \alpha_ 1^2 + \beta_ 2^2 & \alpha_ 2 \beta_ 2 \\ \alpha_ 2 \beta_ 2 & \alpha_ 2^2 + \beta_ 3^2 & \alpha_ 3 \beta_ 3 \\ & \alpha_ 3 \beta_ 3 & \alpha_ 3^2 + \beta_ 4^2 & \ddots \\ & & \ddots & \ddots & \alpha_ k \beta_ k \\ & & & \alpha_ k \beta_ k & \alpha_ k^2 + \beta_ {k+1}^2 \end{bmatrix} \] 步骤4:递推求解 LSMR通过QR分解和Givens旋转高效求解: 定义矩阵 : \[ R_ k = \begin{bmatrix} \rho_ 1 & \theta_ 2 \\ & \rho_ 2 & \theta_ 3 \\ & & \ddots & \ddots \\ & & & \rho_ {k-1} & \theta_ k \\ & & & & \rho_ k \end{bmatrix}, \quad \bar{R} k = \begin{bmatrix} R_ k \\ \phi {k+1} e_ k^T \end{bmatrix} \] 递推关系 : 初始化: \[ \rho_ 1 = \alpha_ 1, \quad \bar{\phi}_ 1 = \beta_ 1, \quad \phi_ 1 = \beta_ 1 \] 对于 \( i = 1, 2, \dots \): a. 应用Givens旋转消去 \( \beta_ {i+1} \): \[ \begin{bmatrix} c_ i & s_ i \\ -s_ i & c_ i \end{bmatrix} \begin{bmatrix} \rho_ i \\ \beta_ {i+1} \end{bmatrix} \begin{bmatrix} \hat{\rho}_ i \\ 0 \end{bmatrix} \] 其中 \( c_ i^2 + s_ i^2 = 1 \) b. 更新: \[ \theta_ {i+1} = s_ i \alpha_ {i+1}, \quad \rho_ {i+1} = -c_ i \alpha_ {i+1} \] c. 更新残差: \[ \begin{bmatrix} \bar{\phi} i \\ \phi {i+1} \end{bmatrix} \begin{bmatrix} c_ i & s_ i \\ -s_ i & c_ i \end{bmatrix} \begin{bmatrix} \phi_ i \\ 0 \end{bmatrix} \] 5. 完整LSMR算法 算法伪代码 : 6. LSMR的优势与特性 数值稳定性 :相比LSQR,LSMR能更准确地求解病态问题 单调收敛 :残差范数 \( \|A^T(Ax_ k - b)\|_ 2 \) 单调递减 无需额外存储 :只需存储最近几个向量 自适应正则化 :自动处理秩亏问题 7. 收敛性分析 重要性质 : LSMR等价于MINRES方法应用于正规方程 \( A^T A x = A^T b \) 残差满足: \[ \|A^T(Ax_ k - b)\| 2 = |\bar{\phi} {k+1}| \] 误差估计: \[ \|x_ k - x_* \| 2 \leq \frac{|\bar{\phi} {k+1}|}{\sigma_ {min}(A)} \] 其中 \( \sigma_ {min}(A) \) 是A的最小奇异值 8. 实际应用中的考虑 预处理技术 : 为了加速收敛,常用预处理: \[ \min_ {x} \|AM^{-1}y - b\|_ 2, \quad x = M^{-1}y \] 其中M是预处理子,通常取为对角矩阵或不完全Cholesky分解。 停止准则 : 相对残差:\( \|A^T(Ax - b)\|_ 2 / \|A^T b\|_ 2 < \text{tol} \) 迭代次数限制 残差不再显著下降 内存优化 : 使用矩阵-向量乘积而非显式存储A 只存储最近的几个向量而非全部基向量 实现短递归(3项递推关系) 9. 与相关算法的比较 | 特性 | LSQR | LSMR | CGNR | |------|------|------|------| | 最小化目标 | \|Ax-b\|₂ | \|Aᵀ(Ax-b)\|₂ | \|Aᵀ(Ax-b)\|₂ | | 稳定性 | 好 | 更好 | 较差 | | 存储需求 | O(m+n) | O(m+n) | O(m+n) | | 适合问题 | 良态最小二乘 | 病态最小二乘 | 对称正定正规方程 | 10. 应用场景 大规模稀疏最小二乘 :如CT重建、图像处理 正则化问题 :Tikhonov正则化的求解 矩阵补全 :协同过滤推荐系统 压缩感知 :稀疏信号恢复 大地测量 :GPS定位等大规模平差问题 LSMR算法将大规模最小二乘问题转化为一系列小型三对角子问题,通过Krylov子空间方法高效求解,兼具数值稳定性和计算效率,是大规模稀疏最小二乘问题的首选算法之一。