3.5_线性最小二乘问题的求解方法

3.5 线性最小二乘问题的求解方法

3.5.1 正规方程

这里我们考虑超定线性最小二乘问题的求解

定理3.23 设 ARm×nA \in \mathbb{R}^{m \times n} ( mnm \geq n ). 则 xRnx_{*} \in \mathbb{R}^{n} 是线性最小二乘问题 (3.1) 的解当且仅当残量 r=bAxr = b - Ax_{*}Ran(A)\operatorname{Ran}(A) (值域) 正交, 即 xx_{*} 是下面的正规方程的解

AT(bAx)=0ATAx=ATb.(3.22)A ^ {\mathsf {T}} (b - A x) = 0 \quad \text {或} \quad A ^ {\mathsf {T}} A x = A ^ {\mathsf {T}} b. \qquad \qquad \qquad (3. 2 2)

(板书)

证明. 充分性: 设 xx_* 是正规方程 (3.21) 的解. 对任意向量 yRny \in \mathbb{R}^n , 由 (bAx)Ran(A)(b - Ax_*) \bot \operatorname{Ran}(A) 可知

Ayb22=(Axb)+A(yx)22=Axb22+A(yx)22Axb22.\begin{array}{l} \| A y - b \| _ {2} ^ {2} = \| (A x _ {*} - b) + A (y - x _ {*}) \| _ {2} ^ {2} \\ = \| A x _ {*} - b \| _ {2} ^ {2} + \| A (y - x _ {*}) \| _ {2} ^ {2} \\ \geq \left\| A x _ {*} - b \right\| _ {2} ^ {2}. \\ \end{array}

因此, xx_* 是线性最小二乘问题 (3.1) 的解

必要性:设 xx_{*} 是线性最小二乘问题(3.1)的解.用反证法,假定 zAT(bAx)0z\triangleq A^{\mathsf{T}}(b - Ax_{*})\neq 0y=x+αzy = x_{*} + \alpha z ,其中 α>0\alpha >0 ,则有

Ayb22=Axb+αAz22=Axb222αz22+α2Az22.\| A y - b \| _ {2} ^ {2} = \| A x _ {*} - b + \alpha A z \| _ {2} ^ {2} = \| A x _ {*} - b \| _ {2} ^ {2} - 2 \alpha \| z \| _ {2} ^ {2} + \alpha^ {2} \| A z \| _ {2} ^ {2}.

由于 z2>0\| z\| _2 > 0 ,当 α\alpha 充分小时,有 2z22>αAz222\| z\| _2^2 >\alpha \| Az\| _2^2 ,即上式右端小于 Axb22\| Ax_{*} - b\|_{2}^{2} .这与 xx_{*} 是最小二乘解相矛盾.所以 z=0z = 0 ,即 AT(bAx)=0.A^{\mathsf{T}}(b - Ax_{*}) = 0.

由定理3.23可知, 求线性最小二乘问题(3.1)的解等价于求正规方程(3.21)的解. 由于

ATbRan(AT)=Ran(ATA),A ^ {\mathsf {T}} b \in \operatorname {R a n} (A ^ {\mathsf {T}}) = \operatorname {R a n} (A ^ {\mathsf {T}} A),

因此正规方程 ATAx=ATbA^{\mathsf{T}}Ax = A^{\mathsf{T}}b 是相容 (consistent) 的, 即最小二乘解总是存在的. 当 AA 非奇异时, 这个解也是唯一的.

定理3.24 设 ARm×nA \in \mathbb{R}^{m \times n} ( m>nm > n ). 则 ATAA^{\mathrm{T}}A 对称正定当且仅当 AA 是列满秩的, 即 rank(A)=n\operatorname{rank}(A) = n . 此时, 线性最小二乘问题 (3.1) 的解是唯一的, 其表达式为

x=(ATA)1ATb.x = \left(A ^ {\mathsf {T}} A\right) ^ {- 1} A ^ {\mathsf {T}} b.

最小二乘解的几何含义

根据定理3.23,我们可以把 bb 写成

b=Ax+r,其 中rRan(A).(3.23)b = A x _ {*} + r, \quad \text {其 中} \quad r \bot \operatorname {R a n} (A). \tag {3.23}

所以 AxAx_{*} 就是 bbRan(A)\operatorname {Ran}(A) 上的正交投影,见图3.2


图3.2.最小二乘解的几何描述

