粒子滤波理论一看就懂
粒子滤波通俗讲解

粒子滤波通俗讲解粒子滤波是一种用于估计系统状态的方法,它基于随机过程的思想,通过将系统状态表示为一组粒子的集合,利用粒子的权重来对系统状态进行估计和更新。
在传统的滤波方法中,通常假设系统的状态和观测是连续的,并且满足一定的数学模型。
然而,在实际应用中,很多系统的状态和观测都是离散的或者具有非线性特性,这就给滤波问题带来了挑战。
粒子滤波的核心思想是通过一组粒子来近似表示系统的状态分布。
每个粒子代表了系统的一个可能状态,并且具有一定的权重。
在滤波过程中,通过对粒子的权重进行更新和重采样,可以逐步逼近真实的状态分布。
具体来说,粒子滤波包括以下几个步骤:1. 初始化:根据系统的先验信息,生成一组初始粒子。
初始粒子的状态可以根据先验分布随机生成,或者通过观测值进行初始化。
2. 预测:根据系统的动力学模型,对每个粒子进行状态预测。
预测的方法可以根据具体的系统模型进行选择,例如使用运动学方程进行预测。
3. 权重更新:根据观测值和粒子的预测状态,计算每个粒子的权重。
权重的计算可以通过比较观测值和预测状态之间的差异来进行,差异越小,权重越大。
4. 重采样:根据粒子的权重,进行重采样操作。
重采样的目的是根据粒子的权重,增加高权重粒子的数量,减少低权重粒子的数量。
重采样方法可以采用多种方式,例如轮盘赌法或者系统化重采样。
5. 状态估计:根据重采样后的粒子,计算系统的状态估计值。
常见的估计方法包括计算粒子的加权平均值或者加权中位数。
通过不断迭代上述步骤,粒子滤波可以逐步逼近真实的系统状态分布。
与传统的滤波方法相比,粒子滤波具有以下优点:1. 粒子滤波可以处理非线性和非高斯的系统模型。
由于粒子滤波是基于粒子的近似表示,因此可以灵活地应对系统模型的复杂性。
2. 粒子滤波可以处理观测缺失和非完全观测的情况。
由于粒子滤波是基于观测值和粒子状态的比较来更新权重,因此可以有效地处理观测值不完全的情况。
3. 粒子滤波可以处理非线性的测量方程。
粒子滤波器基本原理

采样阶段
1
采样阶段是粒子滤波器中最重要的步骤之一,其 目的是从状态空间中生成一组样本,这些样本代 表了系统状态的可能取值。
2
常用的采样方法包括随机采样、重要性采样等, 根据具体问题和数据特性选择合适的采样方法。
3
在采样过程中,每个样本都会被赋予一个权重, 用于表示该样本代表系统状态的可靠程度。
无人驾驶
无人驾驶是另一个重要的应用场景。在无人驾驶系统中,车 辆需要实时感知周围环境并做出决策,以确保安全行驶。粒 子滤波器在无人驾驶中主要用于传感器融合和定位。
通过将多个传感器(如GPS、IMU、轮速传感器等)的数据 融合,粒子滤波器能够提供高精度的车辆位置和姿态信息。 同时,粒子滤波器能够处理传感器数据的不确定性,提高车 辆在复杂环境下的定位精度和鲁棒性。
粒子滤波器的参数需要手动调 整,如粒子的数量、权重等, 这可能会增加使用难度。
对初值敏感
粒子滤波器对初值的选择较为 敏感,如果初值选择不当,可 能会导致滤波器的性能下降。
粒子滤波器的改进方
06
向
权重更新策略的改进
重要性采样
在权重更新过程中,采用重要性采样 技术,根据目标分布和观测数据之间 的相似度,调整粒子的权重,以提高 滤波器的性能。
机器人导航
机器人导航是粒子滤波器的另一个应用领域。在机器人导航中,粒子滤波器主要用于估计机器人的位置、速度和方向,以实 现自主导航。
机器人通过传感器(如激光雷达、摄像头等)获取环境信息,并利用粒子滤波器进行数据融合和状态估计。粒子滤波器能够 处理传感器数据的不确定性,并有效应对机器人运动过程中的噪声和干扰。通过不断更新粒子的权重和位置,粒子滤波器能 够使机器人精确地跟踪实际环境变化,实现稳定导航。
粒子滤波

