(二十二)用RANSAC算法来求线性回归模型的参数

线性回归模型

一、什么是线性回归?

举个例子,
某商品的利润在售价为2 元、 5 元、 10 元时分别为 4 元、 11 元、 20 元,
我们很容易得出商品的利润与售价的关系符合直线:y=2x.
在上面这个简单的一元线性回归方程中,我们称“2” 为回归系数,即斜率为其回归系数。
回归系数表示商品的售价( 每变动一个单位,其利润 ( 与之对应的变动关系。

在这里插入图片描述
当我们选择线性回归去拟合数据时,我们就认为这组数据总体上是符合线性的,但具体是哪条直线我们还不知道。因此我们的目的是要找到这些离散的点总体上 最逼近 哪条直线。用该直线代表数据分布规律。
如何找到这条直线呢? 我们现在有两个方法,一个是最小二乘法,一个是随机采样一致性法(random sample consensus)

二、最小二乘法求线性回归

最小二乘法( Least Square Method)求线性回归就是使用最小二乘法找到这些离散的点总体上 最逼近 哪条直线。

1 最小二乘法

• 它通过 最小化误差的平方和 ,寻找数据的最佳函数匹配。
• 利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间 误差的平方
和 为最小。
• 假设我们现在有一系列的数据点 xi,yi ) i =1,…, m),那么由我们给出的拟合函数 h(x) 得到的估计量就
是 h(xi)
• 残差: ri = h(xi)-yi
• 三种范数:

  1. ∞-范数:残差绝对值的最大值,即所有数据点中残差距离的最大值:
    在这里插入图片描述

  2. 1-范数:绝对残差和,即所有数据点残差距离之和:
    在这里插入图片描述

  3. 2-范数:残差平方和:
    在这里插入图片描述

• 拟合程度,用通俗的话来讲,就是我们的拟合函数 h(x) 与待求解的函数 y 之间的相似性。那么2 范数越小,自然相似性就比较高了。

由此,对于线性回归来说 h(x) = kx+b
我们针对一线性回归可以写出最小二乘法的定义了:
在这里插入图片描述
这是一个无约束的最优化问题,分别对k 和 b 求偏导,然后令偏导数为 0 ,即可获得极值点。
在这里插入图片描述
得到k和b就相当于我们找到了这条符合要求的直线。

二、RANSAC算法求线性回归

1 RANSAC算法

随机采样一致性(random sample consensus)。
• RANSAC是一种思想,一个求解已知模型的参数的框架。它不限定某一特定的问题,可以是计算机视觉的问题,同样也可以是统计数学,甚至可以是经济学领域的模型参数估计问题。即RANSAC算法功能是求解已知模型的参数
• 它是一种迭代的方法,用来在一组包含离群的被观测数据中估算出数学模型的参数。RANSAC是一个非确定性算法,在某种意义上说,它会产生一个在一定概率下合理的结果,其允许使用更多次的迭代来使其概率增加。
• RANSAC的基本假设是 “内群”数据可以通过几组模型参数来叙述其数据分布而“离群”数据则是不适合模型化的数据。 数据会受噪声影响,噪声指的是离群,例如从极端的噪声或错误解释有关数据的测量或不正确的假设。RANSAC假定,给定一组(通常很小的)内群,存在一个程序,这个程序可以估算最佳解释或最适用于这一数据模型的参数。
即 RANSAC算法使用认为给定的数据去计算模型参数。
在这里插入图片描述

2 RANSAC的步骤

RANSAC
算法的输入
1.一组观测数据(往往含有较大的噪声或无效点)-----数据
2.一个用于解释观测数据的参数化模型 -----确定的模型
3.一些可信的参数。------模型的参数
算法步骤
1.在数据中随机选择几个点设定为内群
2.根据所选择的内群数据计算适合内群的模型 y=ax+b
例如–>选择第一个内群数据时计算出y=2x+3 选择第二个内群数据时计算出y=4x+5…等
3.把其它刚才没选到的点带入刚才建立的模型中,计算模型输出值 hi=2xi+3 以及模型输出值与真实值的差值ri 判断该点书否为内群点 ri小于某个阈值则判断为内群点。
4.记下内群数量
5.重复以上步骤
6.比较哪次计算中内群数量最多 内群最多的那次所建的模型就是我们所要求的解
注意:不同问题对应的数学模型不同,因此在计算模型参数时方法必定不同 RANSAC 的作用不在于计
算模型参数,而是提供更好的输入数据(样本)。(这导致 ransac 的缺点在于要求数学模型已知)

3 内群点的个数如何确定,迭代次的数确定

这里有几个问题:
1.
一开始的时候我们要随机选择多少点 (n) ---- 最低保证能够求出所有参数
2.
以及要重复做多少次 (k) 尽量在花费最少时间内找到最优模型。

•假设每个点是真正内群的概率为 w
w =内群的数目 //(内群数目 外群数目)
•通常我们不知道 w 是多少 , wn 是所选择的 n 个点都是内群的机率 , 1-wn 是所选择的 n 个点至少有一个不是内群的机率 , (1 - wn)k 是表示重复 k 次都没有全部的 n 个点都是内群的机率 , 假设算法跑 k 次以后成功的机率是 p ,那么
1−p = (1− wn)k
p = 1−(1− wn)k 重复k次全部的点都是内群点的概率
•我们可以通过 P 反算得到抽取次数 K=log(1−P)/log(1−wn) 。
•所以如果希望成功机率高:
•当 n 不变时, k 越大,则 p 越大; 当 w 不变时, n 越大,所需的 k 就越大。
•通常 w 未知,所以 n 选小一点比较好

在这里插入图片描述

4、RANSAC的优缺点

优点:
1.它能鲁棒的估计模型参数。例如,它能从包含大量局外点的数据集中估计出高精度的参数。
缺点:
1.它计算参数的迭代次数没有上限;如果设置迭代次数的上限,得到的结果可能不是最优的结果,甚
至可能得到错误的结果。
2.RANSAC 只有一定的概率得到可信的模型,概率与迭代次数成正比。
3.它要求设置跟问题相关的阀值。
4.RANSAC 只能从特定的数据集中估计出一个模型,如果存在两个(或多个)模型, RANSAC 不能找到
别的模型。
5.要求数学模型已知

三、RANSAC与最小二乘法

•生产实践中的数据往往会有一定的偏差。
•例如我们知道两个变量 X 与 Y 之间呈线性关系, Y=aX+b ,我们想确定参数 a 与 b 的具体值。通过实验,
可以得到一组 X 与 Y 的测试值。虽然理论上两个未知数的方程只需要两组值即可确认,但由于系统误
差的原因,任意取两点算出的 a 与 b 的值都不尽相同。我们希望的是,最后计算得出的理论模型与测
试值的误差最小。
•最小二乘法:通过计算最小均方差关于参数 a 、 b 的偏导数为零时的值。事实上,很多情况下,最小
二乘法都是线性回归的代名词。
•遗憾的是,最小二乘法只适合于误差较小的情况。
•在模型确定以及最大迭代次数允许的情况下, RANSAC 总是能找到最优解。(对于包含 80% 误差的数
据集, RANSAC 的效果远优于直接的最小二乘法。)
•由于一张图片中像素点数量大,采用最小二乘法运算量大,计算速度慢。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值