<统计学习方法>6 隐马尔可夫模型

  • 隐马尔科夫模型(Hidden Markov Model, HMM)是可用于标注问题的统计学模型
  • 描述由隐藏的马尔科夫链随机生成观测序列的过程,属于生成模型。

隐马尔可夫模型基本概念

定义
  • 隐马尔科夫模型是关于时序的概率模型,描述由一个隐藏的马尔科夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。
    • 隐藏的马尔科夫链随机生成的状态的序列,称为状态序列 (state sequence)
    • 每个状态生成一个观测,而由此产生的观测的随机序列,称为观测序列 (observation sequence)
    • 序列的每个位置又可以看作是一个时刻
  • 隐马尔科夫模型由 初始概率分布状态转移概率分布 以及 观测概率分布 确定。
  • 形式定义如下:
    • 设 Q 是所有可能的状态的集合,V 是所有可能的观测的集合
      Q={q1,q2,,qN},V={v1,v2,,vM}

      其中, N是可能的状态数, M是可能的观测数
    • I 是长度为 T 的状态序列, O 是对应的观测序列
      I=(i1,i2,,iT),O=(o1,o2,,oT)
    • A 是状态转移概率矩阵
      A=[aij]N×N

      其中, aij=P(it+1=qj|it=qi),i=1,2,,N;j=1,2,,N 是在时刻 t 处于状态 qi 的条件下在时刻 t+1 转移到状态 qj 的概率
    • B 是观测概率矩阵
      B=[bj(k)]N×M

      其中, bj(k)=P(ot=vk|it=qj),k=1,2,,M;j=1,2,,N 是在时刻 t 处于状态 qj 条件下生成观测 vk 的概率
    • π 初始状态概率向量
      π=(πi)
      其中, πi=P(i1=qi),i=1,2,N 是时刻 t=1 处于状态 qi 的概率
  • 隐马尔科夫模型由初始状态概率向量 π 、状态转移概率矩阵 A 和观测概率矩阵 B 决定,这三者成为隐马尔科夫模型的三要素。 π A 决定状态序列, B 决定观测序列。隐马尔科夫模型 λ 可以用三元符号表示:
    λ=(A,B,π)

    • 状态转移概率矩阵 A 与 初始状态概率向量 π 确定了隐藏的马尔科夫链,生成不可观测的状态序列。
    • 观测概率矩阵 B 确定了如何从状态生成观测,与状态序列综合确定了如何产生观测序列
  • 从定义可知,隐马尔科夫模型有两个基本假设
    • 齐次马尔可夫性假设,即 假设隐藏的马尔科夫链在任意时刻 t 的状态只依赖于其前一时刻的状态,与其他时刻的状态及观测无关,也与时刻 t 无关:
      P(it|ii1,oi1,,i1,o1),t=1,2,,T
    • 观测独立性假设,即 假设任意时刻的观测只依赖于该时刻的马尔科夫链的状态,与其他状态及观测无关:
      P(ot|ir,or,ir1,or1,,it+1,ot+1,it,it1,ot1,,i1,o1)=P(ot|it)
观测序列的生成过程
  • 根据隐马尔可夫模型定义,可以将一个长度为 T 的观测序列 O=(o1,o2,,or) 的生成过程描述如下:
    • 输入: 隐马尔可夫模型 λ=(A,B,π) , 观测序列长度 T
    • 输出:观测序列 O=(o1,o2,,or)
    • (1) 按照初始状态分布 π 产生状态 i1
    • (2) 令 t=1
    • (3) 按照状态 it 的观测概率分布 bit(k) 生成 ot
    • (4) 按照状态 it 的状态转移概率分布 {aitit+1} 产生状态 it+1,it+1=1,2,,N
    • (5) 令 t=t+1 , 如果 t<T ,转步(3),否则终止
