引言

牛顿说:“把简单的问题看得复杂,可以发现新领域;把复杂的问题看得简单,可以发现新规律。”而从历史的角度来看,一个学科的发展也亦是如此。随着学科的发展,最开始的一个主干方向会不断衍生出各自相对独立的分支,这也就是所谓“把简单的问题看得复杂”的过程。然而,一旦学科发展到一定程度之后,某些分支学科又开始被抽象综合起来,这也就是所谓“把复杂的问题看得简单”的过程。

例如,在很长一段时间里,物理学家们都把电和磁看成是两种独立的物理现象在研究,当学科研究积累到一定程度时,麦克斯韦就创立了电磁学从而完成了物理学中的一次大综合。而在数学发展的历史中,几何与代数也曾经在很长的一段时间里是彼此独立的。直到笛卡尔引入了直角坐标系的概念之后,人们才开始建立了一种代数与几何之间的联系,也就是所谓的解析几何。

泛函分析也是对以往许多数学问题或者领域进行高度抽象和综合的结果,其主要研究对象之一是抽象空间。其实在学习线性代数的过程中,读者已经建立了一种从矩阵到线性方程组之间的一种联系。而在泛函分析中,实数系、矩阵、多项式以及函数族这些看似关联不大的概念都可以抽成空间。

最小二乘法是求解线性回归问题时会介绍到的一种重要方法。本文会跳出线性回归的框架,讨论更泛化的最小二乘问题。而我们审视这个问题的高度,你可以认为是从线性代数或者矩阵分析的层级出发的。但如果你感觉我们所讨论的术语跟过去线性代数里学过的好像不太一样,那是因为我们正试图从泛函的角度来解读它。


最小二乘问题

假设有一个很大的方程组 Ax=b <script type="math/tex" id="MathJax-Element-3">\mathbf{Ax=b}</script>,如果方程组的解不存在但又需要对它进行求解时,我们其实要做的就是去寻找一个最佳的 x <script type="math/tex" id="MathJax-Element-4">\mathbf{x}</script>,使得 Ax <script type="math/tex" id="MathJax-Element-5">\mathbf{Ax}</script>尽量接近 b <script type="math/tex" id="MathJax-Element-6">\mathbf{b}</script>。

考虑 Ax <script type="math/tex" id="MathJax-Element-7">\mathbf{Ax}</script>作为 b <script type="math/tex" id="MathJax-Element-8">\mathbf{b}</script>的一个近似,那么从 b <script type="math/tex" id="MathJax-Element-9">\mathbf{b}</script>到 Ax <script type="math/tex" id="MathJax-Element-10">\mathbf{Ax}</script>的距离越小, ||bAx|| <script type="math/tex" id="MathJax-Element-11">||\mathbf{b-Ax}||</script>的近似程度也就越好。一般的最小二乘问题就是要找出使 ||bAx|| <script type="math/tex" id="MathJax-Element-12">||\mathbf{b-Ax}||</script>尽量小的 x <script type="math/tex" id="MathJax-Element-13">\mathbf{x}</script>,术语“最小二乘”来源于这样的事实: ||bAx|| <script type="math/tex" id="MathJax-Element-14">||\mathbf{b-Ax}||</script>是平方和的平方根。

定义:如果 m×n <script type="math/tex" id="MathJax-Element-15">m\times n</script>的矩阵 A <script type="math/tex" id="MathJax-Element-16">\mathbf{A}</script>和向量 b <script type="math/tex" id="MathJax-Element-17">\mathbf{b}</script>属于 m <script type="math/tex" id="MathJax-Element-18">\mathbb{R}^m</script>, Ax=b <script type="math/tex" id="MathJax-Element-19">\mathbf{Ax=b}</script>的最小二乘解是 n <script type="math/tex" id="MathJax-Element-20">\mathbb{R}^n</script>中的 x̂  <script type="math/tex" id="MathJax-Element-21">\mathbf{\hat{x}}</script>,使得 ||bAx̂ ||||bAx|| <script type="math/tex" id="MathJax-Element-22"> || \mathbf{b-A\hat{x}} || \leq || \mathbf{b-A{x}} || </script>对所有 xn <script type="math/tex" id="MathJax-Element-23"> \mathbf{{x}}\in \mathbb{R}^n</script>成立。

