原来各种滤波都是贝叶斯滤波算法的实现哦~
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
原来各种滤波都是贝叶斯滤波算法的实现哦~
作为解决毕业论⽂的主要算法,将贝叶斯滤波算法的所有实现算法,都仿真调试⼀下,并对⽐结果。
先验概率似然概率后验概率
全概率公式:P (T m =10.3)=P (T m =10.3|T =10)P (T =10)+P (T m =10.3|T =11)P (T =11)
其中P (T m =10.3|T =10)是似然概率(代表传感器精度),P (T =10)是先验概率(已经开始假设了),所以P (T m =10.3)为常数。
P (T m =10.3)与T 的取值⽆关,仅与T 的分布律有关。
T = 10,T = 11代表随机试验的⼀个结果,结果不会影响到分布律所以就可以改写贝叶斯公式:
P (状态(因)|观测(果))=ηP (观测|状态)P (状态)
P (T =10|T m =10.3)=
P (T m =10.3|T =10)P (T =10)
P (T m =10.3)
=ηP (T m =10.3|T =10)P (T =10)
P (T =11|T m =10.3)=
P (T m =10.3|T =11)P (T =11)
P (T m =10.3)
=ηP (T m =10.3|T =11)P (T =11)…………
即:
后验=η∗似然∗先验
求η(归⼀化⽅法):
∑后
=η∑似∗先,并且∑
后=1,所以η=1
∑似∗先
离散:P (X =x |Y =y )=
P (Y =y |X =x )P (X =x )
P (Y =y )连续:P (X <x |Y =y )=∫x
−∞
f Y |X (y |x )f X (x )
f Y (y )
dx
其中:f X |Y (x |y )=
f Y |X (y |x )f X (x )
f Y (y )
=ηf Y |X (y |x )f X (x )
求η(归⼀化⽅法):
η=
1
∫x −∞f Y |X (y |x )f X (x )dx
X :状态 Y :观测重要定理:
若f X (x )→N (µ1,σ2),f Y |X (y |x )→N (µ2,σ22),则:
贝叶斯滤波三⼤概率
离散情况下的贝叶斯滤波
连续情况下的贝叶斯滤波
似然概率与狄拉克函数
f X |y (x |y )→N (
σ21
σ21+σ22
µ2+
σ22
σ21+σ2
2
µ1,
σ21σ2
2
σ21+σ22
)
可继续推出:
若\sigma_1^2\gt\gt\sigma_2^2,后验\rightarrow N(µ_2,\sigma_2^2),倾向于“观测值(似然)”若\sigma_1^2\lt\lt\sigma_2^2,后验\rightarrow N(µ_1,\sigma_1^2),倾向于“预测值(先验)”
1~5讲,X 先验,Y 观测,仅有⼀个X ,⼀个观测Y
1. 所有的X_0, ……, X_k 的先验概率都靠猜
缺点:过于依赖观测(似然),放弃了预测(先验)信息例如:X_k=2X_{k-1}+Q_k X_k=X_{k-1}^2+Q_k
2. 只有X_0的概率是猜的,X_1,……,X_k 得先验概率是递推的
1. 马尔科夫假设,观测独⽴假设
2. 状态⽅程,观测⽅程(建模)
分两步:
1. 预测步:上⼀时刻的后验\rightarrow 这⼀时刻的先验(通过状态⽅程得到)
2. 更新步:这⼀时刻的先验\rightarrow 这⼀时刻的后验/下⼀时刻的先验
即:X_0\rightarrow X_1^-\rightarrow X_1^+\rightarrow X_2^- \rightarrow X_2^+……
贝叶斯滤波很⼤的缺点:从f_{k-1}^-到f_k^-,算\eta 、期望都要进⾏⽆穷积分,⼤多数情况下⽆法得到解析解。
解决:
1. 作假设
f(X_{k-1})、h(X_k)为线性,Q_k,R_k 为正态⾼斯分布(卡尔曼滤波)
f(X_{k-1})、h(X_k)为⾮线性,Q_k,R_k 为正态⾼斯分布(扩展卡尔曼滤波,即EKF 、UKF 等)
2. 霸王硬上⼸,直接对⽆穷积分作数值积分
⾼斯积分(不常⽤)
蒙特卡洛积分(粒⼦滤波Particle Filter )直⽅图滤波
1. X_k=f(X_{k-1})+Q_k
2. Y_k=h(X_k)+R_k
其中:X_k 、X_{k-1}、Y_k 、Q_k 、R_k 都是随机变量3. 假设:X_0,Q_1,……,Q_k,R_1,……,R_k 相互独⽴
4. 有观测值:y_1,y_2,……,y_k ,设初值X_0->f_0(k),Q_k->f_{Q_k}(x),R_k->f_{R_k}(x)
5. 重要定理:条件概率⾥的条件可做逻辑推导
初值: X_0\rightarrow f_0^+(x)
预测:f_k^-(x)= \int_{-\infty} ^{+\infty} {f_Q[x-f(v)]f_{k-1}^+(v)}dv
随机过程的贝叶斯滤波
随机过程X_0\rightarrow X_1 \rightarrow……\rightarrow X_k 有⼀个初值X_0,有k 个观测值y_1,y_2,……,y_k ,怎么办?
怎么做?
贝叶斯滤波算法
原料:
计算步骤:
更新:f_k^+(x)=\eta f_R[y_k-h(x)]f_k^-(x)
其中:\eta = (\int_{-\infty}^{+\infty}f_R[y_k-h(x)])^{-1}
估计:\hat x_k^+= \int_{-\infty}^{+\infty}xf_x^+(x)dx
贝叶斯滤波的实现之卡尔曼滤波
1. Filter问题:请⽤计算机⽣成⼀个含正态噪声的信号,并⽤Kalman Filter滤波
2. Sensor Fusion 传感器融合:
使⽤matlab、C、C++、python
tips:
1. 使⽤矩阵形式⽽不是⼀阶
2. F、H可以不是⽅阵,阶数也可以不相同
3. 泰勒展开
贝叶斯滤波的实现之粒⼦滤波
应⽤⼴泛,原理最复杂,术语最多
适⽤环境:静态环境,动态可预测环境。
如:电池电量估算,视频跟踪,封闭环境导航(激光雷达+pf slam)缺点:⽆穷积分,⼀般⽆解析解
粒⼦滤波完整算法:
1. 给初值X_0\rightarrow N(µ,\sigma^2);
2. ⽣成x_0^{(i)},w_0^{(i)}= \frac1n;
3. 预测步,⽣成x_1^{(i)}=f(x_0^{(i)}+v,v为N(0,Q)的随机数,共n个;
4. 更新步,设观测值为y_1,⽣成w_1^{(i)}=f_R[y_1-h(x_1^{(i)})]*w_0^{(i)};
5. 将w_1^{(i)}归⼀化,w_1^{(i)}=\frac {w_1^{(i)}}{\sum w_1^{(i)}};
6. 此时,得到新的粒⼦x_1^{(i)},新的权重w_1^{(i)};
7. 再由预测步⽣成x_2^{(i)}=f(x_1^{(i)})+v;
8. 再由更新步⽣成w_2^{(i)}=f_R[y_2-h(x_2^{(i)})]w_1^{(i)},归⼀化;
9. 如此递推……
粒⼦滤波总结:
1. 由⼤数定律,暗⽰了pdf可由带权重(简单地理解为平均值)的粒⼦表⽰;
2. 粒⼦数量,粒⼦位置,粒⼦权重完全决定了cdf(概率分布函数),同时即决定了pdf(概率密度函数);
3. 预测步改变粒⼦位置;
4. 更新步更新粒⼦权重。
粒⼦滤波之重采样
1. 重采样有⼀定的减弱粒⼦退化的能⼒;
2. 重采样必然会导致粒⼦多样性丧失(概率⼤的粒⼦被复制的机会越⼤,概率⼩的粒⼦可能被淘汰);
3. 重采样必然会减慢particle filter的速度
贝叶斯滤波的实现之扩展卡尔曼滤波(EKF)
贝叶斯滤波的实现之⽆迹卡尔曼滤波(UKF)
Loading [MathJax]/jax/element/mml/optable/GeneralPunctuation.js。