超定方程组:最小二乘法

最小二乘法是一种求线性方程组近似解的方法,基本思想是最小化残差平方和∑i=1n(yi^−yi)2\sum_{i=1}^{n}(\hat{\mathbf{y}_i}-\mathbf{y}_i)^2∑i=1n​(yi​^​−yi​)2,接下来从线性代数的角度来对最小二乘法进行完整的推导。

对于线性方程组Ax=y\mathbf{Ax}=\mathbf{y}Ax=y,其有解的充要条件是y\mathbf{y}y在A\mathbf{A}A的列空间中,在数据拟合任务中这一条件往往是不成立的,那么就需要寻求近似解,一个最优的近似解显然是将y\mathbf{y}y垂直投影到A\mathbf{A}A的列空间中,也就是将y\mathbf{y}y分解为垂直于列空间与平行于列空间两部分,使用平行于列空间的分量代替y\mathbf{y}y用来求解方程组。

先从将向量投影到向量考虑,假设存在向量a\mathbf{a}a,b\mathbf{b}b,现在想要将b\mathbf{b}b投影到a\mathbf{a}a上,b\mathbf{b}b在a\mathbf{a}a上的投影可以表示为ax\mathbf{a}xax,b\mathbf{b}b垂直于a\mathbf{a}a的分量可以表示为b−ax\mathbf{b}-\mathbf{a}xb−ax(这就是施密特正交化的原理),那么显然有
aT(b−ax)=0\mathbf{a}^T(\mathbf{b}-\mathbf{a}x)=0 aT(b−ax)=0
解得
x=aTbaTax=\frac{\mathbf{a}^T\mathbf{b}}{\mathbf{a}^T\mathbf{a}} x=aTaaTb​
那么投影的表达式就是
ax=aaTbaTa\mathbf{a}x=\mathbf{a}\frac{\mathbf{a}^T\mathbf{b}}{\mathbf{a}^T\mathbf{a}} ax=aaTaaTb​
如果将分子上的b\mathbf{b}b去掉的话,这个表达式将只与a\mathbf{a}a有关,并且是一个矩阵,这个矩阵就是将b\mathbf{b}b投影到a\mathbf{a}a的投影矩阵
P=aaTaTa\mathbf{P}=\frac{\mathbf{a}\mathbf{a}^T}{\mathbf{a}^T\mathbf{a}} P=aTaaaT​
任何一个向量b\mathbf{b}b经这个矩阵变换后将被投影到a\mathbf{a}a上,不难发现这是一个对称矩阵,且满足P2=P\mathbf{P}^2=\mathbf{P}P2=P,因为一个向量经过一次投影后已经被投影到a\mathbf{a}a上,再投影一次将不发生变化。

