先修:12 数据与损失;13 向量与张成;14 点积、长度与投影;15 矩阵与转置;16 列空间、秩与零空间
第12章留下了一笔证明的欠账。面对玩具的三次读数,我们找到候选C:ŷ=x/2+7/6。它的残差平方和是1/6,胜过当时比较的几条线。但斜率和截距有无穷多种取法,赢过几个对手,怎么保证已经赢过所有对手?
现在,前几章的工具可以合起来回答。关键不是继续试更多直线,而是找出一个条件,让任何改动都不可能降低平方和。这个条件正是:剩下的残差,垂直于模型能够调整的全部方向。
三个读数合成一个点
仍用虚构数据(0,1)、(1,2)、(2,2),输入、输出都以厘米计。把三个输出依次收进向量y=(1,2,2),把输入数值收进x=(0,1,2),再令u=(1,1,1)。所有直线预测组成:
ŷ=ax+bu=(b,a+b,2a+b)。
单个输入是一个数,向量x则把三个固定输入按顺序放在一起。按第15章的记法,X=x u,三行依次为(0,1)、(1,1)、(2,1),参数向量θ=(a,b),于是ŷ=Xθ。
我们按厘米读数的数值进行矩阵运算,最后给输出标回单位。斜率a表示输出厘米数与输入厘米数的比,截距b以厘米计;把两者排成θ,并不意味着要测量“参数之间的厘米距离”。我们要量的是预测与观测之间的输出距离。
第16章已经说明,X的两列独立,列空间col(X)是三维输出空间中的一个过原点的平面。平面里的每个点,都是一条候选直线在三个固定输入处给出的预测。y不在这个平面里,因为观测的中间值2,不等于两端值1、2的平均数。
一个容易误会的地方是:原来画的是“一条预测线”,这里怎么成了“一个预测平面”?因为两个图里的点代表不同东西。原图中的点代表某一次输入和输出;输出空间中的一个点,代表同一条线在三处给出的整套预测。调斜率、调截距,移动的是这一整套预测。两个调节方向独立,所有可能的整套结果才铺成一个平面。
于是,原来的问题变成:在col(X)中,找离y最近的预测向量。欧氏距离的平方就是
‖y−Xθ‖²=(1−b)²+(2−a−b)²+(2−2a−b)²=SSE。
距离非负,比较距离和比较它的平方会得到相同排序。这样,一道挑直线的题就变成了一道找最近点的题。1

图1:两幅表示法使用同一组三项差。右边的三个坐标分别对应三次观测,都是输出,不是横轴、纵轴和另一项输入。
这里尤其不能混淆两个空间。原来的xy图上,每段竖线比较同一个x处的观测与预测;它通常不是该数据点到斜线的二维最短距离。现在的“最近”,发生在三个输出组成的R³中:一个观测向量,靠近一整个可行预测平面。2
最近点为什么留下正交残差
第14章沿一条方向做过投影。现在可行方向多了,但判断办法没有变。
取一个候选预测p∈col(X),暂把残差记为e=y−p。只要v也在col(X)中,p+tv就仍是可行预测,其中t可正可负。调参数能够完成这种移动,因为列空间对线性组合封闭。移动后的残差为e−tv,平方和变成:
‖e−tv‖²=‖e‖²−2t(e·v)+t²‖v‖²。
如果某个非零可行方向v满足e·v≠0,就取t=(e·v)/‖v‖²。代入后,平方和等于
‖e‖²−(e·v)²/‖v‖²,
严格小于原来的‖e‖²。这说明只要残差还含有沿某个可行方向的分量,就能沿该方向调整预测,取得改进。这里仅用了点积展开和代入,没有求导,也没有假设图上哪个角看起来是直角。
因此,若p已经最近,e就必须与每一个可行方向正交。这正是把一维投影的条件推广到整个列空间。接下来先找满足条件的点,再证明它确实能击败全部候选。
从正交条件算出那条线
把待求参数记作θ*=(a,b),星号标记我们正在寻找的最优参数。残差为r=y−Xθ*。要让r垂直col(X),只需让它同时垂直生成这个空间的两列x与u。
为什么只检查两列就够?因为任意可行方向都是αx+βu,其中α、β是实数。点积满足r·(αx+βu)=α(r·x)+β(r·u)。两项都为0,任意组合也为0。反过来,两列本来就在列空间内,自然也必须通过检查。
转置Xᵀ恰好把两列变成两行,所以这两个点积可以叠在一起:
Xᵀr=0,也就是Xᵀ(y−Xθ*)=0。
展开并移项,得到XᵀXθ*=Xᵀy,通常叫作正规方程。1 “正规”不是另加的一条拟合规则;这组方程只是在用矩阵语言表达刚才的正交条件。
能不能照搬一维公式,分别把y投影到x与u,再把两份结果相加?通常不能。本例x·u=3,并不正交;沿一个方向移动,也会改变残差在另一个方向上的分量。必须把两项正交要求同时满足,不能把它们当成互不干扰的两个小题。这也解释了为什么下面两条方程里,a、b会一起出现。
逐项算点积:x·x=5,x·u=3,u·u=3;x·y=6,u·y=5。因此XᵀX的两行为(5,3)、(3,3),Xᵀy=(6,5),方程就是:
5a+3b=6,
3a+3b=5。
第一式减去第二式,得到2a=1,因此a=1/2;代入第二式得到3/2+3b=5,因此b=7/6。我们没有枚举候选,而是从“所有可行方向都不能再改善”直接算出了参数。

