粒子滤波详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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)有关。
预测阶段:为了进行递推,不放假设已知k-1时刻的概率密度函数p(),先不知k时刻的测量数据,预测状态x(k)出现的概率为:p()=。(2.4.3)
更新阶段:当获取k时刻的观测值后,利用观测值修正先验概率密度p(),得到后验概率密度p(这就是滤波了。
p(
=(2.4.4)
其中归一化常数:
p()=(2.4.5)
2.4.6)
可得:p()=
由测量方程(2-16)可知y(k)只与x(k)有关,p()也称之为似然函数,只和测量噪声n(k)的概率分布有关:
p()=(2.4.7)
2.4.2蒙特卡洛采样
蒙特卡洛方法(Monte Carlo Method)也称统计模拟方法,是20世纪40年代中期由于科学技术的发展和电子计算机的发明而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。
蒙特卡洛方法的基本原理是,事件的概率可以用大量试验中发生的频率来估计,当样本容量足够大时,可以认为该事件发生的频率即为其概率。因此,可以先对影响其可靠度的随机变量进行大量的随机抽样,然后把这些抽样值一组一组地代入功能函数式,确定结构是否失效,最后从中求得结构的失效概率。蒙特卡洛方法在金融工程学、宏观经济学、计算物理学(如粒子运输计算、量子热力学计算、空气动力学计算)等领域应用广泛。
假设我们能得到一些服从一个目标概率分布p(x)的样本(,)(每个样本看成一个粒子)。那么这些粒子作为一部分自变量的某些函数的期望值:E[f(x)]==(2.4.8)
蒙特卡洛采样的思想就是用部分样本的平均值代替积分,求期望:E[f(x)]≈(2.4.9)
在上一节中,贝叶斯后验概率的计算里要用到积分(2.4.5),但这个积分很难直接算出。为了解决这个积分难的问题,可以用蒙特卡洛采样来代替计算后验概率。
假设能从后验概率中采样到N个样本,那么后验概率的计算可近似表示为:
()=≈p()(2.4.10)
当前状态的期望值:
E[f()] ≈()d=(2.4.11)
通过这些采样的粒子(样本)的状态值直接平均就得到了期望值,也就是滤波后的值,这里的f(x) 就是每个粒子的状态函数。这就是粒子滤波了,只要从后验概率中采样很多粒子,用它们的状态求平均就得到了滤波结果。
2.4.3贝叶斯重要性采样
在蒙特卡洛采样中,我们从后验概率中采集到了N个样本(粒子),但事实上后验概率不知道啊,怎么从后验概率分布中采样!所以直接应用是行不通的。
无法直接从后验概率分布p()中采样,就从一个已知的可以采样的分布q()里去采样:
那么上节里当前状态的期望值:
E[f()] ≈()d
=q()d
=q()d
=q()d(2.4.12)
其中权值
=(2.4.13)
由因为测量数据的概率
p()=(2.4.14)
(2.4.12)可以进一步写成
E[f()]=(2.4.15)
所以,通过采样N个样本{}~用样本的平均来求它们的期望,(2.4.15)可近似为
E[f()]=(2.4.16)
其中
=(2.4.17)
贝叶斯重要性采样提出了重要性概率密度的概念,从一个已知分布中进行采样得到独立同分布的采样点,取代从后验概率密度中进行采样,从理论上提供了解决采样难的方法。
2.4.4序列重要性采样(SIS)
贝叶斯重要性采样解决了在不知后验概率的前提下,无法从后验概率采样的问题。但估计后验滤波概率需要利用所有的观测数据,每次新的观测数据到来都得重新计算,每个粒子的权重()也需重新计算,这样会造成计算量过大。
为了解决这一问题,人们提出了序列重要性采样(Sequential Importance Sampling, SIS)。
假设重要性概率密度可以分解为
=(2.4.18)设系统的状态是一个马尔科夫过程,且给定系统状态下各次观测独立,则有=(2.4.19)
=(2.4.20)
此时,通过参考分布q()得到样本集{}以及从q(,)得到样本点,这样就可得到新的样本集{} 粒子权值的递归形式如下
=(2.4.21)
通常,还需要对粒子权值进行归一化处理,即
=(2.4.22)
K时刻,系统状态的估计值可表示为
=(2.4.23)
序列重要性采样算法(SIS)以递推的方式实现了贝叶斯重要性采样,以递归更新的方式实现了对粒子权值的重新计算。
2.4.5SIR算法及粒子退化
在应用SIS 滤波的过程中,存在一个粒子退化的问题。就是经过几次迭代以后,很多粒子的权重都变得很小,可以忽略了,只有少数粒子的权重比较大。