接下来考虑将一个向量y\mathbf{y}y投影到矩阵A\mathbf{A}A的列空间中,仿照之前的做法,A\mathbf{A}A的列空间中的向量可以表示为A\mathbf{A}A的列的线性组合,即Ax^\mathbf{A}\hat{\mathbf{x}}Ax^,y\mathbf{y}y垂直于的列空间的分量可以表示为y−Ax^\mathbf{y}-\mathbf{A}\hat{\mathbf{x}}y−Ax^,显然A\mathbf{A}A的每一列均垂直于y−Ax^\mathbf{y}-\mathbf{A}\hat{\mathbf{x}}y−Ax^,也就是说
AT(y−Ax^)=0\mathbf{A}^T(\mathbf{y}-\mathbf{A}\hat{\mathbf{x}})=0 AT(y−Ax^)=0
化简得到
ATAx^=ATy\mathbf{A}^T\mathbf{A}\hat{\mathbf{x}}=\mathbf{A}^T\mathbf{y} ATAx^=ATy
x^\hat{\mathbf{x}}x^实际上就是方程组的近似解,如果ATA\mathbf{A}^T\mathbf{A}ATA可逆的话,那么
x^=(ATA)−1ATy\hat{\mathbf{x}}=(\mathbf{A}^T\mathbf{A})^{-1}\mathbf{A}^T\mathbf{y} x^=(ATA)−1ATy
投影后的y\mathbf{y}y就是A(ATA)−1ATy\mathbf{A}(\mathbf{A}^T\mathbf{A})^{-1}\mathbf{A}^T\mathbf{y}A(ATA)−1ATy,如果将y\mathbf{y}y去掉的话,剩下的部分将只与A\mathbf{A}A有关并且是一个矩阵,这个矩阵就是将y\mathbf{y}y投影到A\mathbf{A}A的列空间的投影矩阵
P=A(ATA)−1AT\mathbf{P}=\mathbf{A}(\mathbf{A}^T\mathbf{A})^{-1}\mathbf{A}^T P=A(ATA)−1AT
这是一个对称矩阵,因为
PT=(A(ATA)−1AT)T=(AT)T((ATA)−1)TAT=A(ATA)−1AT=P\begin{aligned} \mathbf{P}^T&=(\mathbf{A}(\mathbf{A}^T\mathbf{A})^{-1}\mathbf{A}^T)^T\\ &=(\mathbf{A}^T)^T((\mathbf{A}^T\mathbf{A})^{-1})^T\mathbf{A}^T\\ &=\mathbf{A}(\mathbf{A}^T\mathbf{A})^{-1}\mathbf{A}^T\\ &=\mathbf{P} \end{aligned} PT​=(A(ATA)−1AT)T=(AT)T((ATA)−1)TAT=A(ATA)−1AT=P​
并且同样满足P2=P\mathbf{P}^2=\mathbf{P}P2=P,因为
P2=A(ATA)−1ATA(ATA)−1AT=A(ATA)−1(ATA)(ATA)−1AT=A(ATA)−1AT=P\begin{aligned} \mathbf{P}^2&=\mathbf{A}(\mathbf{A}^T\mathbf{A})^{-1}\mathbf{A}^T\mathbf{A}(\mathbf{A}^T\mathbf{A})^{-1}\mathbf{A}^T\\ &=\mathbf{A}(\mathbf{A}^T\mathbf{A})^{-1}(\mathbf{A}^T\mathbf{A})(\mathbf{A}^T\mathbf{A})^{-1}\mathbf{A}^T\\ &=\mathbf{A}(\mathbf{A}^T\mathbf{A})^{-1}\mathbf{A}^T\\ &=\mathbf{P} \end{aligned} P2​=A(ATA)−1ATA(ATA)−1AT=A(ATA)−1(ATA)(ATA)−1AT=A(ATA)−1AT=P​
剩下的最后一个问题就是如果判断ATA\mathbf{A}^T\mathbf{A}ATA是否可逆,实际上r(ATA)=r(A)r(\mathbf{A}^T\mathbf{A})=r(\mathbf{A})r(ATA)=r(A),也就是说如果A\mathbf{A}A是列满秩的话,ATA\mathbf{A}^T\mathbf{A}ATA就可逆,现在来证明这个结论,如果ATA\mathbf{A}^T\mathbf{A}ATA与A\mathbf{A}A有相同的零空间的话,这一结论显然成立(零空间的维数是n−rn-rn−r),要证明ATA\mathbf{A}^T\mathbf{A}ATA与A\mathbf{A}A有相同的零空间,只需证明对任意的x\mathbf{x}x,Ax=0⇔ATAx=0\mathbf{Ax}=\mathbf{0}\Leftrightarrow\mathbf{A}^T \mathbf{Ax}=\mathbf{0}Ax=0⇔ATAx=0。⇒\Rightarrow⇒显然成立,只需证明⇐\Leftarrow⇐,假设ATAx=0\mathbf{A}^T \mathbf{Ax}=\mathbf{0}ATAx=0,等式两边同乘xT\mathbf{x}^TxT有
xTATAx=0\mathbf{x}^T\mathbf{A}^T \mathbf{Ax}=\mathbf{0} xTATAx=0

(Ax)TAx=0(\mathbf{Ax})^T\mathbf{Ax}=\mathbf{0} (Ax)TAx=0
显然有Ax=0\mathbf{Ax}=\mathbf{0}Ax=0,证明完毕。

