四种参数估计算法的简单描述:
    LS既是最小方差,以此作为目标函数求解参数估计值的方法称为最小方差估计,SVD分解是目前解决这一问题的最有效手段。
    WLS既是带权重的最小方差,其思想是将每个输入的样本赋予权值,初始时每个样本的权值相等,然后使用所有带权重的样本估计模型的参数,得到参数后,计算每个样本与模型的偏差,再根据偏差决定样本的新权重,偏差越大则权重越小,然后重复模型参数估计与权重更新这个过程,直到样本的带权偏差和收敛为止。
    Ransac是一种随机参数估计算法。Ransac LS从样本中随机抽选出一个样本子集,使用LS对这个子集计算模型参数,然后计算所有样本与该模型的偏差,再使用一个预先设定好的阈值与偏差比较,当偏差小于阈值时,该样本点属于模型内样本点(inliers),否则为模型外样本点(outliers),记录下当前的inliers的个数,然后重复这一过程。每一次重复,都记录当前最佳的模型参数,所谓最佳,既是inliers的个数最多,此时对应的inliers个数为best_ninliers。每次迭代的末尾,都会根据期望的误差率、best_ninliers、总样本个数、当前迭代次数,计算一个迭代结束评判因子,据此决定是否迭代结束。迭代结束后,最佳模型参数就是最终的模型参数估计值。
    LMedS也是一种随机参数估计算法。LMedS也从样本中随机抽选出一个样本子集,使用LS对子集计算模型参数,然后计算所有样本与该模型的偏差。但是与Ransac LS不同的是,LMedS记录的是所有样本中,偏差值居中的那个样本的偏差,称为Med偏差(这也是LMedS中Med的由来),以及本次计算得到的模型参数。由于这一变化,LMedS不需要预先设定阈值来区分inliers和outliers。重复前面的过程N次,从中N个Med偏差中挑选出最小的一个,其对应的模型参数就是最终的模型参数估计值。其中迭代次数N是由样本集子中样本的个数、期望的模型误差、事先估计的样本中outliers的比例所决定。

四种算法的简单分析:
    LS将所有样本参与最后的参数估计计算,不能剔除输入样本中的outliers。这些outliers会给参数估计带来极大的影响,使得估计结果变得很差。
    WLS一定程度上可以削弱outliers对整体的影响,但是WLS有可能陷入局部极值,这与梯度下降法有类似之处。
    Ransac理论上可以剔除outliers的影响,并得到全局最优的参数估计。但是Ransac有两个问题,首先在每次迭代中都要区分inliers和outlieres,因此需要事先设定阈值,当模型具有明显的物理意义时,这个阈值还比较容易设定,但是若模型比较抽象时,这个阈值就不那么容易设定了,而且固定阈值不适用于样本动态变化的应用;第二个问题是,Ransac的迭代次数是运行期决定的,不能预知迭代的确切次数(当然迭代次数的范围是可以预测的)。
    LMedS理论上也可以剔除outliers的影响,并得到全局最优的参数估计,而且客服了Ransac的两个缺点(虽然LMedS也需要实现设定样本中outliers的比例,但这个数字比较容易设定)。但是当outliers在样本中所占比例达到或超过50%时,LMedS就无能为力了!这与LMedS每次迭代记录的是“Med”偏差值有关!