隐马尔可夫模型原理介绍

1. 引言

    隐马尔可夫模型(Hidden Markov Model,HMM)是可用于标注问题的统计学习模型,描述由隐藏的马尔可夫链随机生成观测序列的过程,属于生成模型,以下统一用简称HMM表示。HMM在语音识别、自然语言处理等都有着广泛的应用。

2. HMM原理介绍

2.1 HMM模型的定义

    HMM模型是关于时序的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。隐藏的马尔可夫链随机生成不可观测的状态的序列称为状态序列;每个状态生成一个观测,再由此产生的观测的随机序列,称为观测序列。序列的每一个位置可以看作是一个时刻。

    HMM模型由初始概率分布、状态转移概率分布、观测概率分布确定。设QQQ是所有可能的状态的集合,VVV是所有可能的观测的集合,即:
Q={ q1,q2,⋯ ,qN},V={ v1,v2,⋯ ,vM} Q=\left\{q_{1}, q_{2}, \cdots, q_{N}\right\}, \quad V=\left\{v_{1}, v_{2}, \cdots, v_{M}\right\} Q={ q1,q2,,qN},V={ v1,v2,,vM}其中,NNN是可能的状态数,MMM是可能的观测数。记III是长度为TTT的状态序列,OOO是对应的观测序列,即:
I=(i1,i2,⋯ ,iT),O=(o1,o2,⋯ ,oT) I=\left(i_{1}, i_{2}, \cdots, i_{T}\right), \quad O=\left(o_{1}, o_{2}, \cdots, o_{T}\right) I=(i1,i2,,iT),O=(o1,o2,,oT)AAA为状态转移概率矩阵:
A=[aij]N×N A=\left[a_{i j}\right]_{N \times N} A=[aij]N×N其中,aij=P(it+1=qj∣it=qi),i=1,2,⋯ ,N;j=1,2,⋯ ,Na_{i j}=P\left(i_{t+1}=q_{j} | i_{t}=q_{i}\right), \quad i=1,2, \cdots, N ; j=1,2, \cdots, Naij=P(it+1=qjit=qi),i=1,2,,N;j=1,2,,N,即在时刻ttt处于状态qiq_iqi的条件下在时刻t+1t+1t+1转移到状态qjq_jqj的概率。

    记BBB为观测概率矩阵:
B=[bj(k)]N×μ B=\left[b_{j}(k)\right]_{N \times \mu} B=[bj(k)]N×μ其中,bj(k)=P(ot=vk∣it=qj),k=1,2,⋯ ,M;j=1,2,⋯ ,Nb_{j}(k)=P\left(o_{t}=v_{k} | i_{t}=q_{j}\right), \quad k=1,2, \cdots, M ; j=1,2, \cdots, Nbj(k)=P(ot=vkit=qj),k=1,2,,M;j=1,2,,N是在时刻ttt处于状态qjq_jqj的条件下生成观测vkv_kvk的概率。

    记π\piπ为初始状态概率向量:
π=(πi) \pi=\left(\pi_{i}\right) π=(πi)其中,πi=P(i1=qi),i=1,2,⋯ ,N\pi_{i}=P\left(i_{1}=q_{i}\right), \quad i=1,2, \cdots, Nπi=P(i1=qi),i=1,2,,N,表示时刻t=1t=1t=1处于状态qiq_iqi的概率。

    因此,HMM模型λ\lambdaλ可以用三元符号表示,即:
λ=(A,B,π) \lambda=(A, B, \pi) λ=(A,B,π)A,B,πA, B, \piA,B,π称为HMM模型的三要素。

    从HMM模型的定义可以发现,HMM其实做了两个基本的假设:

  1. 齐次马尔可夫性假设:即假设隐藏的马尔可夫链在任意时刻ttt的状态只依赖于其前一时刻的状态,与其他时刻的状态及观测无关,也与时刻ttt无关,即
    P(it∣it−1,ot−1,⋯ ,i1,o1)=P(it∣it−1),t=1,2,⋯ ,T P\left(i_{t} | i_{t-1}, o_{t-1}, \cdots, i_{1}, o_{1}\right)=P\left(i_{t} | i_{t-1}\right), \quad t=1,2, \cdots, T P(itit1,ot1,,i1,o1)=P(itit1),t=1,2,,T
  2. 观测独立性假设:即假设任意时刻的观测只依赖于该时刻的马尔可夫链的状态,与其他的观测和状态无关。即
    P(ot∣it,ot,it−1,ot−1,⋯ ,it+1,ot+1,it,it−1,ot−1,⋯ ,i1,o1)=P(ot∣it) P\left(o_{t} | i_{t}, o_{t}, i_{t-1}, o_{t-1}, \cdots, i_{t+1}, o_{t+1}, i_{t}, i_{t-1}, o_{t-1}, \cdots, i_{1}, o_{1}\right)=P\left(o_{t} | i_{t}\right) P(otit,ot,it1,ot1,,it+1,ot+1,it,it1,ot1,,i1,o1)=P(otit)
2.2 概率计算方法

     概率计算即给定模型λ=(A,B,π)\lambda=(A, B, \pi)λ=(A,B,π)和观测序列O=(o1,o2,⋯ ,oT)O=\left(o_{1}, o_{2}, \cdots, o_{T}\right)O=(o1,o2,,oT),计算在模型λ\lambdaλ下,观测序列OOO出现的概率P(O∣λ)P(O | \lambda)P(Oλ)

2.2.1 直接计算法

     直接计算法是通过列举所有可能的长度为TTT的状态序列I=(i1,i2,⋯ ,iT)I=\left(i_{1}, i_{2}, \cdots, i_{T}\right)I=(i1,i2,,iT),求各个状态序列III和观测序列O=(o1,o2,⋯ ,oT)O=\left(o_{1}, o_{2}, \cdots, o_{T}\right)O=(o1,o2,,oT)的联合概率P(O,I∣λ)P(O, I | \lambda)P(O,Iλ),然后对所有可能的状态序列求和,得到P(O∣λ)P(O | \lambda)P(Oλ)

    状态序列I=(i1,i2,⋯ ,iT)I=\left(i_{1}, i_{2}, \cdots, i_{T}\right)I=(i1,i2,,iT)的概率为:
P(I∣λ)=πi1ai1i2ai2i3⋯aiT−1iT P(I | \lambda)=\pi_{i_{1}} a_{i_{1} i_{2}} a_{i_{2} i_{3}} \cdots a_{i_{T-1} i_{T}} P(Iλ)=πi1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值