隐马尔可夫模型的3个基本问题
  • 概率计算问题:给定模型 λ=(A,B,π) 和观测序列 O=(o1,o2,,oT) ,计算在模型 λ 下观测序列 O 出现的概率 P(O|λ)
  • 学习问题:已知观测序列 O=(o1,o2,,oT) , 估计模型 λ=(A,B,π) 参数,使得在该模型下观测序列概率 P(O|λ) 最大,即用极大似然估计的方法估计参数
  • 预测问题:也成解码问题,已知模型 λ=(A,B,π) 和观测序列 O=(o1,o2,,oT) ,求对给定观测序列条件概率 P(I|O) 最大的状态序列 I=(i1,i2,,iT) 。即给定观测序列,求最有可能的对应的状态序列

概率计算方法

直接计算法
  • 首先,要计算的是:给定模型 λ=(A,B,π) 和观测序列 O=(o1,o2,,oT) ,计算观测序列 O 出现的概率 P(O|λ)
  • 最直接的方式是按概率公式直接计算:通过列举所有可能的长度为 T 的状态序列 I=(i1,i2,,iT) ,求各个状态序列 I 与观测序列 O=(o1,o2,,oT) 的联合概率分布 P(O,I|λ) ,然后对所有可能的状态序列求和,得到 P(O|λ)
  • 状态序列 I=(i1,i2,,iT) 的概率是
    P(I|λ)=πi1ai1i2ai2i3aT1T
  • 对固定的状态序列 I=(i1,i2,,iT) ,观测序列 O=(o1,o2,,oT) 的概率是 P(O|I,λ) ,
    P(O|I,λ)=bi1(o1)bi2(o2)biT(oT)
  • O 和 T 同时出现的联合概率为
    P(O,I|λ)=P(O|I,λ)P(I|λ)=πi1bi1(o1)ai1i2bi2(o2)aiT1iTbiT(oT)
  • 然后对所有可能的状态序列 I 求和,得到观测序列 O 的概率 P(O|λ) P(O|λ)=IP(O|I,λ)P(I|λ)
  • 但是这种方法计算量太大,是 O(TNT) 阶的,所以我们需要用前向或后向算法
前向计算法
  • 定义前向概率:给定马尔可夫模型 λ ,定义到时刻 t 部分观测序列为 o1,o2,,ot 且状态为 qi 的概率为前向概率,记作
    αt(i)=P(o1,o2,,ot,it=qi|λ)

    可以递推地求得前向概率 αt(i) 及观测序列概率 P(O|λ)
  • 算法
    • 输入:隐马尔可夫模型 λ , 观测序列 O
    • 输出:观测序列概率 P(O|λ)
    • (1) 初值:
      α1(i)=πibi(o1),i=1,2,,N
    • (2) 递推:对 t=1,2,,T1
      αt+1(i)=[j=1Nαt(j)aji]bi(ot+1),i=1,2,,N
    • (3) 终止
      P(O|λ)=i=1NαT(i)
后向计算法
  • 定义后向概率:给定隐马尔可夫模型 λ ,定义到时刻 t 状态为 qi 的条件下,从 t+1 到 T 的部分观测序列为 ot+1,ot+2,,oT 的概率为后向概率,记作
    βt(i)=P(ot+1,ot+2,,oT|it=qi,λ)

    可以递推地求得后向概率 βt(i) 及观测序列概率 P(O|λ)
  • 算法
    • 输入:隐马尔可夫模型 λ , 观测序列 O
    • 输出:观测序列概率 P(O|λ)
    • (1)
      βT(i)=1,i=1,2,,N
    • (2) 对 t=T1,T2,,1
      βt(i)=j=1Naijbj(ot+1)βt+1(j),i=1,2,,N
    • (3)
      P(O|λ)=i=1Nπibi(o1)β1(i)
概率与期望的计算

学习算法

监督学习法
Baum-Welch 算法
Baum-Welch 模型参数估计

预测算法

近似算法
维特比算法

Summary

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值