最小二乘解可能并不唯一,但分解(3.22)总是唯一的

3.5.2 Cholesky分解法

AA 列满秩时, 我们就可以使用 Cholesky 分解来求解正规方程, 总的运算量大约为 mn2+13n3+mn+O(n2)mn^2 + \frac{1}{3} n^3 + mn + \mathcal{O}(n^2) , 其中大部分的运算量 (mn2)(mn^2) 是用来计算 AAA^\top A (由于 AAA^\top A 对称, 因此只需计算其下三角部分).

通过直接求解正规方程来求解最小二乘问题, 运算量小, 而且简单直观.
但由于 ATAA^{\mathsf{T}}A 的条件数是 AA 的条件数的平方, 因此对于病态情形 (即 AA 的条件数比较大), 不建议使用该方法.

例3.6 下面的例子说明, 计算 ATAA^{\mathsf{T}} A 可能会损失计算精度: 设

A=[111εεε],A = \left[ \begin{array}{c c c} 1 & 1 & 1 \\ \varepsilon & & \\ & \varepsilon & \\ & & \varepsilon \end{array} \right],

ATA=[1+ε21111+ε21111+ε2].A ^ {\mathsf {T}} A = \left[ \begin{array}{c c c} 1 + \varepsilon^ {2} & 1 & 1 \\ 1 & 1 + \varepsilon^ {2} & 1 \\ 1 & 1 & 1 + \varepsilon^ {2} \end{array} \right].

εu\varepsilon_{u} 为机器精度, 则当 εu<ε<εu\varepsilon_{u} < \varepsilon < \sqrt{\varepsilon_{u}} 时有 ε2<εu\varepsilon^{2} < \varepsilon_{u} , 由于舍入误差的原因, 通过浮点运算计算得到的 ATAA^{\mathsf{T}}A 是奇异的. 但我们注意到 AA 是满秩的.

3.5.3 QR分解法

这里假定 ARm×nA \in \mathbb{R}^{m \times n} ( mnm \geq n ) 是满秩的. 设 AA 的 QR 分解为 A=QRA = QR , 我们用三种不同的方法来推导线性最小二乘问题的解.

(1) 将 QQ 的扩充成一个正交矩阵, 记为 [Q,Q^]Rm×m[Q, \hat{Q}] \in \mathbb{R}^{m \times m} . 于是有

Axb22=[Q,Q^]T(Axb)22=[Q,Q^]T(QRxb)22\left\| A x - b \right\| _ {2} ^ {2} = \left\| [ Q, \hat {Q} ] ^ {\mathsf {T}} (A x - b) \right\| _ {2} ^ {2} = \left\| [ Q, \hat {Q} ] ^ {\mathsf {T}} (Q R x - b) \right\| _ {2} ^ {2}
=[RxQTbQ^Tb]22=RxQTb22+Q^Tb22Q^Tb22,= \left\| \left[ \begin{array}{c} R x - Q ^ {\mathsf {T}} b \\ - \hat {Q} ^ {\mathsf {T}} b \end{array} \right] \right\| _ {2} ^ {2} = \left\| R x - Q ^ {\mathsf {T}} b \right\| _ {2} ^ {2} + \left\| \hat {Q} ^ {\mathsf {T}} b \right\| _ {2} ^ {2} \geq \left\| \hat {Q} ^ {\mathsf {T}} b \right\| _ {2} ^ {2},

等号成立当且仅当 Rx=QTbR x = Q^{\mathsf{T}} b . 所以最小二乘解为

x=R1Qb.x _ {*} = R ^ {- 1} Q ^ {\intercal} b.

(2) 由于 QQ 的列向量构成 Ran(A)\operatorname{Ran}(A) 的一组单位正交基, 所以 QQTQQ^{\mathsf{T}}IQQTI - QQ^{\mathsf{T}} 分别是 Ran(A)\operatorname{Ran}(A)Ran(A)\operatorname{Ran}(A)^{\perp} 上的正交投影矩阵. 又 AxRan(A)Ax \in \operatorname{Ran}(A) , 所以

