目录
一、简介
首先,我在这里推荐一本好书——《Algebra, Topology, Differential, Calculus, and Optimization Theory for Computer Science and Engineering》 【1】 ,该书作者是 Jean Gallier 【2】 教授。老爷子70多岁,就职于宾西法利亚大学 计算机与信息学院,可说本书是他将几十年的教学经验凝聚之精华,总共1900页,分为 9 个大部分,54章,涵盖了线性空间、代数几何、代数、拓扑、微分方程、最优化理论、机器学习等多个方面的数学基础,没有几十年功力实难驾驭自如。书中详细地介绍了计算机科学所需的各门类数学基础,不仅是从本科的基础高等数学到各领域专业前沿研究的重要过渡,也为继续学习更为高深的数学做了一定的铺垫,以及指明了方向。最难得的是,这本大部头是开源的,我把这个资源列在了文章后面的参考文献【1】中,真希望能找到一同学习的同学,可以聊聊学习心得,相互启发、帮助,共同进步。
以下博文是我依据该书第12章(《QR-Decomposition for Arbitrary Matrices》)的内容,结合自己的理解写成,不对之处,还望不吝赐教。
二、QR分解
把矩阵分解为形式比较简单或具有某种特性的一些矩阵的乘积,称之为矩阵分解,它在矩阵理论的研究与应用中占据着非常重要的地位。因为一方面,这些分解式的特殊形式能够反映出原矩阵的某些数值特征;另一方面,这些分解的方法与过程为数值计算提供了理论依据。矩阵 QR 分解是将任意矩阵 A A A 分解为两个矩阵相乘,如: A = Q R A = QR A=QR,其中 Q Q Q 是规范正交矩阵(Orthonormal Matrix), R R R 是上三角矩阵(Upper Triangular Matrix)。QR分解在解决最小二乘问题、特征值计算方面都有广泛应用。【3】
在【4】中,给出了QR分解的一般证明(原书 2.6.1 定理),它是基于 Gram-Schmidt 正交化给出的:
定理1:QR分解
如果 A ∈ M n , m A\in M_{n,m} A∈Mn,m 且 n ≥ m n\ge m n≥m,那么存在具有标准正交列(归一化正交)的矩阵 Q ∈ M n , m Q\in M_{n,m} Q∈Mn,m 和上三角矩阵 R ∈ M m , m R\in M_{m,m} R∈Mm,m,使得 A = Q R A=QR A=QR。如果 n = m n=m n=m,那么 Q Q Q 是酉矩阵(即 Q ∗ Q = Q Q ∗ = I Q^*Q=QQ^*=I Q∗Q=QQ∗=I);此外,如果 A A A 是非奇异矩阵,则可以选取 R R R 为具有正对角元的上三角矩阵,并且在这种情况,因子 Q Q Q 和 R R R 都是唯一的,如果 A ∈ M n , m ( R ) A\in M_{n,m}(\mathbb R) A∈Mn,m(R),那么 Q Q Q 和 R R R 都可以取实矩阵。
证明:
如果 A ∈ M n , m A\in M_{n,m} A∈Mn,m ,且 r a n k ( A ) = m rank(A) = m rank(A)=m,则 A A A 的各列构成 C n \mathbb C^n Cn 的一个无关组,把 Gram-Schmidt 过程应用于 A A A 的各列,用矩阵记号描述所得的结果,就可以得到 A A A 的QR分解。Gram-Schmidt 算法的自然推广使同样的矩阵记号描述能够应用于任意矩阵 A A A 的各列,于是得到一般矩阵 A A A 的QR分解。以下简述之:
设 A = [ a 1 , a 2 , ⋯ , a m ] A=[\mathbf a_1,\mathbf a_2,\cdots,\mathbf a_m] A=[a1,a2,⋯,am],其中 a i \mathbf a_i ai 是 A A A 的列矢量(column vector),对 A A A 的各列矢量执行 Gram-Schmidt 过程,得到正交矢量 p 1 , p 2 , ⋯ , p m \mathbf p_1,\mathbf p_2,\cdots,\mathbf p_m p1,p2,⋯,pm,归一化得到 q 1 , q 2 , ⋯ , q m \mathbf q_1,\mathbf q_2,\cdots,\mathbf q_m q1,q2,⋯,qm,过程如下:
- 正交化过程:
p 1 = a 1 p 2 = a 2 − a 2 T p 1 ∥ p 1 ∥ 2 p 1 p 3 = a 3 − a 3 T p 1 ∥ p 1 ∥ 2 p 1 − a 3 T p 2 ∥ p 2 ∥ 2 p 2 ⋯ ⋯ p m = a m − a m T p 1 ∥ p 1 ∥ 2 p 1 − ⋯ a m T p m − 1 ∥ p m − 1 ∥ 2 p m − 1 \mathbf p_1 = \mathbf a_1 \\ \ \\ \mathbf p_2 = \mathbf a_2 - \frac{\mathbf a_2^T\mathbf p_1}{\Vert\mathbf p_1\Vert^2}\mathbf p_1 \\ \ \\ \mathbf p_3 = \mathbf a_3 - \frac{\mathbf a_3^T\mathbf p_1}{\Vert\mathbf p_1\Vert^2}\mathbf p_1-\frac{\mathbf a_3^T\mathbf p_2}{\Vert\mathbf p_2\Vert^2}\mathbf p_2 \\ \cdots\cdots \\ \mathbf p_m = \mathbf a_m - \frac{\mathbf a_m^T\mathbf p_1}{\Vert\mathbf p_1\Vert^2}\mathbf p_1-\cdots\frac{\mathbf a_m^T\mathbf p_{m-1}}{\Vert\mathbf p_{m-1}\Vert^2}\mathbf p_{m-1} p1=a1 p2=a2−∥p1∥2a2Tp1p1 p3=a3−∥p1∥2a3Tp1p1−∥p2∥2a3Tp2p2⋯⋯pm=am−∥p1∥2amTp1p1−⋯∥pm−1∥2amTpm−1pm−1
- 归一化过程:
q i = p i ∥ p i ∥ \mathbf q_i = \frac {\mathbf p_i}{\Vert\mathbf p_i\Vert} qi=∥pi∥pi
由此
a 1 = p 1 = ∥ p 1 ∥ q 1 = r 11 q 1 a 2 = a 2 T p 1 ∥ p 1 ∥ 2 p 1 + p 2 = r 21 q 1 + r 22 q 2 \mathbf a_1= \mathbf p_1 = \Vert \mathbf p_1\Vert \mathbf q_1=r_{11} \mathbf q_1 \\ \ \\ \mathbf a_2 = \frac{\mathbf a_2^T\mathbf p_1}{\Vert\mathbf p_1\Vert^2}\mathbf p_1 + \mathbf p_2 = r_{21} \mathbf q_1 + r_{22} \mathbf q_2 a1=p1=∥p1∥q1=r11q1 a2=∥p1∥2a2Tp1p1+p2=r21q1+r22q2
其中, r 21 = a 2 T p 1 ∥ p 1 ∥ 2 ⋅ r 11 r_{21} = \frac{\mathbf a_2^T\mathbf p_1}{\Vert\mathbf p_1\Vert^2}\cdot r_{11} r21=∥p1∥2a2Tp1⋅r11 和 r 22 = p 2 ∥ p 2 ∥ r_{22}=\frac {\mathbf p_2}{\Vert\mathbf p_2\Vert} r22=∥p2∥p2,如此类推,可得:
a i = r i 1 q 1 + r i 2 q 2 + ⋯ + r i i q i , 1 ≤ i ≤ m \mathbf a_i=r_{i1}\mathbf q_1+r_{i2}\mathbf q_2 + \cdots+r_{ii}\mathbf q_i \qquad , 1\le i\le m ai=ri1q1+ri2q2+⋯+riiqi,1≤i≤m
于是,
A = [ a 1 , a 2 , ⋯ , a m ] = [ r 11 q 1 , r 21 q 1 + r 22 q 2 , ⋯ , r m 1 q 1 + ⋯ + r m m q m ] = [ q 1 , q 2 , ⋯ , q m ] ⋅ [ r 11 r 21 ⋯ r m 1 0 r 22 ⋯ r m 2 0 0 ⋯ r m 3 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ r m m ] A=[\mathbf a_1,\mathbf a_2,\cdots,\mathbf a_m]\\ =[r_{11}\mathbf q_1,\ r_{21}\mathbf q_1+r_{22}\mathbf q_2,\cdots,\ r_{m1}\mathbf q_1+\cdots + r_{mm}\mathbf q_m]\\ \ \\ =[\mathbf q_1,\mathbf q_2,\cdots,\mathbf q_m]\cdot\left[ \begin{array}{cccc} r_{11}& r_{21}&\cdots& r_{m1}\\ 0& r_{22}&\cdots& r_{m2}\\ 0&0&\cdots& r_{m3}\\ \vdots&\vdots&\ddots& \vdots\\ 0&0&\cdots& r_{mm} \end{array}\right] A=[a1,a2,⋯,am]=[r11q1, r21q1+r22q2,⋯, rm1q1+⋯+rmmqm] =[q1,q2,⋯,qm]⋅⎣⎢⎢⎢⎢⎢⎡r1100⋮0r21r220⋮0⋯⋯⋯⋱⋯rm1rm2r