隐马尔可夫模型是一种重要的概率图模型。作为一种著名的有向图模型,HMM广泛应用于语音识别和序列预测等领域。
前提假设与模型表示
两个假设:
齐次马尔可夫假设:假设隐藏的马尔科夫链在任意时刻t的状态只依赖于其前一时刻的状态,与其他时刻的状态及观测无关,也与时刻t无关。
状态独立假设:某一时刻的观测变量只和自己的隐变量相关。
模型表示:λ=(π,A,B)。π时初始概率分布,A时状态转移矩阵,B时发射矩阵。
模型求解
重要定理:隐状态已知的情况下,观测变量之间都是相互独立的。
假设隐状态序列为q1,q2,..,qn,观测变量序列y1,y2,...,yn.
齐次马尔可夫假设公式化表示:P(qt∣qt−1,...,q1)=P(qt∣qt−1),这个概率称为transition probability,并且必须时离散的。这个概率用Ak×k
状态独立假设公式化表示:P(yt∣qt),这个概率称为transition probability,这个离散的。这个概率用Bk×l
假设给定一个隐马尔可夫模型

观测变量y1,y2,y3发生的概率推导如下:
由上面的推导我们可以看出,P(yn∣qn)概率可以从B矩阵得到,P(qn∣qn−1)概率可以从A矩阵得知。上述公式唯一缺少的概率就是P(q1),其他的概率我们都能从概率矩阵A和概率矩阵B得到。
我们用∏表示P(q1)。因而最后模型的表示就是λ=(π,A,B)。这也就是模型的由来。上述的推导过程也非常简单,只需用贝叶斯定理一直求解下去就能得到。
HMM的三个问题
Evaluation:P(o|λ),求概率,可用前向算法或后向算法求解
Learning:求参数λ=argmaxP(q∣λ),通过EM求解
Decoding:预测P(yi+1∣q1,...,qt),
Evaluation
用一个例子引入:
假设有五十个人都单独的说单词cat,利用MLE求解得到λcat的估计是λcat=argmaxlogP(y1,...,y50∣λ)
再有五十个人都单独的说单词dog,利用MLE求解得到λdog的估计是λdog=argmaxlogP(y1,...,y50∣λ)
。。。
现在新来了一个人,让他说一个词,我们用上面求解的λ估计他说的到底是什么词P(Y∣λ)
利用我们刚刚求解的公式进行求解:
可以看到这个概率非常难算,总共T个sum,每个sum还有k个变换。
解决办法:前向算法或者后向算法。
以前向算法为例,引入一个参数qt,在计算过程中再用积分积掉这个参数就OK了。
定义:αi(t)=P(y1,...,yt,qt=i∣λ)
递归的计算下去,最后得到:

最后求得P(y1,...,yt)=∑j=1kαj(T)
如果是后向算法,引入βi(t)=P(t+1,...,yT∣qt=i,λ)。过程略。。
Learning
利用EM进行求解。
EM公式:

这里定义 X:观测变量,Z:隐变量,θ:参数
那么EM公式可以改写为:
未完待续。。。。。。