最小二乘问题(下)

引言

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

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

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

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


最小二乘问题

假设有一个很大的方程组 Ax=b ,如果方程组的解不存在但又需要对它进行求解时,我们其实要做的就是去寻找一个最佳的 x ,使得 Ax 尽量接近 b

考虑 Ax 作为 b 的一个近似,那么从 b Ax 的距离越小, ||bAx|| 的近似程度也就越好。一般的最小二乘问题就是要找出使 ||bAx|| 尽量小的 x ,术语“最小二乘”来源于这样的事实: ||bAx|| 是平方和的平方根。

定义:如果 m×n 的矩阵 A 和向量 b 属于 m Ax=b 的最小二乘解是 n 中的 x̂  ,使得 ||bAx̂ ||||bAx|| 对所有 xn 成立。

请大家回忆一下列空间的概念。假设大小为 m×n 的矩阵 A=[a1,,an] ,此处 ai 表示矩阵中的一列,其中 1in ,那么矩阵 A 的列空间(记为Col A )就是由 A 中各列的所有线性组合构成的集合,即Col A=Span{a1,,an}

很显然,Col A=Span{a1,,an} 是一个子空间,进而我们可以知道 m×n 的矩阵 A 的列空间是 m 的一个子空间。此外,我们还注意到Col A 中的一个典型向量(或者称为元素)可以写成 Ax 的形式,其中 x 是某个向量,记号 Ax 表示 A 的列向量的一个线性组合,也就是说Col A={b :b=Ax, xn} ,于是该式告诉我们:1)记号 Ax 代表Col A 空间中的向量;2)Col A 是线性变换 xAx 的值域。

假设W是 n 空间中的一个子空间, y n 中的任意向量, ŷ  y 在W上的正交投影,那么 ŷ  是W中最接近 y 的点,也就是说 ||yŷ ||<||yv|| 对所有属于W又异于 ŷ  v 成立。这个结论也称为最佳逼近原理。其中向量 ŷ  称为W中元素对 y 的最佳逼近。对于给定元素 y ,可以被某个给定子空间中的元素代替或“逼近”,用 ||yv|| 表示的从 y v 的距离,可以认为是用 v 代替 y 的“误差”,而最佳逼近原理说明误差在 v=ŷ  处取得最小值。

最佳逼近原理看似抽象,其实它的几何意义也是相当直观的。如下图所示,我们所取的向量空间为 2 ,其中的一个子空间W就是横轴, y 2 中的任意向量, ŷ  y 在W上的正交投影,那么 ŷ  显然是W中最接近 y 的点。更要的是,这个结论不仅仅在欧几里得几何空间中成立,因为泛函中所讨论的“向量”可能是我们通常所说的向量,但也可能是函数、矩阵,甚至多项式等等,但最佳逼近原理皆成立。




通过前面的分析,我们知道,最小二乘问题的最重要特征是无论怎么选取 x ,向量 Ax 必然位于列空间Col A 中。而最小二乘问题的本质任务就是要寻找一个 x ,使得 Ax 是Col A 中最接近 b 的向量。


一般最小二乘问题的解

对于上面给定的 A b ,运用最佳逼近定理于Col A 空间,取

b̂ =projColAb

由于 b 属于 A 的列空间,方程 Ax=b̂  是相容的且存在一个属于 n x̂  使得 Ax̂ =b̂  。由于 b̂  是Col A 中最接近 b 的点,一个向量 x̂  Ax=b 的一个最小二乘解的成分必要条件是 x̂  满足 Ax̂ =b̂  。这个属于 n x̂  是一系列由 A 构造 b̂  的权值。(显然如果方程 Ax̂ =b̂  中存在自由变量,则这个方程会有多个解。)

如果 x̂  满足 Ax̂ =b̂  ,根据正交分解定理,投影 b̂  具有这样的一个性质: (bb̂ ) 与Col A 正交,即 (bAx̂ ) 正交于 A 的每一列,如果 aj A 的任意列,那么 aj(bAx̂ )=0 aTj(bAx̂ )=0 ,由于每一个 aj AT 的行,于是可得

AT(bAx̂ )=0

因此有
ATbATAx̂ =0

