分块矩阵的随机化正交三角分解算法
题目描述
考虑一个大型稠密矩阵 \(A \in \mathbb{R}^{m \times n}\),其中 \(m \ge n\)。直接对其进行完整的QR分解(即 \(A = QR\),\(Q\) 正交、\(R\) 上三角)的计算成本为 \(O(mn^2)\),当 \(m, n\) 很大时难以承受。随机化正交三角分解算法旨在利用随机投影技术,快速计算一个近似分解 \(A \approx Q R\),其中 \(Q\) 是列正交的矩阵(其列张成的子空间近似于 \(A\) 的列空间),\(R\) 是上三角矩阵,且计算成本显著低于精确分解,适用于低秩矩阵的近似、最小二乘问题等。
解题过程
我们将分解为以下六个步骤:
步骤1:核心思想
随机化QR分解的核心思想是:先通过随机投影将高维矩阵 \(A\) 投影到一个较低维的子空间,然后在这个子空间中进行精确分解,最后通过正交扩展得到原空间中的近似正交基。基本流程如下:
- 用随机矩阵 \(\Omega\) 对 \(A\) 进行采样,得到一个“草图”矩阵 \(Y = A \Omega\)。
- 对 \(Y\) 进行QR分解,得到其正交基 \(Q\)。
- 利用 \(Q\) 对 \(A\) 进行投影,得到小矩阵 \(B = Q^T A\)。
- 对 \(B\) 进行QR分解,得到最终的 \(R\) 因子。
- 可选地,通过迭代优化提高精度。
这种方法特别适用于 \(A\) 具有快速衰减的奇异值(即近似低秩)的情况。
步骤2:随机投影生成草图
假设我们期望的近似秩为 \(k\)(\(k \ll n\))。选取一个随机矩阵 \(\Omega \in \mathbb{R}^{n \times (k+p)}\),其中 \(p\) 是一个小的过采样参数(例如 \(p=5\) 或 \(10\)),用于提高基的精度。通常 \(\Omega\) 的元素独立同分布,服从标准正态分布 \(N(0,1)\),或采用更快的次高斯分布、稀疏随机矩阵等。
计算草图矩阵:
\[Y = A \Omega \in \mathbb{R}^{m \times (k+p)} \]
这个矩阵的列是 \(A\) 的列的随机线性组合,以很高的概率张成 \(A\) 的前 \(k\) 个主要左奇异向量所张成的子空间。
步骤3:对草图矩阵进行QR分解
对 \(Y\) 进行经济型QR分解:
\[Y = Q_0 R_0 \]
其中 \(Q_0 \in \mathbb{R}^{m \times (k+p)}\) 是列正交矩阵(\(Q_0^T Q_0 = I\)),\(R_0 \in \mathbb{R}^{(k+p) \times (k+p)}\) 是上三角矩阵。这里 \(Q_0\) 的列构成了 \(A\) 的列空间的一个近似正交基。
注意:如果 \(A\) 是分块存储的(例如按行分块或按列分块),这个QR分解可以在每个块上局部进行,然后通过通信合并,但核心思想不变。
步骤4:投影与精确QR分解
用 \(Q_0\) 将 \(A\) 投影到低维空间:
\[B = Q_0^T A \in \mathbb{R}^{(k+p) \times n} \]
由于 \(k+p \ll m\),矩阵 \(B\) 很小,可以直接对它进行精确的QR分解:
\[B = \tilde{Q} R \]
其中 \(\tilde{Q} \in \mathbb{R}^{(k+p) \times (k+p)}\) 正交,\(R \in \mathbb{R}^{(k+p) \times n}\) 是上三角矩阵。
现在,将 \(Q_0\) 与 \(\tilde{Q}\) 结合,得到最终的近似正交矩阵:
\[Q = Q_0 \tilde{Q} \in \mathbb{R}^{m \times (k+p)} \]
容易验证 \(Q\) 仍然是列正交的:
\[Q^T Q = \tilde{Q}^T (Q_0^T Q_0) \tilde{Q} = \tilde{Q}^T I \tilde{Q} = I \]
同时,我们有近似分解:
\[A \approx Q R \]
因为:
\[Q R = (Q_0 \tilde{Q}) R = Q_0 ( \tilde{Q} R) = Q_0 B = Q_0 (Q_0^T A) = (Q_0 Q_0^T) A \]
而 \(Q_0 Q_0^T\) 是投影到 \(Q_0\) 列空间的投影矩阵,所以上述近似相当于用 \(A\) 在其近似的主要列空间上的投影来逼近 \(A\) 本身。
步骤5:可选的后处理迭代(幂迭代)
如果 \(A\) 的奇异值衰减不够快,上述一次投影可能不够精确。可以采用幂迭代技术提高精度:
- 令 \(Y = A (A^T A)^q \Omega\),其中 \(q\) 是一个小的整数(如 \(q=1\) 或 \(2\))。
- 实际计算时,通过交替乘法避免显式计算 \((A^T A)^q\):
- 从 \(Y_0 = A \Omega\) 开始
- 对 \(j=1\) 到 \(q\):先计算 \(\tilde{Y} = A^T Y_{j-1}\),再计算 \(Y_j = A \tilde{Y}\)
- 最后用 \(Y_q\) 代替原来的 \(Y\) 进行QR分解。
幂迭代能加速奇异向量的收敛,尤其对奇异值缓慢衰减的矩阵有效。
步骤6:误差分析与计算复杂度
- 误差:理论分析表明,在适当的随机矩阵和过采样下,近似误差满足:
\[ \| A - Q R \| \le \left( 1 + C \sqrt{\frac{k}{p-1}} \right) \sigma_{k+1}(A) + \text{高概率小项} \]
其中 \(\sigma_{k+1}(A)\) 是 \(A\) 的第 \(k+1\) 个奇异值,\(C\) 是常数。因此,当 \(A\) 的第 \(k+1\) 个奇异值很小时,近似效果很好。
- 计算复杂度:主要成本是矩阵-矩阵乘法 \(A \Omega\)(\(O(mn(k+p))\))和对小矩阵 \(B\) 的QR分解(\(O(n(k+p)^2)\)),远低于精确QR分解的 \(O(mn^2)\)。如果 \(A\) 是稀疏的或具有快速矩阵向量乘法,成本可进一步降低。
总结
随机化正交三角分解算法通过“随机投影采样 + 小规模精确分解”的方式,快速获得矩阵的低秩近似正交基。它特别适合大规模、近似低秩的矩阵,是许多随机化数值线性代数算法(如随机SVD、低秩近似)的基础模块。通过调整过采样参数 \(p\) 和幂迭代次数 \(q\),可以在计算成本与近似精度之间灵活权衡。