线性代数系列(十)--子空间投影和最小二乘法

主要内容

  • 子空间投影
  • 最小二乘法

正文

虽然我们很早就接触了投影,但是我们可能并没有理解他的几何意义,这里的子空间的投影将会刷新我们对投影的认识。

一维子空间到一维子空间的投影

看下面的这个图片,想象一下,这是在二维平面中的两个直线,而且过原点。那么它们就是两个一维子空间。这是一个比较简单的例子,而后我们再扩展到高维空间。
在这里插入图片描述
在这里有两个子空间 a a a b b b,我们想在 a a a上找到离 b b b最近的地方,让这个最近的地方代替 b b b,于是这样就会产生误差。我们都知道垂线是最短的。所以,我们将 b b b上的每一点投影下去,就会得到一个线段,它构成一个向量 p p p,这个线段就是 a a a上离 b b b最近的地方。而 p p p是在向量 a a a上的一个向量。所以他们之前的关系可以表示为 p = x a p=xa p=xa此外,图中的 e e e表示误差。根据投影,我们可以得到 e e e a a a的垂直关系 a T e = 0 a^Te=0 aTe=0,即: a T ( b − x a ) = 0 a^T(b-xa)=0 aT(bxa)=0 a T b − x a T a = 0 a^Tb-xa^Ta=0 aTbxaTa=0 x = a T b a T a x=\frac{a^Tb}{a^Ta} x=aTaaTb通过上面的化简,我们可以得到 x x x的值,然后将 x x x导入到 p = x a p=xa p=xa中,我们可以得到 p = a a T b a T a p=a\frac{a^Tb}{a^Ta} p=aaTaaTb p = P b p=Pb p=Pb表示 b b b经过一个投影矩阵 P P P的作用,得到了它的投影。那么从这种形式 p = P b p=Pb p=Pb上来看, P = a a T a T a P=\frac{aa^T}{a^Ta} P=aTaaaT从上面的图中观察,我们将 b b b进行一次投影得到了 p p p,将 b b b进行两次投影,也就是将 p p p再进行投影,那么我们仍然会得到 p p p,这就是投影矩阵 P P P的特殊性质,我们先从几何的角度分析了一下。用代数来表示就是: P 2 = P P^2=P P2=P P T = P P^T=P PT=P后者可以从 P P P的公式中发现,它明显是对称的。

实际上,一开始我们说我们企图找到 a a a上离 b b b的最近的地方来代替 b b b,这样就可以用 a a a进行表示了,然而这样的表示会产生误差 e e e。所以,这种思想为我们提供了解决方程组无解问题的思路,那就是将向量往系数矩阵的列空间中投影,这样可以产生一个最近似的解,然而仍然是有误差存在的。

子空间的投影

我们发现上面的公式中, a a a是一个向量,当我们把他扩展到高维的时候,公式中含有的应该是矩阵。例如下面的图在这里插入图片描述
这是位于三维空间中的两个子空间。 b b b是三维空间中过原点的一条直线, A A A是三维空间中过原点的一个平面。对于 A x = b Ax=b Ax=b,显然 b b b不在 A A A的列空间中,所以方程组无解,不过我们试图找到 A A A中离 b b b最近的一个地方,来近似求解,这样我们会得到一个误差,不过该误差在此情况下,是最小的,也就是说,这种方法求出来的解是一个最优解但不是真实解。同样的,由于垂线最短,所以我们做投影,得到 p p p,这样 p p p显然位于 A A A的列空间中,于是我们可以得到 A x ^ = p A\hat{x}=p Ax^=p x ^ \hat{x} x^表示 x x x的近似解。上面的方程意味着, p p p可以由 A A A中的向量线性组合得到。于是刚才求解 x x x的问题就化成了求解 x ^ \hat{x} x^的问题。对于方程 A x ^ = p A\hat{x}=p Ax^=p,我们只能得到 A A A的信息,比如我们可以得到 A A A的一组基,然而关于 p p p的信息,我们不知道。所以还需要寻找其他的条件。注意到,误差 e e e在几何上是垂直 A A A的,所以有 A T e = 0 A^Te=0 ATe=0,即: A T ( b − A x ^ ) = 0 A^T(b-A\hat{x})=0 AT(bAx^)=0在这个方程中,只有 x ^ \hat{x} x^是未知的,因而,我们可以求得: x ^ = ( A T A ) − 1 A T b \hat{x}=(A^TA)^{-1}A^Tb x^=(ATA)1ATb类似一维的情况,我们得到了 x ^ \hat{x} x^的值,也就可以得到 P P P的值, p = A ( A T A ) − 1 A T b p=A(A^TA)^{-1}A^Tb p=A(ATA)1ATb P = A ( A T A ) − 1 A T P=A(A^TA)^{-1}A^T P=A(ATA)1AT 同样的,无论我们从几何上看 P 2 P^2 P2还是从公式上看,它都满足 P 2 = p P^2=p P2=p 另外还满足: P T = ( A ( A T A ) − 1 A T ) T = A ( A T A ) − 1 A T = P P^T=(A(A^TA)^{-1}A^T)^T=A(A^TA)^{-1}A^T=P PT=(A(ATA)1AT)T=A(ATA)1AT=P所以它是对称矩阵。

