先修:12 数据与预测线;13 向量、线性组合与张成;勾股定理、平方展开与配方。末节的夹角说明另用余弦与余弦定理
上一章把三个预测打包成向量。调节斜率和截距,预测向量沿着两个方向移动,形成一个平面。我们知道哪些结果能够调出来,却还缺一把尺子:两个候选的差有多大?沿某个允许的方向,还能把预测往观测那里挪近多少?
先把问题缩小,只允许沿一个方向移动。解决这件事所需的工具叫点积。它把两组成对的坐标合成一个数,由此连接起长度、垂直和最近的预测。
先给差一个大小
在等比例的直角坐标系中,向量u=(3,2)表示向右3、向上2。勾股定理给出它的长度√(3²+2²)=√13。我们把这种长度记作‖u‖,称为欧氏范数;双竖线与绝对值的单竖线写法不同,但在一维时,两者恰好相同。
对有n个实数坐标的向量u,定义:
‖u‖²=u₁²+u₂²+…+uₙ², ‖u‖=√(u₁²+u₂²+…+uₙ²)。
每项都非负,所以长度不可能是负数;只有所有坐标都为0,长度才为0。平面上的勾股定理,由此变成了任意多个坐标都能使用的计算规则。1
这把尺子带着一个约定:各个坐标使用相同标尺。在纸上画图时,横轴1格与纵轴1格应代表相同长度,坐标轴也彼此垂直。如果把图横向拉宽,箭头在屏幕上看起来的夹角就会改变,不能再用尺子量屏幕来检验原来的计算。
两个向量p、q之间的距离,定义为差向量的长度‖p−q‖。例如第12章的候选B和C,每个预测都相差1/6厘米,差向量为(1/6,1/6,1/6)厘米。因此距离平方是3×(1/6)²=1/12平方厘米,距离是√3/6厘米。它衡量整组三个预测的差别,不能读成每次读数都差这么多。
对观测y和预测ŷ,残差r=y−ŷ,于是第12章的残差平方和正好就是‖r‖²。比较SSE,相当于比较预测向量到观测向量的距离平方;开平方不会改变非负数的大小顺序。
点积为什么要成对相乘
设u、v具有相同数量、相同顺序的实数坐标。它们的欧氏点积定义为:
u·v=u₁v₁+u₂v₂+…+uₙvₙ=Σᵢ₌₁ⁿuᵢvᵢ。
末尾的Σ只是“把i从1到n的各项相加”的简写。先将对应位置相乘,再把乘积加起来,结果是一个数,不是另一支箭头。
“对应位置”是实际问题的一部分。玩具读数的第一坐标都对应x=0,第二坐标都对应x=1。如果只把其中一组读数换序,计算就会拿不同位置互相比,结果回答的是另一个问题;如果两组按同一规则一起换序,每对乘积还在,点积就不会改变。
用u=(3,2)试一试。与向右的单位向量e=(1,0)点乘,得到u·e=3×1+2×0=3:竖直那一部分不参与,留下水平的3。若换成向左的(−1,0),结果变成−3,表示相对于选定方向,分量朝着反面。负号记录方向,并不是负的长度。