图2:Xᵀr=0并非陌生的计算机关。第一行检查斜率所控制的方向,第二行检查整体上下平移的方向。
代回原模型,三个预测为p=Xθ*=(7/6,5/3,13/6)厘米,残差为r=(−1/6,1/3,−1/6)厘米,平方和为1/36+1/9+1/36=1/6平方厘米。
还可以直接验算:r·x=0×(−1/6)+1×(1/3)+2×(−1/6)=0;r·u=−1/6+1/3−1/6=0。两项检查都成立。
残差和为0还有一个直观含义:三个预测的总和等于三个观测的总和,都是5厘米,所以平均预测也等于平均观测。第12章给候选B整体上移1/6厘米,正是在修正这一方向。但这种性质依赖于模型允许整体平移,也就是包含常数列u;去掉截距后,就不能继续无条件要求残差和为0。
不过,仅让残差和为0还不够。第12章那条水平线ŷ=5/3的残差和也为0,却没有让残差与x正交,所以还可以通过改变斜率改进。
一次排除所有其他参数
现在完成最关键的一步。取任意另一组参数,把它写成θ*+δ。这里δ=(δa,δb)只是“另一组减去当前这组”,因此没有漏掉任何候选,无论改动多大。
预测相应变成X(θ*+δ)=p+Xδ。记d=Xδ,它一定在列空间里;新的残差便是y−(p+d)=r−d。展开它的长度平方:
‖r−d‖²=‖r‖²−2r·d+‖d‖²。
已经验明r与整个列空间正交,所以r·d=0。中间那项消失,得到:
SSE(θ*+δ)=‖r‖²+‖Xδ‖²=1/6+‖Xδ‖²。
右边新增的是一个长度平方,必定非负。因此任何另一组参数,平方和都不可能小于1/6。第12章留下的全局证明,到这里才真正完成。它覆盖全部参数,不只是附近的小改动,也不只是画出的几条直线。

图3:q≠p时,图画的是p、q、y所在的截面示意;q=p时两份损失自然相同。这里并未把三个输出坐标冒充原来的xy坐标。直角的根据是r·d=0;任何三维图在屏幕上的投影角度,都不能替代这个验算。
最小值没有降到0,也不代表算法还没找完。三条观测不能被这组直线预测同时满足,已经是第12章证明过的事实。投影保留了模型能表达的那部分,把剩下的差明确留下来。若执意单独抬高中间预测、两端不动,就会走出原来的可行平面,那是在换模型,不是在同一问题中找到了更好的参数。
这正是第14章的勾股关系:留在平面外的残差已经无法靠模型内的移动抵消,再挪动只会额外添上一段平方长度。我们因而把p称作y在col(X)上的正交投影。3
也可以把这张“全局证书”完全展开成参数改变量:Xδ=(δb,δa+δb,2δa+δb),所以增加量是
(δb)²+(δa+δb)²+(2δa+δb)²。
这个增加量还能核对熟悉的候选。例如第12章的D保持斜率1/2,把截距从7/6改为5/4,只增加1/12。三个预测便各增加1/12厘米,新增平方和是3×(1/12)²=1/48平方厘米。原来的1/6加上1/48,恰好是D的3/16。恒等式不仅判断谁更好,还准确给出了差多少。
想让增加量为0,三项就必须全为0。第一项要求δb=0,第二项随即要求δa=0。这不仅证明C最好,还证明当前的参数答案只有这一组。几何上,同一个预测点只有一组坐标,是因为X的两列独立。
预测唯一与参数唯一要分开
第16章曾故意重复一列,得到X′=x,u,2u。现在参数有三个,记作(a,b,c),预测为ax+(b+2c)u。多出的列没有扩大可行预测平面,只是让同一个点能够有不同写法。
例如(1/2,7/6,0)与(1/2,−5/6,1),都给出同一个p。更一般地,(1/2,7/6−2t,t)对任何实数t都产生p,因为它们只沿零方向(0,−2,1)移动。平方和始终是1/6,参数于是有无穷多组最优解。

