seegongsik
工程数学

最小二乘 投影

投影是直线或平面上最近的点,余下部分总是垂直,叠加到数据上就成了最小二乘

想象太阳在头顶正上方时,空中一个点投在地面上的影子。这个影子是地面上离原来那个点最近的位置,从点落到影子的线总是与地面成直角。这就是投影。不是一个点,而是把几十个数据点用同样的方式一次性投下影子,那就是最小二乘法;离所有点都最近地穿过的直线就是回归线。AI 让模型拟合数据,说到底也就是投下影子这一个动作。

蓝色的点是固定的。用滑块转动过原点的直线的角度,变化就会显现。直线上的金色点是蓝点的影子,也就是直线上离蓝点最近的位置。从蓝点落到影子的红色虚线总是与直线成直角,这就是残差。直线恰好指向蓝点时,残差缩到 0,影子与点重合;直线偏离点越多,残差越长。从原点到影子的金色线段就是投影长度,下方并排写出投影长度 p·u 和残差长度,可以看出两者怎样相互咬合。

这次把直线固定在 30 度,亲手拖动蓝色的点。无论把点挪到哪里,直线上的金色影子都会跟着走,从点落到影子的红色虚线始终与直线成直角。这个直角是关键。当残差与直线垂直时,残差的长度就是点到直线的最短距离;挪到直线上任何其他点,都比它远。把点拖得离直线越远,下方的距离值越大;紧贴直线时,就接近 0。最近和垂直,是同一个事实的两副面孔。

为什么影子的长度是 p·u?把直线取作 x 轴 (u=e1),只用滑块改变长度固定为 3 的蓝色向量的角度 θ。这个向量在 x 轴上的影子长度是 |p|cosθ,竖直落下的红色虚线造出了那段金色影子。θ 为 0 时,向量与直线平行,影子是完整的 3;θ 到 90 度时,向量与直线垂直,影子消失为 0。这个 |p|cosθ 正是内积 p·u 的定义。内积说到底,是一把量一个向量沿另一个向量方向投下的影子长度的尺子。

现在不是一个点,而是七个点。用滑块移动直线的斜率和截距,从每个点落到金色直线的红色竖直虚线就是该点的残差,把它们的平方全部加起来就是 SSE(误差平方和)。直线越好地穿过点群的中央,残差越短,下方的数值越小。先用手找一找最好的直线,再按“最佳拟合”按钮,斜率和截距就会跳到最小二乘公式给出的精确值,误差平方和降到可能的最小值。这就是回归线。比一比你手找的直线离这个值有多近,也是很好的练习。

最后,从几何上看,最小二乘法一行就能收尾。有一个蓝色的目标向量,而模型能做出的,只有金色方向向量所画直线上的点。最好的近似是把目标投影到这条直线上的点,剩下的残差 r=b−p 必须与模型方向垂直。打开开关,那条垂线就以红色虚线出现,下方显示 a·r 接近 0。这个直角条件正是正规方程 aᵀ(b−Ax)=0。第一块里看到的残差正交,在这里原样变成了方程。最小二乘法,永远是把残差垂直地立在模型空间上。

实际应用投影是把一个点落到直线或平面上最近位置的影子。这个位置在残差与模型空间垂直时确定,影子的长度用内积 p·u 来量。“垂直”和“最近”是同一个事实,这是一切的根。把同样的投影用在许多数据点上,就是最小二乘法;使误差平方和最小的直线就是回归线。把“残差与模型正交”这个条件写成式子,就得到正规方程 aᵀ(b−Ax)=0。从拟合直线、拟合曲线,到校正神经网络的输出,AI 让模型拟合数据,归根结底就是把数据向量投影到模型空间这一个动作。
← 工程数学
如果有帮助,请支持我们