图1:与长度为1的方向点乘,得到沿这个方向的带符号分量;与自己点乘,得到长度平方。
一般地,u·u=‖u‖²。这个等式使点积同时管理两种事情:一个向量有多长,两个向量怎样相对。因为逐项乘法满足分配律,我们还可以展开:
‖u−v‖²=(u−v)·(u−v)=‖u‖²−2u·v+‖v‖²。
这里用了u·v=v·u,以及(u+v)·w=u·w+v·w。它们都可以从对应坐标的乘法直接检查。
如果u·v=0,中间的交叉项消失,便得到‖u−v‖²=‖u‖²+‖v‖²。在二维、三维中,对两支非零箭头,勾股定理及其逆定理告诉我们:它们正好垂直。我们把点积为0称作正交,并将这个定义沿用到更多坐标的情况。1
例如(2,1)·(−1,2)=−2+2=0。这两支箭头虽然都不沿坐标轴,却仍然正交。它们没有任何一个坐标为0,点积仍然可以为0,因为两个乘积恰好抵消。“重合”在这里不是统计相同坐标有几个,也不是看箭头在纸上有没有交叉,而是问一个向量沿另一个方向留下多少分量。零向量与每个向量的点积也为0,所以按定义与它们正交;但零向量没有确定方向,不能替它画一个夹角。
只许沿一条线移动
现在给定观测向量y,以及一个非零方向v。所有允许的候选写成tv,t可以是任意实数:正数沿v走,负数沿反方向走,0停在原点。我们要找使‖y−tv‖²最小的t。
先把这个式子逐项展开。为让步骤清楚,暂把坐标当作纯数:
‖y−tv‖²=Σᵢ(yᵢ−tvᵢ)²
=y·y−2t(y·v)+t²(v·v)。
对固定的y和v,三个点积都是已经确定的数,只有t在变。这就是一个可以配方的二次式。记A=v·v、B=y·v,因为v非零,A严格大于0。于是:
At²−2Bt+y·y=A(t−B/A)²+y·y−B²/A。
后两项不随t改变,第一项是正数乘一个平方,最小只能为0,而且只在t=B/A时达到。因此最佳系数唯一,为:
t*=(y·v)/(v·v)。
对应的最佳向量p=t*v,叫作y在v所张成直线上的正交投影。2 这次我们排除了所有其他实数t,而不是只比较几个候选。
允许哪些t很重要。若额外规定只能向前走,即t≥0,刚才的最佳系数就可能不被允许。例如y=(−1,2)、v=(1,0)时,整条线上的最佳系数是−1;若禁止负数,只能在边界t=0取得最小值。此时残差并不与v垂直。后文的垂直结论都以允许沿整条直线移动为前提。
分母为什么不能省?如果把v换成2v,允许到达的直线没有变;分子变成两倍,分母变成四倍,新系数就减半,最终的p仍相同。系数记录“需要几份这支箭头”,箭头本身变长,需要的份数自然变少。
还要分清三个量:y·v是点积;(y·v)/(v·v)是倍数;再乘v才是投影向量。只有当v长度为1时,点积才直接等于沿v的带符号投影长度。若v=0,所有tv都只是0,最近候选仍是0,但系数不唯一,刚才的除法也不能使用。
最近的地方为什么垂直
记投影后的残差为r=y−p。把刚才算出的系数代回去:
r·v=(y−t*v)·v=y·v−[(y·v)/(v·v)](v·v)=0。
所以y拆成了沿v的p,以及与v正交的r。这里没有丢掉r,只是把观测里沿这一条线能够表达的部分单独取了出来。
也可以反过来判断:如果某个候选的残差仍与v有非零点积,就还没有到最佳位置。因为它还留着沿v的分量,可以通过适当增减系数抵消一部分。这给出了一个检查答案的办法,不必凭图上“似乎最近”来下结论。
再从p沿v移动δ份,候选成为p+δv,残差就变成r−δv。展开平方,并用r·v=0消去交叉项:
‖r−δv‖²=‖r‖²+δ²‖v‖²。
只要δ不为0,后一项就严格为正。任何继续沿线的移动,都会在已经剩下的偏差之外,额外增加一项。这是“垂足最近”的代数证明,在三维以上依然有效。3
用一个不带测量单位的二维例子核算:y=(1,3),v=(2,1)。点积y·v=2+3=5,而v·v=4+1=5,所以p=v,r=(−1,2)。原向量的长度平方为10,投影与残差的长度平方各为5,恰好组成10=5+5。若取另一个候选2v,残差成为(−3,1),长度平方是10,比最佳值5多出一份‖v‖²。

图2:横纵坐标采用相同尺度。y·v=5,v·v=5,所以t*=1;残差与方向的点积是−2+2=0。图中的直角来自实际二维几何。
三个读数只用一个常数预测
回到玩具的虚构读数y=(1,2,2)。这次暂时不调斜率,只允许三个位置都预测同一个常数t,即tv=t(1,1,1)。在上一章的预测平面中,我们只选了其中一条直线来搜索。
这里取v=u=(1,1,1),即第13章的同步变化方向;v仍沿用本章一般投影公式的方向记号。下面统一对以厘米记录的数值运算,算得的t对应以厘米计的常数读数:
y·v=1+2+2=5, v·v=1+1+1=3, t*=5/3。
最佳预测是p=(5/3,5/3,5/3)厘米。它的残差为:
r=y−p=(−2/3,1/3,1/3)厘米。
核对正交:r·v=−2/3+1/3+1/3=0。核对距离平方:‖r‖²=4/9+1/9+1/9=2/3平方厘米。
这也解释了平均数为何出现。如果有n条读数,仍要求所有位置使用同一个常数,那么y·v是读数之和,v·v是n,最佳常数就是算术平均数。这个结论依赖各坐标使用相同权重,并以平方和作为损失。
“平均”因此有了具体任务:把所有读数压成一个共同预测时,它让平方损失最小。平均数没有声称每个读数都集中在附近,也没有证明这个共同数值是真实规律。若改用绝对误差或最大误差来比较,仍需重新求解,不能把本次结论原封不动搬过去。

