HMM隐马尔科夫模型

对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 时状态qi且时刻 t+1 t + 1 时状态 qj q j 的概率

A=[aij]N×Naij=P(it+1=qj|it=qi) A = [ a i j ] N × N a i j = P ( i t + 1 = q j | i t = q i )

6. 观测概率矩阵:表示时刻 t t 处于状态qj的条件下生成观测 vk v k 的概率
B=[bj(k)]N×Mbj(k)=P(ot=vk|it=qj) B = [ b j ( k ) ] N × M b j ( k ) = P ( o t = v k | i t = q j )

7. 初始状态概率向量:表示t=1时处于状态 qi q i 的概率
πi=P(i1=qi) π i = P ( i 1 = q i )

隐马尔可夫模型由初始状态概率向量 π π 、状态转移概率矩阵 A A 、观测概率矩阵B决定
π π A A 确定了隐藏的马尔可夫链,生成不可观测的状态序列;B决定了从状态序列生成观测序列
则模型表示为

λ=(A,B,π) λ = ( A , B , π )

两个基本假设:
1. 齐次马尔可夫性假设。即假设隐藏的马尔可夫链在任意时刻t的状态只依赖于其前一时刻的状态,与其他时刻的状态和观测无关,也与时刻t无关

P(it|it1,ot1,...,i1,o1)=P(it|it1) 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
输出:观测序列O=(o1,o2,...,oT)
步骤:
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的三个基本问题

  1. 概率计算问题。给定模型 λ=(A,B,π) λ = ( A , B , π ) 和观测序列 O=(o1,o2,...,oT) O = ( o 1 , o 2 , . . . , o T ) ,计算 P(O|λ) P ( O | λ )
  2. 学习问题。一致观测序列 O(o1,o2,...,oT) O ( o 1 , o 2 , . . . , o T ) ,估计模型 λ=(A,B,π) λ = ( A , B , π ) 参数,使得在该模型下序列概率 P(O|λ) P ( O | λ ) 最大。即极大似然估计法
  3. 预测问题,即解码问题。已知模型 λ=(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 部分观测序列为o1,o2,...,ot且状态为 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
输出:观测序列概率P(O|λ)
流程:
1. 初值。即时刻 t=1 t = 1 ,状态为 i i 且观测为o1的概率

α1(i)=πibi(o1);i=1,2,...,N α 1 ( i ) = π i b i ( o 1 ) ; i = 1 , 2 , . . . , N

2. 递推。即上一时刻各个状态下,转移到状态 i i 的概率和,再计算观测为ot+1的概率
α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 状态为qi的条件下,从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
输出:观测序列概率P(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 )

其他一些公式

  1. 利用前后向概率定义可以将序列概率如下。其中,t=T-1和t=1时,分别为前后向概率公式

    P(O|λ)=i=1Nj=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 )

  2. 给定模型 λ λ 和观测 O O ,在时刻t处于状态 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 )

  3. 给定模型 λ λ 和观测 O O ,在时刻t处于状态 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=1Nj=1P(it=qi,it+1=qj,O|λ)=αt(i)aijbj(ot+1)βt+1(j)Ni=1Nj=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 | λ )

  4. 在观测 O O 下状态i出现的期望

    t=1Tγt(i) ∑ t = 1 T γ t ( i )

  5. 在观测 O O 下状态i转义的期望值
    t=1T1γt(i) ∑ t = 1 T − 1 γ t ( i )
  6. 在观测 O O 下状态i转移到状态 j j 的期望值
    t=1T1ξt(i,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)初始状态概率矩阵 π π :表示初始状态的概率
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值