文章目录
前言
POMDP是Partially Observable Markov Decision Process的简称,表示局部可观测马尔可夫决策过程。MDP通常使用<S, A, T, R>表示,其中S表示状态、A表示动作、T(s’|s,a)表示转移模型,即在状态s下采取动作a到达状态s’的概率、R表示奖励。而POMDP通常使用<S, A, O, T, Z, R>表示,其中O表示观测、Z(o|s,a)表示在状态s下采取状态a获得新的观测o的概率。
相比于MDP,POMDP由于部分可观测性不知道确切的状态,所以只能根据观测o来不断确认当前可能的状态。通常使用置信度b(s)表示状态s的概率分布,b(sk)越大意味着当前状态为sk的可能性越高。通常用通过贝叶斯滤波(Bayesian)来计算置信度b(s)。下面首先给出贝叶斯滤波在POMDP中应用的相关公式,然后给出贝叶斯滤波公式详细的证明推导,最后进行回顾与总结。
一、POMDP中贝叶斯滤波的使用
通常在POMDP的解题过程中,我们会将贝叶斯滤波写成如下形式:
b
t
′
(
s
)
=
∑
s
′
∈
S
T
(
s
,
a
t
,
s
′
)
b
t
(
s
′
)
b_t'(s)=\sum_{s'∈S}T(s,a_t,s')b_t(s')
bt′(s)=s′∈S∑T(s,at,s′)bt(s′)
其中,T(s,at,s’)表示的是在状态s’采取状态at到达状态s的可能性,bt(s’)表示的是在t时刻状态s’的置信度。
b
t
+
1
(
s
)
=
η
Z
(
s
,
o
t
)
b
t
′
(
s
)
b_{t+1}(s) = \eta Z(s,o_t)b_t'(s)
bt+1(s)=ηZ(s,ot)bt′(s)
其中,Z(s,ot)表示在状态s下获得观测ot的概率(先验概率), η是一个标准化因数。
简单理解贝叶斯滤波的式子:在POMDP的情况下,我们已知状态s下获得观测o的先验概率Z(s,o)、以及转移概率T(s,a,s’)。先采用公式1进行在原有置信度上的转移计算,再使用公式2根据得到的观测矫正当前的置信度。经过多次观测的不断矫正,筛选掉不可能的情况,留下最终解。
二、贝叶斯滤波的公式推导
1.基础知识
1.1 概率论基础
1. X: 表示一个随机变量,如果它有有限个可能的取值{x1,x2,⋯,xn}.
2. p(X = xi): 表示变量X的值为 xi 的概率。
3. p(⋅): 称为概率质量函数(probability mass function).
例如:一个家里有3个房间,机器人在各个房间的概率为 p(room)={0.1,0.3,0.6}.
4. 如果X在连续空间取值,p(x)称为概率密度函数(probability density function),
5. 联合概率:p(X = x and Y = y) = p(x,y),称为联合概率密度分布。如果X和Y是相互独立的随机变量,p(x,y) = p(x)p(y)。
6. 条件概率:p(X = x | Y = y) 是在已知Y = y的条件下,计算X = x的概率。
如果x和y相互独立,则:
7. 全概率公式:
离散情况下:
连续情况下:
1.2 贝叶斯公式
1.基础贝叶斯公式
基于条件概率公式和全概率公式,我们可以导出贝叶斯公式:
其中:x表示某种状态;y表示某种观测。我们称P(y|x)为causal knowledge,意即由x的已知情况,就可以推算y发生的概率。我们称P(x)为prior knowledge,是对x的概率的先验知识。P(x|y) 是基于观测对状态的推断。
由于P(y)与P(x|y)无关,并且可以由全概率公式进行计算,所以表示为:
2.多观测情况下的贝叶斯公式
如果观测情况有两种表示为y和z,则有一下推导:
进一步将其推导到n种观测{z1,z2,…,zn},P(x|z1,z2,…,zn)=?
首先,将zn看作之前的y,将z1,…,zn-1看作之前的z,则有:
由于Markov性质,P(zn|x,z1,…,zn-1) = P(zn|x),所以:
进一步递推可得:
2.贝叶斯滤波算法
在之前的部分,我们将x作为状态,y/z作为观测。并且得到了P(x|z1,z2,…,zn)= η p(zn|x) p(x|z1,…,zn-1)的结果。本部分,我们采用POMDP中的定义,以s表示状态,a表示动作,o表示观测。之前的结果可表示为:
P
(
s
t
∣
a
1
,
o
1
,
.
.
.
,
a
t
,
o
t
)
=
η
P
(
o
t
∣
s
t
)
P
(
s
t
∣
a
1
,
o
1
.
.
.
,
a
t
)
(1)
P(s_t|a_1,o_1,...,a_t,o_t)=\eta P(o_t|s_t)P(s_t|a_1,o_1...,a_{t})\tag1
P(st∣a1,o1,...,at,ot)=ηP(ot∣st)P(st∣a1,o1...,at)(1) 在POMDP中将
b
t
(
s
)
定
义
为
P
(
s
t
∣
a
1
,
o
1
,
.
.
.
,
a
t
,
o
t
)
b_t(s)定义为P(s_t|a_1,o_1,...,a_t,o_t)
bt(s)定义为P(st∣a1,o1,...,at,ot),所以公式(1)可表示为
b
t
(
s
)
=
η
P
(
o
t
∣
s
t
)
P
(
s
t
∣
a
1
,
o
1
.
.
.
,
a
t
)
b_t(s)=\eta P(o_t|s_t)P(s_t|a_1,o_1...,a_{t})
bt(s)=ηP(ot∣st)P(st∣a1,o1...,at) 接下来我们进行进一步的推导
2.1 算法假设
贝叶斯滤波的基本假设:
- Markov性假设: t时刻的状态由t−1时刻的状态和t时刻的动作决定。t时刻的观测仅同t时刻的状态相关。公式表示: p ( s t ∣ s 1 : t − 1 , a 1 : t − 1 , o 1 : t − 1 ) = p ( s t ∣ s t − 1 , a t ) \large{p(s_t|s_{1:t-1},a_{1:t-1},o_{1:t-1})=p(s_t|s_{t-1},a_t)} p(st∣s1:t−1,a1:t−1,o1:t−1)=p(st∣st−1,at) p ( o t ∣ s 0 : t , a 1 : t , o 1 : t − 1 ) = p ( o t ∣ s t ) \large{p(o_t|s_{0:t},a_{1:t},o_{1:t-1}) = p(o_t|s_t)} p(ot∣s0:t,a1:t,o1:t−1)=p(ot∣st)
- 静态环境,即对象周边的环境假设是不变的。
- 观测噪声、模型噪声等是相互独立的。
2.2 算法推导
b
t
(
s
)
=
η
P
(
o
t
∣
s
t
)
P
(
s
t
∣
a
1
,
o
1
.
.
.
,
a
t
)
=
η
P
(
o
t
∣
s
t
)
∫
P
(
s
t
∣
a
1
,
o
1
,
.
.
.
,
a
t
,
s
t
−
1
)
P
(
s
t
−
1
∣
a
1
,
o
1
,
.
.
.
,
a
t
)
d
s
t
−
1
=
η
P
(
o
t
∣
s
t
)
∫
P
(
s
t
∣
a
t
,
s
t
−
1
)
P
(
s
t
−
1
∣
a
1
,
o
1
,
.
.
.
,
a
t
−
1
,
o
t
−
1
)
d
s
t
−
1
=
η
P
(
o
t
∣
s
t
)
∫
P
(
s
t
∣
a
t
,
s
t
−
1
)
b
t
−
1
(
s
)
d
s
t
−
1
\begin{aligned} b_t(s)&=\eta P(o_t|s_t)P(s_t|a_1,o_1...,a_{t}) \\ &=\eta P(o_t|s_t)\int P(s_t|a_1,o_1,...,a_t,s_{t-1})P(s_{t-1}|a_1,o_1,...,a_t)d s_{t-1} \\ &=\eta P(o_t|s_t)\int P(s_t|a_t,s_{t-1})P(s_{t-1}|a_1,o_1,...,a_{t-1},o_{t-1})ds_{t-1}\\ &=\eta P(o_t|s_t)\int P(s_t|a_t,s_{t-1})b_{t-1}(s)ds_{t-1} \end{aligned}
bt(s)=ηP(ot∣st)P(st∣a1,o1...,at)=ηP(ot∣st)∫P(st∣a1,o1,...,at,st−1)P(st−1∣a1,o1,...,at)dst−1=ηP(ot∣st)∫P(st∣at,st−1)P(st−1∣a1,o1,...,at−1,ot−1)dst−1=ηP(ot∣st)∫P(st∣at,st−1)bt−1(s)dst−1 第一步到第二步我们用全概率公式在
s
t
−
1
s_{t-1}
st−1上进行展开,第二步到第三步我们利用算法假设中的性质以及
s
t
−
1
s_{t-1}
st−1与
a
t
a_t
at的无关性进行化简,第三步到第四步带入
b
t
−
1
(
s
)
b_{t-1}(s)
bt−1(s)的定义可得。
我们用连续空间状态进行了公式推导,将其应用在离散空间状态下可表示为:
b
t
(
s
)
=
η
P
(
o
t
∣
s
t
)
∑
P
(
s
t
∣
a
t
,
s
t
−
1
)
b
t
−
1
(
s
)
b_t(s)=\eta P(o_t|s_t)\sum P(s_t|a_t,s_{t-1})b_{t-1}(s)
bt(s)=ηP(ot∣st)∑P(st∣at,st−1)bt−1(s)
并且在POMDP中,用
Z
(
s
,
o
t
)
Z(s,o_t)
Z(s,ot)表示
P
(
o
t
∣
s
t
)
P(o_t|s_t)
P(ot∣st),用
T
(
s
,
a
t
,
s
′
)
T(s, a_t,s')
T(s,at,s′)代替
P
(
s
t
∣
a
t
,
s
t
−
1
)
P(s_t|a_t,s_{t-1})
P(st∣at,st−1),即可得:
b
t
(
s
)
=
η
Z
(
s
,
o
t
)
∑
t
′
T
(
s
,
a
t
,
s
′
)
b
t
−
1
(
s
)
b_t(s) = \eta Z(s,o_t)\sum_{t'} T(s, a_t,s')b_{t-1}(s)
bt(s)=ηZ(s,ot)t′∑T(s,at,s′)bt−1(s)
总结
总而言之,在POMDP中使用贝叶斯滤波,就是根据已有的过渡模型
T
(
s
,
a
t
,
s
′
)
T(s, a_t,s')
T(s,at,s′)对已有的置信空间
b
t
(
s
)
b_t(s)
bt(s)进行迭代计算,同时加入观测o根据
Z
(
s
,
o
t
)
Z(s,o_t)
Z(s,ot)的先验概率修正已有的置信空间
b
t
(
s
)
b_t(s)
bt(s)。最终经过多步探测得到当前智能体最有可能在的状态(如下图,导航问题中经过4步探测,第三行也预测结果基本能够确定当前机器人最有可能在的位置)。
并且推导一遍后,对于贝叶斯滤波的理解加深了不少。在公式推导阶段,我参考了berkeley的相关教程(参考链接2)。对于全概率公式、贝叶斯公式理解不够清楚的读者还可以看一下细说贝叶斯滤波这篇博客(参考链接1),博客中给出的例子十分的具体且易于理解。
参考文献
1.细说贝叶斯滤波:https://www.cnblogs.com/ycwang16/p/5995702.html
2.Berkeley课程PPT:http://people.eecs.berkeley.edu/~pabbeel/cs287-fa13/slides/bayes-filters.pdf
3.论文QMDP-Net: Deep Learning for Planning under Partial Observability