kalman filter 和 最小二乘法的异同点

3,232 阅读2分钟

www.zhihu.com/question/39…

最小二乘,本质是处理一些已有数据样本。也就是说,要现有数据,才能用最小二乘法对得到的数据进行处理。

但是,如果需要实时地得到状态量的估计呢?这时就必须采用递推最小二乘法,因为递推最小二乘法是能够实时地估计时刻k时的状态量。

然而,以上的两个算法,都只能处理状态量不变或者变化很慢的情况。比如,对雷达的系统偏差进行估计时,系统偏差的变化很缓慢,或者短时间内可以看作是不变的。这时对系统偏差进行重复测量,并给出每个时刻对系统偏差的估计值,就可以用递推最小二乘法。

Kalman 算法是为了估计动态问题而推导出的算法,比如卫星定位、目标跟踪、船舶动力定位等等,这些问题的共同点就是估计的状态量会随着时间变化。卫星每一时刻的位置都在变化,因为它在运动;被跟踪的目标每一时刻的位置都在变化,因为它在运动;船舶的艏向角、位置等参数也在不断变化,因为它在运动。这个时候,由于估计的状态量是时变的,最小二乘法/递推最小二乘法无法在每个时刻都给出状态估计量,而Kalman可以。

另外,Kalman本身就是基于最小二乘准则。。。。。kalman的五个基本方程,如果把模型拿掉(没有外推过程),后面的计算形式上跟递推最小二乘法是一样的。你可以试着推导看看。

最后总结:已有观测样本,且状态量不会变化,最小二乘法;观测样本实时生成,且状态量不会变化,递推最小二乘法;观测样本实时生成,状态量时变,Kalman算法。

个人认为,定性的理解下,最小二乘是卡尔曼滤波的一种特殊形式,卡尔曼滤波可以包含最小二乘。

如果你根本不知道运动模型,在卡尔曼滤波中不考虑运动信息,那么卡尔曼滤波和最小二乘等价。

如果你知道准确的运动模型,并且在卡尔曼滤波中考虑这一运动信息,那么卡尔曼滤波应该比最小二乘好,因为你有多余的信息。

如果恰好你知道的运动模型是个错误的,还在卡尔曼滤波中使用了这一错误信息,那么卡尔曼滤波应该比最小二乘差,因为你使用了错误信息作出判断。 有模型卡尔曼,没模型LS,