请大家回忆一下列空间的概念。假设大小为 m×n <script type="math/tex" id="MathJax-Element-24">m\times n</script>的矩阵 A=[a1,,an] <script type="math/tex" id="MathJax-Element-25">\mathbf{A}=[\mathbf{a}_1,\cdots,\mathbf{a}_n]</script>,此处 ai <script type="math/tex" id="MathJax-Element-26">\mathbf{a}_i</script>表示矩阵中的一列,其中 1in <script type="math/tex" id="MathJax-Element-27">1\leq i\leq n</script>,那么矩阵 A <script type="math/tex" id="MathJax-Element-28">\mathbf{A}</script>的列空间(记为Col A <script type="math/tex" id="MathJax-Element-29">\mathbf{A}</script>)就是由 A <script type="math/tex" id="MathJax-Element-30">\mathbf{A}</script>中各列的所有线性组合构成的集合,即Col A=Span{a1,,an} <script type="math/tex" id="MathJax-Element-31">\mathbf{A}=Span\{\mathbf{a}_1,\cdots,\mathbf{a}_n\}</script>。

很显然,Col A=Span{a1,,an} <script type="math/tex" id="MathJax-Element-32">\mathbf{A}=Span\{\mathbf{a}_1,\cdots,\mathbf{a}_n\}</script>是一个子空间,进而我们可以知道 m×n <script type="math/tex" id="MathJax-Element-33">m\times n</script>的矩阵 A <script type="math/tex" id="MathJax-Element-34">\mathbf{A}</script>的列空间是 m <script type="math/tex" id="MathJax-Element-35"> \mathbb{R}^m</script>的一个子空间。此外,我们还注意到Col A <script type="math/tex" id="MathJax-Element-36">\mathbf{A}</script>中的一个典型向量(或者称为元素)可以写成 Ax <script type="math/tex" id="MathJax-Element-37">\mathbf{Ax}</script>的形式,其中 x <script type="math/tex" id="MathJax-Element-38">\mathbf{x}</script>是某个向量,记号 Ax <script type="math/tex" id="MathJax-Element-39">\mathbf{Ax}</script>表示 A <script type="math/tex" id="MathJax-Element-40">\mathbf{A}</script>的列向量的一个线性组合,也就是说Col A={b :b=Ax, xn} <script type="math/tex" id="MathJax-Element-41">\mathbf{A}=\{\mathbf{b}\ :\mathbf{b}=\mathbf{Ax},\ \mathbf{x}\in\mathbb{R}^n\}</script>,于是该式告诉我们:1)记号 Ax <script type="math/tex" id="MathJax-Element-42">\mathbf{Ax}</script>代表Col A <script type="math/tex" id="MathJax-Element-43">\mathbf{A}</script>空间中的向量;2)Col A <script type="math/tex" id="MathJax-Element-44">\mathbf{A}</script>是线性变换 xAx <script type="math/tex" id="MathJax-Element-45">\mathbf{x}\mapsto \mathbf{Ax}</script> 的值域。

假设W是 n <script type="math/tex" id="MathJax-Element-46"> \mathbb{R}^n</script> 空间中的一个子空间, y <script type="math/tex" id="MathJax-Element-47">\mathbf{y}</script>是 n <script type="math/tex" id="MathJax-Element-48"> \mathbb{R}^n</script>中的任意向量, ŷ  <script type="math/tex" id="MathJax-Element-49"> \mathbf{\hat y}</script>是 y <script type="math/tex" id="MathJax-Element-50">\mathbf{y}</script>在W上的正交投影,那么 ŷ  <script type="math/tex" id="MathJax-Element-51">\mathbf{\hat y}</script>是W中最接近 y <script type="math/tex" id="MathJax-Element-52">\mathbf{y}</script>的点,也就是说 ||yŷ ||<||yv|| <script type="math/tex" id="MathJax-Element-53">||\mathbf{y}-\mathbf{\hat y}||<||\mathbf{y}-\mathbf{v}||</script>对所有属于W又异于 ŷ  <script type="math/tex" id="MathJax-Element-54">\mathbf{\hat y}</script>的 v <script type="math/tex" id="MathJax-Element-55">\mathbf{v}</script>成立。这个结论也称为最佳逼近原理。其中向量 ŷ  <script type="math/tex" id="MathJax-Element-56">\mathbf{\hat y}</script>称为W中元素对 y <script type="math/tex" id="MathJax-Element-57">\mathbf{y}</script>的最佳逼近。对于给定元素 y <script type="math/tex" id="MathJax-Element-58">\mathbf{y}</script>,可以被某个给定子空间中的元素代替或“逼近”,用 ||yv|| <script type="math/tex" id="MathJax-Element-59">||\mathbf{y}-\mathbf{v}||</script>表示的从 y <script type="math/tex" id="MathJax-Element-60">\mathbf{y}</script>到 v <script type="math/tex" id="MathJax-Element-61">\mathbf{v}</script>的距离,可以认为是用 v <script type="math/tex" id="MathJax-Element-62">\mathbf{v}</script>代替 y <script type="math/tex" id="MathJax-Element-63">\mathbf{y}</script>的“误差”,而最佳逼近原理说明误差在 v=ŷ  <script type="math/tex" id="MathJax-Element-64">\mathbf{v} = \mathbf{\hat y}</script>处取得最小值。