图3:左侧回到输入、输出的数据图;右侧是参数t与损失的关系。右图的最低点说明,所有常数预测都已纳入比较。
残差之和为0,却仍有2/3平方厘米的偏差平方和。正交表示“再沿同步增减这个方向走,无法降低平方和”,并不表示三个预测都正确。
而且,第12章候选C的SSE是1/6,比2/3还小。这没有推翻投影结果:C同时使用斜率和截距,允许的候选集合更大。我们刚刚证明的是最佳常数,不是整个二维预测平面里的最佳拟合。后一个问题留到第17章。
从重合分量到方向相似
配方还顺手给出一个限制。最小距离平方不可能为负,所以当v非零时:
‖y‖²−(y·v)²/‖v‖²≥0。
整理并开平方,得到|y·v|≤‖y‖‖v‖。v为0时,两边都是0,结论也成立。这就是柯西—施瓦茨不等式:点积的绝对值,不会超过两支向量长度的乘积。当v非零时,等号出现意味着最小残差为0,也就是y本来就在v张成的直线上。
对两个非零向量,除掉各自的长度,便得到一个一定落在−1,1中的数:
cos θ=(y·v)/(‖y‖‖v‖)。
在二维、三维中,它就是夹角的余弦。看两支箭头与连接它们端点的线段组成的三角形:余弦定理给出‖y−v‖²=‖y‖²+‖v‖²−2‖y‖‖v‖cos θ;而点积展开给出的末项是−2y·v。两式的左侧相同,前两项也相同,因此两个末项必须相等,便得到上面的关系。更多坐标时,我们用这个关系定义夹角。1 它也常被称为余弦相似度:1表示同向,−1表示反向,0表示正交。
把任一个向量乘以正数,分子和分母会同时乘上相同倍数,这个比值不变;乘负数会反转方向并改变符号。因此,(1,2)与(10,20)的余弦相似度为1,尽管距离并不为0。方向一致和数值接近,是两种不同的问题。
这种比较还依赖坐标怎样设计。u=(1,1)、v=(1,−1)原本点积为0;若只把两者的第一坐标都放大10倍,点积就变成100−1=99。不同特征的缩放会改变距离和夹角。混合厘米、价格、次数等特征前,应说明尺度和权重,不能把任意数字直接放在同一把尺上。
对玩具的输出,三个坐标都以厘米计;统一换成毫米会使距离数值乘10、平方范数乘100,余弦相似度保持不变。零向量则不能计算这个比值,因为分母为0。即使坐标来自词语或图像的编码,一个高相似度也只说明这种编码下的方向接近,不能单凭它宣布含义相同。
点积让我们从成组的数里算出方向、大小和可表达的部分。下一章会把许多这样的成组运算整齐排列起来,学习怎样用矩阵同时组织它们。
顺手试一下
题目1: 给定纯数向量y=(4,1)、v=(1,1),求最佳系数、投影和残差,核对正交与最小距离平方。若把v换成(3,3),哪些结果改变?
提示: 分别计算y·v和v·v,再看“系数乘方向”是否改变。
**参考答案:**y·v=5,v·v=2,所以t*=5/2,p=(5/2,5/2),r=(3/2,−3/2)。r·v=0,‖r‖²=9/2。换成(3,3)后,系数为15/18=5/6,投影、残差和最小距离平方都不变。
题目2: 仍用y=(1,2,2)厘米作常数拟合。若常数从5/3厘米增加1/3厘米,SSE增加多少?残差之和是否仍为0?
提示: 用‖r−δv‖²=‖r‖²+δ²‖v‖²,也可直接检查三个新残差。
**参考答案:**δ=1/3厘米,‖v‖²=3,所以SSE增加(1/3)²×3=1/3平方厘米,从2/3变成1。新预测为(2,2,2)厘米,新残差为(−1,0,0)厘米,和为−1厘米,已不再与(1,1,1)正交。
参考与延伸
1 佐治亚理工学院,Margalit、Rabinoff,《Interactive Linear Algebra》,6.1 Dot Products and Orthogonality。核对实向量点积、欧氏长度、距离、正交与夹角的定义及零向量的边界。
2 MIT OpenCourseWare,18.06SC,Projections onto Subspaces 讲义,第1页。核对一维投影系数、残差垂直条件及方向向量缩放后投影不变;本文改用配方完成最小值证明。
3 佐治亚理工学院,Margalit、Rabinoff,《Interactive Linear Algebra》,6.3 Orthogonal Projection。核对正交分解与最近向量的关系;本章只处理一条过原点的直线,不预先使用一般矩阵公式。
本文沿用前章的虚构玩具读数;二维算例、逐步推导编排与图解为本系列原创教学内容。
作者:Jiancheng Wang · 数学之美(独立原创)