一、贝叶斯估计
贝叶斯估计是粒子滤波方法的理论基础,是一 种利用客观信息和主观信息相结合的估计方法,它 不仅考虑了样本的客观信息,还考虑了人为的主观 因素,能够很好地处理观测样本出现异常时的情况。 对于待估计的参数,贝叶斯估计在抽取样本前先给 出该参数的先验分布,并结合样本信息可以得到参 数的后验分布信息。 • 假定动态时变系统描述如下: •
X k = f k ( X k −1 , Vk −1 )
Z k = hk ( X k ,Wk )
(1)
一、贝叶斯估计
X f 式中, k 为系统状态,k 为n维向量函数, hk 为m维向 量函数, k 为n维随机过程噪声,Wk 为m维随机测 V 量噪声。 若已知状态的初始概率密度函数为 P( X 0 Z 0 ) = P( X 0 ) 则状态预测方程为: P ( xk z1:k −1 ) = ∫ P ( xk xk −1 ) P( xk −1 z1:k −1 )dxk −1 (2)
• 状态更新方程为: • P( X k Z1:k −1 ) = P( Z k X k ) P( X k Z1:k −1 )
P( Z k Z1:k −1 )
(3)
一、贝叶斯估计
• 式中归一化常量 • P( Z k Z1:k −1 ) = ∫ P( Z k X k )P( X k Z1:k −1 )dX k (4) 它取决与似然函数 P( Z k X k )及测量噪声的统计特性。
二、粒子滤波算法
• • • • • 步骤1 初始化 k = 0 i i x0 ~ P( x0 ) 即根据 P( x0 )分布采样得到 x0 , i = 1,2,...N 采样 步骤2 重要性权值计算 i i xk ~ q( xk x0:k −1 , zo:k ), i = 1,2,...N 采样 计算重要性权值如下
粒子滤波原理

粒子滤波原理粒子滤波是一种基于蒙特卡洛方法的非线性、非高斯状态估计算法,它在目标跟踪、传感器定位、机器人导航等领域得到了广泛的应用。
粒子滤波的原理是基于贝叶斯滤波理论,通过一组随机粒子来表示系统的状态空间,利用这些粒子对系统状态进行估计和预测。
本文将介绍粒子滤波的基本原理和算法流程。
粒子滤波的基本原理是通过一组随机粒子来逼近系统的后验概率分布,从而实现对系统状态的估计和预测。
在每个时间步,粒子滤波算法通过重采样、预测和更新三个步骤来实现对系统状态的推断。
首先,根据系统的运动模型对当前粒子进行预测,然后根据观测数据对预测结果进行更新,最后通过重采样来调整粒子的权重,以逼近真实的后验分布。
通过不断重复这个过程,粒子的分布将逼近真实的后验分布,从而实现对系统状态的准确估计。
粒子滤波算法的流程可以简单描述为,首先初始化一组随机粒子,根据系统的运动模型对粒子进行预测,然后根据观测数据对预测结果进行更新,最后通过重采样来调整粒子的权重。
重复这个过程直到达到收敛条件,得到系统状态的估计值。
在实际应用中,粒子滤波算法可以通过增加粒子数量来提高估计的准确性,同时也可以通过适当的重采样策略来提高算法的效率。
粒子滤波算法的优点是能够处理非线性和非高斯的系统模型,并且可以灵活地适应不同的观测数据。
同时,粒子滤波算法也具有较好的实时性和适用性,能够在复杂的环境中实现对系统状态的准确估计。
然而,粒子滤波算法也存在着粒子数目难以确定、计算复杂度较高等问题,需要在实际应用中进行合理的优化和改进。
总之,粒子滤波是一种基于蒙特卡洛方法的非线性、非高斯状态估计算法,它通过一组随机粒子来逼近系统的后验概率分布,实现对系统状态的估计和预测。
粒子滤波算法具有较好的适用性和实时性,在目标跟踪、传感器定位、机器人导航等领域得到了广泛的应用。
希望本文的介绍能够帮助读者更好地理解粒子滤波的原理和算法流程,为相关领域的研究和应用提供参考。
粒子滤波详解

