1.没有控制输入的状态估计
公式推导:
已知贝叶斯公式:
P
(
x
∣
y
)
=
P
(
y
∣
x
)
P
(
x
)
P
(
y
)
P(x|y)=\frac{P(y|x)P(x)}{P(y)}
P(x∣y)=P(y)P(y∣x)P(x)
添加了随机变量
z
z
z这个条件之后的贝叶斯公式:
P
(
x
∣
y
,
z
)
=
P
(
y
∣
x
,
z
)
P
(
x
∣
z
)
P
(
y
∣
z
)
P(x|y,z)=\frac{P(y|x,z)P(x|z)}{P(y|z)}
P(x∣y,z)=P(y∣z)P(y∣x,z)P(x∣z)
接下来做一下变量的替换:
令
y
=
z
n
y=z_n
y=zn
令
z
=
z
1
,
z
2
,
⋅
⋅
⋅
,
z
n
−
1
z=z_1,z_2,···,z_{n-1}
z=z1,z2,⋅⋅⋅,zn−1
带入上式:
P
(
x
∣
z
1
,
z
2
,
⋅
⋅
⋅
,
z
n
)
=
P
(
z
n
∣
x
,
z
1
,
z
2
,
⋅
⋅
⋅
,
z
n
−
1
)
P
(
x
∣
z
1
,
z
2
,
⋅
⋅
⋅
,
z
n
−
1
)
P
(
z
n
∣
z
1
,
z
2
,
⋅
⋅
⋅
,
z
n
−
1
)
P(x|z_1,z_2,···,z_n)=\frac{P(z_n|x,z_1,z_2,···,z_{n-1})P(x|z_1,z_2,···,z_{n-1})}{P(z_n|z_1,z_2,···,z_{n-1})}
P(x∣z1,z2,⋅⋅⋅,zn)=P(zn∣z1,z2,⋅⋅⋅,zn−1)P(zn∣x,z1,z2,⋅⋅⋅,zn−1)P(x∣z1,z2,⋅⋅⋅,zn−1)
其中,
x
x
x是状态,机器人学中可以认为是机器人的状态,包括机器人的位姿,机器人的线速度或角速度,环境中周围物体的位置和特征等。
z
1
,
z
2
,
⋅
⋅
⋅
,
z
n
z_1,z_2,···,z_n
z1,z2,⋅⋅⋅,zn时间从
1
1
1到
n
n
n环境测量数据的集合。
化简:
根据马尔可夫假设,当状态已知,测量
z
n
z_n
zn便独立于之前的测量,理解起来好比,
x
x
x为门的状态(开或关),
z
z
z为传感器测量的结果(开或关,传感器带有误差)。
当不知道
x
x
x时,即门的开关状态未知时,
z
n
z_n
zn的结果依赖于之前测量的结果(
z
1
,
z
2
,
⋅
⋅
⋅
,
z
n
−
1
z_1,z_2,···,z_{n-1}
z1,z2,⋅⋅⋅,zn−1),如果之前测量的结果是门开启的概率大,那么
z
n
z_n
zn的结果差不多也是这样,门大概率开着;
当
x
x
x的状态已经知道时,假设门是开着的,那么
z
n
z_n
zn的结果,不在依赖于之前测量的结果,而只与传感器的测量精度有关了。
因此:
P
(
z
n
∣
x
,
z
1
,
z
2
,
⋅
⋅
⋅
,
z
n
−
1
)
=
P
(
z
n
∣
x
)
P(z_n|x,z_1,z_2,···,z_{n-1})=P(z_n|x)
P(zn∣x,z1,z2,⋅⋅⋅,zn−1)=P(zn∣x)
P
(
x
∣
z
1
,
z
2
,
⋅
⋅
⋅
,
z
n
)
=
P
(
z
n
∣
x
)
P
(
x
∣
z
1
,
z
2
,
⋅
⋅
⋅
,
z
n
−
1
)
P
(
z
n
∣
z
1
,
z
2
,
⋅
⋅
⋅
,
z
n
−
1
)
P(x|z_1,z_2,···,z_n)=\frac{P(z_n|x)P(x|z_1,z_2,···,z_{n-1})}{P(z_n|z_1,z_2,···,z_{n-1})}
P(x∣z1,z2,⋅⋅⋅,zn)=P(zn∣z1,z2,⋅⋅⋅,zn−1)P(zn∣x)P(x∣z1,z2,⋅⋅⋅,zn−1)
P
(
x
∣
z
1
,
z
2
,
⋅
⋅
⋅
,
z
n
)
=
η
P
(
z
n
∣
x
)
P
(
x
∣
z
1
,
z
2
,
⋅
⋅
⋅
,
z
n
−
1
)
P(x|z_1,z_2,···,z_n)=\eta P(z_n|x)P(x|z_1,z_2,···,z_{n-1})
P(x∣z1,z2,⋅⋅⋅,zn)=ηP(zn∣x)P(x∣z1,z2,⋅⋅⋅,zn−1)
将上式的
n
n
n用
n
−
1
n-1
n−1替换,带入上式
P
(
x
∣
z
1
,
z
2
,
⋅
⋅
⋅
,
z
n
−
1
)
=
η
∗
P
(
z
n
−
1
∣
x
)
P
(
x
∣
z
1
,
z
2
,
⋅
⋅
⋅
,
z
n
−
2
)
P(x|z_1,z_2,···,z_{n-1})=\eta^* P(z_{n-1}|x)P(x|z_1,z_2,···,z_{n-2})
P(x∣z1,z2,⋅⋅⋅,zn−1)=η∗P(zn−1∣x)P(x∣z1,z2,⋅⋅⋅,zn−2)
P
(
x
∣
z
1
,
z
2
,
⋅
⋅
⋅
,
z
n
)
=
η
η
∗
P
(
z
n
∣
x
)
P
(
z
n
−
1
∣
x
)
P
(
x
∣
z
1
,
z
2
,
⋅
⋅
⋅
,
z
n
−
2
)
P(x|z_1,z_2,···,z_n)=\eta \eta^* P(z_n|x)P(z_{n-1}|x)P(x|z_1,z_2,···,z_{n-2})
P(x∣z1,z2,⋅⋅⋅,zn)=ηη∗P(zn∣x)P(zn−1∣x)P(x∣z1,z2,⋅⋅⋅,zn−2)
⋅
⋅
⋅
⋅
⋅
⋅
······
⋅⋅⋅⋅⋅⋅
从上式我们可以看出递归的影子,继续化简
P
(
x
∣
z
1
,
z
2
,
⋅
⋅
⋅
,
z
n
)
=
η
1
⋅
⋅
⋅
n
[
∏
i
=
1
n
P
(
z
n
∣
x
)
]
P
(
x
)
P(x|z_1,z_2,···,z_n)=\eta_{1···n} \left[\prod_{i=1}^n P(z_n|x)\right]P(x)
P(x∣z1,z2,⋅⋅⋅,zn)=η1⋅⋅⋅n[i=1∏nP(zn∣x)]P(x)
这里和上面的
η
\eta
η都是为了保证等式左边以
x
x
x累加之和等于1(
∑
x
P
(
x
∣
z
1
,
z
2
,
⋅
⋅
⋅
,
z
n
)
=
1
\sum_xP(x|z_1,z_2,···,z_n)=1
∑xP(x∣z1,z2,⋅⋅⋅,zn)=1)而设置的一个常数,其大小就等于
∑
x
[
(
∏
i
=
1
n
P
(
z
n
∣
x
)
)
P
(
x
)
]
\sum_x\left[ \left(\prod_{i=1}^n P(z_n|x)\right)P(x)\right]
∑x[(∏i=1nP(zn∣x))P(x)]
例子:
第一次测量:
P
(
z
1
∣
o
p
e
n
)
=
0.6
P(z_1|open)=0.6
P(z1∣open)=0.6 当门开着的时候机器人测量结果为
z
1
z_1
z1的概率是0.6
P
(
z
1
∣
!
o
p
e
n
)
=
0.3
P(z_1|!open)=0.3
P(z1∣!open)=0.3 当门关着的时候机器人测量结果为
z
1
z_1
z1的概率是0.3
P
(
o
p
e
n
)
=
P
(
!
o
p
e
n
)
=
0.5
P(open)=P(!open)=0.5
P(open)=P(!open)=0.5 门的状态是开启还是关闭的概率均为0.5
P
(
o
p
e
n
∣
z
1
)
=
P
(
z
1
∣
o
p
e
n
)
P
(
o
p
e
n
)
P
(
z
1
∣
o
p
e
n
)
P
(
o
p
e
n
)
+
P
(
z
1
∣
!
o
p
e
n
)
P
(
!
o
p
e
n
)
P(open|z_1)=\frac{P(z_1|open)P(open)}{P(z_1|open)P(open)+P(z_1|!open)P(!open)}
P(open∣z1)=P(z1∣open)P(open)+P(z1∣!open)P(!open)P(z1∣open)P(open)
=
0.6
⋅
0.5
0.6
⋅
0.5
+
0.3
⋅
0.5
≈
0.67
=\frac{0.6\cdot0.5}{0.6\cdot0.5+0.3\cdot0.5}\approx0.67
=0.6⋅0.5+0.3⋅0.50.6⋅0.5≈0.67
当测量结果为
z
1
z_1
z1时,门是开着的概率是0.67
第二次测量:
P
(
z
2
∣
o
p
e
n
)
=
0.5
P(z_2|open)=0.5
P(z2∣open)=0.5 当门开着的时候,测量结果为
z
2
z_2
z2的概率为0.5
P
(
z
2
∣
!
o
p
e
n
)
=
0.6
P(z_2|!open)=0.6
P(z2∣!open)=0.6 当门关着的时候,测量结果为
z
2
z_2
z2的概率为0.6
P
(
o
p
e
n
∣
z
1
)
=
0.67
P(open|z_1)=0.67
P(open∣z1)=0.67 当测量结果为
z
1
z_1
z1的时候,门是开着的概率为0.67,我们在第一次测量时得到的:
P
(
o
p
e
n
∣
z
1
,
z
2
)
=
P
(
z
2
∣
o
p
e
n
)
P
(
o
p
e
n
∣
z
1
)
P
(
z
2
∣
o
p
e
n
)
P
(
o
p
e
n
∣
z
1
)
+
P
(
z
2
∣
!
o
p
e
n
)
P
(
!
o
p
e
n
∣
z
1
)
P(open|z_1,z_2)=\frac{P(z_2|open)P(open|z_1)}{P(z_2|open)P(open|z_1)+P(z_2|!open)P(!open|z_1)}
P(open∣z1,z2)=P(z2∣open)P(open∣z1)+P(z2∣!open)P(!open∣z1)P(z2∣open)P(open∣z1)
=
0.5
⋅
0.67
0.5
⋅
0.67
+
0.6
⋅
0.33
≈
0.63
=\frac{0.5\cdot0.67}{0.5\cdot0.67+0.6\cdot0.33}\approx0.63
=0.5⋅0.67+0.6⋅0.330.5⋅0.67≈0.63
2.增加控制输入的状态估计
为了表示控制输入
u
u
u对状态的影响,引入状态转移概率:
P
(
x
∣
u
,
x
′
)
P(x|u,x^\prime)
P(x∣u,x′)
根据全概率公式:
P
(
x
)
=
∑
x
′
P
(
x
∣
x
′
)
P
(
x
′
)
P(x)=\sum_{x^\prime}P(x|x^\prime)P(x^\prime)
P(x)=x′∑P(x∣x′)P(x′)
增加了条件
u
u
u之后:
P
(
x
∣
u
)
=
∑
x
′
P
(
x
∣
u
,
x
′
)
P
(
x
′
∣
u
)
P(x|u)=\sum_{x^\prime}P(x|u,x^\prime)P(x^\prime|u)
P(x∣u)=x′∑P(x∣u,x′)P(x′∣u)
由于
P
(
x
′
∣
u
)
P(x^\prime|u)
P(x′∣u)是当执行完
u
u
u之后,
x
′
x^\prime
x′的概率,即便是执行
u
u
u之前,
x
′
x^\prime
x′的概率依然是这个,也就是说,上一时刻的状态不会由下一时刻的动作改变,下一时刻的动作只能改变下一时刻的状态,不能改变过去,因此上一时刻的状态和这一时刻的动作是独立的,
P
(
x
′
∣
u
)
=
P
(
x
′
)
P(x^\prime|u)=P(x^\prime)
P(x′∣u)=P(x′),于是就有下面的式子:
P
(
x
∣
u
)
=
∑
x
′
P
(
x
∣
u
,
x
′
)
P
(
x
′
)
P(x|u)=\sum_{x^\prime}P(x|u,x^\prime)P(x^\prime)
P(x∣u)=x′∑P(x∣u,x′)P(x′)
当让
x
x
x代表门的开关状态为开,
u
u
u代表机器人开门的动作,那么
P
(
x
∣
u
)
P(x|u)
P(x∣u)是在机器人执行了开门动作之后,门开着的概率。根据全概率公式,执行动作之前门的状态是有开和关两个划分组成,机器人执行开的指令后门开的概率和门之前的状态有关,二者一般不一样。例如当门开着时,执行开门指令后,门开的概率一般大于门关着时执行开门指令后,门开的概率。因此这两个概率应该相加才是真正的执行动作后门开的概率。
例子:
接上例,第三次测量之前,机器人发出了控制关门的指令
u
u
u
P
(
c
l
o
s
e
d
∣
u
)
=
∑
x
′
P
(
c
l
o
s
e
d
∣
u
,
x
′
)
P
(
x
′
)
P(closed|u)=\sum_{x^\prime}P(closed|u,x^\prime)P(x^\prime)
P(closed∣u)=x′∑P(closed∣u,x′)P(x′)
=
P
(
c
l
o
s
e
d
∣
u
,
o
p
e
n
)
P
(
o
p
e
n
)
+
P
(
c
l
o
s
e
d
∣
u
,
c
l
o
s
e
d
)
P
(
c
l
o
s
e
d
)
=P(closed|u,open)P(open)+P(closed|u,closed)P(closed)
=P(closed∣u,open)P(open)+P(closed∣u,closed)P(closed)
=
0.9
⋅
0.63
+
1
⋅
0.37
=
0.937
=0.9\cdot0.63+1\cdot0.37=0.937
=0.9⋅0.63+1⋅0.37=0.937
P
(
o
p
e
n
∣
u
)
=
∑
x
′
P
(
o
p
e
n
∣
u
,
x
′
)
P
(
x
′
)
P(open|u)=\sum_{x^\prime}P(open|u,x^\prime)P(x^\prime)
P(open∣u)=x′∑P(open∣u,x′)P(x′)
=
P
(
o
p
e
n
∣
u
,
o
p
e
n
)
P
(
o
p
e
n
)
+
P
(
o
p
e
n
∣
u
,
c
l
o
s
e
d
)
P
(
c
l
o
s
e
d
)
=P(open|u,open)P(open)+P(open|u,closed)P(closed)
=P(open∣u,open)P(open)+P(open∣u,closed)P(closed)
=
0.1
⋅
0.63
+
0
⋅
0.37
=
0.063
=0.1\cdot0.63+0\cdot0.37=0.063
=0.1⋅0.63+0⋅0.37=0.063
3.贝叶斯滤波
(1)隐马尔可夫模型(HMM)
假设机器人的控制和测量都服从上面的隐马尔科夫模型,可以知道
u
t
u_t
ut代表
t
t
t时刻的控制输入,
z
t
z_t
zt代表
t
t
t时刻的测量,
x
t
x_t
xt代表
t
t
t时刻的隐状态。
测量概率
当想知道
t
t
t时刻的测量值
z
t
z_t
zt的概率时,通过上面的隐马尔科夫模型可以看出,似乎依赖
t
t
t时刻及之前所有的隐状态
x
t
,
x
t
−
1
,
⋅
⋅
⋅
,
x
0
x_t,x_{t-1},···,x_0
xt,xt−1,⋅⋅⋅,x0、控制输入
u
t
,
u
t
−
1
,
⋅
⋅
⋅
,
u
1
u_t,u_{t-1},···,u_1
ut,ut−1,⋅⋅⋅,u1以及观测
z
t
−
1
,
z
t
−
2
,
⋅
⋅
⋅
,
z
1
z_{t-1},z_{t-2},···,z_1
zt−1,zt−2,⋅⋅⋅,z1,但是,隐马尔可夫假设当隐状态已知时,此时的观测独立,即任意时刻的观测只依赖于该时刻的马尔科夫链的状态,与其他观测即状态无关。可以得到下面的条件独立:
P
(
z
t
∣
x
0
:
t
,
z
1
:
t
−
1
,
u
1
:
t
)
=
P
(
z
t
∣
x
t
)
P(z_t|x_{0:t},z_{1:t-1},u_{1:t})=P(z_t|x_t)
P(zt∣x0:t,z1:t−1,u1:t)=P(zt∣xt)
状态转移概率
当想知道
t
t
t时刻的状态
x
t
x_t
xt的概率时,通过上面的隐马尔科夫模型可以看出,似乎依赖之前所有的隐状态
x
t
−
1
,
x
t
−
2
,
⋅
⋅
⋅
,
x
0
x_{t-1},x_{t-2},···,x_0
xt−1,xt−2,⋅⋅⋅,x0、控制输入
u
t
,
u
t
−
1
,
⋅
⋅
⋅
,
u
1
u_t,u_{t-1},···,u_1
ut,ut−1,⋅⋅⋅,u1以及观测
z
t
−
1
,
z
t
−
2
,
⋅
⋅
⋅
,
z
1
z_{t-1},z_{t-2},···,z_1
zt−1,zt−2,⋅⋅⋅,z1,但是当
x
t
−
1
x_{t-1}
xt−1时刻的隐状态已知时,
x
t
x_t
xt仅依赖与上一时刻的隐状态
x
t
−
1
x_{t-1}
xt−1和当前时刻的控制输入
u
t
u_t
ut,可以得到下面的条件独立:
P
(
z
t
∣
x
0
:
t
−
1
,
z
1
:
t
−
1
,
u
1
:
t
)
=
P
(
x
t
∣
x
t
−
1
,
u
t
)
P(z_t|x_{0:t-1},z_{1:t-1},u_{1:t})=P(x_t|x_{t-1},u_t)
P(zt∣x0:t−1,z1:t−1,u1:t)=P(xt∣xt−1,ut)
置信度
由于机器人的状态不能直接获得,因此往往通过测量数据以及输入控制数据推测出机器人的状态:
b
e
l
(
x
t
)
=
P
(
x
t
∣
z
1
:
t
,
u
1
:
t
)
bel(x_t)=P(x_t|z_{1:t},u_{1:t})
bel(xt)=P(xt∣z1:t,u1:t)
即上面的置信度分布是所有可获得的数据为条件的关于状态变量的后验分布,为每一个可能的状态分配了一个概率,下面就要化简这个置信度分布。
我们曾经得到过添加了其他条件
z
z
z之后的贝叶斯公式:
P
(
x
∣
y
,
z
)
=
P
(
y
∣
x
,
z
)
P
(
x
∣
z
)
P
(
y
∣
z
)
P(x|y,z)=\frac{P(y|x,z)P(x|z)}{P(y|z)}
P(x∣y,z)=P(y∣z)P(y∣x,z)P(x∣z)
上述置信度分布也类似进行分解:
令
x
→
x
t
x\rightarrow x_t
x→xt
令
y
→
z
t
y\rightarrow z_t
y→zt
令
z
→
z
1
:
t
−
1
,
u
1
:
t
z\rightarrow z_{1:t-1},u_{1:t}
z→z1:t−1,u1:t
前面把
z
t
z_t
zt单独取出,是因为可以得到测量概率,一个比较容易获得的量,一般与传感器的精度有关:
b
e
l
(
x
t
)
=
P
(
x
t
∣
z
1
:
t
,
u
1
:
t
)
=
P
(
z
t
∣
x
t
,
z
1
:
t
−
1
)
P
(
x
t
∣
z
1
:
t
−
1
,
u
1
:
t
)
P
(
z
t
∣
z
1
:
t
−
1
,
u
1
:
t
)
bel(x_t)=P(x_t|z_{1:t},u_{1:t})=\frac{P(z_t|x_t,z_{1:t-1})P(x_t|z_{1:t-1},u_{1:t})}{P(z_t|z_{1:t-1},u_{1:t})}
bel(xt)=P(xt∣z1:t,u1:t)=P(zt∣z1:t−1,u1:t)P(zt∣xt,z1:t−1)P(xt∣z1:t−1,u1:t)
根据因马尔科夫假设
P
(
z
t
∣
x
t
,
z
1
:
t
−
1
)
=
P
(
z
t
∣
x
t
)
P(z_t|x_t,z_{1:t-1})=P(z_t|x_t)
P(zt∣xt,z1:t−1)=P(zt∣xt),化简得:
P
(
x
t
∣
z
1
:
t
,
u
1
:
t
)
=
η
P
(
z
t
∣
x
t
)
P
(
x
t
∣
z
1
:
t
−
1
,
u
1
:
t
)
P
(
z
t
∣
z
1
:
t
−
1
,
u
1
:
t
)
P(x_t|z_{1:t},u_{1:t})=\eta P(z_t|x_t)P(x_t|z_{1:t-1},u_{1:t})P(z_t|z_{1:t-1},u_{1:t})
P(xt∣z1:t,u1:t)=ηP(zt∣xt)P(xt∣z1:t−1,u1:t)P(zt∣z1:t−1,u1:t)
为了化简
P
(
x
t
∣
z
1
:
t
−
1
,
u
1
:
t
)
P(x_t|z_{1:t-1},u_{1:t})
P(xt∣z1:t−1,u1:t)这一项,为了凑出递归,需要引入
x
t
−
1
x_{t-1}
xt−1项,但是,在最终结果里面不应该有
x
t
−
1
x_{t-1}
xt−1项,巧妙地利用积分(求和,离散情况)将
x
t
−
1
x_{t-1}
xt−1项消掉,这种全概率思想在这类问题上应用比较多。
P
(
x
t
∣
z
1
:
t
−
1
,
u
1
:
t
)
=
∫
x
t
−
1
P
(
x
t
∣
z
1
:
t
−
1
,
u
1
:
t
,
x
t
−
1
)
P
(
x
t
−
1
∣
z
1
:
t
−
1
,
u
1
:
t
)
d
x
t
−
1
P(x_t|z_{1:t-1},u_{1:t})=\int_{x_{t-1}}P(x_t|z_{1:t-1},u_{1:t},x_{t-1})P(x_{t-1}|z_{1:t-1},u_{1:t})dx_{t-1}
P(xt∣z1:t−1,u1:t)=∫xt−1P(xt∣z1:t−1,u1:t,xt−1)P(xt−1∣z1:t−1,u1:t)dxt−1
由于现在的动作不会对以前的状态产生影响,
P
(
x
t
−
1
∣
z
1
:
t
−
1
,
u
1
:
t
)
=
P
(
x
t
−
1
∣
z
1
:
t
−
1
,
u
1
:
t
−
1
)
P(x_{t-1}|z_{1:t-1},u_{1:t})=P(x_{t-1}|z_{1:t-1},u_{1:t-1})
P(xt−1∣z1:t−1,u1:t)=P(xt−1∣z1:t−1,u1:t−1)
P
(
x
t
∣
z
1
:
t
−
1
,
u
1
:
t
)
=
∫
x
t
−
1
P
(
x
t
∣
z
1
:
t
−
1
,
u
1
:
t
,
x
t
−
1
)
P
(
x
t
−
1
∣
z
1
:
t
−
1
,
u
1
:
t
−
1
)
d
x
t
−
1
P(x_t|z_{1:t-1},u_{1:t})=\int_{x_{t-1}}P(x_t|z_{1:t-1},u_{1:t},x_{t-1})P(x_{t-1}|z_{1:t-1},u_{1:t-1})dx_{t-1}
P(xt∣z1:t−1,u1:t)=∫xt−1P(xt∣z1:t−1,u1:t,xt−1)P(xt−1∣z1:t−1,u1:t−1)dxt−1
P
(
x
t
∣
z
1
:
t
−
1
,
u
1
:
t
)
=
∫
x
t
−
1
P
(
x
t
∣
u
t
,
x
t
−
1
)
b
e
l
(
x
t
−
1
)
d
x
t
−
1
P(x_t|z_{1:t-1},u_{1:t})=\int_{x_{t-1}}P(x_t|u_t,x_{t-1})bel(x_{t-1})dx_{t-1}
P(xt∣z1:t−1,u1:t)=∫xt−1P(xt∣ut,xt−1)bel(xt−1)dxt−1
b
e
l
(
x
t
)
=
η
P
(
z
t
∣
x
t
)
∫
x
t
−
1
P
(
x
t
∣
u
t
,
x
t
−
1
)
b
e
l
(
x
t
−
1
)
d
x
t
−
1
bel(x_{t})=\eta P(z_t|x_t)\int_{x_{t-1}}P(x_t|u_t,x_{t-1})bel(x_{t-1})dx_{t-1}
bel(xt)=ηP(zt∣xt)∫xt−1P(xt∣ut,xt−1)bel(xt−1)dxt−1
由此构成了递归,
b
e
l
(
x
t
−
1
)
bel(x_{t-1})
bel(xt−1)是上一时刻的置信度,乘状态转移概率之后做求和,便是没有测量条件下的状态
x
t
x_t
xt的分布概率,但是
b
e
l
(
x
t
)
bel(x_{t})
bel(xt)是基于以前所有测量和控制的,因此,通过
η
P
(
z
t
∣
x
t
)
\eta P(z_t|x_t)
ηP(zt∣xt)进行了修正,
η
\eta
η为常数,
P
(
z
t
∣
x
t
)
P(z_t|x_t)
P(zt∣xt)越大,说明在给定状态
x
t
x_t
xt下,
z
t
z_t
zt出现的可能性比较大,因此
z
t
z_t
zt条件下
x
t
x_t
xt的概率也越大,即
b
e
l
(
x
t
)
bel(x_t)
bel(xt)越大。
例子:
分析上面这个简单的例子:
(a)
机器人在没有打开传感器之前,它在任何一点的概率(置信度)都相同。
(b)
当机器人经过了一次传感器的测量之后,发现自己位于门附近,由于机器人事先知道了该地图,因此机器人认为,在三个门附近的概率较其他地方更大,但是,三个门附近的概率相同,不能确定位于哪个门附近,此时得到了
P
(
z
∣
x
)
P(z|x)
P(z∣x)。
©
当机器人运动时,由于三个位置不能确定,因此这三个“峰值”也会跟随机器人运动。
运动带来的不确定性使得本次“峰值”比之前更小。
(d)
b
e
l
(
x
d
)
=
η
P
(
z
∣
x
)
∗
b
e
l
(
x
c
)
bel(x_d)=\eta P(z|x)*bel(x_c)
bel(xd)=ηP(z∣x)∗bel(xc),可以看到五个“峰值”,第二个门处峰值最大也是归一化的结果。
(e)
在接下来的运动中,“峰值”会一直跟随机器人一起运动,但是由于运动的不确定性,“峰值”的高度会越来越小。