或者
ATAx̂ =ATb

这其实表明 Ax=b 的每个最小二乘解满足方程
ATAx=ATb

上述矩阵方程表示的线性方程组常称为 Ax=b 的法方程,其解通常用 x̂  表示。最后我们还可以得出如下定理(证明从略)。
定理:方程 Ax=b 的最小二乘解集和法方程 ATAx=ATb 的非空解集一致。

下面我们通过一个例子来说明最小二乘问题的解法。例:求不相容方程 Ax=b 的最小二乘解,其中

A=401021,b=2011

利用前面给出的公式计算
ATA=[400211]401021=[17115]

ATb=[400211]2011=[1911]

那么法方程 ATAx=ATb 就变成了
[17115][x1x2]=[1911]

行变换可用于解此方程组,但由于 ATA 2×2 的可逆矩阵,于是很容易得到
(ATA)1=184[51117]

那么可以解 ATAx=ATb 如下:
x̂ =(ATA)1ATb=184[51117][1911]=[12]

在很多计算中, ATA 是可逆的,但也并非都是如此,下面例子中的矩阵常常出现在统计学中的方差分析问题里。

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

A=111111110000001100000011,b=310251

类似地,我们可以算得
ATA=110011001010101010011001111111110000001100000011=6222220020202002

ATb=110011001010101010011001310251=4426

矩阵方程 ATAx=ATb 的增广矩阵为:
6222220020202002442610000100001011103520

通解是: x1=3x4 x2=5+x4 x3=2+x4 x4 是自由变量。
所以, Ax=b 的最小二乘通解具有如下形式:
x̂ =3520+x41111

在什么条件下,方程 Ax=b 的最小二乘解是唯一的?下面的定理给出了判断准则(当然,正交投影总是唯一的),我们不具体讨论该定理的证明。
定理:矩阵 ATA 是可逆的,其充分必要条件是 A 的列是线性无关的,在这种情况下,方程 Ax=b 有唯一最小二乘解 x̂  且它有下面的表达式

x̂ =(ATA)1ATb


最小二乘解的另一个计算

下面的例子表明,当 A 的列向量不正交时,该如何找到 Ax=b 的最小二乘解。这类矩阵在线性回归中常被用到。

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

A=11116217,b=1216

解:由于 A 的列 a1 a2 相互正交, b 在Col A 的正交投影如下:

b̂ =ba1a1a1a1+ba2a2a2a2=84a1+4590a2=2222+311/27/2=115/211/2

既然 b̂  已知,我们可以解 Ax̂ =b̂  。这个很容易,因为我们已经知道 b̂  A 的列线性(通过线性组合来)表示时的权值。于是从上式可以立刻得到:

x̂ =844590=212

某些时候,最小二乘解问题的法方程可能是病态的,也就是 ATA 中元素在计算中出现较小的误差,可导致解 x̂  出现较大的误差。如果 A 的列线性无关,最小二乘解常常可通过 A 的QR分解更可靠地求出。来看最后一个定理。

定理:给定一个 m×n 的矩阵 A ,且具有线性无关的列,取 A=QR A 的QR分解,那么对每一个属于 m b ,方程 Ax=b 有唯一的最小二乘解,其解为

x̂ =R1QTb

这个定理的证明非常简单,我们不再赘述。更进一步,基于QR分解的知识,我们知道 QCol \mathbf{A}的正交基,因此, QQTb b 在Col A 上的正交投影 b̂  ,那么 Ax̂ =b̂  说明 x̂  Ax=b 的最小二乘解。

此外,由于上述定理中的 R 是上三角形矩阵,x̂ 可从方程 Rx=QTb 计算得到。求解该方程时,通过回代过程或行变换会比较高效。

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

A=111131135023,b=3573

解:我们可以计算矩阵 A QR 分解为

A=QR=1/21/21/21/21/21/21/21/21/21/21/21/2200420532

那么

QTb=1/21/21/21/21/21/21/21/21/21/21/21/23573=664

满足 Rx=QTb 的最小二乘解是 x̂  ,也就是
200420532x1x2x3=664

这个方程很容易解出得:
x̂ =1062


参考文献与推荐阅读材料

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白马负金羁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值