对HMM做概述,主要摘抄自《统计学习方法》,概率计算为主,对学习和预测算法暂时忽略。
最后补充一些HMM在地图匹配上的应用
1.HMM
定义和理解
隐马尔可夫模型(Hidden Markov Model),标注问题,生成模型。
定义:隐马尔可夫模型是关于时序的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。
变量:
1. 状态集合:
Q={q1,q2,...,qN}
Q
=
{
q
1
,
q
2
,
.
.
.
,
q
N
}
2. 观测集合:
V={v1,v2,...,vM}
V
=
{
v
1
,
v
2
,
.
.
.
,
v
M
}
3. 状态序列:
I=(i1,i2,...,iT)
I
=
(
i
1
,
i
2
,
.
.
.
,
i
T
)
4. 观测序列:
O=(o1,o2,...,oT)
O
=
(
o
1
,
o
2
,
.
.
.
,
o
T
)
5. 状态转移概率矩阵:表示时刻
t
t
时状态且时刻
t+1
t
+
1
时状态
qj
q
j
的概率
6. 观测概率矩阵:表示时刻 t t 处于状态的条件下生成观测 vk v k 的概率
7. 初始状态概率向量:表示t=1时处于状态 qi q i 的概率
隐马尔可夫模型由初始状态概率向量
π
π
、状态转移概率矩阵
A
A
、观测概率矩阵决定
π
π
和
A
A
确定了隐藏的马尔可夫链,生成不可观测的状态序列;决定了从状态序列生成观测序列
则模型表示为
两个基本假设:
1. 齐次马尔可夫性假设。即假设隐藏的马尔可夫链在任意时刻t的状态只依赖于其前一时刻的状态,与其他时刻的状态和观测无关,也与时刻t无关
P(it|it−1,ot−1,...,i1,o1)=P(it|it−1) P ( i t | i t − 1 , o t − 1 , . . . , i 1 , o 1 ) = P ( i t | i t − 1 )
2. 观测独立性假设。即假设任意时刻的观测只依赖于该时刻的马尔可夫链的状态,与其他观测及状态无关
P(ot|iT,oT,...,i1,o1)=P(ot|it) P ( o t | i T , o T , . . . , i 1 , o 1 ) = P ( o t | i t )
举个例子:从ABCD四个盒子拿球,每个盒子装有RW两色的球,已知取了5次得到的颜色,那么
状态集合:{A,B,C,D}
观测集合:{R,W}
观测序列:{R,R,W,W,R}
状态序列:隐含状态,一般是求解目标
观测序列生成过程
输入:HMM模型
λ=(A,B,π)
λ
=
(
A
,
B
,
π
)
,观测序列长度
T
T
输出:观测序列
步骤:
1. 按照初始状态分布
π
π
生成状态
i1
i
1
2.
t=1
t
=
1
3. 按状态
it
i
t
的观测概率分布
bit(k)
b
i
t
(
k
)
生成
ot
o
t
4. 按状态
it
i
t
的状态转移概率分布
{aitit+1}
{
a
i
t
i
t
+
1
}
昌盛状态
it+1
i
t
+
1
5.
t=t+1
t
=
t
+
1
,转到3,直到
t=T
t
=
T
HMM的三个基本问题
- 概率计算问题。给定模型 λ=(A,B,π) λ = ( A , B , π ) 和观测序列 O=(o1,o2,...,oT) O = ( o 1 , o 2 , . . . , o T ) ,计算 P(O|λ) P ( O | λ )
- 学习问题。一致观测序列 O(o1,o2,...,oT) O ( o 1 , o 2 , . . . , o T ) ,估计模型 λ=(A,B,π) λ = ( A , B , π ) 参数,使得在该模型下序列概率 P(O|λ) P ( O | λ ) 最大。即极大似然估计法
- 预测问题,即解码问题。已知模型 λ=(A,B,π) λ = ( A , B , π ) 和观测序列 O(o1,o2,...,oT) O ( o 1 , o 2 , . . . , o T ) ,求对给定观测序列的条件概率 P(I|O) P ( I | O ) 最大的状态序列 I=(i1,i2,...,iT) I = ( i 1 , i 2 , . . . , i T )
2.概率计算算法
前向算法
(前向概率)定义:给定隐马尔可夫模型 λ λ ,定义到时刻 t t 部分观测序列为且状态为 qi q i 的概率为前向概率,记做
αt(i)=P(o1,o2,...,ot,it=qi|λ) α t ( i ) = P ( o 1 , o 2 , . . . , o t , i t = q i | λ )
观测序列概率的前向算法
输入:隐马尔可夫模型 λ λ ,观测序列 O O
输出:观测序列概率
流程:
1. 初值。即时刻 t=1 t = 1 ,状态为 i i 且观测为的概率
α1(i)=πibi(o1);i=1,2,...,N α 1 ( i ) = π i b i ( o 1 ) ; i = 1 , 2 , . . . , N
2. 递推。即上一时刻各个状态下,转移到状态 i i 的概率和,再计算观测为的概率
αt+1(i)=[∑j=1Nαt(j)aji]bi(ot+1) α t + 1 ( i ) = [ ∑ j = 1 N α t ( j ) a j i ] b i ( o t + 1 )
3. 终止。
P(O|λ)=∑i=1NαT(i) P ( O | λ ) = ∑ i = 1 N α T ( i )
后向算法
(后向概率)定义:给定隐马尔可夫模型 λ λ ,定义到时刻 t t 状态为的条件下,从t+1到T部分观测序列为 ot+1,ot+2,...,oT o t + 1 , o t + 2 , . . . , o T 的概率为后向概率,记做
βt(i)=P(ot+1,ot+2,...,oT|it=qi,λ) β t ( i ) = P ( o t + 1 , o t + 2 , . . . , o T | i t = q i , λ )
观测序列概率的后向算法
输入:隐马尔可夫模型 λ λ ,观测序列 O O
输出:观测序列概率
流程:
1. 初值。
βT(i)=1 β T ( i ) = 1
2. 递推。
βt(i)=∑j=1Naijbj(ot+1)βt+1(j) β t ( i ) = ∑ j = 1 N a i j b j ( o t + 1 ) β t + 1 ( j )
3. 终止。
P(O|λ)=∑i=1Nπibi(o1)β1(i) P ( O | λ ) = ∑ i = 1 N π i b i ( o 1 ) β 1 ( i )
其他一些公式
利用前后向概率定义可以将序列概率如下。其中,t=T-1和t=1时,分别为前后向概率公式
P(O|λ)=∑i=1N∑j=1Nαt(i)aijbj(ot+1)βt+1(j) P ( O | λ ) = ∑ i = 1 N ∑ j = 1 N α t ( i ) a i j b j ( o t + 1 ) β t + 1 ( j )给定模型 λ λ 和观测 O O ,在时刻处于状态 qi q i 的概率,记为
γt(i)=P(it=qi|O,λ)=P(it=qi,O|λ)P(O|λ) γ t ( i ) = P ( i t = q i | O , λ ) = P ( i t = q i , O | λ ) P ( O | λ )
由前后向概率定义有
αt(i)βt(i)=P(it=qi,O|λ) α t ( i ) β t ( i ) = P ( i t = q i , O | λ )
所以γt(i)=αt(i)βt(i)P(O|λ)=αt(i)βt(i)∑Nj=1αt(j)βt(j) γ t ( i ) = α t ( i ) β t ( i ) P ( O | λ ) = α t ( i ) β t ( i ) ∑ j = 1 N α t ( j ) β t ( j )给定模型 λ λ 和观测 O O ,在时刻处于状态 qi q i 且在时刻 t+1 t + 1 处于状态 qj q j 的概率为
ξt(i,j)=P(it=qi,it+1=qj|O,λ)=P(it=qi,it+1=qj,O|λ)P(O|λ)=P(it=qi,it+1=qj|O,λ)∑Ni=1∑Nj=1P(it=qi,it+1=qj,O|λ)=αt(i)aijbj(ot+1)βt+1(j)∑Ni=1∑Nj=1P(it=qi,it+1=qj,O|λ) ξ t ( i , j ) = P ( i t = q i , i t + 1 = q j | O , λ ) = P ( i t = q i , i t + 1 = q j , O | λ ) P ( O | λ ) = P ( i t = q i , i t + 1 = q j | O , λ ) ∑ i = 1 N ∑ j = 1 N P ( i t = q i , i t + 1 = q j , O | λ ) = α t ( i ) a i j b j ( o t + 1 ) β t + 1 ( j ) ∑ i = 1 N ∑ j = 1 N P ( i t = q i , i t + 1 = q j , O | λ )在观测 O O 下状态出现的期望
∑t=1Tγt(i) ∑ t = 1 T γ t ( i )- 在观测
O
O
下状态转义的期望值
∑t=1T−1γt(i) ∑ t = 1 T − 1 γ t ( i ) - 在观测
O
O
下状态转移到状态
j
j
的期望值
学习算法
可以通过监督学习的极大似然估计解
或通过非监督的Baum-Welch算法(EM算法
)求解
预测算法
主要解决给定模型和观测序列的情况下,最大概率的状态序列。
通过近似算法(取每个时刻最优)或维特比算法
(动态规划)
地图匹配
- 基础数据:GPS轨迹点+道路网
- 应用:轨迹分类、轨迹离群值/异常检测、轨迹不确定性、轨迹模式挖掘
- 流程:基础数据->数据清洗->建立索引->选取候选路段->确定匹配路段
- 按依据信息划分:
1)几何匹配:点到点、点到线、线到线
2)拓扑关系:简单拓扑(作为筛选)、加权拓扑(作为权重)
3)概率统计:置信区间匹配、新型概率匹配方法(绘制概率椭圆)
4)先进匹配算法:模糊逻辑、证据理论、卡尔曼滤波、贝叶斯推理 - 问题:噪声和数据稀疏
- 按采样点范围划分(按计算时间):局部/增量的方法(online)、全局方法(offline)
- 按采样频率划分:高频、低频、更低频
- HMM方法
1)隐含状态序列:路网
2)可观测序列:GPS点
3)状态转移概率矩阵A:t时刻i状态到t+1时刻j状态的概率,N*N;【状态中前后点越近概率越大;路段上的距离和观测上的距离越相近概率越大;考虑拓扑、考虑速度等】
4)观测概率矩阵B:t时刻i状态,观测到k的概率;【点与路段越近,概率越大】
5)初始状态概率矩阵 π π :表示初始状态的概率