RANSAC
RANSAC是Random Sample Consensus 的缩写。它是一种通用的算法可以与其他参数估计算法一起获得鲁棒性的模型。主要通过概率来滤除数据中不服从一般概率分布的噪声。
内容
1.介绍
2.概述
2.1动机
2.2假设
2.3方法
3.算法
3.1前提
3.2流程
3.3参数
3.3.1内层比率
3.3.2采样子集
3.3.3容错阈值
3.3.4最小一致性阈值
3.3.5迭代次数
4.扩展
5.实验
6.代码
7.应用
8总结
1介绍:
一般参数估计是基于训练数据集中的噪声是基于高斯分布的。因此可以通过均值化所有数据来获得最优的参数。然而,这种假设不包含数据集中存在的大的误差,或者采用过程中的错误的测量。这种错误其实上不能拟合模型,而且应该被滤除从而获得更好的训练数据。
2 概述
2.1动机
RANSAC旨在估计函数参数当存在显而易见的错误的样本(这些样本会误导参数估计)
2.2假设
RANSAC假定训练数据集包含inliers可以被模型解释,而outliers一点也不适合模型。因此如果包含了outliers可能会增加预测误差,因为它不含模型的任何信息。也就是说RANSAC通过inliers来训练模型忽略了outliers。然而,将数据集分开为inliers和outliers是一个很强的假设,但是这就是RANSAC与其他的方法的主要区别。此外,即使这个假设不适用于某数据集,RANSAC也不会对参数的估计造成损害,因为它会考虑将整个数据集考虑成inliers然后训练参数。
为了在训练过程中拒绝outliers,RANSAC运用一小组数据来训练模型而不是运用全部数据然后通过扩展数据集。使用一小段数据集时,就自动假设模型可以被一小一部分inliers估计。然而,这是个软假设并且可以覆盖到绝大部分的假设,例如如果能要捕获一个线性function,2个数据就足够了。
3.方法
RANSAC均匀的随机的选择一个子数据集然后用他们来估计参数。随后确定样本是在生成的模型的误差范围之类。这样本被认为与模型一致,被称为consensus(一致)集样本。此时样本在一致集中被称为inliers剩下的被称为outliers。如果样本的计数量在一致集中足够高,就用这个一致集来训练最后的模型。重复这个过程知道一定的迭代次数,最后输出最小的均误差的模型在所有的生成模型中。作为一个随机化的算法。RANSAC不能保证够发现最优的inliers模型。但是获得最优解的概率能够保证超过一个霞姐如果算法参数分配到一个合适的数值。