正交、投影与最小二乘
本章的问题
前面几章里,我们已经会把线性方程组写成 Ax=b,也会从列空间看“有没有解”。这一章处理另一类更常见的问题:数据里有误差,方程太多,b 不一定落在 A 的列空间里。此时精确解不存在,但我们仍然希望找到最接近的 Ax。
正交和投影给了这个问题一个清楚的几何答案:在能达到的所有向量里,离 b 最近的那个点就是 b 到列空间的投影。误差向量,也就是残差,会垂直于整个列空间。
本章的主线可以用一句话概括:当 Ax=b 没有精确解时,把 b 投影到 A 的列空间上,求出最接近 b 的 Ax^,这就是最小二乘解。

点积把两个向量的长度、夹角和同向成分联系在一起。
点积、长度与角度
点积先衡量同向程度
两个 n 维向量的点积定义为对应分量相乘后相加:
u⋅v=u1v1+u2
点积不是单纯的乘法。它会比较两个向量在同一方向上的重合程度。若两个向量大致同向,点积为正;若互相垂直,点积为 0;若大致反向,点积为负。
向量的长度由点积给出:
∥u∥=u⋅u
例如 u=(3,4),则
∥u∥=32+42=
这和二维解析几何中的距离公式相同,只是现在可以直接推广到更多维。
夹角来自点积公式
点积和夹角之间有一个核心关系:
u⋅v=∥u∥∥v∥cosθ
其中 θ 是两个非零向量的夹角。因此,
cosθ=∥u∥∥v∥u⋅v
这个公式把代数计算和几何角度接起来。只要能算点积和长度,就能判断两个高维向量之间的角度趋势,即使我们已经画不出图。
点积为 0 只说明两个向量正交,不说明其中一个向量一定是零向量。零向量和任何向量的点积都是 0,但谈夹角时通常要求两个向量都非零。
小例子:从点积判断正交
设
u=(3,4),v=(4,−3)
它们的点积是
u⋅v=3⋅4+4⋅(−3)=12−12=0
所以 u 与 v 正交。注意这里不是因为分量看起来“一个正一个负”,而是因为两个方向的乘积贡献正好抵消。
正交与正交基
正交让方向互不干扰
如果两个非零向量 u 和 v 满足
u⋅v=0
就称它们正交。二维里这就是垂直;高维里我们仍然使用“正交”这个词,因为它保留了垂直最重要的代数特征。