图4:橙色变化发生在参数中,绿色结果是固定的输出。重复特征增加了写法,没有增加拟合能力。
为什么最佳预测本身仍然唯一?沿用刚才的恒等式,任何另一个可行预测q与p之差d,都在同一列空间里。如果q也达到最小平方和,必须有‖d‖²=0,因此d=0,q=p。这个理由从头到尾没有要求各列独立;列独立只用于进一步从Xδ=0推出δ=0。2
一般的有限维欧氏空间中,向量到线性子空间的正交投影总存在且唯一,这是正交分解定理的结论。3 本例不需要借定理代替计算:我们已经亲手找出p,并证明了它的最优性与唯一性。
这两个问题可以顺次检查:先问可行预测集合是什么,再问同一个预测有多少种参数写法。删去重复的第三列,前一个集合没变,后一个问题却变得唯一。反过来,若真正加入不在原列空间中的新方向,才可能让预测更靠近数据;那已经是在扩大模型,而不只是换一种写法。是否值得这样做,还要结合任务与新数据检验。
所以,不能把“原方程Xθ=y无解”误读成“最小二乘没有答案”,也不能把“最佳拟合只有一个”误读成“参数必定唯一”。正规方程可以有多个参数解;列相关时,XᵀX也不能求逆。理解这些条件,比记住一条含逆矩阵的公式更重要。实际数值求解怎样兼顾效率和稳定性,留到后文讨论。
算完以后仍要回到玩具
现在可以带着证明使用C。在滑杆位置1.5厘米处,预测为(1/2)×1.5+7/6=23/12厘米,约1.92厘米。我们确定的是:在选定的直线族中,面对这三条记录,按等权平方和标准,没有别的参数能做得更好。
这段话里的限制不能省掉。改用绝对误差和,C就未必占优;改变某次读数或记录的权重,最近点也会改变。投影的漂亮结构来自我们已经选好的模型、数据与距离标准,并不能反过来证明这些选择适合现实。
三次读数足以把结构看清,计算方法却不限于三个输出。记录更多观测时,仍然让一行对应一条记录,把每次预测排成一个更长的向量;列则说明参数能够怎样共同改变这些输出。只要可行预测仍组成列空间、损失仍是欧氏长度平方,正交条件和刚才的展开证明就继续成立。需要重新计算的是具体数值,不是整个理由。
同样,正交残差不等于随机噪声,更不意味着每次误差互不相关。这里的正交只是一条由拟合准则保证的代数关系。残差可能来自测量波动、读数取整,也可能来自模型遗漏的弯曲趋势;一次投影无法把这些原因分开。
把公式用于0至2厘米以外仍是外推,不能凭全局最优证明保证准确。“全局”指所有候选参数,不是所有未来输入、所有实验条件。即便在范围内,也应补充独立的新读数,检查未参与拟合的位置和重复测量是否支持模型。
这一部从三个数据点出发,逐步学会把预测排成向量、量长度、写矩阵、识别独立方向,最终用投影完成最小二乘证明。确定性的结构已经看清,但真实读数还会变动。下一部将转向概率:当结果不止一种可能,我们怎样描述不确定性,又怎样判断手里的证据究竟有多强?
顺手试一下
题目1: 从最优参数θ*=(1/2,7/6)出发,将斜率增加1/2、截距减少1/6,得到新直线。求它的预测向量、残差与SSE,再用本章恒等式核对。为什么不能只把两个参数改变量的平方相加,当作SSE增加量?
**提示:**δ=(1/2,−1/6)。先算Xδ,再比较它与δ的角色。
**参考答案:**新参数为(1,1),预测为(1,2,3)厘米,残差为(0,0,−1)厘米,所以SSE=1平方厘米。Xδ=(−1/6,1/3,5/6),长度平方为1/36+1/9+25/36=5/6;加上原来的1/6,恰好得到1。参数改变量的数值平方和为5/18,并不是5/6;损失量的是三个输出的变化Xδ,不是两个参数坐标的变化δ。
题目2: 对重复特征模型ŷ=ax+bu+2cu,有人提出最优参数(1/2,1/6,1/2)。请核验,写出全部最优参数,并说明它与(1/2,7/6,0)是否给出不同的最佳预测。
**提示:**只需检查a和b+2c;再用预测唯一的证明。
**参考答案:**b+2c=1/6+1=7/6,所以它产生p=(7/6,5/3,13/6)厘米,SSE仍为1/6平方厘米。全部最优参数为(1/2,7/6−2t,t),其中t为任意实数。因为最佳预测唯一,而x与u独立,产生它必须满足a=1/2、b+2c=7/6。两组参数是同一预测的不同写法,没有第二个最佳预测点。
参考与延伸
1 麻省理工学院MIT OpenCourseWare,Gilbert Strang,18.06SC,Lecture 16: Projection Matrices and Least Squares讲义。核对两种空间视角、正规方程与列独立的条件。
2 佐治亚理工学院教材,Dan Margalit、Joseph Rabinoff,《Interactive Linear Algebra》,6.5 The Method of Least Squares。核对最小二乘解、竖直残差与参数唯一性的关系。
3 同一教材,6.3 Orthogonal Projection。核对有限维子空间的正交分解、最近点与唯一性。
本文沿用第12章的虚构玩具读数,配图为本章绘制。MIT讲义另有横坐标整体加1的同形算例;本文统一使用x=(0,1,2)、参数顺序(a,b),不能直接混用两份材料中的截距。
作者:Jiancheng Wang · 数学之美(独立原创)