只需要A\mathbf{A}A列满秩,就可以得到线性方程组的最小二乘解,实际上这一要求不难成立,因为在数据拟合任务中往往A\mathbf{A}A的行数远远大于列数。

最后来看一下投影矩阵P\mathbf{P}P,它将一个向量投影到矩阵A\mathbf{A}A的列空间,在线性代数中我们知道A\mathbf{A}A的左零空间(ATx=0\mathbf{A}^T\mathbf{x}=\mathbf{0}ATx=0)与A\mathbf{A}A的列空间是正交的,假设A\mathbf{A}A的左零空间的投影矩阵是L\mathbf{L}L,那么对任意向量y\mathbf{y}y有
(Py)T(Ly)=0(\mathbf{Py})^T(\mathbf{Ly})=\mathbf{0} (Py)T(Ly)=0

yTPTLy=0\mathbf{y}^T\mathbf{P}^T\mathbf{Ly}=\mathbf{0} yTPTLy=0
P\mathbf{P}P是对称矩阵,所以有
PL=O\mathbf{PL}=\mathbf{O} PL=O
解得
L=I−P\mathbf{L}=\mathbf{I}-\mathbf{P} L=I−P
于是在求得列空间的投影矩阵P\mathbf{P}P后,就是求得了左零空间的投影矩阵L\mathbf{L}L。

欠定方程组:QR分解

对方程组
Ax=b\mathbf{A}\boldsymbol{x}=\boldsymbol{b} Ax=b
其中A∈Rp×n\mathbf{A}\in\R^{p\times n}A∈Rp×n,如果p<np<np<n,那么此方程组就称为欠定方程组,如果A\boldsymbol{A}A满足rank(A)=prank(\boldsymbol{A})=prank(A)=p,那么对任意bbb方程组至少有一个解(参考线性方程组的解个数与秩的关系),此时可以通过QR分解来得到方程组的一个解。

此时AT\boldsymbol{A}^TAT列满秩,可以分解为
AT=QR\mathbf{A}^T=\mathbf{QR} AT=QR
其中Q∈Rn×p\mathbf{Q}\in\R^{n\times p}Q∈Rn×p,是A\mathbf{A}A的列空间的一组标准正交基,R∈Rp×p\boldsymbol{R}\in\R^{p\times p}R∈Rp×p,其第iii行第jjj列的元素为Q\mathbf{Q}Q的第iii列与A\mathbf{A}A的第jjj列的内积,是一个上三角矩阵。此时x^=QR−Tb\hat{\boldsymbol{x}}=\mathbf{QR}^{-T}\boldsymbol{b}x^=QR−Tb明显满足该方程组:
Ax^=RTQTQR−Tb=b\mathbf{A}\hat{\boldsymbol{x}}=\mathbf{R}^T\mathbf{Q}^T\mathbf{QR}^{-T}\boldsymbol{b}=\boldsymbol{b} Ax^=RTQTQR−Tb=b
再通过求解A\mathbf{A}A的零空间的基就可以得到一系列解。

