本文介绍了【概率图模型】S08E07 线性高斯:卡尔曼滤波求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。
对技术面试,学习经验等有一些体会,在此分享。
1.卡尔曼滤波中的线性与高斯
这一讲我们来介绍卡尔曼滤波器,首先还是开局一张图,重温一下卡尔曼滤波器的结构:
在前面我们介绍过,除了拥有齐次马尔科夫假设和观测独立性假设两个特性之外,卡尔曼滤波器还满足$Z_t$和$Z_{t-1}$之间以及$X_t$和$Z_t$之间的两组线性关系:
$$z_t=Az_{t-1}+B+epsilon \x_t=Cz_t+D+delta$$
这里$A,B,C,D$是线性系数,而$epsilon$和$delta$则是两个满足均值为$0$的高斯分布的随机变量,我们记作:$epsilonsim N(0,Q)$,$deltasim N(0,R)$
而我们在前面还介绍过:卡尔曼滤波器中,无论是隐含变量$Z$还是观测变量$X$,都是服从高斯分布的,具体的分布形式,其实我们从上面的一组线性关系表达式中通过变化,找出这个规律:
$$p(z_{t}|z_{t-1})=N(Az_{t-1}+B,Q)$$$$p(x_{t}|z_{t})=N(Cz_{t}+D,R)$$
对于模型的第一个变量,也就是隐变量$z_1$,我们直接令他服从一个高斯分布:$p(z_1)=N(mu_1,Sigma_1)$
这时候,整个卡尔曼滤波器的模型我们就描述清楚了,他的参数为:$$theta=(A,B,C,D,Q,R,mu_1,Sigma_1)$$在模型描述清楚后,我们重点关注的是卡尔曼滤波器中的滤波问题,也就是求取概率$p(z_t|x_1,x_2,x_3,…,x_t)$的核心思路。
2.滤波问题的解决思路
我们需要清楚一点的是,卡尔曼滤波器是动态图模型,模型中蕴含着一条时间主轴,按照时间的推演顺序,我们是依次顺序的观察到观测变量$x_1,x_2,x_3,…,x_T$,换句话说,在观察到$x_t$之前,我们将先观察到$x_{t-1}$,那么思路就来了,我们不妨去建立$p(z_t|x_1,x_2,x_3,…,x_t)$和$p(z_{t-1}|x_1,x_2,x_3,…,x_{t-1})$这前后相邻两个时间节点的滤波表达式之间的递推关系,关系建立了之后,我们就能从$p(z_1|x_1)$一路平推到$p(z_t|x_1,x_2,x_3,…,x_t)$。
下面我们开始:
首先按照贝叶斯公式来一道转换:
$$p(z_t|x_1,x_2,x_3,…,x_t)=frac{p(x_1,x_2,x_3,…,x_t,z_t)}{p(x_1,x_2,x_3,…,x_t)}$$
因为$p(x_1,x_2,x_3,…,x_t)$描述的是这一组观测变量的概率,因此是一个常数,所以就转换为如下的正比关系:
$$p(z_t|x_1,x_2,x_3,…,x_t)propto p(x_1,x_2,x_3,…,x_t,z_t)$$
再来一次贝叶斯定理展开:
$$p(x_1,x_2,x_3,…,x_t,z_t)$$$$=p(x_t|x_1,x_2,x_3,…,x_{t-1},z_t)p(x_1,x_2,x_3,…,x_{t-1},z_t)$$$$=p(x_t|z_t)p(x_1,x_2,x_3,…,x_{t-1},z_t)$$
最后一步化简很简单,就是依据模型的观测独立性假设,$x_t$的取值只与$z_t$有关。
紧接着继续按贝叶斯公式展开:
$$p(x_1,x_2,x_3,…,x_t,z_t)$$$$=p(x_t|z_t)p(x_1,x_2,x_3,…,x_{t-1},z_t)$$$$=p(x_t|z_t)p(z_t|x_1,x_2,x_3,…,x_{t-1})p(x_1,x_2,x_3,…,x_{t-1})$$
这最后一步公式中,其实蕴含了两个要点:
第一:$p(z_t|x_1,x_2,x_3,…,x_{t-1})$是一个预测问题;
第二:$p(x_1,x_2,x_3,…,x_{t-1})$又是一个关于观测变量的概率,他是一个常数,可以用正比于的关系替代掉。
因此就有了:
$$p(x_1,x_2,x_3,…,x_t,z_t)propto p(x_t|z_t)p(z_t|x_1,x_2,x_3,…,x_{t-1})$$
那么这最终一路下来就有:
$$p(z_t|x_1,x_2,x_3,…,x_t)propto p(x_1,x_2,x_3,…,x_t,z_t)$$$$ propto p(x_t|z_t)p(z_t|x_1,x_2,x_3,…,x_{t-1})$$
下来我们看一下这个预测的概率如何进一步化简:
$$p(z_t|x_1,x_2,x_3,…,x_{t-1})$$$$=int_{z_{t-1}}p(z_t,z_{t-1}|x_1,x_2,x_3,…,x_{t-1})dz_{t-1}$$$$=int_{z_{t-1}}p(z_t|z_{t-1},x_1,x_2,x_3,…,x_{t-1})p(z_{t-1}|x_1,x_2,x_3,…,x_{t-1})dz_{t-1}$$$$=int_{z_{t-1}}p(z_t|z_{t-1})p(z_{t-1}|x_1,x_2,x_3,…,x_{t-1})dz_{t-1}$$
现在是不是突然有了豁然开朗的感觉,这个式子中也包含了两个含义明显的式子:
一个是通过齐次马尔科夫假设化简而得来的概率$p(z_t|z_{t-1})$
另一个是$t-1$时刻的滤波表达式:$p(z_{t-1}|x_1,x_2,x_3,…,x_{t-1})$
这两个等式,在递推的大背景下都是已知的。
好了,到目前为止其实整个递推的过程我们就全都理出来了,这里结合下面两个式子来,我们来汇总一下全过程:
3.滤波过程中的predict和update步
在递推的过程中,在$t-1$时刻,我们总是先利用$t-1$时刻的滤波结果,在$t-1$时刻的观测序列$x_1,x_2,x_3,…,x_{t-1}$的基础上,去预测下一时刻$t$的状态$z_t$的概率,这一步,我们称之为predict步过程:
$$p(z_t|x_1,x_2,x_3,…,x_{t-1})$$$$=int_{z_{t-1}}p(z_t|z_{t-1})p(z_{t-1}|x_1,x_2,x_3,…,x_{t-1})dz_{t-1}$$
拿到了$t-1$时刻对$t$时刻状态的预测之后,我们进入$t$时刻,此时,我们新增了$t$时刻的观测值$x_t$,我们通过他来对$t-1$时刻的预测进行修正,也就是去修正隐变量$z_t$概率,因此这一步也叫作update步过程:
$$p(z_t|x_1,x_2,x_3,…,x_t)propto p(x_t|z_t)p(z_t|x_1,x_2,x_3,…,x_{t-1})$$
那么再直白一点,我们从$t=1$这一步来演示这个过程:
$t=1$时刻:
update步:求$p(z_1|x_1)$
predict步:求$p(z_2|x_1)$
$t=2$时刻:
update步:求$p(z_2|x_2)$
predict步:求$p(z_3|x_2)$
然后不断的$t=3,t=4,…,t=n-1,t=n$进行迭代。
$t=1$的启动update步,$p(z_1|x_1)propto p(x_1|z_1)p(z_1)$,其中隐状态$z_1$会是一个提前给定的正态分布。
1.卡尔曼滤波中的线性与高斯
这一讲我们来介绍卡尔曼滤波器,首先还是开局一张图,重温一下卡尔曼滤波器的结构:
在前面我们介绍过,除了拥有齐次马尔科夫假设和观测独立性假设两个特性之外,卡尔曼滤波器还满足$Z_t$和$Z_{t-1}$之间以及$X_t$和$Z_t$之间的两组线性关系:
$$z_t=Az_{t-1}+B+epsilon \x_t=Cz_t+D+delta$$
这里$A,B,C,D$是线性系数,而$epsilon$和$delta$则是两个满足均值为$0$的高斯分布的随机变量,我们记作:$epsilonsim N(0,Q)$,$deltasim N(0,R)$
而我们在前面还介绍过:卡尔曼滤波器中,无论是隐含变量$Z$还是观测变量$X$,都是服从高斯分布的,具体的分布形式,其实我们从上面的一组线性关系表达式中通过变化,找出这个规律:
$$p(z_{t}|z_{t-1})=N(Az_{t-1}+B,Q)$$$$p(x_{t}|z_{t})=N(Cz_{t}+D,R)$$
对于模型的第一个变量,也就是隐变量$z_1$,我们直接令他服从一个高斯分布:$p(z_1)=N(mu_1,Sigma_1)$
这时候,整个卡尔曼滤波器的模型我们就描述清楚了,他的参数为:$$theta=(A,B,C,D,Q,R,mu_1,Sigma_1)$$在模型描述清楚后,我们重点关注的是卡尔曼滤波器中的滤波问题,也就是求取概率$p(z_t|x_1,x_2,x_3,…,x_t)$的核心思路。
2.滤波问题的解决思路
我们需要清楚一点的是,卡尔曼滤波器是动态图模型,模型中蕴含着一条时间主轴,按照时间的推演顺序,我们是依次顺序的观察到观测变量$x_1,x_2,x_3,…,x_T$,换句话说,在观察到$x_t$之前,我们将先观察到$x_{t-1}$,那么思路就来了,我们不妨去建立$p(z_t|x_1,x_2,x_3,…,x_t)$和$p(z_{t-1}|x_1,x_2,x_3,…,x_{t-1})$这前后相邻两个时间节点的滤波表达式之间的递推关系,关系建立了之后,我们就能从$p(z_1|x_1)$一路平推到$p(z_t|x_1,x_2,x_3,…,x_t)$。
下面我们开始:
首先按照贝叶斯公式来一道转换:
$$p(z_t|x_1,x_2,x_3,…,x_t)=frac{p(x_1,x_2,x_3,…,x_t,z_t)}{p(x_1,x_2,x_3,…,x_t)}$$
因为$p(x_1,x_2,x_3,…,x_t)$描述的是这一组观测变量的概率,因此是一个常数,所以就转换为如下的正比关系:
$$p(z_t|x_1,x_2,x_3,…,x_t)propto p(x_1,x_2,x_3,…,x_t,z_t)$$
再来一次贝叶斯定理展开:
$$p(x_1,x_2,x_3,…,x_t,z_t)$$$$=p(x_t|x_1,x_2,x_3,…,x_{t-1},z_t)p(x_1,x_2,x_3,…,x_{t-1},z_t)$$$$=p(x_t|z_t)p(x_1,x_2,x_3,…,x_{t-1},z_t)$$
最后一步化简很简单,就是依据模型的观测独立性假设,$x_t$的取值只与$z_t$有关。
紧接着继续按贝叶斯公式展开:
$$p(x_1,x_2,x_3,…,x_t,z_t)$$$$=p(x_t|z_t)p(x_1,x_2,x_3,…,x_{t-1},z_t)$$$$=p(x_t|z_t)p(z_t|x_1,x_2,x_3,…,x_{t-1})p(x_1,x_2,x_3,…,x_{t-1})$$
这最后一步公式中,其实蕴含了两个要点:
第一:$p(z_t|x_1,x_2,x_3,…,x_{t-1})$是一个预测问题;
第二:$p(x_1,x_2,x_3,…,x_{t-1})$又是一个关于观测变量的概率,他是一个常数,可以用正比于的关系替代掉。
因此就有了:
$$p(x_1,x_2,x_3,…,x_t,z_t)propto p(x_t|z_t)p(z_t|x_1,x_2,x_3,…,x_{t-1})$$
那么这最终一路下来就有:
$$p(z_t|x_1,x_2,x_3,…,x_t)propto p(x_1,x_2,x_3,…,x_t,z_t)$$$$ propto p(x_t|z_t)p(z_t|x_1,x_2,x_3,…,x_{t-1})$$
下来我们看一下这个预测的概率如何进一步化简:
$$p(z_t|x_1,x_2,x_3,…,x_{t-1})$$$$=int_{z_{t-1}}p(z_t,z_{t-1}|x_1,x_2,x_3,…,x_{t-1})dz_{t-1}$$$$=int_{z_{t-1}}p(z_t|z_{t-1},x_1,x_2,x_3,…,x_{t-1})p(z_{t-1}|x_1,x_2,x_3,…,x_{t-1})dz_{t-1}$$$$=int_{z_{t-1}}p(z_t|z_{t-1})p(z_{t-1}|x_1,x_2,x_3,…,x_{t-1})dz_{t-1}$$
现在是不是突然有了豁然开朗的感觉,这个式子中也包含了两个含义明显的式子:
一个是通过齐次马尔科夫假设化简而得来的概率$p(z_t|z_{t-1})$
另一个是$t-1$时刻的滤波表达式:$p(z_{t-1}|x_1,x_2,x_3,…,x_{t-1})$
这两个等式,在递推的大背景下都是已知的。
好了,到目前为止其实整个递推的过程我们就全都理出来了,这里结合下面两个式子来,我们来汇总一下全过程:
3.滤波过程中的predict和update步
在递推的过程中,在$t-1$时刻,我们总是先利用$t-1$时刻的滤波结果,在$t-1$时刻的观测序列$x_1,x_2,x_3,…,x_{t-1}$的基础上,去预测下一时刻$t$的状态$z_t$的概率,这一步,我们称之为predict步过程:
$$p(z_t|x_1,x_2,x_3,…,x_{t-1})$$$$=int_{z_{t-1}}p(z_t|z_{t-1})p(z_{t-1}|x_1,x_2,x_3,…,x_{t-1})dz_{t-1}$$
拿到了$t-1$时刻对$t$时刻状态的预测之后,我们进入$t$时刻,此时,我们新增了$t$时刻的观测值$x_t$,我们通过他来对$t-1$时刻的预测进行修正,也就是去修正隐变量$z_t$概率,因此这一步也叫作update步过程:
$$p(z_t|x_1,x_2,x_3,…,x_t)propto p(x_t|z_t)p(z_t|x_1,x_2,x_3,…,x_{t-1})$$
那么再直白一点,我们从$t=1$这一步来演示这个过程:
$t=1$时刻:
update步:求$p(z_1|x_1)$
predict步:求$p(z_2|x_1)$
$t=2$时刻:
update步:求$p(z_2|x_2)$
predict步:求$p(z_3|x_2)$
然后不断的$t=3,t=4,…,t=n-1,t=n$进行迭代。
$t=1$的启动update步,$p(z_1|x_1)propto p(x_1|z_1)p(z_1)$,其中隐状态$z_1$会是一个提前给定的正态分布。
1.卡尔曼滤波中的线性与高斯
这一讲我们来介绍卡尔曼滤波器,首先还是开局一张图,重温一下卡尔曼滤波器的结构:
在前面我们介绍过,除了拥有齐次马尔科夫假设和观测独立性假设两个特性之外,卡尔曼滤波器还满足$Z_t$和$Z_{t-1}$之间以及$X_t$和$Z_t$之间的两组线性关系:
$$z_t=Az_{t-1}+B+epsilon \x_t=Cz_t+D+delta$$
这里$A,B,C,D$是线性系数,而$epsilon$和$delta$则是两个满足均值为$0$的高斯分布的随机变量,我们记作:$epsilonsim N(0,Q)$,$deltasim N(0,R)$
而我们在前面还介绍过:卡尔曼滤波器中,无论是隐含变量$Z$还是观测变量$X$,都是服从高斯分布的,具体的分布形式,其实我们从上面的一组线性关系表达式中通过变化,找出这个规律:
$$p(z_{t}|z_{t-1})=N(Az_{t-1}+B,Q)$$$$p(x_{t}|z_{t})=N(Cz_{t}+D,R)$$
对于模型的第一个变量,也就是隐变量$z_1$,我们直接令他服从一个高斯分布:$p(z_1)=N(mu_1,Sigma_1)$
这时候,整个卡尔曼滤波器的模型我们就描述清楚了,他的参数为:$$theta=(A,B,C,D,Q,R,mu_1,Sigma_1)$$在模型描述清楚后,我们重点关注的是卡尔曼滤波器中的滤波问题,也就是求取概率$p(z_t|x_1,x_2,x_3,…,x_t)$的核心思路。
2.滤波问题的解决思路
我们需要清楚一点的是,卡尔曼滤波器是动态图模型,模型中蕴含着一条时间主轴,按照时间的推演顺序,我们是依次顺序的观察到观测变量$x_1,x_2,x_3,…,x_T$,换句话说,在观察到$x_t$之前,我们将先观察到$x_{t-1}$,那么思路就来了,我们不妨去建立$p(z_t|x_1,x_2,x_3,…,x_t)$和$p(z_{t-1}|x_1,x_2,x_3,…,x_{t-1})$这前后相邻两个时间节点的滤波表达式之间的递推关系,关系建立了之后,我们就能从$p(z_1|x_1)$一路平推到$p(z_t|x_1,x_2,x_3,…,x_t)$。
下面我们开始:
首先按照贝叶斯公式来一道转换:
$$p(z_t|x_1,x_2,x_3,…,x_t)=frac{p(x_1,x_2,x_3,…,x_t,z_t)}{p(x_1,x_2,x_3,…,x_t)}$$
因为$p(x_1,x_2,x_3,…,x_t)$描述的是这一组观测变量的概率,因此是一个常数,所以就转换为如下的正比关系:
$$p(z_t|x_1,x_2,x_3,…,x_t)propto p(x_1,x_2,x_3,…,x_t,z_t)$$
再来一次贝叶斯定理展开:
$$p(x_1,x_2,x_3,…,x_t,z_t)$$$$=p(x_t|x_1,x_2,x_3,…,x_{t-1},z_t)p(x_1,x_2,x_3,…,x_{t-1},z_t)$$$$=p(x_t|z_t)p(x_1,x_2,x_3,…,x_{t-1},z_t)$$
最后一步化简很简单,就是依据模型的观测独立性假设,$x_t$的取值只与$z_t$有关。
紧接着继续按贝叶斯公式展开:
$$p(x_1,x_2,x_3,…,x_t,z_t)$$$$=p(x_t|z_t)p(x_1,x_2,x_3,…,x_{t-1},z_t)$$$$=p(x_t|z_t)p(z_t|x_1,x_2,x_3,…,x_{t-1})p(x_1,x_2,x_3,…,x_{t-1})$$
这最后一步公式中,其实蕴含了两个要点:
第一:$p(z_t|x_1,x_2,x_3,…,x_{t-1})$是一个预测问题;
第二:$p(x_1,x_2,x_3,…,x_{t-1})$又是一个关于观测变量的概率,他是一个常数,可以用正比于的关系替代掉。
因此就有了:
$$p(x_1,x_2,x_3,…,x_t,z_t)propto p(x_t|z_t)p(z_t|x_1,x_2,x_3,…,x_{t-1})$$
那么这最终一路下来就有:
$$p(z_t|x_1,x_2,x_3,…,x_t)propto p(x_1,x_2,x_3,…,x_t,z_t)$$$$ propto p(x_t|z_t)p(z_t|x_1,x_2,x_3,…,x_{t-1})$$
下来我们看一下这个预测的概率如何进一步化简:
$$p(z_t|x_1,x_2,x_3,…,x_{t-1})$$$$=int_{z_{t-1}}p(z_t,z_{t-1}|x_1,x_2,x_3,…,x_{t-1})dz_{t-1}$$$$=int_{z_{t-1}}p(z_t|z_{t-1},x_1,x_2,x_3,…,x_{t-1})p(z_{t-1}|x_1,x_2,x_3,…,x_{t-1})dz_{t-1}$$$$=int_{z_{t-1}}p(z_t|z_{t-1})p(z_{t-1}|x_1,x_2,x_3,…,x_{t-1})dz_{t-1}$$
现在是不是突然有了豁然开朗的感觉,这个式子中也包含了两个含义明显的式子:
一个是通过齐次马尔科夫假设化简而得来的概率$p(z_t|z_{t-1})$
另一个是$t-1$时刻的滤波表达式:$p(z_{t-1}|x_1,x_2,x_3,…,x_{t-1})$
这两个等式,在递推的大背景下都是已知的。
好了,到目前为止其实整个递推的过程我们就全都理出来了,这里结合下面两个式子来,我们来汇总一下全过程:
3.滤波过程中的predict和update步
在递推的过程中,在$t-1$时刻,我们总是先利用$t-1$时刻的滤波结果,在$t-1$时刻的观测序列$x_1,x_2,x_3,…,x_{t-1}$的基础上,去预测下一时刻$t$的状态$z_t$的概率,这一步,我们称之为predict步过程:
$$p(z_t|x_1,x_2,x_3,…,x_{t-1})$$$$=int_{z_{t-1}}p(z_t|z_{t-1})p(z_{t-1}|x_1,x_2,x_3,…,x_{t-1})dz_{t-1}$$
拿到了$t-1$时刻对$t$时刻状态的预测之后,我们进入$t$时刻,此时,我们新增了$t$时刻的观测值$x_t$,我们通过他来对$t-1$时刻的预测进行修正,也就是去修正隐变量$z_t$概率,因此这一步也叫作update步过程:
$$p(z_t|x_1,x_2,x_3,…,x_t)propto p(x_t|z_t)p(z_t|x_1,x_2,x_3,…,x_{t-1})$$
那么再直白一点,我们从$t=1$这一步来演示这个过程:
$t=1$时刻:
update步:求$p(z_1|x_1)$
predict步:求$p(z_2|x_1)$
$t=2$时刻:
update步:求$p(z_2|x_2)$
predict步:求$p(z_3|x_2)$
然后不断的$t=3,t=4,…,t=n-1,t=n$进行迭代。
$t=1$的启动update步,$p(z_1|x_1)propto p(x_1|z_1)p(z_1)$,其中隐状态$z_1$会是一个提前给定的正态分布。
部分转自互联网,侵权删除联系
最新评论