L16-投影矩阵与最小二乘法
参考
由上一节课可知,投影矩阵 的作用是将向量 投影到矩阵 的列空间中,得到投影向量
有两种特殊的情况让投影结果比较特别:
- 当向量 已经在列空间 中,则投影结果向量等于其自身
证明
由于向量 在列空间 中,即向量 可以由矩阵 各列向量的线性组合构成,即可以用 来表示
则投影结果向量 其中 和 相乘得到单位矩阵 ,所以可以化简为
- 当向量 垂直于列空间 时,则投影结果向量是
证明
由于向量 垂直于列空间 ,而左零空间 包含所有垂直于 空间的向量,所以向量 就在左零空间 中,即满足
那么投影结果向量 其中 所以
而在一般情况下,向量 会有两个分量,其中一个分量是投影到列空间 的向量 ;另一个是分量是误差向量 ,它是向量 投影到左零空间 的结果。
即向量 ,其中投影矩阵 的作用是将向量 投影到列空间,得到分量 ;而相应地,投影矩阵 就是将向量 投影到左零空间,得到分量
证明
因为向量 由两个分量构成 其中 ,所以得到
以上推演式子中 是单位矩阵
则可以推演导出 为另一个投影矩阵,其作用是将向量 投影到左零空间
是投影矩阵,所以它也具有以下特性:
证明
由于 是投影矩阵,满足 ,所以得到
使用直线 来「描述」数据 、、
假设这条直线正好经过这三个点,将各点代入到直线中,得到以下方程组
但是以上方程组其实是无解,因为无法找到一条直线正好都经过三个数据点。所以一般情况下,都是寻找一条最佳拟合的直线来描述数据,它使得「总误差」最小
使用直线拟合数据
说明
误差是指数据点与直线上的相应点(横坐标值相同)之间的差值,即下图的一系列 (绿色线段的距离)
使用直线拟合数据
用公式表示
使得「总误差」最小并不是指它们的和 最小,因为数据点可能在拟合直线上下分布,所以误差可能会有正负值,如果将各个误差直接相加求和可能发生正负抵消而不能真实反映总误差。
所以「总误差」最小实际是指各个误差的平方和最小
将以上式子看作一个函数 求最值的问题,可以通过微积分(求导)来解决
线性回归通过最小二乘法求出最佳的拟合直线,其原理就是使得所有点与直线的误差平方和最小,其中「二乘」就是指平方 ,「最小」就是指最小值
线性回归使用直线拟合一系列的数据点,对于没有 outliers 异常值/离群值的数据集一般都适用
将前面的方程组写成矩阵 的形式
可以从线性代数的角度考虑,该方程组无解(即求不出一条直线,正好经过所有数据点)是因为 不在矩阵 的列空间 中
如果需要方程组有解,可以将向量 各元素「调整」为 ,让向量 在矩阵的列空间 中,用方程组 来表示,则这个方程组有解 ,即可以求出一条直线,均经过数据点 、、
说明
在方程组 中未知量采用 表示,以表示它和原方程组 不同,这个解 是原方程(虽然是无解)的近似值(最优解/最佳估算值)
向量 各元素变动「调整」为向量 ,这个变动就是误差向量 ,是两个向量的差值
根据上一个小节的内容,可以将向量 投影到矩阵 的列空间 的分量作为 ,这样构成的方程组 会有解;那么投影到左零空间 的分量就是误差 。而且根据投影(正交/垂直)的特点,可以知道以此方式得到的误差是最小的,所以通过这样的方程组 所求得的拟合直线是最佳的
提示
如果从几何角度来考虑,为了让所求的直线是最佳的拟合直线,关键是要让误差向量 最小,就是令误差向量的模长最小,一般以模长的平方来表示
这就和最小二乘法的理念一致
疑问
下一步应该是根据前面章节得到的公式直接算出投影向量
然后再解出方程组 得到拟合直线
⚡ ⚡ ⚡
但是课堂上是从另一个角度入手,先「单纯」着眼于矩阵的结构和可解性,因为 是长方形矩阵而很可能使得方程组无解,所以在等式两边乘上 构建出 ,让系数矩阵变成 方阵,使得方程组变得更可能有解
可以理解为不是通过调整向量 ,而是通过「调整」系数矩阵让方程组有解。
然后解出 方程组(得到的直线,就是最佳拟合直线,但是课堂上好像没有证明 ❓)
如果需要求出向量 也十分简单,只需要将相应的横坐标代入到直线中求出相应的点即可
⚡ ⚡ ⚡
可以将课堂解法看作与上面的解法顺序相反(先算出 再求出最佳拟合直线)。
两种方法可以得到相同的结果(最佳拟合直线),但是课堂的解法运算 :thumbsup: 更简单,因为上面的方法需要计数 十分繁琐,而且其中还涉及到求逆矩阵的相关运算
方程组 无解,可以在等式两边乘上 构建出 ,让系数矩阵变成 方阵,使得方程组变得更可能有解
得到
将上式写成相应的方程组,称为 Normal Equations 正规方程组(可能有解,2 个未知数,2 个等式)
提示
以上方程组的两条等式,其实也可以从上面提到的通过构建函数求最值的过程中导出,
求函数 最小值时 和 的值
- 第一个等式 是令 对 的偏导数等于 时得到的
- 第二个等式 是令 对 的偏导数等于 时得到的
解得
所以(最佳)拟合直线为
将横坐标值代入直线可以得到
即数据点 、、 在拟合直线上的相应点依次为 、、
那么直线上各点与原数据的误差分别是
所以(投影结果)向量 为
误差向量 为
提示
可以进行一些验证,如误差向量和投影结果向量是向量 的两个分量,所以应该满足
另外误差向量垂直于矩阵的列空间 ,所以它应该和矩阵 的各列向量正交,例如与 正交,即它们的点积应该为零,也和 正交(因为向量 是向量 在列空间的投影)
还可以使用矩阵运算来求解投影向量 和误差向量
其中投影向量 各元素对应的点都在直线上,所以
误差向量再根据 可求得
注意
通过在等式两边乘上 这种方法来构建出有解的方程组 其实是有条件的
只有在矩阵 各列都是线性独立(即矩阵 自身就是一个可逆矩阵)的情况下, 才是可逆矩阵,这样方程组 才有解
证明
已知条件「当矩阵 各列都是线性独立时」,需要证明 「 是可逆矩阵」
假设 成立,只需要证明使得该等式成立的未知量 的取值只能为零向量(矩阵各列线性独立/可逆矩阵的定义),即可证得 是可逆矩阵
在等式两边乘上 得到 ,根据相乘矩阵的转置运算规则,可得
等式 就相当于求模长平方的公式
当向量的模长为零,则该向量只能是零向量,即 ,再结合题设,已知矩阵 各列都是线性独立,所以未知量的取值就只能是 (即零向量)
证得当矩阵 各列都是线性独立时, 是可逆矩阵
所以可以直接通过 的结构(各列是否线性独立)来判断是否可以通过构造系数矩阵 的方式,来求解拟合直线
有一种特殊的情况,即矩阵 各列向量相互垂直,称为 orthonormal vectors 标准正交向量组,那么这些列向量必然是线性独立的,所构成的矩阵 必然是可逆矩阵
例如由以下的向量构成的矩阵
或者由以下向量构成的矩阵
从平面直角坐标系的角度,或是从线性代数的四个子空间的角度,其实都是殊途同归,利用最小二乘法求解最佳拟合直线(线性回归)
- 在平面直角坐标系中,可以直观地看到直线,但是求解步骤较麻烦
- 在线性代数中,虽然看不到直线(其中投影向量 反映了直线的系数 、,因为矩阵 各列是根据 进行线性组合的),但是通过向量的投影和各子空间的关系,简单地求解出来