正交方向互不干扰,因此 ∥u+v∥2=∥u∥2+∥v∥2。
当 u 与 v 正交时,u+v 的长度平方可以拆开:
∥u+v∥2=∥u∥2+∥v∥2
证明只要展开点积:
∥u+v∥2=(u+v)⋅(u+v)=
由于 u⋅v=0,中间项消失,于是得到勾股关系。
正交基让坐标变成点积
一组基向量如果两两正交,就称为正交基。若每个基向量长度还是 1,就称为单位正交基。
设 q1,q2,…,qk 是一个子空间 W 的单位正交基。对于 中任意向量 ,它在这组基下的坐标可以直接用点积得到:
x=(q1⋅x)q1+(q
普通基下求坐标通常要解方程。单位正交基下,每个坐标就是“x 在对应方向上的投影长度”。

正交基中,向量 x 可直接写为 x=(q1⋅x)q1+(,点积就是坐标。
Gram-Schmidt 的想法
如果已有一组线性无关向量,可以通过“逐个减去已有方向上的投影”把它们改造成正交向量。以两个向量 v1,v2 为例,先取
q1=∥v1∥v1
再从 v2 中去掉它沿 q1 的部分:
u2=v2−(q1⋅v
最后单位化:
q2=∥u2∥u2
这样得到的 q1,q2 是单位正交的。更高维时重复同样的动作:每来一个新向量,就把它在已有正交方向上的影子全部减掉。
投影:最近的影子
投影到一条直线
先看最简单的情况:把向量 b 投影到由非零向量 a 张成的直线 span(a) 上。投影向量一定形如 p=ca,问题变成求系数 c。
“最近”发生在误差 e=b−p 垂直于直线时,也就是
a⋅(b−ca)=0
解得
c=a⋅aa⋅b
于是
p=a⋅aa⋅ba
这个公式非常值得记住。分子 a⋅b 测量 b 沿 a 的同向成分;分母 a⋅a 修正 a 自身的长度。

向量 b 在 span(a) 上的投影分解:p 是最近的点,e=b−p 是垂直误差。
投影的关键不是“画一条线段”,而是找到一个分解 b=p+e,其中 p 在目标子空间里,e 垂直于目标子空间。这个垂直条件会在最小二乘中变成法方程。
例题:投影到一条直线
把
b=(3,5)
投影到
a=(2,1)
张成的直线上。
先计算公式里的两个点积:
a⋅b=2⋅3+1⋅5=11
投影到一个子空间
如果目标不是一条直线,而是一个由矩阵 A 的列向量张成的子空间,投影仍然遵循同一条规则:
b=p+r
其中 p 在 Col(A) 中,r=b−p 垂直于 Col(A)。
因为 p 在列空间中,所以存在某个 x^ 使得
p=Ax^
残差垂直于列空间,等价于残差和 A 的每一列都正交。把这些正交条件合在一起,就是
AT(b−Ax^)=0
整理后得到法方程:
ATAx^=ATb

从无解方程到最近解:最佳近似 p=Ax^ 位于 Col(A) 中,残差 r=b−p 满足 。
从无解方程到最小二乘
数据问题为什么常常无精确解
真实数据通常比未知数多。比如用一条直线
y=c+mt
拟合若干个测量点。每个测量点都会给出一个方程:
c+mti≈yi
如果有 20 个点,就有 20 个方程,但未知量只有 c 和 m。由于测量误差、模型简化和数据波动,这些点通常不会全部落在同一条直线上,所以精确解不存在。
把所有方程写成矩阵形式:
Ax≈b
其中
A=
最小二乘不是强行让所有方程同时成立,而是选择让总误差最小的 x:
xmin∥Ax−b∥2
也常写成
xmini=1∑mri2
其中 ri 是第 i 个残差。
法方程从哪里来
令
r=b−Ax^
最小二乘解要求 Ax^ 是列空间中离 b 最近的向量。根据投影的垂直条件,残差必须垂直于列空间:
ATr=0
代入 r=b−Ax^:
AT(b−Ax^)=0
于是得到
ATAx^=ATb
这就是最小二乘的法方程。只要 A 的列线性无关,ATA 就可逆,最小二乘解可以写成
x^=(ATA)−1ATb
法方程求的是最小二乘解,不是原方程 Ax=b 的精确解。若 b 已经在列空间里,残差为零,两者才会重合。
例题:拟合一条直线
三个点不一定共线
设有三个测量点:
我们用直线
y=c+mt
拟合它们。矩阵形式是
111

残差有正有负,最小二乘法通过最小化平方残差和来衡量总偏离。
用法方程求解
令
A=111
先计算 ATA:
ATA
残差正交检查
最小二乘解的残差应当垂直于 A 的两列。第一列是 (1,1,1),第二列是 (0,1,2)。检查:
[111]
[012]
这说明残差里已经没有任何可以被“常数项方向”和“斜率方向”继续解释的部分。
残差怎么解释
残差不是简单的错误
残差
r=b−Ax^
表示观测值和模型预测值之间的差。它可能来自测量误差,也可能来自模型太简单。例如用直线拟合明显弯曲的数据时,即使计算完全正确,残差仍会呈现某种结构。
在最小二乘里,残差的特殊之处是它与列空间正交:
ATr=0
这句话的含义是:在模型允许的方向里,已经没有一个方向能继续减少平方误差。如果还想让误差更小,需要改变模型本身,而不是只调整当前模型的参数。
残差平方和很小不一定说明模型解释了因果关系。它只说明在当前数据和当前模型形式下,预测值与观测值比较接近。线性代数负责给出最佳近似,数据含义还要回到具体问题中判断。
什么时候要警惕
最小二乘解有一个安静但重要的前提:用平方误差衡量偏离是合适的。如果存在极端离群点,平方会把它们放大;如果误差随时间成串偏向同一边,可能说明模型漏掉了重要变量;如果 A 的列几乎线性相关,ATA 会变得难以稳定求解。
这些问题不会推翻投影思想,但会提醒我们:计算结果要配合残差图、数据来源和模型假设一起看。
常见误区
把投影当成缩短向量
投影不是简单地把 b 变短。投影必须落在指定的目标子空间里。若目标方向改变,投影也会改变。
把正交理解成只有二维垂直
二维和三维图像能帮助理解,但正交的真正定义是点积为 0。在高维数据里,正交仍然表示两个方向没有点积意义上的重合。
以为最小二乘让每个残差都最小
最小二乘最小化的是残差平方和,不是逐个让每个残差绝对值都最小。某些点的误差可能变大,只要总平方误差变小,整体目标就改善了。
本章小结
点积把长度、角度和方向重合程度放进同一个计算里。正交让不同方向互不干扰,单位正交基让坐标可以直接通过点积得到。
投影把一个向量分解为“目标子空间中的最佳近似”和“垂直于目标子空间的残差”。最小二乘正是这个投影思想在无精确解方程 Ax=b 中的应用:求 x^,让 Ax^ 成为 b 在列空间中的投影。
最小二乘解满足法方程:
ATAx^=ATb
残差满足:
AT(b−Ax^)=0
这两个式子是一件事的两种写法:最佳近似的误差必须垂直于所有可调整的方向。
练习
练习一:点积与角度
设 u=(1,2,2),v=(2,0,1)。计算 u⋅v、、,并判断夹角是锐角、直角还是钝角。
点积为
u⋅v=1⋅2+2⋅0+2⋅1=4长度为
练习二:投影到一条直线
把 b=(4,1) 投影到 a=(1,2) 张成的直线上,求投影 p 和残差 e=b−,并检查 是否垂直于 。
先算点积:
a⋅b=1⋅4+2⋅1=6a⋅a=
练习三:判断最小二乘残差
设
A=11
这个 r 能不能是某个最小二乘解对应的残差?说明理由。
最小二乘残差必须满足
ATr=0计算:
练习四:写出法方程
用模型 y=c+mt 拟合数据点 (1,2),(2,3),(3,5),(4,4)。写出矩阵 、向量 和法方程,不必求解。
矩阵和向量为
A=