2.4粒子滤波例子滤波是以贝叶斯滤波和重要性采样为基本框架的。
因此,想要掌握例子滤波,对于上述两个基本内容必须有一个初步的了解。
重要性采样呢,其实就是根据对粒子的信任程度添加不同的权重,添加权重的规则就是:对于我们信任度高的粒子,给它们添加的权重就相对大一些;否则,就加的权重小一些。
根据权重的分布形式,实际上就是它与目标的相似程度。
粒子滤波的结构实际上就是加一层重要性采样思想在里面的蒙特卡罗方法(Monte Carlo method,即以某时间出现的频率来指代该事件的概率)。
该方法的基本思想是用一组样本(或称粒子)来近似表示系统的后验概率分布,然后使用这一近似的表示来估计非线性系统的状态。
采用此思想,在滤波过程中粒子滤波可以处理任意形式的概率,而不像Kalman滤波只能处理线性高斯分布的概率问题。
粒子滤波的一大优势也在于此,因此近年来该算法在许多领域得到成功应用。
2.4.1贝叶斯滤波理论贝叶斯滤波泛指一类以贝叶斯定理为基础的滤波技术,其根据所获得的观测,对状态后验概率分布、状态先验概率分布、状态估计值以及状态预测值等感兴趣量进行递归计算。
假设有一个系统,我们知道它的状态方程,和测量方程如下:=(,(状态方程)(2.4.1)=(,(测量方程)(2.4.2)其中x为系统状态,y为测量到的数据,f,h是状态转移函数和测量函数,v,n 为过程噪声和测量噪声,噪声都是独立同分布的。
由贝叶斯理论可知,状态估计问题(目标跟踪、信号滤波)就是根据之前一系列的已有数据(测量数据)递推的计算出当前状态的可信度,这个可信度就是概率公式p(),它需要通过预测和更新两个步奏来递推的计算。
预测过程是利用系统模型(状态方程2.4.2)预测状态的先验概率密度,也就是通过已有的先验知识对未来的状态进行猜测,即p( )。
更新过程则利用最新的测量值对先验概率密度进行修正,得到后验概率密度,也就是对之前的猜测进行修正。
处理这些问题之前,假设系统的状态转移服从一阶马尔科夫模型,即当前时刻的状态x(k)只与上一个时刻的状态x(k-1)有关, k时刻测量到的数据y(k)只与当前的状态x(k)有关。
定位(粒子滤波)

定位(粒⼦滤波)⼀、粒⼦滤波1.1 介绍粒⼦滤波器是⼀种基于蒙特卡罗的近似解法,由于计算机计算能⼒的不断提⾼和易于实现,粒⼦滤波器在机器⼈定位领域得到了⼴泛的应⽤,其优势在于对复杂问题的求解上,⽐如⼀些⾮线性、⾮⾼斯动态系统的状态递推估计或概率推理问题。
粒⼦滤波器的本质是使⽤⼀组有限的加权随机样本(粒⼦)来近似表征任意状态的后验概率密度 bel(x t) 。
1.2 算法粒⼦滤波器的算法流程主要是对粒⼦集X的预测和更新。
该算法的输⼊是粒⼦集X t−1,以及最新的控制u t和测量z t。
算法⾸先构造⼀个暂时的粒⼦集 ¯X,表⽰置信度¯bel(x t)。
这通过系统地处理输⼊粒⼦集Xt−1中的每个粒⼦x[1]t−1完成。
随后它将这些粒⼦转换为粒⼦集X t,⽤于近似后验分布 bel(x t)。
值得注意的是,这⾥ M 代表粒⼦集X t的粒⼦数量,M的要根据实际情况选取合适的值。
w[m]t =p(z t|x[m]t)是测量z t在粒⼦x[m]t下的概率,是粒⼦滤波表征后验概率密度的由来,即通过当前的观测到的数据来预测当前状态的发⽣概率。
还有就是算法的更新部分,采⽤了重采样(有⼀个版本是不进⾏重采样的)。
⼆、定位2.1 初始化假定机器⼈是在⼀个⼆维的世界中,在这个世界中可以被感知到的路标点有4个,分别是L1(20.0,20.0), L2(80.0,80.0), L3(20.0,80.0), L4(80.0,20.0),同时地图的⼤⼩是100X100。
那么⾸先我们在地图上随机⼀个机器⼈的坐标(x,y)和运动⽅向orientation,设定粒⼦集的M为1000,每个粒⼦都初始化⼀个和机器⼈相同数据结构的状态。
N = 1000 #初始粒⼦个数p = [] #粒⼦集world_size = 100.0 #地图尺⼨for i in range(N):x = random.random() * world_sizey = random.random() * world_sizeorientation = random.random() * 2.0 * pip.append([x,y,orientation])接着给机器⼈设定初始噪声参数,分别是前进噪声forward noise,转向噪声turn noise和传感器噪声 sense noise。
粒子滤波,程序
粒子滤波(Particle Filter ,PF),又称为序贯蒙特卡罗算法,是一种基于蒙特卡罗方法的贝叶斯滤波技术。
粒子滤波的基本原理是寻找一组在状态空间传播的随机粒子(样本)描述系统的状态,通过蒙特卡罗方法处理贝叶斯估计中的积分运算,从而得到系统状态的最小均方差估计。
当粒子数量区域无穷时可以逼近服从任意概率分布的系统状态。
与其他滤波技术相比,粒子滤波不需要对系统状态做任何先验性假设,原则上可以应用于任何能用状态空间模型描述的随机系统。
一、贝叶斯估计贝叶斯定理是贝叶斯估计方法的理论基础。
贝叶斯定理表达如下:(|)()(|)()f y x f x f x y f y =其中,x 为待估计参数,y 为样本观测值信息,即样本信息,f(x)是待估计参数x 的先验分布密度函数,f(x|y)是x 的后验分布密度函数,f(y)和f(y|x)是y 的密度函数。
因此通过上式可以看出,后验信息正比于样本信息与先验信息的乘积。
可以通过样本信息对先验信息进行修正来得到更准确的后验信息。
得到后验分布的密度函数后,就可以此为基础进行参数的点估计、区间轨迹和假设检验。
二、序贯重要性采样方法序贯重要性采样方法的核心思想是利用一系列随机样本的加权和所需的验后概率密度得到状态的估计值。
当样本点的数量无穷多时,蒙特卡罗特性与验后概率密度的函数表达等价,序贯重要性采样滤波器近似于贝叶斯滤波器。
对于如下的非线性系统:(1)[(),()]()[(),()]x k f x k w k z k h x k v k +==式中,f(·)和h(·)是非线性函数,w(k)和v(k)是系统的状态噪声和观测噪声。
设001[,,,]k k x x x x =为从0~k 时刻所有状态向量的集合,112[,,,]k k z z z z =为1~k时刻所有观测向量的集合。
滤波过程中利用01k k x z 和获得最优的x k+1,即1{[()]}[()][()|]()k E f x k f x k p x k z dx k =⎰一般而言,()1|kp x k z ⎡⎤⎣⎦是多变量且非高斯的很难直接采样,可以用与其近似的分布1[()|]k x k z π代替它进行采样,则1111111111[x(k)][()][()|]()[()|][()][()|]()[()|][|()][()][()][()|]()[][()|][x(k)][()][()|]()[]k k k kk kk k k kEf f x k p x k z dx k p x k z f x k x k z dx k x k z p z x k p x k f x k x k z dx k p z x k z w f x k x k z dx k p z πππππ====⎰⎰⎰⎰ 式中1[()|]k x k z π称为重要性函数,而11[|()][()][()][()|]k k p z x k p x k w x k x k z π=称为重要性权值。
粒子滤波原理
粒子滤波原理粒子滤波是一种基于蒙特卡洛方法的非线性、非高斯状态估计算法,它通过在状态空间中随机抽取一组粒子来近似表示目标系统的状态分布,从而实现对系统状态的估计和预测。
粒子滤波在目标跟踪、机器人定位、信号处理等领域有着广泛的应用,本文将介绍粒子滤波的基本原理和算法流程。
粒子滤波的基本原理是基于贝叶斯滤波理论,它通过不断地对系统状态进行采样和更新,来逼近系统的真实状态分布。
在粒子滤波中,我们通过一组随机抽取的粒子来表示系统的状态空间,每个粒子都有一个权重来表示其对系统状态的估计贡献。
通过不断地对粒子进行采样和更新,可以逐步逼近系统的真实状态分布。
粒子滤波的算法流程大致可以分为预测和更新两个步骤。
在预测步骤中,我们根据系统的动力学模型对当前的粒子进行状态预测,得到下一个时刻的状态估计。
在更新步骤中,我们根据系统的观测模型,计算每个粒子的观测概率,并根据观测值对粒子的权重进行调整,从而得到更新后的粒子集合。
通过不断地重复预测和更新步骤,可以逐步逼近系统的真实状态分布。
粒子滤波的优势在于它能够处理非线性、非高斯的系统,并且可以适用于任意维度的状态空间。
同时,由于粒子滤波是一种基于蒙特卡洛方法的近似推断算法,因此它可以灵活地处理各种复杂的状态分布,包括多峰分布和非参数分布等。
然而,粒子滤波也面临着粒子数目的选择和计算复杂度的增加等问题。
由于粒子滤波是一种基于蒙特卡洛方法的近似推断算法,因此粒子的数目会直接影响到滤波的性能。
通常情况下,粒子数目越多,滤波的性能越好,但同时也会增加计算的复杂度。
因此在实际应用中,需要根据系统的复杂度和计算资源的限制来选择合适的粒子数目。
总的来说,粒子滤波是一种非常灵活和强大的状态估计算法,它能够有效地处理各种复杂的非线性、非高斯系统,并且在目标跟踪、机器人定位、信号处理等领域有着广泛的应用前景。
通过不断地改进和优化,相信粒子滤波在未来会有更加广泛的应用和发展。
粒子滤波详解
粒⼦滤波详解2.4粒⼦滤波例⼦滤波是以贝叶斯滤波和重要性采样为基本框架的。
因此,想要掌握例⼦滤波,对于上述两个基本内容必须有⼀个初步的了解。
重要性采样呢,其实就是根据对粒⼦的信任程度添加不同的权重,添加权重的规则就是:对于我们信任度⾼的粒⼦,给它们添加的权重就相对⼤⼀些;否则,就加的权重⼩⼀些。
根据权重的分布形式,实际上就是它与⽬标的相似程度。
粒⼦滤波的结构实际上就是加⼀层重要性采样思想在⾥⾯的蒙特卡罗⽅法(Monte Carlo method,即以某时间出现的频率来指代该事件的概率)。
该⽅法的基本思想是⽤⼀组样本(或称粒⼦)来近似表⽰系统的后验概率分布,然后使⽤这⼀近似的表⽰来估计⾮线性系统的状态。
采⽤此思想,在滤波过程中粒⼦滤波可以处理任意形式的概率,⽽不像Kalman滤波只能处理线性⾼斯分布的概率问题。
粒⼦滤波的⼀⼤优势也在于此,因此近年来该算法在许多领域得到成功应⽤。
2.4.1贝叶斯滤波理论贝叶斯滤波泛指⼀类以贝叶斯定理为基础的滤波技术,其根据所获得的观测,对状态后验概率分布、状态先验概率分布、状态估计值以及状态预测值等感兴趣量进⾏递归计算。
假设有⼀个系统,我们知道它的状态⽅程,和测量⽅程如下:=(,(状态⽅程)(2.4.1)=(,(测量⽅程)(2.4.2)其中x为系统状态,y为测量到的数据,f,h是状态转移函数和测量函数,v,n 为过程噪声和测量噪声,噪声都是独⽴同分布的。
由贝叶斯理论可知,状态估计问题(⽬标跟踪、信号滤波)就是根据之前⼀系列的已有数据(测量数据)递推的计算出当前状态的可信度,这个可信度就是概率公式p(),它需要通过预测和更新两个步奏来递推的计算。
预测过程是利⽤系统模型(状态⽅程2.4.2)预测状态的先验概率密度,也就是通过已有的先验知识对未来的状态进⾏猜测,即p( )。
更新过程则利⽤最新的测量值对先验概率密度进⾏修正,得到后验概率密度,也就是对之前的猜测进⾏修正。
处理这些问题之前,假设系统的状态转移服从⼀阶马尔科夫模型,即当前时刻的状态x(k)只与上⼀个时刻的状态x(k-1)有关, k 时刻测量到的数据y(k)只与当前的状态x(k)有关。
粒子滤波
粒子滤波(PF: Particle Filter)的思想基于蒙特卡洛方法(Monte Carlo methods),它是利用粒子集来表示概率,可以用在任何形式的状态空间模型上。
其核心思想是通过从后验概率中抽取的随机状态粒子来表达其分布,是一种顺序重要性采样法(Sequential Importance Sampling)。
简单来说,粒子滤波法是指通过寻找一组在状态空间传播的随机样本对概率密度函数进行近似,以样本均值代替积分运算,从而获得状态最小方差分布的过程。
这里的样本即指粒子,当样本数量N→∝时可以逼近任何形式的概率密度分布。
尽管算法中的概率分布只是真实分布的一种近似,但由于非参数化的特点,它摆脱了解决非线性滤波问题时随机量必须满足高斯分布的制约,能表达比高斯模型更广泛的分布,也对变量参数的非线性特性有更强的建模能力。
因此,粒子滤波能够比较精确地表达基于观测量和控制量的后验概率分布,可以用于解决SLAM 问题。
粒子滤波的应用粒子滤波技术在非线性、非高斯系统表现出来的优越性,决定了它的应用范围非常广泛。
另外,粒子滤波器的多模态处理能力,也是它应用广泛有原因之一。
国际上,粒子滤波已被应用于各个领域。
在经济学领域,它被应用在经济数据预测;在军事领域已经被应用于雷达跟踪空中飞行物,空对空、空对地的被动式跟踪;在交通管制领域它被应用在对车或人视频监控;它还用于机器人的全局定位。
粒子滤波的缺点虽然粒子滤波算法可以作为解决SLAM问题的有效手段,但是该算法仍然存在着一些问题。
其中最主要的问题是需要用大量的样本数量才能很好地近似系统的后验概率密度。
机器人面临的环境越复杂,描述后验概率分布所需要的样本数量就越多,算法的复杂度就越高。
因此,能够有效地减少样本数量的自适应采样策略是该算法的重点。
另外,重采样阶段会造成样本有效性和多样性的损失,导致样本贫化现象。
如何保持粒子的有效性和多样性,克服样本贫化,也是该算法研究重点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2 粒子滤波理论粒子滤波通过非参数化的蒙特卡洛(Monte Carlo)模拟方法来实现递推贝叶斯滤波,适用于任何能用状态空间模型描述的非线性系统,精度可以逼近最优估计。
粒子滤波器具有简单、易于实现等特点,它为分析非线性动态系统提供了一种有效的解决方法,从而引起目标跟踪、信号处理以及自动控制等领域的广泛关注。
本章首先概述用于求解目标状态后验概率的贝叶斯滤波理论,随后介绍具有普遍适用性的粒子滤波器,最后针对当前粒子滤波器存在的粒子多样性丧失问题,提出了一种量子进化粒子滤波算法。
2.1 贝叶斯滤波动态系统的目标跟踪问题可以通过图 2.1所示的状态空间模型来描述。
本节在贝叶斯滤波框架下讨论目标跟踪问题。
图2.1状态空间模型Fig. 2.1State space model在目标跟踪问题中,动态系统的状态空间模型可描述为11()()k k kkk kx f x u y h x v (2.1)其中(),()f h 分别为状态转移方程与观测方程,k x 为系统状态,k y 为观测值,k u 为过程噪声,k v 为观测噪声。
为了描述方便,用0:01{,,,}kkk X x x x x 与1:1{,,}kkk Y y y y 分别表示0到k 时刻所有的状态与观测值。
在处理目标跟踪问题时,通常假设目标的状态转移过程服从一阶马尔可夫模型,即当前时刻的状态k x 只与上一时刻的状态-1k x 有关。
另外一个假设为观测值相互独立,即观测值k y 只与k 时刻的状态k x 有关。
贝叶斯滤波为非线性系统的状态估计问题提供了一种基于概率分布形式的解决方案。
贝叶斯滤波将状态估计视为一个概率推理过程,即将目标状态的估计问题转换为利用贝叶斯公式求解后验概率密度(|)k k p X Y 或滤波概率密度(|)k k p x Y ,进而获得目标状态的最优估计。
贝叶斯滤波包含预测和更新两个阶段,预测过程利用系统模型预测状态的先验概率密度,更新过程则利用最新的测量值对先验概率密度进行修正,得到后验概率密度。
假设已知1k时刻的概率密度函数为11(|)kk p x Y ,贝叶斯滤波的具体过程如下:(1) 预测过程,由11(|)kk p x Y 得到1(|)k k p x Y :111111(,|)(|,)(|)k k k k k k kk p x x Y p x x Y p x Y (2.2)当给定1k x 时,状态k x 与1k Y 相互独立,因此11111(,|)(|)(|)k kk k k kk p x x Y p x x p x Y (2.3)上式两端对1k x 积分,可得Chapman-Komolgorov方程11111(|)(|)(|)d k k k k kkkp x Y p x x p x Y x (?????)(2.4)(2) 更新过程,由1(|)k k p x Y 得到)|(k k Y x p :获取k 时刻的测量k y 后,利用贝叶斯公式对先验概率密度进行更新,得到后验概率111(|,)(|)(|)(|)k k k k k k k k k p y x Y p x Y p x Y p y Y (2.5)假设k y 只由k x 决定,即1(|,)(|)k k k k k p y x Y p y x (2.6)因此11(|)(|)(|)(|)k k k k k k k k p y x p x Y p x Y p y Y (2.7)其中,1(|)k k p y Y 为归一化常数1(|)k k p y Y 1(|)(|)d k k k k kp y x p x Y x (2.8)贝叶斯滤波以递推的形式给出后验(或滤波)概率密度函数的最优解。
目标状态的最优估计值可由后验(或滤波)概率密度函数进行计算。
通常根据极大后验(MAP)准则或最小均方误差(MMSE)准则,将具有极大后验概率密度的状态或条件均值作为系统状态的估计值,即? =arg min (|)kMAP kk k x xp x Y (2.9)? =E[()|]()(|)d MMSEkk k k k k kxf x Y f x p x Y x (2.10)贝叶斯滤波需要进行积分运算,除了一些特殊的系统模型(如线性高斯系统,有限状态的离散系统)之外,对于一般的非线性、非高斯系统,贝叶斯滤波很难得到后验概率的封闭解析式。
因此,现有的非线性滤波器多采用近似的计算方法解决积分问题,以此来获取估计的次优解。
在系统的非线性模型可由在当前状态展开的线性模型有限近似的前提下,基于一阶或二阶Taylor 级数展开的扩展Kalman滤波得到广泛应用[119]。
在一般情况下,逼近概率密度函数比逼近非线性函数容易实现。
据此,Julier 与Uhlmann 提出一种Unscented Kalman滤波器,通过选定的sigma 点来精确估计随机变量经非线性变换后的均值和方差,从而更好的近似状态的概率密度函数,其理论估计精度优于扩展Kalman 滤波[120]。
获取次优解的另外一中方案便是基于蒙特卡洛模拟的粒子滤波器。
2.2 粒子滤波早在20世纪50年代,Hammersley 便采用基于序贯重要性采样(Sequential importancesampling,SIS)的蒙特卡洛方法解决统计学问题[121]。
20世纪60年代后期,Handschin 与Mayne使用序贯蒙特卡洛方法解决自动控制领域的相关问题[122]。
20世纪70年代,Handschin 、Akashi以及Zaritskii 等学者的一系列研究工作使得序贯蒙特卡洛方法得到进一步发展[123][124, 125][126]。
限于当时的计算能力以及算法本身存在的权值退化问题,序贯重要性采样算法没有受到足够重视,在随后较长一段时间内进展较为缓慢。
直到20世纪80年代末,计算机处理能力的巨大进展使得序贯蒙特卡洛方法重新受到关注。
Tanizaki 、Geweke 等采用基于重要性采样的蒙特卡洛方法成功解决了一系列高维积分问题[127-130]。
Smith 与Gelfand 提出的采样-重采样思想为Bayesian 推理提供了一种易于实现的计算策略[131]。
随后,Smith 与Gordon 等人合作,于20世纪90年代初将重采样(Resampling)步骤引入到粒子滤波中,在一定程度上解决了序贯重要性采样的权值退化问题,并由此产生了第一个可实现的SIR(Samplingimportance resampling)粒子滤波算法(Bootstrap 滤波)[132],从而掀起粒子滤波的研究热潮。
美国海军集成水下监控系统中的Nodestar 便是粒子滤波应用的一个实例。
进入21世纪,粒子滤波器成为一个非常活跃的研究领域,Doucet 、Liu 、Arulampalam等对粒子滤波的研究作了精彩的总结[133-135],IEEE 出版的论文集“Sequential Monte Carlo Methods in Practice”对粒子滤波器进行了详细介绍[136]。
2.2.1 贝叶斯重要性采样蒙特卡洛模拟是一种利用随机数求解物理和数学问题的计算方法,又称为计算机随机模拟方法。
该方法源于第一次世界大战期间美国研制原子弹的曼哈顿计划,著名数学家冯诺伊曼作为该计划的主持人之一,用驰名世界的赌城,摩纳哥的蒙特卡洛来命名这种方法。
蒙特卡洛模拟方法利用所求状态空间中大量的样本点来近似逼近待估计变量的后验概率分布,如图 2.2所示,从而将积分问题转换为有限样本点的求和问题。
粒子滤波算法的核心思想便是利用一系列随机样本的加权和表示后验概率密度,通过求和来近似积分操作。
假设可以从后验概率密度(|)k k p x Y 中抽取N 个独立同分布的随机样本()i k x ,1,,iN ,则有()11(|)()Ni k k kki p x Y x x N(2.11)这里k x 为连续变量,(-)k x x 为单位冲激函数(狄拉克函数),即(-)0,k k x x x x ,且()d 1x x。
当k x 为离散变量时,后验概率分布(|)k k P x Y 可近似逼近为()11(|)()Ni k k kki P x Y x xN(2.12)其中,()()()1,;i i k k k k x x x x ()()()0,i i k k k k x x x x 。
()P x 1图2.2经验概率分布函数Fig. 2.2Empirical probability distribution function设()i kx为从后验概率密度函数)|(k k Y x p 中获取的采样粒子,则任意函数()k f x 的期望估计可以用求和方式逼近,即()k 11E[()|]()(|)d ()Ni k k k k kki f x Y f x p x Y x f xN(2.13)蒙特卡洛方法一般可以归纳为以下三个步骤:(1)构造概率模型。
对于本身具有随机性质的问题,主要工作是正确地描述和模拟这个概率过程。
对于确定性问题,比如计算定积分、求解线性方程组、偏微分方程等问题,采用蒙特卡洛方法求解需要事先构造一个人为的概率过程,将它的某些参量视为问题的解。
(2)从指定概率分布中采样。
产生服从己知概率分布的随机变量是实现蒙特卡洛方法模拟试验的关键步骤。
(3)建立各种估计量的估计。
一般说来,构造出概率模型并能从中抽样后,便可进行现模拟试验。
随后,就要确定一个随机变量,将其作为待求解问题的解进行估计。
在实际计算中,通常无法直接从后验概率分布中采样,如何得到服从后验概率分布的随机样本是蒙特卡洛方法中基本的问题之一。
重要性采样法引入一个已知的、容易采样的重要性概率密度函数(|)k k q x Y ,从中生成采样粒子,利用这些随机样本的加权和来逼近后验滤波概率密度(|)k k p x Y ,如图 2.3所示。
令()(){,,1,.}i i k kx w iN 表示一支撑点集,其中()i kx 为是k 时刻第i 个粒子的状态,其相应的权值为()i k w ,则后验滤波概率密度可以表示为()()1(|)()Ni i k k kk k i p x Y w x x (2.14)其中,()()()(|)(|)i i kk ki kk p x Y wq xY (2.15)图 2.3重要性采样Fig. 2.3Importance sampling当采样粒子的数目很大时,式(2.14)便可近似逼近真实的后验概率密度函数。
任意函数()k f x 的期望估计为()()()()()11(|)11E[()|]=()()(|)i NNi i i kk k k k k ki i i kk p x Y f x Y f x f x w Nq xY N(2.16)2.2.2 序贯重要性采样算法在基于重要性采样的蒙特卡洛模拟方法中,估计后验滤波概率需要利用所有的观测数据,每次新的观测数据来到都需要重新计算整个状态序列的重要性权值。