最佳逼近原理看似抽象,其实它的几何意义也是相当直观的。如下图所示,我们所取的向量空间为 2 <script type="math/tex" id="MathJax-Element-65"> \mathbb{R}^2</script>,其中的一个子空间W就是横轴, y <script type="math/tex" id="MathJax-Element-66">\mathbf{y}</script>是 2 <script type="math/tex" id="MathJax-Element-67"> \mathbb{R}^2</script>中的任意向量, ŷ  <script type="math/tex" id="MathJax-Element-68"> \mathbf{\hat y}</script>是 y <script type="math/tex" id="MathJax-Element-69">\mathbf{y}</script>在W上的正交投影,那么 ŷ  <script type="math/tex" id="MathJax-Element-70">\mathbf{\hat y}</script>显然是W中最接近 y <script type="math/tex" id="MathJax-Element-71">\mathbf{y}</script>的点。更要的是,这个结论不仅仅在欧几里得几何空间中成立,因为泛函中所讨论的“向量”可能是我们通常所说的向量,但也可能是函数、矩阵,甚至多项式等等,但最佳逼近原理皆成立。




通过前面的分析,我们知道,最小二乘问题的最重要特征是无论怎么选取 x <script type="math/tex" id="MathJax-Element-72">\mathbf{x}</script>,向量 Ax <script type="math/tex" id="MathJax-Element-73">\mathbf{Ax}</script>必然位于列空间Col A <script type="math/tex" id="MathJax-Element-74">\mathbf{A}</script>中。而最小二乘问题的本质任务就是要寻找一个 x <script type="math/tex" id="MathJax-Element-75">\mathbf{x}</script>,使得 Ax <script type="math/tex" id="MathJax-Element-76">\mathbf{Ax}</script>是Col A <script type="math/tex" id="MathJax-Element-77">\mathbf{A}</script>中最接近 b <script type="math/tex" id="MathJax-Element-78">\mathbf{b}</script>的向量。


一般最小二乘问题的解

对于上面给定的 A <script type="math/tex" id="MathJax-Element-79">\mathbf{A}</script>和 b <script type="math/tex" id="MathJax-Element-80">\mathbf{b}</script>,运用最佳逼近定理于Col A <script type="math/tex" id="MathJax-Element-81">\mathbf{A}</script>空间,取

b̂ =projColAb
<script type="math/tex; mode=display" id="MathJax-Element-82">\mathbf{\hat b}=proj_{Col\mathbf{A}}\mathbf{b}</script>
由于 b <script type="math/tex" id="MathJax-Element-83">\mathbf{b}</script>属于 A <script type="math/tex" id="MathJax-Element-84">\mathbf{A}</script>的列空间,方程 Ax=b̂  <script type="math/tex" id="MathJax-Element-85">\mathbf{Ax=\hat b}</script>是相容的且存在一个属于 n <script type="math/tex" id="MathJax-Element-86"> \mathbb{R}^n</script> 的 x̂  <script type="math/tex" id="MathJax-Element-87">\mathbf{\hat x}</script>使得 Ax̂ =b̂  <script type="math/tex" id="MathJax-Element-88">\mathbf{A\hat x=\hat b}</script>。由于 b̂  <script type="math/tex" id="MathJax-Element-89">\mathbf{\hat b}</script>是Col A <script type="math/tex" id="MathJax-Element-90">\mathbf{A}</script>中最接近 b <script type="math/tex" id="MathJax-Element-91">\mathbf{b}</script>的点,一个向量 x̂  <script type="math/tex" id="MathJax-Element-92">\mathbf{\hat x}</script>是 Ax=b <script type="math/tex" id="MathJax-Element-93">\mathbf{Ax=b}</script>的一个最小二乘解的成分必要条件是 x̂  <script type="math/tex" id="MathJax-Element-94">\mathbf{\hat x}</script>满足 Ax̂ =b̂  <script type="math/tex" id="MathJax-Element-95">\mathbf{A\hat x=\hat b}</script>。这个属于 n <script type="math/tex" id="MathJax-Element-96"> \mathbb{R}^n</script>的 x̂  <script type="math/tex" id="MathJax-Element-97">\mathbf{\hat x}</script>是一系列由 A <script type="math/tex" id="MathJax-Element-98">\mathbf{A}</script>构造 b̂  <script type="math/tex" id="MathJax-Element-99">\mathbf{\hat b}</script>的权值。(显然如果方程 Ax̂ =b̂  <script type="math/tex" id="MathJax-Element-100">\mathbf{A\hat x=\hat b}</script>中存在自由变量,则这个方程会有多个解。)

