投影、最小二乘法介绍

二维空间#

假设a是二维空间一个子空间,现在我们要求解ax=b,但是就像下面这张图,b并不在a的列空间里,所以也就没解

但是没办法吼,领导就是要一个解,那咋办?我们只能找一个最接近的解,我们在二年级的时候学过,ba上肯定是垂线段最短,所以我们就画个垂线。这下得到了一个误差向量e和一个向量p,我们叫它投影。我们要做的就是用Ax^=p代替原Ax=bx^则是我们要找的原方程的最优解。它们有如下关系:

  1. pa列空间中(p就在a上)
  2. ea垂直

对应上面的12,我们可以推导出如下公式

  1. p=x^a
  2. aT(bx^a)=aT(bp)=0

把它们整理成关于x,关于p的完整式子

  • x^=aTbaTa

  • p=aaTbaTa

上面的式子的后半部分就是把b投影到a上得到投影p的矩阵,称为投影矩阵P

  • P=aaTaTa,p=Pb

二维投影矩阵的性质#

  • P1=P,对称,因为一个矩阵乘自己的转置总是对称的
  • P2=P,做两次投影仍会落在原位,这从几何上很好理解

高维空间投影#

二维空间的那些东西很容易推广到高维,用三维举例。

这和二维空间没啥差别,只是个别公式需要稍微调整下,同样可以导出这些性质

  1. pA列空间中
  2. eA列空间垂直
  3. 所以可以知道eAT的零空间中,也就是eA的左零空间

公式

  1. p=Ax^
  2. AT(bAx^)=AT(bp)=0

整理

  • ATAx^=ATb
  • x^=(ATA)1ATb
  • p=Ax^=A(ATA)1ATb
  • P=A(ATA)1AT

这些都是根据二维空间的例子改的,不懂可以联系之前的二维空间想象。

为啥之前二维空间可以直接把aTa除过去而不用求逆呢?对那个例子,这个乘法是一行乘一列,所以得出来一个数,也就没啥影响。

看上面的第四个公式,如果A是n×n可逆方阵,那么正好P等于单位阵,因为如果A是可逆方阵说明A的线性组合铺满整个n维空间,所以必有解。也就是说b就在A列的线性组合中,也就不用投影。

N维投影矩阵性质#

  • 对称,PT=P

    (A(ATA)1AT)T=A(ATA)1AT

  • P2=P

    P2=A(ATA)1ATA(ATA)1A=A(ATA)1AT=P

最小二乘法#

上图有三个点,我们并找不出一条直线穿过三个点,所以对于Ax=b(b由这三个点组成)并找不出一个合适的x。这时就希望拟合出一条误差最小的直线

这就是我们上面说那么多的目的

假设最优直线是b=C+Dt,那么可列出三个方程

C+D=8C+3D=8C+4D=20

写成Ax=b就是

[111314]×[CD]=[8820]

我们知道是不可能找出C,D的,但是根据上面的经验,我们可以对两边乘一个转置,得到一个有解的方程:ATAx^=ATb,把ATA看作一个整体,ATb看作一个整体按照以往步骤消元

[111134][1113148820]=[3882636112]...3C+8D=368C+26D=112

得出两个方程组,就能得出cd了,也就找到了最优解那条直线(这书上给的例子数不好算啊,,不写出来了)

参考资料#

posted @   yudoge  阅读(621)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示
主题色彩