贝叶斯与卡尔曼滤波(2)--连续随机变量的贝叶斯公式
离散型变量的贝叶斯公式:
\]
如果将其用于连续型的变量中:
\]
可以看到,首先分母\(P(Y=y)\)就是0,其次,\(P(Y=y|X<x)\)是一个较为奇怪的概率,因此,这个公式是无法计算的。
贝叶斯公式无法直接运用于连续随机变量。
连续型变量的贝叶斯公式计算,可以使用化积分为求和的方法。
\]
因此:
\begin{aligned}
P(X<x|Y=y)&
= \sum_{u = -\infty}^{x}P(X=u|Y=y)\\&
=\sum_{u = -\infty}^{x}\frac{P(Y=y|X=u)P(X=u)}{P(Y=y)}\\
\end{aligned}
\end{equation}
\]
推导至这一步,我们发现\(P(X=u)\),\(P(Y=y)\)还是0,不过其实,他们两个不是0,是无穷小。所以可以写成极限
\begin{aligned}
P(X<x|Y=y)&
=\lim_{\epsilon \to 0}\sum_{u=-\infty}^{x}\frac{P(y<Y<y+\epsilon|X=u)P(u<X<u+\epsilon)}{P(y<Y<y+\epsilon)}\\&
=\lim_{\epsilon \to 0}\sum_{u=-\infty}^{x}\frac{\int_{y}^{y+\epsilon}f_{Y|X}(y|u)dy\int_{x}^{x+\epsilon}f_X(x)dx}{\int_{y}^{y+\epsilon}f_{Y}(y)dy}\\
\end{aligned}
\end{equation}
\]
根据中值定理,可以继续改写为:
\begin{aligned}
P(X<x|Y=y)&
=\lim_{\epsilon \to 0}\sum_{u=-\infty}^{x}\frac{(f_{Y|X}(\xi_1|u) \cdot \epsilon) (f_X(\xi_2)\cdot \epsilon)}{f_Y(\xi_3)\cdot\epsilon}\\
\end{aligned}
\end{equation}
\]
其中:
\xi_1 \in (y, y+\epsilon)\\
\xi_2 \in (u, u+\epsilon)\\
\xi_3 \in (y, y+\epsilon)
\end{cases}
\]
继续化简:
\begin{aligned}
P(X<x|Y=y)&
=\lim_{\epsilon \to 0}\sum_{u=-\infty}^{x}\frac{f_{Y|X}(y|u) f_X(u)}{f_Y(y)}\cdot\epsilon\\&
=\int_{-\infty}^x \frac{f_{Y|X}(y|u)f_X(u)}{f_Y(y)}du\\&
=\int_{-\infty}^{x}\frac{f_{Y|X}(y|x)f_X(x)}{f_Y(y)}dx
\end{aligned}
\end{equation}
\]
这样我们就得到了连续随机变量的贝叶斯公式
\]
对其改变一下形式,假设后验概率的概率密度是 \(f_{X|Y}(x|y)\),那么可以得到如下公式:
\]
\]
这样我们就完成了连续随机变量的贝叶斯公式。其实与离散型的公式很类似,那么类似的,
能否将\(f_Y(y)\)写成一个常量得到下面这个公式呢?
\]
答案是可以的。
根据联合概率密度与边缘概率密度的关系可以推导如下:
\begin{aligned}
f_Y(y)&
= \int_{-\infty}^{+\infty}f(y,x)dx\\&
=\int_{-\infty}^{+\infty}f_{Y|X}(y|x)f(x)dx\\&
=C
\end{aligned}
\end{equation}
\]
可以得到:
\]
似然概率与狄拉克函数
以一个例子说明。
例:测温度,给出先验概率密度:
\]
这时我们倾向于今天温度最后可能为10,我们随便给一个方差1,那就是今天的温度可能是9-11之间。给出观测值\(y=9\),那么似然概率该怎么写呢?
似然概率\(f_{X|Y}(x|y)\)应该是\(P(Y<y|X=x)\)的概率密度,按理说,只需要将概率分布写出来,然后对\(y\)求个导就能得到了。
我们已经知道了\(y=9\)了,这个时候如果按照对\(y\)求导,可以得到:
\]
\(f_{Y|X}(y|x)\)是关于y的一个函数,对\(y\)积分,\(y\)就没了,所以求导为0。
我们可以使用一个小技巧:对似然概率密度乘以一个无穷小
\]
根据概率密度函数的定义,乘无穷小就是一个面积,即在y到y+无穷小的概率。所以:
\]
这个时候,这个公式就有了明确的物理意义,他就代表传感器的精度。
举个例子,温度计精度为±0.2,当真实值为\(x\),那么,
\]
继续推导,可以看到:(我们假设传感器测量值在±0.2内的概率为1)
\]
这个积分代表,真实值取\(x\)的时候,观测值在\(x±0.2\)的概率为1,但是具体到\([x-0.2, x+0.2]\)内,每一个观测值的概率值,很遗憾,我们无从得知。一般来说一个传感器只会提供精度范围,无法提供每一个取值的概率值。
这个时候我们只能使用似然概率模型去人为的假设。一般来说,有下列常用的似然概率模型
-
等可能型
等可能型意味着概率密度函数是一个常数,即\(f_{Y|X}(y|x)=C\),
\[\int_{y=x-0.2}^{y=x+0.2}f_{Y|X}(y|x)dy=1
\]很容易可以得到:
\[f_{Y|X}(y|x)=
\begin{cases}
2.5 &|y-x|≤0.2\\
0 &|y-x| > 0.2\end{cases}
\] -
阶梯型
\[f_{Y|X}(y|x)=
\begin{cases}
C_1 &|y-x|≤0.1\\
C_2 &0.1< |y-x|< 0.2\\
0 &|y-x|>0.2\end{cases}
\]推广:直方图型:
衍生出直方图滤波,它是非线性卡尔曼滤波的一种,与粒子滤波齐名
-
正态分布
正态分布是使用最多的似然概率模型
这是比较科学的一种概率分布模型
它的概率密度函数为:
\[f_{Y|X}(y|x)=\frac{1}{\sqrt {2\pi} \sigma}e^{-\frac{(y-x)^2}{2\sigma^2}}
\]期望\(E(Y|X)=x\),方差$ D(Y|X)= \sigma^2 $
一般来说,\(\sigma\)取传感器的精度就可以了,比如它的精度为\(±0.2\),那\(\sigma=0.2\)就可以了
正态分布的另一个好处是均值和方差比较好控制
回到这个测温度的例子,我们可以假设这个先验概率的概率密度函数满足期望为10,方差为为1的正态分布:
\]
观测为\(y=9\),那么似然概率密度函数为:
\]
那么后验概率:
\]
\]
可以得到:
\]
先验概率\(N(10,1)\),似然概率\(N(9, 0.2^2)\),后验概率\(N(9.0385, 0.038^2)\)
由此引申出一个重要定理:
若先验概率\(f_X(x) \backsim N(\mu_1, \sigma_1^2)\), 似然概率\(f_{Y|X}(y|x) \backsim N(\mu_2, \sigma_2^2)\),那么后验概率有如下结论:
\[f_{X|Y}(x|y) \backsim N(\frac{\sigma_1^2}{\sigma_1^2+\sigma_2^2 }\mu_2 + \frac{\sigma_2^2}{\sigma_1^2+\sigma_2^2 }\mu_1, \frac{\sigma_1^2\sigma_2^2}{\sigma_1^2 + \sigma_2^2})
\]
若\(\sigma_1^2 \gg \sigma_2^2\),那么更倾向于观测
\begin{aligned}
f_{X|Y}(x|y) &
\backsim N(\frac{1}{1+\frac{\sigma_2^2}{\sigma_1^2} }\mu_2 + \frac{\frac{\sigma_2^2}{\sigma_1^2}}{1+\frac{\sigma_2^2}{\sigma_1^2} }\mu_1, \frac{\sigma_2^2}{1 + \frac{\sigma_2^2}{\sigma_1^2}}) \\&
\backsim N(\mu_2, \sigma_2^2)
\end{aligned}
\end{equation}
\]
若\(\sigma_1^2 \gg \sigma_2^2\),那么更倾向于先验(也可以说预测值)
\begin{aligned}
f_{X|Y}(x|y)
\backsim N(\mu_1, \sigma_1^2)
\end{aligned}
\end{equation}
\]
可以观察到,后验概率的方差比先验概率和似然概率都要小。观测和预测都是很不准的东西,但是最后却可以得到一个相对比较准确的结果,这就是贝叶斯滤波的强大之处。
狄拉克函数\(\delta(x)\)
似然概率密度函数中\(f_{Y|X}(y|x)=\frac{1}{\sqrt {2\pi} \sigma}e^{-\frac{(y-x)^2}{2\sigma^2}}\),当\(\sigma \to 0\)的时候:
\]
\(\delta(x)\)的分布如下:
\begin{cases}
0 &x\not =0\\
\infty &x=0
\end{cases}
\]
并且狄拉克函数有以下性质:
\]
引入狄拉克函数就是为了解决传感器无限精度的问题。想象一下,当传感器没有误差的时候,概率密度该怎么设呢?当传感器的误差无限接近于0的时候,他的概率密度函数就是狄拉克函数。
狄拉克函数还有一个非常重要的性质就是选择性:
\]
\(\delta(x)\)的本质是离散型的必然事件的概率密度函数。
设一个离散随机变量\(P(X=0)=1\),那么:
\begin{cases}
0 &x< 0\\
1 &x\geqslant0
\end{cases}
\]
这是一个单位阶跃函数。在\(x=0\)的时候,突变为1.
设:
\begin{cases}
0 &x< 0\\
1 &x\geqslant0
\end{cases}
\]
那么:
\]
证明\(\int_{-\infty}^{+\infty}f(x)\delta(x)dx=f(0)\).
\begin{aligned}
I&
= \int_{-\infty}^{+\infty}f(x)dH(x)\\&
= f(x)H(x)|_{-\infty}^{+\infty} - \int_{-\infty}^{+\infty}f^{'}(x)H(x)dx \\&
=f(+\infty)\cdot1-0-(\int_0^{+\infty}f^{'}(x)dx)\\&
=f(+\infty)-(f(+\infty) - f(0))\\&
=f(0)
\end{aligned}
\end{equation}
\]
推论:
-
\[\int_{a}^{b}\delta(x)dx=1 \qquad a<0<b
\] -
\[\int_{a}^{b}f(x)\delta(x)dx=f(0) \qquad a<0<b
\] -
\[\int_{d}^{c}f(x)\delta(x-a)dx=f(a) \qquad c<a<d
\]
例:假设先验概率密度函数\(N(\mu, \sigma^2)\),观测\(y=10\),似然概率密度函数:\(\delta(10-x)\)
那么后验概率密度函数:
\]
其中:
\begin{aligned}
\eta &
= (\int_{-\infty}^{+\infty} \delta(10-x)\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}}dx)^{-1}\\&
=(\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(10-\mu)^2}{2\sigma^2}})^{-1}
\end{aligned}
\end{equation}
\]
得到后验概率密度:
\begin{aligned}
f_{X|Y}(x|y)&
=(\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(10-\mu)^2}{2\sigma^2}})^{-1}\cdot \delta(10-x)\cdot\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}}\\&
=e^{\frac{(10 - \mu)^2}{2\sigma^2} -\frac{(x - \mu)^2}{2\sigma^2}}\cdot\delta(10-x)
\end{aligned}
\end{equation}
\]
得到概率值
\begin{aligned}
P(X<x|Y=10)&
=\int_{-\infty}^{x}e^{\frac{(10-\mu)^2 - (x-\mu)^2}{2\sigma^2}} \cdot\delta(10-x)dx \\&
=
\begin{cases}
0 &x< 10\\
1 &x\geqslant10
\end{cases}
\end{aligned}
\end{equation}
\]
本质上,它是一个必然事件。