如果 x̂  <script type="math/tex" id="MathJax-Element-101">\mathbf{\hat x}</script>满足 Ax̂ =b̂  <script type="math/tex" id="MathJax-Element-102">\mathbf{A\hat x=\hat b}</script>,根据正交分解定理,投影 b̂  <script type="math/tex" id="MathJax-Element-103">\mathbf{\hat b}</script>具有这样的一个性质: (bb̂ ) <script type="math/tex" id="MathJax-Element-104">(\mathbf{b}-\mathbf{\hat b})</script>与Col A <script type="math/tex" id="MathJax-Element-105">\mathbf{A}</script>正交,即 (bAx̂ ) <script type="math/tex" id="MathJax-Element-106">(\mathbf{b}-\mathbf{A\hat x})</script>正交于 A <script type="math/tex" id="MathJax-Element-107">\mathbf{A}</script>的每一列,如果 aj <script type="math/tex" id="MathJax-Element-108">\mathbf{a}_j</script>是 A <script type="math/tex" id="MathJax-Element-109">\mathbf{A}</script>的任意列,那么 aj(bAx̂ )=0 <script type="math/tex" id="MathJax-Element-110">\mathbf{a}_j\cdot(\mathbf{b}-\mathbf{A\hat x})=0</script>且 aTj(bAx̂ )=0 <script type="math/tex" id="MathJax-Element-111">\mathbf{a}_j^T\cdot(\mathbf{b}-\mathbf{A\hat x})=0</script>,由于每一个 aj <script type="math/tex" id="MathJax-Element-112">\mathbf{a}_j</script>是 AT <script type="math/tex" id="MathJax-Element-113">\mathbf{A}^T</script>的行,于是可得

AT(bAx̂ )=0
<script type="math/tex; mode=display" id="MathJax-Element-114">\mathbf{A}^T(\mathbf{b}-\mathbf{A\hat x})=0</script>
因此有
ATbATAx̂ =0
<script type="math/tex; mode=display" id="MathJax-Element-115">\mathbf{A}^T\mathbf{b}-\mathbf{A}^T\mathbf{A\hat x}=0</script>
或者
ATAx̂ =ATb
<script type="math/tex; mode=display" id="MathJax-Element-116">\mathbf{A}^T\mathbf{A\hat x}=\mathbf{A}^T\mathbf{b}</script>
这其实表明 Ax=b <script type="math/tex" id="MathJax-Element-117">\mathbf{Ax=b}</script>的每个最小二乘解满足方程
ATAx=ATb
<script type="math/tex; mode=display" id="MathJax-Element-118">\mathbf{A}^T\mathbf{A x}=\mathbf{A}^T\mathbf{b}</script>
上述矩阵方程表示的线性方程组常称为 Ax=b <script type="math/tex" id="MathJax-Element-119">\mathbf{Ax=b}</script>的法方程,其解通常用 x̂  <script type="math/tex" id="MathJax-Element-120">\mathbf{\hat x}</script>表示。最后我们还可以得出如下定理(证明从略)。
定理:方程 Ax=b <script type="math/tex" id="MathJax-Element-121">\mathbf{Ax=b}</script>的最小二乘解集和法方程 ATAx=ATb <script type="math/tex" id="MathJax-Element-122">\mathbf{A^TAx=A^Tb}</script>的非空解集一致。

下面我们通过一个例子来说明最小二乘问题的解法。例:求不相容方程 Ax=b <script type="math/tex" id="MathJax-Element-123">\mathbf{Ax=b}</script>的最小二乘解,其中

