最小二乘法的几何解释

最小二乘法的几何解释

这篇文章用通俗易懂的语言,从几何的角度解释了最小二乘法的解为什么是 x^=(ATA)1ATb

线性方程组的几何意义


为了从几何的角度解释最小二乘法,我们先回顾一下,线性方程组的几何意义。线性方程组可以从行和列两个角度看。
举例,看如下简单的线性方程组:

{x1+x2=3ax1+x2=1b

从行的角度看

线性方程组的解就是直线 a 和直线b的交点,这一点应该谁都知道,如下图所示:


两直线的交点即为解

从图上很容易可以看出该线性方程组的解为 x1=1,x2=2 ,

所以从行的角度看,线性方程组的每一行都代表空间中的几何图形(二维时是直线,三维时是平面,高维时是高维空间中的一个”平面“),线性方程组的解就是这些图形的交点or交线or交面。

从列的角度看

从列的角度看时,先把上面的线性方程组写成矩阵的形式

[  1   11  1]×[x1x2]=[31]a1a2b

这样看还不是很直观,再把上式拆开,写成下面这个样子:
[11]×x1+[11]×x2=[31]a1×x1+a2×x2=b

怎么拆的?矩阵乘法好像不是这个样子的!放心吧,矩阵乘法就是这个样子的,只是这种写法在大学里的代几课上不常见,但矩阵乘法的意义就是这个样子的。表示 向量 a1 x1 倍加上向量 a2 x2 倍等于向量 b 。这种角度就是从列向量的角度看线性方程组。该方程的解已经从行的角度看出来了,为x1=1,x2=2,于是我们把向量 a1,a2,b 画到下面这张图上:


向量的伸缩系数即为解

很神奇对不对,向量 a1 的1倍加上向量 a2 的2倍刚好等于向量 b ,而倍数1和2,就是我们的解x1 x2

从列的角度看线性方程组 Ax=b 的解,就是为系数矩阵 A 里的每一列都寻找一个合适的倍数,使每一列乘上这个倍数后再相加刚好等于向量b ,这个倍数就是解。官方语言就是找到 A 里的列向量的一个线性组合使之等于b

最小二乘法


最小二乘法就是解一个无解的线性方程组

我们从一个最简单的例子开始,已知平面上有3个点(1,2),(0,2),(2,3)


平面上3个点

我们想用一条直线去拟合它。像高中时一样,设这条直线的方程为 y=kx+b 。我们希望这条直线可以同时通过这三个点,也就是这条直线的参数要满足:
1×k+b=20×k+b=22×k+b=3

从图中直观的看,没有一条直线可以同时过这三个点,所以这个方程是无解的。怎么解一个无解的方程组呢?下面好戏开始了。为了表述方便,我们换一下符号,用 x1 表示 k ,用x2表示 b 。即:
1×x1+x2=20×x1+x2=22×x1+x2=3

写成矩阵形式:
110121[x1x2]=223A×x=b

从列的角度看:
102×x1+111×x2=223a1×x1+a2×x2=b

一但化成列的形式,我们就很自然想到把向量 a1,a2,b 画到图上:

这里写图片描述

要找到解,就要找到 a1,a2 的一个线性组合,使得组合后的向量刚好等于 b 。可惜的是任何的a1 a2 线性组合,只可能出现在 a1,a2 所在的平面 S (这个平面S就是传说中的向量空间),但是向量 b 不在平面S上,如下图。不可能找到解,怎么办呢?

这里写图片描述

无解 —>解出一个最接近的解

找不到完美的解,就只能找到一个最接近的解。所以我们想在平面 S 上找一个最接近向量b的向量来代替向量 b ,记这个替代品向量为P。就是过向量 b 的终点做平面S 的垂线(也就是做投影),垂足就是代替向量 P 的终点。P b 之间的误差e=bP


这里写图片描述

原来的方程为 Ax=b 是无解的,我们用 P 代替b后, P a1a2所在的平面上,所以现在方程 Ax^=P 就一定是有解的啦。
我们知道, P b之间的误差为:
e=bP=bAx^(1)

要想使 P b之间的差距最小,那么 e 一定是垂直于平面S的,也就是要垂直于 a1 a2 。想一想在高中时是怎么表示两个向量垂直的?只要他们的点乘等于0就行了。也就是 ea1=0,ea2=0 ,用矩阵表示出来就是 a1Te=0,a2Te=0 。即:
ATe=0(2)

把(1)带入(2)中,结果出来了, AT(bAx^)=0 ,化简一下就是 ATAx^=ATb ,这么简单就推出来了!所以最佳的近似解就是 x^=(ATA)1ATb

这里你是否担心 ATA 不可逆?不会的,只要 A 的每一列是线性无关的,那么ATA就是一个可逆的对称的方阵。这样,按公式解出的解出了最近似的解为(1/2,11/6)。


这里写图片描述

从列的角度,我们就可以用 a1 a2 的线性组合来表示 P ,下图所示。

这里写图片描述

那么最优的直线的斜率和截距就是我们解出的k=1/2,b=11/6=1.8333。如下图。

这里写图片描述

上图既不是行的角度,也不是列的角度,它只是问题的来源,那如果从行的角度看原方程,是什么样子的,方程的每一行都是一条直线,三条直线不相交于一点,我们的解是下图中的圆点,是中间三角形的重心?质心?不知道呀,看起来有点像。

这里写图片描述

结束语


这里只是举了一个简单的不能再简单的例子来说明做小二乘法的原理。它简单到可以画出列向量的图,对于更高维的向量,列向量的图就画不出来了,但它任然存在于一个高维的空间里。公式x^=(ATA)1ATb任然适用。但从列向量的角度看矩阵真的是会有很多收获的。

  • 50
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值