隐马尔可夫模型学习笔记

来源:互联网 发布:java调用本地程序 编辑:程序博客网 时间:2024/06/10 23:09

定义

  隐马尔可夫模型是关于时序的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。隐藏的马尔可夫链随机生成的状态的序列,称为状态序列;每个状态生成一个观测,而由此产生的观测的序列称为观测序列。序列的每一个位置又可看做是一个时刻。
  设Q是所有可能的状态的集合,V是所有可能的观测的集合。
  

Q={q1,q2,,q},V={v1,v2,,v}

  其中,n是可能的状态数,m是可能的观测数。
  H是长度为T的状态序列,O是对应的观测序列。
H={h1,h2,,hT},O={o1,o2,,oT}

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

  其中,
aij=P(it+1=qj|it=qi),i=1,2,,;j=1,2,,

  是在时刻t处于状态qi的条件下在时刻t+1转移到状态qj的概率。
  B是观测概率矩阵:
B=[bj(k)]×

  其中,
bj(k)=P(ot=vk|it=qj),k=1,2,,;j=1,2,,

  是在时刻t处于状态qj的条件下生成观测vk的概率。
  π是初始状态概率向量:
π=(πi)

  其中,
πi=P(i1=qi),i=1,2,,

  是时刻t=1处于状态qi的概率。

两个基本假设

  • 齐次马尔可夫性假设:马尔可夫链在任意时刻t的状态只依赖于前一时刻的状态,与其他时刻的状态及观测无关,也与时刻t无关。
  • 观测独立性假设:任意时刻的观测只依赖于该时刻的马尔可夫链的状态,与其他观测、状态和时刻无关。

学习算法

一、监督学习算法

假设已给训练数据包含s个长度相同的观测序列和对应的状态序列{(O1,H1),(O2,H2),,(Os,Hs)},那么可以用极大似然估计法来估计隐马尔可夫模型的参数。

1.转移概率aij的估计

  设样本中时刻t处于i时刻t+1转移到状态j的频数为Aij,那么状态转移概率aij的估计是

aij=Aijnj=1Aij,i=1,2,,n;j=1,2,,n

2.观测概率bj(k)的估计

  设样本中状态为j并观测为k的频数是Bjk,那么状态为j观测为k的概率bj(k)的估计是

bj(k)=Bjkmk=1Bjk,j=1,2,,n;k=1,2,,m

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

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

2.Baum-Welch算法

  假设给定训练数据只包含s个长度为T的观测序列{O1,O2,,Os},而没有对应的状态序列,目标是学习隐马尔可夫模型λ=(A,B,π)的参数。我们将观测序列数据看做观测数据O,状态序列数据看做不可观测的隐数据I,那么隐马尔可夫模型事实上是一个含有隐变量的概率模型
 

P(O|λ)=HP(O|H,λ)P(H|λ)

它的参数学习可以由EM算法实现。

1.确定完全数据的对数似然函数

  所有观测数据写成Og=(og1,og2,,ogT),所有隐数据写成Hg=(hg1,hg2,,hgT),完全数据是(Og,Hg)=((og1,hg1),(og2,hg2),(ogT,hgT))。不完全数据的对数似然函数是L(λ)=sg=1logP(Og|λ)

2.EM算法的E步

  求L(λ)的下界Q(λ,λ)

Q(λ,λ)=g=1sHgP(Hg|Og,λ)logP(Hg,Og|λ)

P(O,I|λ)=πi1bi1(o1)ai1i2bi2(o2)aiT1iTbit(oT)

于是函数Q(λ,λ)可以写成:
Q(λ,λ)=g=1sHgP(Hg|Og,λ)logπi1+g=1sHgP(Hg|Og,λ)t=1T1logaitit+1+g=1sHgP(Hg|Og,λ)t=1Tlogbit(1)

3.EM算法的M步

  最大化Q(λ,λ),分别对ABπ求导。
(1)对π求导
式(1)的第一项

g=1sHgP(Hg|Og,λ)logπi1g=1sj=1nP(i1=qj|Og,λ)logπqj,

其中,
j=1nπqj=1
,含等式约束的最优值求解,很容易想到拉格朗日乘子法,写出拉格朗日函数:
g=1sj=1nP(i1=qj|Og,λ)logπqj+γ(i=jnπqj1)

πqj求导,
g=1sP(i1=qj|Og,λ)1πqj+γ=0

g=1sP(i1=qj|Og,λ)+γπqj=0

对所有qj求和,
γ=s

πqj=sg=1P(i1=qj|Og,λ)s

(2)对aij求导
(3)对bj(k)求导

预测算法

一、近似算法

  在每个时刻t选择在该时刻最有可能出现的状态。

二、维特比算法

  考虑整体最优性,在选择下一个状态时,记时刻t状态为i的可能性为δt(i),那么第t+1时刻最有可能的状态为argjmaxδt(i)aij,i=1,2,,n;j=1,2,,n

HHM的简单应用

  考虑一个简单的分词模型,S由四种状态组成:词头、词中、词尾、单字成词。首先,收集一些已经分词好的语料,如:我 爱 程序员。我 是 祖国 的 花朵。训练状态转移的概率参数aij,某个状态的观察数据参数bj(k)。最后预测时,选择整体概率最大的路径。

参考

李航的《统计学习分析》
CSDN博客——HMM在简单分词模型中的应用

0 0
原创粉丝点击