区块链技术博客
www.b2bchain.cn

【概率图模型】S08E07 线性高斯:卡尔曼滤波求职学习资料

本文介绍了【概率图模型】S08E07 线性高斯:卡尔曼滤波求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

1.卡尔曼滤波中的线性与高斯

这一讲我们来介绍卡尔曼滤波器,首先还是开局一张图,重温一下卡尔曼滤波器的结构:

【概率图模型】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.卡尔曼滤波中的线性与高斯

这一讲我们来介绍卡尔曼滤波器,首先还是开局一张图,重温一下卡尔曼滤波器的结构:

【概率图模型】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.卡尔曼滤波中的线性与高斯

这一讲我们来介绍卡尔曼滤波器,首先还是开局一张图,重温一下卡尔曼滤波器的结构:

【概率图模型】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$会是一个提前给定的正态分布。

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 【概率图模型】S08E07 线性高斯:卡尔曼滤波求职学习资料
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们