0%

【线性代数】最小二乘与投影矩阵

​ 前一篇文章《正交投影》中我们讲述了正交投影,现在我们来从正交投影的角度来看看我们熟悉的最小二乘法。我记得最早知道最小二乘法是在大一上高数课的时候,我们首先回顾一下什么是最小二乘法。


最小二乘法

最近机器学习比较火,机器学习中的许多算法都是对信息进行分类,比如说支持向量机就是根据已知信息来分类,神经网络可以找到输入输出的关系(当然,不能给出具体的数学表达式),这两种算法都能找到输入与输出的关系,分类和回归总是相辅相成的。以后有时间也准备写写关于机器学习方面的算法(现在终于开始写了图解例说机器学习系列—2020.0831)。 言归正传,最小二乘法的作用也是从一组数据中找到输入与输出之间的关系。

原理:

设经验方程是$y=f(x)$,方程中含有一些待定系数$a_n$,给出真实值${(x_i,y_i)|i=1,2,\cdots,n}$,将这些$x, y$值代入方程然后作差,可以描述误差:$y_i-f(x_i)$,为了考虑整体的误差,可以取平方和,之所以要平方是考虑到误差可正可负直接相加可以相互抵消,所以记误差(注意误差函数的选择有很多种,我们选用典型的误差函数)为:

它是一个多元函数,有$a_n$共$n$个未知量,现在要求的是最小值。所以必然满足对各变量的偏导等于$0$,于是得到$n$个方程:

$n$个方程确定$n$个未知量为常量是理论上可以解出来的。用这种误差分析的方法进行回归方程的方法就是最小二乘法。


最小二乘与投影

我这个人不喜欢看这些理论,公式推导,而更喜欢用例子来展示算法的思想。例如,在二维坐标系中,有三点,$(1, 1), (2, 2), (3, 2)$,那如何用一条直线来拟合这些点呢?

首先,我们可以假设直线表达式如下所示:

然后计算误差函数:

在求得误差函数$E$对系数$a,b$的偏导,并使之为$0$:

由上式得到系数$a,b$的值,并得到拟合直线表达式:

通过最小二乘法得到的曲线如下:

图1

线性代数角度看最小二乘法:

同样假设拟合直线的表达式设为:

拟合的目的就是使得数据点都满足上述函数表达式,即:

用矩阵形式表示如下:

上面的式子通过高斯消元后,可以发现是无解的!

​ 我们可以发现等式的左边$Aa$的值是矩阵$A$中各个列向量的线性组合,若$Aa=b$有解的话,则$b$一定在矩阵$A$的列空间内。上面的例子中,右边的向量显然不在其列空间中,因此方程无解。最小二乘法的思想就是在矩阵$A$的列空间中找到一个向量$p$,使得$p$与$b$的误差最小。下面我们就来求$b$:

$Aa=p$是肯定有解的,因为$p$在矩阵$A$的列空间中。要使得$e$向量的长度最短,当且仅当$p$为$b$在矩阵列空间上的投影!有上一篇《正交投影》中投影矩阵的通式可得:

那么将$p$代入公式$Aa=p$可得:

将具体数值代入得:

则可以得到:

$b, p, e$向量分别可以表示如下:

$p, b$在图中的表示如下:

图2

坚持原创技术分享,您的支持将鼓励我继续创作!