A=401021,b=2011
<script type="math/tex; mode=display" id="MathJax-Element-124">\mathbf{A}= \begin{bmatrix} 4 & 0\\ 0 & 2\\ 1 & 1 \end{bmatrix}, \quad \mathbf{b}=\begin{bmatrix}2\\0\\11\end{bmatrix}</script>
利用前面给出的公式计算
ATA=[400211]401021=[17115]
<script type="math/tex; mode=display" id="MathJax-Element-125">\mathbf{A}^T\mathbf{A}=\begin{bmatrix} 4 & 0 & 1\\ 0 & 2 & 1 \end{bmatrix} \begin{bmatrix} 4 & 0\\ 0 & 2\\ 1 & 1 \end{bmatrix}= \begin{bmatrix} 17 & 1\\ 1 & 5 \end{bmatrix} </script>

ATb=[400211]2011=[1911]
<script type="math/tex; mode=display" id="MathJax-Element-126"> \mathbf{A}^T\mathbf{b}=\begin{bmatrix} 4 & 0 & 1\\ 0 & 2 & 1 \end{bmatrix}\begin{bmatrix} 2 \\ 0 \\ 11 \end{bmatrix}=\begin{bmatrix} 19 \\11 \end{bmatrix} </script>
那么法方程 ATAx=ATb <script type="math/tex" id="MathJax-Element-127">\mathbf{A^TAx=A^Tb}</script>就变成了
[17115][x1x2]=[1911]
<script type="math/tex; mode=display" id="MathJax-Element-128">\begin{bmatrix} 17 & 1\\ 1 & 5 \end{bmatrix}\begin{bmatrix}x_1 \\ x_2 \end{bmatrix}=\begin{bmatrix} 19 \\11 \end{bmatrix} </script>
行变换可用于解此方程组,但由于 ATA <script type="math/tex" id="MathJax-Element-129">\mathbf{A}^T\mathbf{A}</script>是 2×2 <script type="math/tex" id="MathJax-Element-130">2\times 2</script>的可逆矩阵,于是很容易得到
(ATA)1=184[51117]
<script type="math/tex; mode=display" id="MathJax-Element-131"> (\mathbf{A}^T\mathbf{A})^{-1}=\frac{1}{84} \begin{bmatrix} 5 & -1\\ -1 & 17 \end{bmatrix} </script>
那么可以解 ATAx=ATb <script type="math/tex" id="MathJax-Element-132">\mathbf{A^TAx=A^Tb}</script>如下:
x̂ =(ATA)1ATb=184[51117][1911]=[12]
<script type="math/tex; mode=display" id="MathJax-Element-133">\begin{align} \mathbf{\hat{x}}&=(\mathbf{A}^T\mathbf{A})^{-1}\mathbf{A}^T\mathbf{b}\\ &=\frac{1}{84} \begin{bmatrix} 5 & -1\\ -1 & 17 \end{bmatrix}\begin{bmatrix} 19 \\11 \end{bmatrix}=\begin{bmatrix} 1 \\2 \end{bmatrix} \end{align}</script>
在很多计算中, ATA <script type="math/tex" id="MathJax-Element-134">\mathbf{A}^T\mathbf{A}</script>是可逆的,但也并非都是如此,下面例子中的矩阵常常出现在统计学中的方差分析问题里。

例:求 Ax=b <script type="math/tex" id="MathJax-Element-135">\mathbf{Ax=b}</script>的最小二乘解,其中

A=111111110000001100000011,b=310251
<script type="math/tex; mode=display" id="MathJax-Element-136"> \mathbf{A}=\begin{bmatrix} 1 & 1 & 0 & 0\\ 1 & 1 & 0 & 0\\ 1 & 0 & 1 & 0\\ 1 & 0 & 1 & 0\\ 1 & 0 & 0 & 1\\ 1 & 0 & 0 & 1 \end{bmatrix},\quad \mathbf{b}=\begin{bmatrix} -3\\ -1\\0\\2\\5\\1 \end{bmatrix}</script>
类似地,我们可以算得
ATA=110011001010101010011001111111110000001100000011=6222220020202002
<script type="math/tex; mode=display" id="MathJax-Element-137"> \mathbf{A}^T\mathbf{A}=\begin{bmatrix} 1 & 1 & 1 & 1 & 1 & 1\\ 1 & 1 & 0 & 0 & 0 & 0\\ 0 & 0 & 1 & 1 & 0 & 0\\ 0 & 0 & 0 & 0 & 1 & 1 \end{bmatrix}\begin{bmatrix} 1 & 1 & 0 & 0\\ 1 & 1 & 0 & 0\\ 1 & 0 & 1 & 0\\ 1 & 0 & 1 & 0\\ 1 & 0 & 0 & 1\\ 1 & 0 & 0 & 1 \end{bmatrix}=\begin{bmatrix} 6 & 2 & 2 & 2\\ 2 & 2 & 0 & 0\\ 2 & 0 & 2 & 0\\ 2 & 0 & 0 & 2 \end{bmatrix}</script>

