隐马尔可夫模型的基本概念

隐马尔可夫模型是可用于标注问题的统计学习模型。该模型在语音识别、自然语言处理、生物信息、模式识别等领域有着广泛的应用。

  • 基本概念
    • 定义
    • 观测序列的生成过程
    • 隐马尔可夫模型的3个基本问题
  • 概率计算算法
  • 学习算法
    • 监督学习方法
    • Baum-Welch算法
  • 预测算法
    • 近似算法
    • 维特比算法

基本概念

定义:

隐马尔可夫模型是关于时序的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。

Q是所有可能的状态的集合,V是所有可能的观测的集合.
Q={q1,...,qN},V=={v1,...,vM}
其中,N是可能的状态数,M是可能的观测数

I是长度为T的状态序列,O是对应的观测序列.
I=(i1,...,iT),O=(o1,...,oT)

A状态转移矩阵
A=[aij]N×N

其中, aij=P(it+1=qj|it=qi),i=1,...,N;j=1,...,N
是在时刻t处于状态 qi 的条件下在时刻t+1转移到状态 qj 的概率

B观测概率矩阵
B=[bj(k)]N×M
其中,
bj(k)=P(ot=vk|it=qj)k=1,...,M;j=1,...,N
是在时刻t处于状态q_j的条件下生成观测 vk 的概率.

π初始状态概率向量:
π=(πi)
其中,
πi=P(i1=qi),i=1,...,N
是时刻t=1处于状态 qi 的概率.

λ=(A,B,π)
A,B,π 称为隐马尔可夫模型的三要素

从定义可知,隐马尔可夫模型作了两个基本假设
1)齐次马尔可夫性假设,即假设隐藏的马尔科夫链在任意时刻t的状态只依赖于其前一时刻的状态,与其他时刻的状态及观测无关,也与时刻t无关.
P(it|it1,ot1,...,i1,o1)=P(it|it1),t=1,...,T

2)观测独立性假设,即假设任意时刻的观测只依赖于该时刻的马尔可夫链的状态,与其他观测及状态无关.
P(ot|iT,oT,...,i1,o1)=P(ot|it)

例子:

隐马尔可夫模型的基本概念_第1张图片



观测序列的生成过程

算法(观测序列的生成过程):
输入:隐马尔可夫模型 λ=(A,B,π),T
输出:观测序列O
1)按照初始状态分布π产生状态 i1

2)令t=1

3)按照状态 i1 的观测概率分布 bit(k)ot

4)按照状态 it 的状态转移概率分布 {ait,it+1} 产生状态 it+1,it+1=1,...,N

5)令t=t+1;如果t

隐马尔可夫模型的3个基本问题

1)概率计算问题,给定模型 λ 和观测序列O,计算在模型 lambda 下观测序列O出现的概率 P(O|λ)

2)学习问题,已知观测雪猎,估计模型 λ 参数,使得观测序列概率 P(O|λ) 最大,即用极大似然估计的方法估计参数。

3)预测问题,也成解码问题,已知模型参数和观测序列,求对给定观测序列条件概率 P(O|λ) 最大的状态序列I.即给定观测序列,求最有可能的对应的状态序列。



概率计算算法

介绍计算观测序列概率 P(O|λ) 前向与后向算法。先引入概念上可行但计算上不可行的直接计算法









学习算法

隐马尔可夫模型的学习,根据训练数据包括观测序列和对应的状态序列,还是只有观测序列,可以分别由监督学习与非监督学习实现.


监督学习方法

假设已知训练数据包含S个长度相同的观测序列和对应的状态序列,O与I,那么可以利用极大似然估计法来估计隐马尔可夫模型的参数.

1.转移慨率 aij 的估计
设样本时刻t处于状态i时刻t+1转移到状态j的频数为 Aij ,那么
aij^=AijsumNj=1Aij,i=1,..,Nj=1,...,N

2.观测概率 bj(k) 的估计
同理, bj^(k)=BjksumMj=1Bjk,j=1,..,Nk=1,...,M

3.初始状态 πi 的估计
πi^ 即为S个样本中初始状态为 qi 的频率

由于监督学习需要使用训练数据,而人工标注训练数据汪汪代价很高,有时就会利用非监督学习的方法。



Baum-Welch算法

也就是EM算法—非监督学习算法

隐马尔可夫模型的基本概念_第2张图片



(Baum-Welch)算法:
输入:观测数据O
输出:隐马尔可夫模型参数

1)初始化
对n=0,选取 a(0)ij,bj(k)(0),π(0)jλ(0)=(A(0),B(0)),π(0)

2)递推.对n=1,2,…..,
a(n+1)ij=T1t=1εt(i,j)T1t=1γt(i)
bj(k)(n+1)=Tt=1,ot=vkγt(j)Tt=1γt(j)
π(n+1)i=γ1(i)

右端各值按观测O和模型参数计算.式中 γt(i)εt(i,j)

3)终止,得到模型参数 λ(n+1)=(A(n+1),B(n+1),π(n+1))




预测算法


近似算法

近似算法的想法是,在每个时刻t选择在该时刻最有可能出现的状态 it,I

给定隐马尔可夫模型和观测序列,在时刻t处于状态 qiγt(i)
γt(i)=αt(i)βt(i)P(O|λ)=αt(i)βt(i)Nj=1αt(i)βt(i)

在每一时刻t最有可能的状态 it
it=argmaxiiN[γt(i)],t=1,...,T
从而得到状态序列

近似算法的有点计算简单,其缺点是不能保证的状态序列整体是最有可能的状态序列,因为预测的状态序列可能有实际不发生的部分.事实上,上述放大得到的状态序列有可能存在转移概率为0的相邻状态,即对某些i,j, aij=0 时.尽管如此,近似算法仍然是有用的



维特比算法

维特比算法实际是用动态规划解隐马尔可夫模型预测问题。即用动态规划求概率最大路径(最优路径),这条路径对应一个状态序列。

根据动态规划原理,最优路径具有这样的特性:如果最优路径在时刻t通过节点 it ,那么这一路径从节点 it 到终点 iT 的部分路径,对于从 it iT 所有可能的部分路径来说,必须是最优的(贪心算法),我们只需从初始节点开始不断递推

导入两个变量 δΨ .
定义在时刻t状态为i的所有单个路径 i1,...,it 中概率最大值为
δt(i)=maxi1,...,itP(it=i,it1,...,i1),ot,..,o1|λ) ,i=1,2,..,N

隐马尔可夫模型的基本概念_第3张图片

你可能感兴趣的:(机器学习)