趋近智
QR分解是一种非常有用的矩阵分解方法,类似于SVD和LU分解。对于一个m×n矩阵A(通常m≥n且列线性无关),QR分解会找到两个特定的矩阵Q和R,使得:
A=QR
其中,Q是一个m×n的正交标准列矩阵,而R是一个n×n的上三角矩阵。让我们更仔细地看看这些组成部分。
矩阵Q具有一个特殊性质:它的列构成一个正交标准集。回顾第四章,这意味着两点:
综合这些,我们可以使用矩阵乘法简洁地陈述正交标准列矩阵Q的定义性质:
QTQ=I
其中I是n×n的单位矩阵。
满足此条件的矩阵被称为正交矩阵。(严格来说,如果Q是方阵,QTQ=I也意味着QQT=I,使得QT成为Q的逆,即QT=Q−1)。
正交矩阵的一个重要几何意义是,通过Q(或QT)进行乘法运算会保持长度和角度不变。正交矩阵表示的变换是刚性运动,例如旋转或反射。在QR分解中,Q的列构成了原始矩阵A的列空间的规范正交基。这个过程类似于格拉姆-施密特过程,它接受一组线性无关向量(A的列)并产生一个跨越相同空间的正交标准集(Q)。
矩阵R是一个n×n的上三角矩阵。这意味着主对角线以下的所有元素都为零:
R=r110⋮0r12r22⋮0⋯⋯⋱⋯r1nr2n⋮rnn矩阵R基本上编码了矩阵A的原始列与Q中的正交标准基向量之间的关系。具体而言,A的每个列aj都可以表示为Q的前j个列的线性组合,其系数来自R的第j列。
R的上三角结构在计算上具有优势,尤其是在求解线性方程组时,我们将在后面看到这一点。
QR分解将矩阵A分解为一个正交矩阵Q(其列是正交标准向量)和一个上三角矩阵R。
QR分解最重要的应用之一是求解线性最小二乘问题。回顾一下,这些问题经常出现在机器学习中拟合模型时,例如线性回归,我们希望找到一个向量x,使Ax与目标向量b之间的差异最小化,即最小化∣∣Ax−b∣∣22。
标准方法涉及求解正规方程组:
ATAx=ATb
然而,计算ATA有时可能导致数值稳定性问题,特别是当A的列接近线性相关时。矩阵ATA可能会变成病态(条件数很大),使解对小误差敏感。
QR分解提供了一种数值更稳定的替代方案。如果我们将A=QR代入原始的最小二乘目标函数(或者对于存在解的系统,直接代入Ax=b),我们得到:
QRx=b
现在,两边乘以QT:
QTQRx=QTb
由于QTQ=I,这完美地简化为:
Rx=QTb
这为我们提供了一个带有上三角矩阵R的线性方程组。这样的系统非常容易且数值稳定地使用一个称为回代的过程来求解。我们首先求解x的最后一个分量,然后将该值代回倒数第二个方程以求解下一个分量,依此类推,向上回溯。
由于此方法避免形成ATA,它通常比直接使用正规方程组具有更好的数值特性,使其成为许多数值计算库中的首选方法。
尽管QR分解的原理可以通过格拉姆-施密特过程来理解,但实际实现通常使用数值更稳定的算法,如豪斯霍尔德变换或吉文斯旋转。这些方法迭代地构建Q和R。幸运的是,您很少需要自己实现这些算法;像NumPy和SciPy这样的数值计算库提供了高效且可靠的函数来计算QR分解,我们将在实践部分使用它们。
简洁的语法。内置调试功能。从第一天起就可投入生产。
为 ApX 背后的 AI 系统而构建
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造