ATb=110011001010101010011001310251=4426
<script type="math/tex; mode=display" id="MathJax-Element-138"> \mathbf{A}^T\mathbf{b}=\begin{bmatrix} 1 & 1 & 1 & 1 & 1 & 1\\ 1 & 1 & 0 & 0 & 0 & 0\\ 0 & 0 & 1 & 1 & 0 & 0\\ 0 & 0 & 0 & 0 & 1 & 1 \end{bmatrix} \begin{bmatrix} -3\\ -1\\0\\2\\5\\1 \end{bmatrix}=\begin{bmatrix} 4\\ -4\\2\\6 \end{bmatrix}</script>
矩阵方程 ATAx=ATb <script type="math/tex" id="MathJax-Element-139">\mathbf{A^TAx=A^Tb}</script>的增广矩阵为:
6222220020202002442610000100001011103520
<script type="math/tex; mode=display" id="MathJax-Element-140">\begin{bmatrix} 6 & 2 & 2 & 2 & 4\\ 2 & 2 & 0 & 0 & -4\\ 2 & 0 & 2 & 0&2\\ 2 & 0 & 0 & 2&6 \end{bmatrix} \sim \begin{bmatrix} 1 & 0 & 0 & 1 & 3\\ 0 & 1 & 0 & -1 & -5\\ 0 & 0 & 1 & -1 & -2\\ 0 & 0 & 0 & 0 & 0 \end{bmatrix}</script>
通解是: x1=3x4 <script type="math/tex" id="MathJax-Element-141">x_1=3-x_4</script>, x2=5+x4 <script type="math/tex" id="MathJax-Element-142">x_2=-5+x_4</script>, x3=2+x4 <script type="math/tex" id="MathJax-Element-143">x_3=-2+x_4</script>, x4 <script type="math/tex" id="MathJax-Element-144">x_4</script>是自由变量。
所以, Ax=b <script type="math/tex" id="MathJax-Element-145">\mathbf{Ax}=\mathbf{b}</script>的最小二乘通解具有如下形式:
x̂ =3520+x41111
<script type="math/tex; mode=display" id="MathJax-Element-146">\mathbf{\hat x}=\begin{bmatrix} 3\\-5\\-2\\0\end{bmatrix} +x_4\begin{bmatrix}-1\\1\\1\\1 \end{bmatrix}</script>

在什么条件下,方程 Ax=b <script type="math/tex" id="MathJax-Element-147">\mathbf{Ax}=\mathbf{b}</script>的最小二乘解是唯一的?下面的定理给出了判断准则(当然,正交投影总是唯一的),我们不具体讨论该定理的证明。
定理:矩阵 ATA <script type="math/tex" id="MathJax-Element-148">\mathbf{A}^T\mathbf{A}</script>是可逆的,其充分必要条件是 A <script type="math/tex" id="MathJax-Element-149">\mathbf{A}</script> 的列是线性无关的,在这种情况下,方程 Ax=b <script type="math/tex" id="MathJax-Element-150">\mathbf{Ax}=\mathbf{b}</script>有唯一最小二乘解 x̂  <script type="math/tex" id="MathJax-Element-151">\mathbf{\hat x}</script>且它有下面的表达式

x̂ =(ATA)1ATb
<script type="math/tex; mode=display" id="MathJax-Element-152">\mathbf{\hat x}=(\mathbf{A}^T\mathbf{A})^{-1}\mathbf{A}^T\mathbf{b}</script>


最小二乘解的另一个计算

下面的例子表明,当 A <script type="math/tex" id="MathJax-Element-153">\mathbf{A}</script>的列向量不正交时,该如何找到 Ax=b <script type="math/tex" id="MathJax-Element-154">\mathbf{Ax}=\mathbf{b}</script>的最小二乘解。这类矩阵在线性回归中常被用到。

例:找出 Ax=b <script type="math/tex" id="MathJax-Element-155">\mathbf{Ax}=\mathbf{b}</script>的最小二乘解,其中