超定方程组和欠定方程组相关推荐

  1. matlab解欠定方程组,matlab解欠定方程组

    0000 0.7408 0.4493 0.3329 0.2019 0.1003 ③欠定方程(系统中未知数的个数比方程式的个数多) 欠定方程的解都不唯一,Matlab会计算一组构成通解的 基解..... ...

  2. 适定、超定和欠定方程的概念

    矩阵的每一行代表一个方程,m行代表m个线性联立方程. n列代表n个变量.如果m是独立方程数,根据m<n.m=n.m>n确定方程是 '欠定'.'适定' 还是 '超定'. 超定方程组:方程个数 ...

  3. 超定和欠定方程的概念

    矩阵的每一行代表一个方程,m行代表m个线性联立方程. n列代表n个变量.如果m是独立方程数,根据m<n.m=n.m>n确定方程是 '欠定'.'适定' 还是 '超定'. 超定方程组 :方程个 ...

  4. 适定、超定和欠定方程及压缩传感技术

    原文"适定.超定和欠定方程",链接http://blog.sina.com.cn/s/blog_4b700c4c0102e5v3.html. 不定方程 http://wenku.b ...

  5. matlab中欠定方程组超定方程组_生辰八字中天干与地支是什么

    要说清楚天干与地支,我们先来看一个方程组 再来看一个八字 上面这个方程组,是麦克斯韦方程组,常被称为是最伟大的方程组.这组公式融合了电的高斯定律.磁的高斯定律.法拉第定律以及安培定律,完美地揭示了电场 ...

  6. 欠定方程组的最小范数解

    欠定方程组的最小范数解(超曲面和原点的距离,原点球心球面和超曲面的切点) 今天小白问了我一个问题,我觉得颇有意思,做个记录. 问题描述 小白:插入一个问题,这个切点怎么求?就是固定超平面Ax=b 怎么 ...

  7. matlab 怎么解欠定方程 有Warning:Rank deficient,rank=2 tol=4.6151e-015 (转百度知道)

    Matlab求解线性方程组 AX=B或XA=B 在MATLAB中,求解线性方程组时,主要采用前面章节介绍的除法运算符"/"和"\".如: X=A\B表示求矩阵方 ...

  8. 欠定的三元一次方程组求解

    欠定的三元一次方程组求解 方程组如下: f(n)={a11x+a12y+a13z=0,a21x+a22y+a23z=0.f(n)= \begin{cases} a_{11}x +a_{12} y + ...

  9. 定区关联快递员 定区关联收派时间

    定区关联客户 准备工作 配置applicationContext.xml 服务端 <Bean 配置service接口> <jaxws:server id="不重复" ...

  10. 线性代数基础2--齐次线性方程组的解及方程组解的总结

    什么是齐次线性方程组,什么是非齐次线性方程组?                     齐次线性方程组(homegeneous linear equations): 一般的,如果线性方程组中所有方程的 ...

最新文章

  1. tenantid拦截php,实现领域驱动设计。为什么在所有版本库查询中都包含TenantId?...
  2. Tortoise SVN 版本控制常用操作汇总(show log)
  3. html怎么压缩ttf,如何使用CSS包含.ttf字体?
  4. 【设计模式】迪米特法则和六种原则的总结
  5. 1/2 常用函数:内建函数
  6. RuntimeError: Model class paypal.standard.ipn.models.PayPalIPN doesn't declare an explicit app_label
  7. 迷宫java代码_java写的迷宫代码
  8. lamp mysql位置_linux查看 LAMP环境安装路径
  9. C++重载流插入运算符与流提取运算符
  10. 汽车和山羊问题matlab_三门问题:为什么换门会增加得到汽车的概率
  11. [译] 通过官网 Go 语言学习笔记 | How to Write Go Code
  12. echo 在shell及脚本中显示色彩及闪烁警告效果
  13. java内嵌浏览器的几种方式
  14. APP专项测试方法和工具的使用
  15. 参考 雷霄骅https://blog.csdn.net/leixiaohua1020/article/list/28
  16. InfluxDB查询 tag和field列名字重复
  17. python PyEnchant(拼写检查)
  18. EDA 电子设计自动化VHDL系列课程1--加【减】法器的设计
  19. 盘点人工智能十大经典应用领域、图解技术原理
  20. [Office] Microsoft Office Outlook 2007/2010 设置邮件已读/未读快捷键

热门文章

  1. 黑马程序员-java教程 代码笔记
  2. KNN分类USPS, USI sonar及USI iris
  3. 查看文件夹和文件大小
  4. Houdini输出ABC到UE4识别材质
  5. 工程力学和计算机专业,工程力学本科专业介绍
  6. VScode代码美化工具Beautify
  7. 剑指Offer——完美+今日头条笔试题+知识点总结
  8. Android 应用FPS测试方法介绍
  9. C# | 批量将CAD图幅网格外扩生成新图框(附源代码下载)
  10. win10录屏电流声_Win10自带录音录屏工具使用体验,值得一试