至此我们便得到了高维情况下的近似解的形式,投影矩阵的形式。利用这些公式我们可以求解线性方程组无解的问题。

最小二乘法

首先看一下,两个特殊的情况: b b b垂直于 A A A时, b b b A A A上的投影为一个点,代数上表示为 0 0 0;从公式上也可以看出,当 b b b垂直于 A A A时, A T b = 0 A^Tb=0 ATb=0,所以 p = A ( A T A ) − 1 A T b = 0 p=A(A^TA)^{-1}A^Tb=0 p=A(ATA)1ATb=0。另一个极端情况就是当 b b b A A A中时,这是从几何上看,它的投影仍然为它本身;在公式上,当 b b b A A A中时,就有 A x = b Ax=b Ax=b,所以 p = A ( A T A ) − 1 A T b = A ( A T A ) − 1 A T A x = A x = b p=A(A^TA)^{-1}A^Tb=A(A^TA)^{-1}A^TAx=Ax=b p=A(ATA)1ATb=A(ATA)1ATAx=Ax=b

从上面的这两种情况可以看出,向量 b b b总是含有两个分量,一个位于 A A A的列空间中,一个位于与 A A A的列空间垂直的空间中。而投影矩阵的作用就是拿掉垂直的那个分量,而保留列空间中的那个分量。这种关系可以用下面的这幅图来表示:
在这里插入图片描述
p p p b b b的投影, e e e是误差向量。我们可以通过投影矩阵 P P P得到 p p p,即 p = P b p=Pb p=Pb 我们可以使用类似的方式来表示 e e e e = ( I − P ) b e=(I-P)b e=(IP)b

最小二乘法: 例题:求解三个点 ( 1 , 1 ) , ( 2 , 2 ) , ( 3 , 2 ) (1,1),(2,2),(3,2) (1,1),(2,2),(3,2)拟合的直线方程。在这里插入图片描述
我们可以设出直线方程:y=C+Dx,代入三个点列出方程。 { C + D = 1 C + 2 D = 2 C + 3 D = 2 = [ 1 1 1 2 1 3 ] [ C D ] = [ 1 2 2 ] \begin{cases}C+D=1\\C+2D=2\\C+3D=2\end{cases}\qquad = \qquad \begin{bmatrix}1&1\\1&2\\1&3\end{bmatrix}\begin{bmatrix}C\\D\end{bmatrix}=\begin{bmatrix}1\\2\\2\end{bmatrix} C+D=1C+2D=2C+3D=2=111123[CD]=122 显然这个方程组无解。实际上这是一个线性方程组 A x = b Ax=b Ax=b无解的问题。但是我们可以通过像投影的方式,来求一个近似解。现在先求误差。实际的点为 b b b,然而在直线上的点为 A x Ax Ax,不妨设为 p p p。于是我们可以得到误差: ∣ e ∣ 2 = ∣ A x − b ∣ 2 |e|^2=|Ax-b|^2 e2=Axb2 在图像上显示为直线上的点到实际点的竖直距离的平方。对于实际点 b b b,拟合后的点 p p p A A A的列空间上,并且 e e e A A A的左零空间上,反映在图上为:
在这里插入图片描述
接下来的关键在于如何拟合。在上面的图中,我们可以发现, p p p几乎就是 b b b在列空间上的投影。根据之前的投影的内容我们可以得到: p = A ( A T A ) − 1 A T b p=A(A^TA)^{-1}A^Tb p=A(ATA)1ATb 我们所求的 p p p,也就是拟合的点,位于列空间上,又有 A x ^ = p = A ( A T A ) − 1 A T b A\hat{x}=p=A(A^TA)^{-1}A^Tb Ax^=p=A(ATA)1ATb x ^ = ( A T A ) − 1 A T b \hat{x}=(A^TA)^{-1}A^Tb x^=(ATA)1ATb A T A x ^ = A T b A^TA\hat{x}=A^Tb ATAx^=ATb到这里我们可以发现,这个方程实际上就是在 A x ^ = b A\hat{x}=b Ax^=b上乘以了 A T A^T AT,所以在解决无解的问题时,我们通常乘以 A T A^T AT来解决问题。这便是最小二乘法的线性代数解释,使用微积分的方法,我们得到的过程可能是不同的,但是在关键的方程上还是相同的。

比如使用微积分的方法,我们将三个点的误差记为 e 1 , e 2 , e 3 e_1,e_2,e_3 e1,e2,e3,而 ∣ e ∣ 2 = ∣ e 1 ∣ 2 + ∣ e 2 ∣ 2 + ∣ e 3 ∣ 2 = ( C + D − 1 ) 2 + . . . . . |e|^2=|e_1|^2+|e_2|^2+|e_3|^2=(C+D-1)^2+..... e2=e12+e22+e32=(C+D1)2+..... 将这个方程看成是二元一次函数,通过求偏导来确定极小值。这得到的结果与上面的结果是相同的。微积分的方法更倾向于使用纯代数的方法来求解,而线性代数的方法则是更多的利用了几何意义。

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值