隐马尔科夫模型HMM(一)HMM模型

隐马尔科夫模型(Hidden Markov Model,以下简称HMM)是比较经典的机器学习模型了,它在语言识别,自然语言处理,模式识别等领域得到广泛的应用。当然,随着目前深度学习的崛起,尤其是RNN,LSTM等神经网络序列模型的火热,HMM的地位有所下降。但是作为一个经典的模型,学习HMM的模型和对应算法,对我们解决问题建模的能力提高以及算法思路的拓展还是很好的。本文是HMM系列的第一篇,关注于HMM模型的基础。
1. 什么样的问题需要HMM模型
首先我们来看看什么样的问题解决可以用HMM模型。使用HMM模型时我们的问题一般有这两个特征:1)我们的问题是基于序列的,比如时间序列,或者状态序列。2)我们的问题中有两类数据,一类序列数据是可以观测到的,即观测序列;而另一类数据是不能观察到的,即隐藏状态序列,简称状态序列。
有了这两个特征,那么这个问题一般可以用HMM模型来尝试解决。这样的问题在实际生活中是很多的。比如:我现在在打字写博客,我在键盘上敲出来的一系列字符就是观测序列,而我实际想写的一段话就是隐藏序列,输入法的任务就是从敲入的一系列字符尽可能的猜测我要写的一段话,并把最可能的词语放在最前面让我选择,这就可以看做一个HMM模型了。再举一个,我在和你说话,我发出的一串连续的声音就是观测序列,而我实际要表达的一段话就是状态序列,你大脑的任务,就是从这一串连续的声音中判断出我最可能要表达的话的内容。
从这些例子中,我们可以发现,HMM模型可以无处不在。但是上面的描述还不精确,下面我们用精确的数学符号来表述我们的HMM模型。

2. HMM模型的定义
 对于HMM模型,首先我们假设QQ是所有可能的隐藏状态的集合,VV是所有可能的观测状态的集合,即:

Q={q1,q2,...,qN},V={v1,v2,...vM}Q={q1,q2,...,qN},V={v1,v2,...vM}

其中,NN是可能的隐藏状态数,MM是所有的可能的观察状态数。
对于一个长度为TT的序列,II对应的状态序列, OO是对应的观察序列,即:

I={i1,i2,...,iT},O={o1,o2,...oT}I={i1,i2,...,iT},O={o1,o2,...oT}

其中,任意一个隐藏状态itQit∈Q,任意一个观察状态otVot∈V
HMM模型做了两个很重要的假设如下:
1) 齐次马尔科夫链假设。即任意时刻的隐藏状态只依赖于它前一个隐藏状态。当然这样假设有点极端,因为很多时候我们的某一个隐藏状态不仅仅只依赖于前一个隐藏状态,可能是前两个或者是前三个。但是这样假设的好处就是模型简单,便于求解。如果在时刻tt的隐藏状态是it=qiit=qi,在时刻t+1t+1的隐藏状态是it+1=qjit+1=qj, 则从时刻tt到时刻t+1t+1的HMM状态转移概率aij

aij可以表示为

原文链接

猜你喜欢

转载自blog.csdn.net/weixin_40581617/article/details/80705059