拟合与插值

先上图:左边插值,右边拟合
在这里插入图片描述

插值法

插值是指已知某函数的在若干离散点上的函数值或者导数信息,通过求解该函数中待定形式的插值函数以及待定系数,使得该函数在给定离散点上满足约束。可以看出插值曲线是一定要过数据点

1.拉格朗日插值法

比如说,已知下面这几个点,我想找到一根穿过它们的曲线:
在这里插入图片描述
我们可以合理的假设,这根曲线是一个二次多项式:
在这里插入图片描述
这是因为有三个已知的点,可以通过下列方程组接触这个二次多项式:
在这里插入图片描述
不过这里不打算通过解方程来得到这根二次曲线,我们来看看拉格朗日是怎么解出这根曲线的?
拉格朗日认为可以通过三根二次曲线相加来达到目标。那这是怎么的三根二次曲线呢?
第一根曲线 f1(x) ,在 x1 点处,取值为1,其余两点取值为0:
在这里插入图片描述
为什么这么做?看下去就知道了。
第二根曲线 f2(x) ,在 x2 点处,取值为1,其余两点取值为0:
在这里插入图片描述
第三根曲线 f3(x) ,在 x3 点处,取值为1,其余两点取值为0:
在这里插入图片描述
拉格朗日伯爵说,看,这三根曲线就可以组成我在寻找的曲线:
在这里插入图片描述

这三根曲线就是拉格朗日需要的,我们来看看为什么?

在这里插入图片描述
先说插值法。插值法是做什么用的?插值法是通过已知点,求过这些点的未知函数的数学方法。所以我们输入的,是一堆点,也就是一堆x和一堆y。我们想要得到的,是一个函数,这个函数能完美的通过这一堆x和这一堆y。那你要怎么解决这个问题呢?说白了很简单,就是一个开开关的问题。这就是拉格朗日插值法的想法。比如说我给你三个点,让你求出一条过这三个点的未知函数。只要是函数,就能写成y=f(x)型。那这三个点肯定要满足这个条件(废话这是题设给的):
第一个点的y=f(第一个点的x)
第二个点的y=f(第二个点的x)
第三个点的y=f(第三个点的x)
这函数可能实现吗?可能。我们可以用这种开开关的方式来实现他。我们都知道数学里面有一个小学生都知道的道理:0乘任何数都是0,1乘任何数都不变。感觉很蠢对吧。但这就是拉格朗日插值法的精髓所在:我们想办法对每个x构建一个“开关”;当x为指定条件的x值时,把指定条件的x值的“打开”(置为1),把其余非指定条件的x值的开关“关上”(置为0)。这样的话,我们做一个简单的加和,就能让函数输出我们想要的y值,进而得出这未知的函数了。这“开关”的学名叫什么?就叫插值基函数基函数)。所以我们用这个看上去特弱智的方法,来解决问题。做拉格朗日插值:
第N个点的y = 基函数1×第1个点的y + 基函数2×第2个点的y + 基函数3×第3个点的y
假如说我们想在这个函数中,让 第2个点的y=f(第2个点的x),那么就有:
第N个点的y(N取2) = 基函数1【关闭】×第1个点的y + 基函数2【打开】×第2个点的y +基函数3【关闭】×第3个点的y
我们一开始就假设了,基函数【关闭】的时候就是0,基函数【打开】的时候就是1。换句话就是:
第N个点的y(N取2) = 0×第1个点的y + 1×第2个点的y + 0×第3个点的y即第N个点的y(N取2) = 第2个点的y可见这个函数运作正常。那么接下来就是这个“开关”的问题了。这个“开关”要怎么构建呢?我们又想到一个特别弱智的方法(没错,数学很简单,你不要把他想复杂了):——任何数除自己都是1,零除任何数都是0。那么我们可以把各个“开关”分别写出来,以第二个开关为例:
基函数状态=(输入X-第一个点的x)(输入X-第三个点的x) / (第二个的点x-第一个点的x)(第二个点的x-第三个点的x)

你自己算一下,就会发现这个基函数构造的很有趣。——当你输入X值为第一个,第三个点的x值时,你会发现分子直接等于0,于是“开关关闭”,基函数的值为0。——当你输入X值为第二个点的x值时,你会发现分子分母是相同的,于是“开关打开”,基函数的值为1。所以我们最后总结一下,拉格朗日插值法是怎么做出来的?先给定三个点(x1,y1),(x2,y2),(x3,y3),构造函数:
拉格朗日插值函数= 开关1×y1 + 开关2×y2 + 开关3×y3
其中标黑的y1,y2,y3都是已知值。只需求三个“开关”的表达式即可。而相应的“开关”表达式为
第N个开关 = (未知量X-一个非N处值x)(未知量X-另一个非N处值x) / (N处值x-一个非N处值x)(N处值x-另一个非N处值x)
其中标黑的N处值x和非N处值x都是已知值。分别求出三个开关的表达式,并带回原式。至此,整个函数就变成了一个y=f(x)型,拉格朗日插值法结束。这种“开开关”的想法,就是拉格朗日插值法的思路了。

综上,拉格朗日多项式:
在这里插入图片描述

2.牛顿插值法

回头看看Lagrange(拉格朗日)的基函数,每一个新的节点加进来都要重新计算所有的基函数。而牛顿插值法的特点在于:每增加一个点,不会导致之前的重新计算,只需要算和新增点有关的就可以了

2.1

差商的定义:
在这里插入图片描述

差商的性质:

在这里插入图片描述
在这里插入图片描述

牛顿插值多项式推导

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
根据上图,前n+1个式子乘以一个系数再相加,经过两边抵消得到f(x),等式右边第一项Nn(x)为牛顿插值公式,第二项Rn(x)为插值余项。
在这里插入图片描述

