• 线性代数笔记18——投影矩阵和最小二乘


    一维空间的投影矩阵

      先来看一维空间内向量的投影:

      向量p是b在a上的投影,也称为b在a上的分量,可以用b乘以a方向的单位向量来计算,现在,我们打算尝试用更“贴近”线性代数的方式表达。

      因为p趴在a上,所以p实际上是a的一个子空间,可以将它看作a放缩x倍,因此向量p可以用p = xa来表示,只要找出x就可以了。因为a⊥e,所以二者的点积为0:

      我们希望化简这个式子从而得出x:

      x是一个实数,进一步得到x:

      aTb和aTa都是点积运算,最后将得到一个标量数字。这里需要抑制住消去aT的冲动,向量是不能简单消去的,a和b都是2×1矩阵,矩阵的运算不满足乘法交换律,aT无法先和1/aT计算。

      现在可以写出向量p的表达式,这里的x是个标量:

      这就是b在a上的投影了,它表明,当b放缩时,p也放缩相同的倍数;a放缩时,p保持不变。

      由于向量点积aTa是一个数字,p可以进一步写成:

      在一维空间中,分子是一个2×2矩阵,这说明向量b的在a上的投影p是一个矩阵作用在b上得到的,这个矩阵就叫做投影矩阵(Projection Matrix),用大写的P表达:

      推广到n维空间,a是n维向量,投影矩阵就是n×n的方阵。观察投影矩阵会法发现,它是由一个列向量乘以一个行向量得到的:

      可以看出aaT的列向量是线性相关的,所以它的列空间和行空间的维度都是1,这说明它的秩是1,aaT是一个秩一矩阵,并且是一个对称矩阵。由于aTa是一个标量,所以aaT决定了投影矩阵的性质:

      投影矩阵还有另外一个性质:

      它的几何意义是,对一个向量投影两次和投影一次相同,b在a上的投影是p,再投影一次仍然是p。

    投影的意义

      向量投影到子空间有什么意义呢?这要从方程Ax = b说起。

      对于Ax = b来说,并不是任何时候都有解,实际上大多数这种类型的方程都无解。A的列空间的含义是方程组有解时b的取值空间,当b不在A的列空间时,方程无解。具体来说,当A是行数大于列数的长方矩阵时,方程组中的方程大于未知数个数,肯定无解。

      虽然方程无解,但我们还是希望能够运算下去,这就需要我们换个思路——不追求可解,转而寻找最接近可解问题的解。对于无解方程Ax = b,Ax总是在列空间里(因为列空间本来就是由Ax确定的,和b无关),而b就不一定了,所以需要微调b,将b变成列空间中最接近它的一个,Ax = b变成了:

      p就是A的列空间的投影, x帽表示此时的x已经不是原来Ax = b中的x,,当然,因为方程无解,所以本来也不可能有Ax = b。此时问题转换为寻找最好的 ,让它与原方程的差距最小:

      假设A的秩是2,此时列空间的维度也是2,列空间将是一个平面,平面上的向量有无数个,其中最接近b的当然是b在平面上的投影,只有b – p才能产生最小的误差向量:

      所以说,想要求解不等方程Ax = b,需要将b微调成它在A的列空间上的投影(列空间上的向量很多,b在列空间上的投影是唯一的),这就是投影的意义。

      从上图可知,如果b在列空间中,b的投影就是它自己;如果b正交于列空间,它的投影是0。

    投影矩阵的多维推广

      向量b在子空间上的投影是b在向量上投影的推广。如果A的列空间是一个二维平面,则列空间的基包含两个向量,我们用a1和a2表示。在一维空间中,b的投影是p = xa,多维空间也一样,只不过a从向量变成了矩阵,x从标量变成了向量:

      我们知道如何找到列空间的基向量, 如何求解呢?

      误差向量e垂直于列空间的平面,这意味它垂直于平面上的任意向量,投影p和基向量a1,a2都在平面上,这意味着它们和e的点积为0:

      将二者归纳为一个矩阵方程:

      对比平面上的投影方程,发现二者很相似:

      在一维空间中a是向量,x是标量;在多维空间中,a变成了矩阵A,x变成了向量,它们都长高了。

      误差向量e是否属于A的某个基本子空间呢?在上一章中提到过,列空间和零空间正交,e垂直于列空间上的所有向量,所以e属于A的零空间,也就是属于a的零空间。

      通过矩阵方程可以进一步求解投影向量和投影矩阵:

      这就是多维空间的投影矩阵,满足和一维空间同样的性质:

      投影矩阵的表达式并不友好,也许可以进一步化简:

      看起来就不对,所以一定要抑制住化简的冲动——这里A不是方阵,所以A-1不存在。

      

    最小二乘法

      最小二乘是投影矩阵的重要应用,常用于回归分析中。一元线性回归是回归分析中最简单的一种,它有一个自变量和一个因变量,能够根据一系列训练数据(x(1), y(1)), (x(2), y(2))…(x(n), y(n))找出一条最佳拟合直线y = ax + b,用这条直线作为模型,近似地表示x和y的关系,从而对新鲜样本进行预测。下图是一条典型的拟合直线:

      《多变量微积分2——最小二乘法》和《寻找“最好”(5)——无解之解》从微积分和约等方程的视角解释过最小二乘,其实用线性代数的观点解释会更加直观。

      最小二乘建立了一个约等方程组,目标是使总误差最小化,约等方程组可以用矩阵写成:

      问题是A是一个长方矩阵,想要求解必须将A转换为方阵,方法是等式两侧同时左乘AT

      这就和投影矩阵的相关公式相同,可以直接求解了。

      最小二乘的几何意义也可以用投影来解释,平方和损失函数用矩阵表示是:

      正是投影矩阵,整个式子表示所有向量与这些向量在列空间上的投影的误差的平方和,它的几何意义是所有点到拟合直线的距离之和最小:

      最后的问题是ATA是否是可逆的,如果A的各列线性无关,ATA就是可逆的,这在《线性代数笔记12——列空间和零空间》中有所说明。实际应用中,每个列代表的含义都不同,比如在房价预测中,第一列代表房屋面积,第二列代表房间数,第三列代表楼层数,这就可以确定A的各列一定是线性无关的。

    害群之马

      有一个因素会严重影响数据拟合:

      一部分数据点极不合群,它们远离了大部队,就像害群之马一样,会拉低整体的平均素质。这样的数据在统计学中称为离群量,也叫逸出量,在数据分析中称为数据噪声。实际上数据噪声很常见,比如预测某个大都市里电视机的价格走势,如果把双十一或店铺周年庆的价格也统计在内,就会严重影响预测结果,所以在拟合数据时,还需要预先去除数据噪声。

    示例

      假设有 (0, 1), (2, 1), (3, 4)三组数据,现在尝试使用直线对他们进行拟合,数据点的分布如下所示:

      直线的方程是y = ax + b,通过图中的三点建立一个方程组:

      三个方程两个未知数,这是个无解的方程组,说明三点并不在同一条直线上,我们需要寻找一条能够使三点误差和最小的直线。

      将最初的方程组转换为 的形式:

      可以根据投影矩阵的知识直接求解了:

      最终a = 6/7,b = 4/7

      现在更改一下需求,将数据拟合为曲线y = ax2 + bx +c。把三点代入假设函数,得到一个方程组:

      实际上这个方程组有唯一解:

      即便如此,我们仍然想用最小二乘的思想求解并验证一下。

      无论是通过消元法还是使用投影矩阵,最终都将得到唯一解。

      


       作者:我是8位的

      出处:http://www.cnblogs.com/bigmonkey

      本文以学习、研究和分享为主,如需转载,请联系本人,标明作者和出处,非商业用途! 

      扫描二维码关注公众号“我是8位的”

  • 相关阅读:
    [实战]MVC5+EF6+MySql企业网盘实战(11)——新建文件夹2
    [实战]MVC5+EF6+MySql企业网盘实战(10)——新建文件夹
    FMXUI
    x-superobject
    mORMot
    NativeXml
    superobject
    jsondataobjects
    QDAC
    DIOCP
  • 原文地址:https://www.cnblogs.com/bigmonkey/p/9897047.html
Copyright © 2020-2023  润新知