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

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

1、最小二乘法

        最近机器学习比较火,机器学习中的许多算法都是对信息进行分类,比如说支持向量机就是根据已知信息来分类,神经网络可以找到输入输出的关系(当然,不能给出具体的数学表达式),这两种算法都能找到输入与输出的关系,分类和回归总是相辅相成的。以后有时间也准备写写关于机器学习方面的算法。 言归正传,最小二乘法的作用也是从一组数据中找到输入与输出之间的关系。
        原理:
        设经验方程是y=F(x),方程中含有一些待定系数an,给出真实值{(xi,yi)|i=1,2,...n},将这些x,y值代入方程然后作差,可以描述误差:yi-F(xi),为了考虑整体的误差,可以取平方和,之所以要平方是考虑到误差可正可负直接相加可以相互抵消,所以记误差(注意误差函数的选择有很多种,我们选用典型的误差函数)为:

E=∑(yi-F(xi))^2

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


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

2、最小二乘与投影

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

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


然后计算误差函数:


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


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


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


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

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

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


用矩阵形式表示如下:


上面的式子通过高斯消元后,可以发现是无解的!
        我们可以发现等式的左边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在图中的表示如下:


原文:http://blog.csdn.net/tengweitw/article/details/41745923

作者:nineheadedbird


目录
相关文章
|
移动开发 算法
科学计算与仿真-高斯牛顿法的非线性最小二乘问题简单介绍与应用
科学计算与仿真-高斯牛顿法的非线性最小二乘问题简单介绍与应用
670 0
科学计算与仿真-高斯牛顿法的非线性最小二乘问题简单介绍与应用
|
机器学习/深度学习 数据可视化 Python
逻辑回归那些事—使用牛顿法解决实际问题
逻辑回归是机器学习中的重要章节,本文将带你从公式推导到算法实现详细讲述这部分内容,想学习这个高大上的技能么,快来看吧!!!
5484 0
|
3月前
|
机器学习/深度学习 数据采集 算法
|
6月前
使用R语言进行多项式回归、非线性回归模型曲线拟合
使用R语言进行多项式回归、非线性回归模型曲线拟合
|
6月前
R语言多项式线性模型:最大似然估计二次曲线
R语言多项式线性模型:最大似然估计二次曲线
|
机器学习/深度学习 数据采集 算法
支持向量机SVM:从数学原理到实际应用
支持向量机SVM:从数学原理到实际应用
577 0
|
机器学习/深度学习
最小二乘支持向量机”在学习偏微分方程 (PDE) 解方面的应用(Matlab代码实现)
最小二乘支持向量机”在学习偏微分方程 (PDE) 解方面的应用(Matlab代码实现)
学习笔记: 线性代数-线性系统
线性代数个人学习笔记
142 0
|
机器学习/深度学习
|
机器学习/深度学习
支持向量机(SVM)公式推导
支持向量机(SVM)公式推导
155 0