Axb22=QQT(Axb)22+(IQQT)(Axb)22=QRxQQb22+(IQQ)b22=RxQTb22+(IQQT)b22(IQQT)b22,\begin{array}{l} \left\| A x - b \right\| _ {2} ^ {2} = \left\| Q Q ^ {\mathsf {T}} (A x - b) \right\| _ {2} ^ {2} + \left\| (I - Q Q ^ {\mathsf {T}}) (A x - b) \right\| _ {2} ^ {2} \\ = \| Q R x - Q Q ^ {\top} b \| _ {2} ^ {2} + \| (I - Q Q ^ {\top}) b \| _ {2} ^ {2} \\ = \| R x - Q ^ {\mathsf {T}} b \| _ {2} ^ {2} + \| (I - Q Q ^ {\mathsf {T}}) b \| _ {2} ^ {2} \\ \geq \| (I - Q Q ^ {\mathsf {T}}) b \| _ {2} ^ {2}, \\ \end{array}

等号成立当且仅当 Rx=QTbR x = Q^{\mathsf{T}} b . 所以最小二乘解为

x=R1QTb.x _ {*} = R ^ {- 1} Q ^ {\mathsf {T}} b.

事实上,由图3.2可知, xx_{*} 满足

Ax=QQb,A x _ {*} = Q Q ^ {\intercal} b,

QRx=QQTb,QRx_{*} = QQ^{\mathsf{T}}b, 由此可得 x=R1QTb.x_{*} = R^{-1}Q^{\mathsf{T}}b.

(3) 解正规方程. 由定理 3.23 可知, 最小二乘解为

x=(ATA)1ATb=(RTQTQR)1RTQTb=(RTR)1RTQTb=R1QTb.x _ {*} = \left(A ^ {\mathsf {T}} A\right) ^ {- 1} A ^ {\mathsf {T}} b = \left(R ^ {\mathsf {T}} Q ^ {\mathsf {T}} Q R\right) ^ {- 1} R ^ {\mathsf {T}} Q ^ {\mathsf {T}} b = \left(R ^ {\mathsf {T}} R\right) ^ {- 1} R ^ {\mathsf {T}} Q ^ {\mathsf {T}} b = R ^ {- 1} Q ^ {\mathsf {T}} b.

用基于MGS的QR分解求解最小二乘问题时的运算量大约为 2mn22mn^{2} ,而基于Householder变换的QR分解则只需 2mn22n3/32mn^{2} - 2n^{3} / 3 (不需要显式计算 QQ ,只需将Householder变换直接作用到 bb 上即可计算出 QTbQ^{\mathsf{T}}b )。因此当 mnm\gg n 时,QR分解法的计算量大约是Cholesky分解的两倍。
因此当 mnm \gg n 时, QR 分解法的计算量大约是 Cholesky 分解法的两倍. 当 m=nm = n 时, 几乎相同.
通常 QR 算法比较稳定, 是求解最小二乘问题的首选方法, 特别是当 AA 条件数较大 (病态)时.

3.5.4 奇异值分解法

ARm×nA \in \mathbb{R}^{m \times n} 列满秩, A=UnΣVA = U_n \Sigma V^\topAA 的降阶奇异值分解, 则

x=(ATA)1ATb=(VΣUnTUnΣVT)1VΣUnTb=(VΣ2VT)VΣUnTb=VΣ1UnTb.x _ {*} = \left(A ^ {\mathsf {T}} A\right) ^ {- 1} A ^ {\mathsf {T}} b = \left(V \Sigma U _ {n} ^ {\mathsf {T}} U _ {n} \Sigma V ^ {\mathsf {T}}\right) ^ {- 1} V \Sigma U _ {n} ^ {\mathsf {T}} b = \left(V \Sigma^ {- 2} V ^ {\mathsf {T}}\right) V \Sigma U _ {n} ^ {\mathsf {T}} b = V \Sigma^ {- 1} U _ {n} ^ {\mathsf {T}} b.

相比于Cholesky分解法和QR分解,用SVD求解最小二乘问题具有更高的健壮性,但由于需要计算系数矩阵的SVD,运算量远超Cholesky分解法和QR分解.所以只有当系数矩阵秩亏或者接近秩亏时才使用(此时QR分解法可能会失效).

例3.7 分别用三种方法求解最小二乘问题, 比较运算时间.

(LS_3methods.m)

三种方法的运算时间如下 (AR2n×n,bRn(A\in \mathbb{R}^{2n\times n},b\in \mathbb{R}^n ,以秒为单位):

这里的计算时间可能受计算机系统和 MATLAB 矩阵运算优化影响, 并不一定能准确反映各种方法的实际运算量.