随机采样一致性RANSAC

RANSAC实际上是一种基于迭代的思想,用来在含有离群的被观测数据中估算出数学模型的参数。如下图,有一系列数据点,现在要拟合一条直线来逼近下列数据,如果直接使用最小二乘法,会得到下图中红色那条直线,因为它会尽可能地去拟合所有的数据点,包括噪声。但很显然,这并不科学。如何让模型不去学习那些噪声,就是RANSAC要解决的问题。
随机采样一致性RANSAC_第1张图片
RANSAC的步骤:

  1. 在数据中随机选n个点设定为内群
  2. 计算适合内群的模型
  3. 把其他刚才没选到的点代入模型,根据给定的阈值判断其是不是内群
  4. 记下内群的数量
  5. 重复以上步骤k次
  6. 比较哪次记下的内群数量多,内群数量最多的那次建立的模型就是我们要求的解

注:不同问题对应的数学模型不同,因此计算模型参数的方法也不同。当然,RANSAC的作用不在于计算模型参数,而是为模型提供更好的输入数据。

那么问题来了:k和n的值取多少合适?下面通过数学论证:
每个点是真正内群的概率为: w = 内 群 数 目 内 群 数 目 + 外 群 数 目 w=\frac{内群数目}{内群数目+外群数目} w=+
那么选择的n个点都是内群的概率为 w n w^n wn,它的对立事件“选择的n个点至少有一个不是内群”的概率为 1 − w n 1-w^n 1wn,重复k次都没有全部n个点都是内群的概率为 ( 1 − w n ) k (1-w^n)^k (1wn)k,这也就是不成功的概率 1 − p 1-p 1p,那么成功率 p = 1 − ( 1 − w n ) k p=1-(1-w^n)^k p=1(1wn)k .
由此可知,当n不变时,k越大,p就越大;当p不变时,n越大,所需的k就越大。因此n选小一点比较好。

RANSAC优缺点:
优点:它能从包含大量局外点的数据集中估计出高精度的参数。
缺点:要求数学模型已知;只能从特定的数据集中估计出一个模型;基于概率去迭代的,运气不好的话,可能得不到最优的结果。

你可能感兴趣的:(概率论,机器学习,人工智能)