投影是最近的影子
用光照一根棍子,地上就会投出影子。那个影子是棍子上的一个点,是离原点最近的地面位置;从点垂下到影子的线,永远与地面成直角。这就是投影。把不止一个点、而是几十个数据点用同样方式一齐投下影子,便得到最小二乘:最接近每个点穿过的那条直线,也就是回归线。AI 把模型拟合到数据上,归根结底就是这一个投影的动作。
蓝点 p 是固定的。用滑块旋转过原点的直线角度。直线上的金点 f 是 p 的影子,即直线上离 p 最近的位置。从 p 垂到 f 的红色虚线永远与直线成直角,这就是残差。当直线恰好指向 p 时,残差缩到0,影子落在 p 上;直线偏离 p 越多,残差越长。一边读投影长度 p·u,一边读残差长度,看这两者如何此消彼长。
这次把直线固定在30度,由你亲自拖动点 p。p 走到哪里,直线上的影子(投影足)就跟到哪里,从 p 垂下的虚线永远与直线垂直。这个直角就是关键所在:当残差与直线垂直时,它的长度正好是 p 到直线的最短距离。直线上任何别的点都更远。把 p 拖得离直线远,距离读数就变大;贴近直线,就趋近于0。最近与垂直,是同一事实的两副面孔。
为什么影子长度是 p·u?把直线放在 x 轴上(u=e1),用滑块只改变长度固定为3的向量 p 的角度 θ。p 在 x 轴上的影子(金色)长度为 |p|cosθ,由竖直下落的虚线造出。θ=0 时 p 与直线平行,影子是完整的3;θ 趋向90度时,p 与直线垂直,影子消失为0。这个 |p|cosθ 正是点积 p·u 的定义。点积归根到底,就是量度一个向量沿另一个方向投下的影子长度的一把尺。
这次不是一个点,而是七个点。用滑块移动直线的斜率 m 和截距 b。从每个点垂到直线的竖直虚线就是该点的残差,把它们的平方全部相加便是 SSE(误差平方和)。直线越好地穿过点群中央,残差越短,SSE 越小。先用手找出你认为的最佳,再按最佳拟合按钮:m 和 b 会跳到最小二乘公式给出的精确值,SSE 落到它可能的最小值。这就是回归线。
最后,从几何看,最小二乘只需一行就收束。有一个蓝色目标向量 b,而模型能造出的只有金色方向向量 a 所画直线上的点。最近的近似是 b 投影到那条直线上的点 p,剩下的残差 r=b−p 必须与 a 成直角。打开开关,那条垂线(虚线)出现,可以看到 a·r 接近0。这个直角条件正是正规方程 aᵀ(b−Ax)=0。第一块中残差的正交,在这里直接成了方程本身。最小二乘,永远是把残差垂直地立在模型空间上的这件事。