A=11116217,b=1216
<script type="math/tex; mode=display" id="MathJax-Element-156">\mathbf{A}=\begin{bmatrix}1 & -6 \\ 1& -2 \\ 1 & 1 \\ 1 & 7 \end{bmatrix}, \quad \mathbf{b}=\begin{bmatrix} -1\\2\\1\\6 \end{bmatrix}</script>

解:由于 A <script type="math/tex" id="MathJax-Element-157">\mathbf{A}</script>的列 a1 <script type="math/tex" id="MathJax-Element-158">\mathbf{a}_1</script>和 a2 <script type="math/tex" id="MathJax-Element-159">\mathbf{a}_2</script>相互正交, b <script type="math/tex" id="MathJax-Element-160">\mathbf{b}</script>在Col A <script type="math/tex" id="MathJax-Element-161">\mathbf{A}</script>的正交投影如下:

b̂ =ba1a1a1a1+ba2a2a2a2=84a1+4590a2=2222+311/27/2=115/211/2
<script type="math/tex; mode=display" id="MathJax-Element-162">\mathbf{\hat b}=\frac{\mathbf{b}\cdot\mathbf{a}_1}{\mathbf{a}_1\cdot\mathbf{a}_1}\cdot\mathbf{a}_1+\frac{\mathbf{b}\cdot\mathbf{a}_2}{\mathbf{a}_2\cdot\mathbf{a}_2}\cdot\mathbf{a}_2= \frac{8}{4}\cdot\mathbf{a}_1+\frac{45}{90}\cdot\mathbf{a}_2 =\begin{bmatrix}2\\2\\2\\2 \end{bmatrix}+\begin{bmatrix} -3\\-1\\1/2\\7/2 \end{bmatrix}=\begin{bmatrix} -1\\1\\5/2\\11/2 \end{bmatrix}</script>

既然 b̂  <script type="math/tex" id="MathJax-Element-163">\mathbf{\hat b}</script>已知,我们可以解 Ax̂ =b̂  <script type="math/tex" id="MathJax-Element-164">\mathbf{A\hat x}=\mathbf{\hat b}</script>。这个很容易,因为我们已经知道 b̂  <script type="math/tex" id="MathJax-Element-165">\mathbf{\hat b}</script>用 A <script type="math/tex" id="MathJax-Element-166">\mathbf{A}</script>的列线性(通过线性组合来)表示时的权值。于是从上式可以立刻得到:

x̂ =844590=212
<script type="math/tex; mode=display" id="MathJax-Element-167">\mathbf{\hat x}=\begin{bmatrix}\frac84\\\frac{45}{90} \end{bmatrix}=\begin{bmatrix}2\\\frac12\end{bmatrix}</script>

某些时候,最小二乘解问题的法方程可能是病态的,也就是 ATA <script type="math/tex" id="MathJax-Element-168">\mathbf{A}^T\mathbf{A}</script>中元素在计算中出现较小的误差,可导致解 x̂  <script type="math/tex" id="MathJax-Element-169">\mathbf{\hat x}</script>出现较大的误差。如果 A <script type="math/tex" id="MathJax-Element-170">\mathbf{A}</script>的列线性无关,最小二乘解常常可通过 A <script type="math/tex" id="MathJax-Element-171">\mathbf{A}</script>的QR分解更可靠地求出。来看最后一个定理。

定理:给定一个 m×n <script type="math/tex" id="MathJax-Element-172">m\times n</script>的矩阵 A <script type="math/tex" id="MathJax-Element-173">\mathbf{A}</script>,且具有线性无关的列,取 A=QR <script type="math/tex" id="MathJax-Element-174">\mathbf{A}=\mathbf{QR}</script>是 A <script type="math/tex" id="MathJax-Element-175">\mathbf{A}</script>的QR分解,那么对每一个属于 m <script type="math/tex" id="MathJax-Element-176"> \mathbb{R}^m</script>的 b <script type="math/tex" id="MathJax-Element-177">\mathbf{b}</script>,方程 Ax=b <script type="math/tex" id="MathJax-Element-178">\mathbf{Ax}=\mathbf{b}</script>有唯一的最小二乘解,其解为

