1、先验知识
(1)、条件概率,贝叶斯公式
条件概率的定义:条件概率是指事件A在另外一个事件B已经发生条件下的发生概率。条件概率表示为:
P
(
A
∣
B
)
P(A|B)
P(A∣B),读作“A在B发生的条件下发生的概率”。
乘法定理:
P
(
A
∩
B
)
=
P
(
A
)
∗
P
(
B
∣
A
)
=
P
(
B
)
∗
P
(
A
∣
B
)
P(A\cap B)=P(A)*P(B|A)=P(B)*P(A|B)
P(A∩B)=P(A)∗P(B∣A)=P(B)∗P(A∣B)
由乘法定理就可以推出全概率公式,
P
(
A
∣
B
)
=
P
(
A
)
∗
P
(
B
∣
A
)
P
(
B
)
P(A|B)=\frac{P(A)*P(B|A)}{P(B)}
P(A∣B)=P(B)P(A)∗P(B∣A),全概率公式也叫贝叶斯公式。
上式中的P(A),P(B)称为先验概率,之所以称为先验概率,是因为它们根据以往经验和分析得到的概率,不考虑其他事件的联系。P(A|B)则称为B发生后A的后验概率,它通常是“因果”中的“果”,所以被称为后验概率。注意式中事件B往往呗认为是“因”,是给定的,也就是说
P
(
B
)
P(B)
P(B)往往是一个常数,分母
P
(
B
)
P(B)
P(B)可以被扔掉,贝叶斯公式又可以被表示为,
P
(
A
∣
B
)
=
α
P
(
B
∣
A
)
∗
P
(
A
)
P(A|B)=αP(B|A)*P(A)
P(A∣B)=αP(B∣A)∗P(A)
上式中的α表示归一化处理,保证概率和是1。
由于
P
(
A
∣
B
)
=
∑
i
=
1
n
P
(
A
i
)
P
(
B
∣
A
i
)
P(A|B) = \sum_{i=1}^n P(A_i)P(B|A_i)
P(A∣B)=i=1∑nP(Ai)P(B∣Ai)
所以贝叶斯也可以表示为,
P
(
A
i
∣
B
)
=
P
(
A
i
)
∗
P
(
B
∣
A
i
)
∑
i
=
1
n
P
(
A
i
)
P
(
B
∣
A
i
)
P(A_i|B)=\frac{P(A_i)*P(B|A_i)}{\sum_{i=1}^n P(A_i)P(B|A_i)}
P(Ai∣B)=∑i=1nP(Ai)P(B∣Ai)P(Ai)∗P(B∣Ai)
贝叶斯公式
(2)、一般时序模型
在去理解卡尔曼滤波,粒子滤波之前,首先要明白我们要解决的问题是什么。根据《人工智能,一种现代方法》(PS.没看过),我们可以建立起一个一般时间序列模型,(简称时序模型),它规范了我们要解决的所有问题,如下图:
一般时序模型
这个模型包含两个序列,一个是状态序列,用X表示;一个是观测序列(又叫测量序列、证据序列、观察序列,一般叫观测序列),用Y表示。
状态序列反应了系统真实状态,一般不能被直接观测,即使被直接观测也会引进噪声。
观测序列是通过测量得到的数据,它与转态序列之间有规律性的联系。
举例说明:假设有一个人待在屋子里不知道外边有没有下雨,他于是观察进屋子里的人是否带伞,这里有没有下雨就是状态,有没有带伞就是观测。
上边这个模型有两个基本假设:
一、马尔科夫假设。假设当前状态只与上一个状态有关,而与上一个状态之前的所有状态无关。用公式来表示(式中1:t表示时刻1到时刻t的所有采样时刻)
P
(
X
t
+
1
∣
X
1
:
t
)
=
P
(
X
t
+
1
∣
X
t
)
P(X_{t+1}|X_{1:t})=P(X_{t+1}|X_t)
P(Xt+1∣X1:t)=P(Xt+1∣Xt)
上面的P被称为转态转移概率。例如上面那个雨伞的例子,我们会认为今天下不下雨只与昨天下不下雨有关,与以前没有关系。
二、观测假设
假设当前观测值只依赖于当前状态,与其他时刻的状态无关。用公式来表示,
P
(
Y
t
∣
X
1
:
t
)
=
P
(
Y
t
∣
X
t
)
P(Y_{t}|X_{1:t})=P(Y_{t}|X_t)
P(Yt∣X1:t)=P(Yt∣Xt)
上面的P被称为观测概率。例如上面那个雨伞的例子,进来的人带不带伞只与今天下不下雨有关,与之前或者未来下不下雨没关系。
由此,一个模型可以被状态转移概率矩阵和观测概率矩阵唯一确定。
这两个假设可以极大的将问题简化,而且很多实际情况符合这两个假设,即使有些偏差,我们也可以对模型进行拓展。例如雨伞的例子,我们认为今天下不下雨不仅与昨天有关,还与前天甚至更早的事件有关,那么就可以对马尔科夫假设进行拓展,拓展成二阶甚至更高阶的马尔科夫模型,例如二阶
P
(
X
t
+
1
∣
X
1
:
t
)
=
P
(
X
t
+
1
∣
X
t
−
1
:
t
)
P(X_{t+1}|X_{1:t})=P(X_{t+1}|X_{t-1:t})
P(Xt+1∣X1:t)=P(Xt+1∣Xt−1:t)
那么这个模型需要完成的任务有哪些呢?主要有以下:
(1)滤波,计算
P
(
X
t
∣
Y
1
:
t
)
P(X_{t}|Y_{1:t})
P(Xt∣Y1:t)
即根据现在及现在以前的所有测量数据,估计当前的状态。在雨伞那个例子中,根据目前位置进去屋的人携带雨伞的所有观察数据,计算今天下雨的概率,这就是滤波。
(2)预测,计算
P
(
X
t
+
k
∣
Y
1
:
t
)
,
k
>
0
P(X_{t+k}|Y_{1:t}),k>0
P(Xt+k∣Y1:t),k>0
即根据现在及现在以前的所有测量数据,估计未来某个时刻的状态。在雨伞的例子中,根据目前位置进去屋的人携带雨伞的观察数据,计算从今天开始若干天后下雨的概率,这就是预测。
(3)平滑,计算
P
(
X
k
∣
Y
1
:
t
)
,
0
<
k
<
t
P(X_{k}|Y_{1:t}),0<k<t
P(Xk∣Y1:t),0<k<t
即根据现在及现在以前的所有测量数据,找到最能最可能生成这些测量数据的状态序列。例如,如果前三天每天都出现雨伞,但第四天没有出现,最有可能的解释就是前三天下雨了,而第四天没有下雨。最有可能解释也被称为解码问题,在语音识别、机器翻译等方面比较有用,最典型的方法就是隐马尔科夫模型。
(5)评估,计算
P
(
Y
1
:
t
∣
X
1
:
t
,
λ
)
P(Y_{1:t}|X_{1:t},λ)
P(Y1:t∣X1:t,λ)
这里的
λ
λ
λ是指模型,这个公式意味着在该模型下,给定到目前为止的状态序列,计算输出特定观测序列的可能性。这其实是个评估问题,可以评估模型的好坏,概率越高,意味着模型越能反应观测序列与转态序列之间的联系,模型就越好。
(6)学习,计算
P
(
X
t
+
1
∣
X
t
)
,
P
(
Y
t
∣
X
t
)
P(X_{t+1}|X_{t}),P(Y_t|X_t)
P(Xt+1∣Xt),P(Yt∣Xt)
学习的目的是根据历史数据得到合理的模型,一般是根据一个目标函数,对模型进行迭代更新,例如使(5)中要计算的值最大可以作为一个目标。
未完待续