拟合法

所谓拟合是指已知某函数的若干离散函数值{f1,f2,…,fn},通过调整该函数中若干待定系数f(λ1, λ2,…,λn), 使得该函数与已知点集的差别(最小二乘意义)最小。如果待定函数是线性,就叫线性拟合或者线性回归(主要在统计中),否则叫作非线性拟合或者非线性回归。表达式也可以是分段函数,这种情况下叫作样条拟合。从几何意义上将,拟合是给定了空间中的一些点,找到一个已知形式未知参数的连续曲面来最大限度地逼近这些点。即不一定要过数据点。

最小二乘

在此先列举一下最小二乘家族成员。最小二乘法直线拟合,最小二乘法多项式(曲线)拟合,机器学习中线性回归的最小二乘法,系统辨识中的最小二乘辨识法,参数估计中的最小二乘法,等等。
如何找到最接近原始曲线或者数据点的拟合曲线,这不是一件容易操作的事。要想整体最接近,直接的想法就是拟合曲线的每一点到原始曲线的对应点的最接近,简单点说就是两曲线上所有点的函数值之差的绝对值之和最小。看似解决问题,但绝对值在数学上向来是个不好交流的语言障碍患者,那然后又该怎么办。数学家说了既然办不了你绝对值之和,那就办了你家亲戚,就看你平方之和长得像。于是就找了这个长得像的来背黑锅,大家都表示很和谐。然后给这种操作冠之名曰’最小二乘法’。官方一点的表述 , 选择参数c使得拟合模型与实际观测值在曲线拟合各点的残差(或离差)ek=yk-f(xk,c)的加权平方和达到最小,此时所求曲线称作在加权最小二乘意义下对数据的拟合曲线,这种方法叫做最小二乘法。

1.什么是最小二乘思想

简单地说,最小二乘的思想就是要使得观测点和估计点的距离的平方和达到最小.这里的“二乘”指的是用平方来度量观测点与估计点的远近(在古汉语中“平方”称为“二乘”),“最小”指的是参数的估计值要保证各个观测点与估计点的距离的平方和达到最小。从这个上也可以看出,最小二乘也可用于拟合数据模型。

2.最小二乘法推导

我们以最简单的一元线性模型来解释最小二乘法。什么是一元线性模型呢? 监督学习中,如果预测的变量是离散的,我们称其为分类(如决策树,支持向量机等),如果预测的变量是连续的,我们称其为回归。回归分析中,如果只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。对于二维空间线性是一条直线;对于三维空间线性是一个平面,对于多维空间线性是一个超平面…

​ 对于一元线性回归模型, 假设从总体中获取了 n组观察值 (X1,Y1)(X1,Y1),(X2,Y2)(X2,Y2),
…,(Xn,Yn)(Xn,Yn)。对于平面中的这 n 个点,可以使用无数条曲线来拟合。要求样本回归函数尽可能好地拟合这组值。综合起来看,这条直线处于样本数据的中心位置最合理。
​ 选择最佳拟合曲线的标准可以确定为:使总的拟合误差(即总残差)达到最小。有以下三个标准可以选择:

  1. 用“残差和最小”确定直线位置是一个途径。但很快发现计算“残差和”存在相互抵消的问题
  2. 用“残差绝对值和最小”确定直线位置也是一个途径。但绝对值的计算比较麻烦。
  3. 最小二乘法的原则是以“残差平方和最小”确定直线位置。用最小二乘法除了计算比较方便外,得到的估计量还具有优良特性。这种方法对异常值非常敏感。

最常用的是普通最小二乘法( Ordinary Least Square,OLS):所选择的回归模型应该使所有观察值的残差平方和达到最小。

3.公式推导

在这里插入图片描述
在这里插入图片描述

4.求和性质

在这里插入图片描述
在这里插入图片描述

5.一般形式

在这里插入图片描述

6.多元线性回归

在这里插入图片描述

7.最小二乘法和梯度下降法有哪些区别?

最小二乘法的目标:求误差的最小平方和,对应有两种:线性和非线性。线性最小二乘的解是closed-form即
x=(AT A)−1ATb,而非线性最小二乘没有closed-form(即 (ATA)(ATA)没有可逆矩阵),通常用迭代法求解。

迭代法,即在每一步update未知量逐渐逼近解,可以用于各种各样的问题(包括最小二乘),比如求的不是误差的最小平方和而是最小立方和。

梯度下降是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以)。高斯-牛顿法是另一种经常用于求解非线性最小二乘的迭代法(一定程度上可视为标准非线性最小二乘求解方法)。

还有一种叫做Levenberg-Marquardt的迭代法用于求解非线性最小二乘问题,就结合了梯度下降和高斯-牛顿法。

所以如果把最小二乘看做是优化问题的话,那么梯度下降是求解方法的一种,x=(ATA)−1ATb是求解线性最小二乘的一种,高斯-牛顿法和Levenberg-Marquardt则能用于求解非线性最小二乘。

莱文贝格-马夸特方法(Levenberg–Marquardt algorithm)能提供数非线性最小化(局部最小)的数值解。此算法能借由执行时修改参数达到结合高斯-牛顿算法以及梯度下降法的优点,并对两者之不足作改善(比如高斯-牛顿算法之反矩阵不存在或是初始值离局部极小值太远)

然后Levenberg-Marquardt方法的好处就是在于可以调节:

如果下降太快,使用较小的λ,使之更接近高斯牛顿法

如果下降太慢,使用较大的λ,使之更接近梯度下降法

猜你喜欢

转载自blog.csdn.net/zjpp2580369/article/details/83412002