x̂ =R1QTb
<script type="math/tex; mode=display" id="MathJax-Element-179">\mathbf{\hat x}=\mathbf{R}^{-1}\mathbf{Q}^{T}\mathbf{b}</script>
这个定理的证明非常简单,我们不再赘述。更进一步,基于QR分解的知识,我们知道 QCol <script type="math/tex" id="MathJax-Element-180">\mathbf{Q}的列形成Col</script>\mathbf{A}的正交基,因此, QQTb <script type="math/tex" id="MathJax-Element-181">\mathbf{QQ^Tb}</script>是 b <script type="math/tex" id="MathJax-Element-182">\mathbf{b}</script>在Col A <script type="math/tex" id="MathJax-Element-183">\mathbf{A}</script>上的正交投影 b̂  <script type="math/tex" id="MathJax-Element-184">\mathbf{\hat b}</script>,那么 Ax̂ =b̂  <script type="math/tex" id="MathJax-Element-185">\mathbf{A\hat x}=\mathbf{\hat b}</script>说明 x̂  <script type="math/tex" id="MathJax-Element-186">\mathbf{\hat x}</script>是 Ax=b <script type="math/tex" id="MathJax-Element-187">\mathbf{Ax} = \mathbf{b}</script>的最小二乘解。

此外,由于上述定理中的 R <script type="math/tex" id="MathJax-Element-188">R</script>是上三角形矩阵,x̂ <script type="math/tex" id="MathJax-Element-189">\mathbf{\hat x}</script>可从方程 Rx=QTb <script type="math/tex" id="MathJax-Element-190">\mathbf{Rx}=\mathbf{Q}^T\mathbf{b}</script>计算得到。求解该方程时,通过回代过程或行变换会比较高效。

例:求出Ax = b的最小二乘解,其中

A=111131135023,b=3573
<script type="math/tex; mode=display" id="MathJax-Element-191"> \mathbf{A}=\begin{bmatrix} 1 & 3 &5\\ 1 & 1 &0\\ 1 & 1 &2\\ 1 & 3 &3 \end{bmatrix} ,\quad \mathbf{b}=\begin{bmatrix} 3\\5\\7\\-3 \end{bmatrix}</script>

解:我们可以计算矩阵 A <script type="math/tex" id="MathJax-Element-192">\mathbf{A}</script>的 QR <script type="math/tex" id="MathJax-Element-193">QR</script>分解为

A=QR=1/21/21/21/21/21/21/21/21/21/21/21/2200420532
<script type="math/tex; mode=display" id="MathJax-Element-194"> \mathbf{A}=QR= \begin{bmatrix} 1/2& 1/2&1/2 \\ 1/2& -1/2& -1/2\\ 1/2& -1/2& 1/2\\ 1/2& 1/2& -1/2 \end{bmatrix} \begin{bmatrix} 2& 4&5 \\ 0& 2&3 \\ 0& 0& 2 \end{bmatrix} </script>

那么

QTb=1/21/21/21/21/21/21/21/21/21/21/21/23573=664
<script type="math/tex; mode=display" id="MathJax-Element-195">\mathbf{Q^Tb}= \begin{bmatrix}1/2&1/2 & 1/2& 1/2\\ 1/2 & -1/2 & -1/2& 1/2\\ 1/2 & -1/2 & 1/2& -1/2 \end{bmatrix} \begin{bmatrix}3\\5\\7\\-3 \end{bmatrix}=\begin{bmatrix}6\\-6\\4 \end{bmatrix} </script>
满足 Rx=QTb <script type="math/tex" id="MathJax-Element-196">\mathbf{Rx}=\mathbf{Q^Tb}</script>的最小二乘解是 x̂  <script type="math/tex" id="MathJax-Element-197">\mathbf{\hat x}</script>,也就是
200420532x1x2x3=664
<script type="math/tex; mode=display" id="MathJax-Element-198">\begin{bmatrix}2 & 4 & 5\\ 0 &2 &3 \\ 0 & 0 &2 \end{bmatrix} \begin{bmatrix}x_1\\x_2\\x_3 \end{bmatrix}= \begin{bmatrix}6\\-6\\4 \end{bmatrix} </script>
这个方程很容易解出得:
x̂ =1062
<script type="math/tex; mode=display" id="MathJax-Element-199">\mathbf{\hat x}= \begin{bmatrix}10\\-6\\2 \end{bmatrix}</script>


参考文献与推荐阅读材料

本文中的例子主要来自
[1] David C. Lay. 刘深泉,等译. 线性代数及其应用(原书第3版),机械工业出版社,2005
同时推荐如下视频课程(从泛函的角度讲解线性代数):
[2] 台湾国立交通大学开放课程:线性代数(一)、(二),莊重教授主讲,http://ocw.nctu.edu.tw/

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