隐马尔可夫模型是一种重要的概率图模型。作为一种著名的有向图模型,HMM广泛应用于语音识别和序列预测等领域。

前提假设与模型表示

两个假设
齐次马尔可夫假设:假设隐藏的马尔科夫链在任意时刻t的状态只依赖于其前一时刻的状态,与其他时刻的状态及观测无关,也与时刻t无关。
状态独立假设:某一时刻的观测变量只和自己的隐变量相关。

模型表示 λ = ( π , A , B ) \lambda=(\pi,A,B) λ=(π,A,B) π \pi π时初始概率分布, A A A时状态转移矩阵, B B B时发射矩阵。

模型求解

重要定理:隐状态已知的情况下,观测变量之间都是相互独立的。

假设隐状态序列为 q 1 , q 2 , . . , q n q_1,q_2,..,q_n q1,q2,..,qn,观测变量序列 y 1 , y 2 , . . . , y n y_1,y_2,...,y_n y1,y2,...,yn.
齐次马尔可夫假设公式化表示: P ( q t ∣ q t − 1 , . . . , q 1 ) = P ( q t ∣ q t − 1 ) P(q_t|q_{t-1},...,q_1)=P(q_t|q_{t-1}) P(qtqt1,...,q1)=P(qtqt1),这个概率称为transition probability,并且必须时离散的。这个概率 A k × k A_{k\times k} Ak×k
状态独立假设公式化表示: P ( y t ∣ q t ) P(y_t|q_t) P(ytqt),这个概率称为transition probability,这个离散的。这个概率 B k × l B_{k\times l} Bk×l

假设给定一个隐马尔可夫模型
在这里插入图片描述

观测变量 y 1 , y 2 , y 3 y_1,y_2,y_3 y1,y2,y3发生的概率推导如下:
在这里插入图片描述由上面的推导我们可以看出, P ( y n ∣ q n ) P(y_n|q_n) P(ynqn)概率可以从B矩阵得到, P ( q n ∣ q n − 1 ) P(q_n|q_{n-1}) P(qnqn1)概率可以从A矩阵得知。上述公式唯一缺少的概率就是 P ( q 1 ) P(q_1) P(q1),其他的概率我们都能从概率矩阵A和概率矩阵B得到。
我们用 ∏ \prod 表示 P ( q 1 ) P(q_1) P(q1)。因而最后模型的表示就是 λ = ( π , A , B ) \lambda=(\pi,A,B) λ=(π,A,B)。这也就是模型的由来。上述的推导过程也非常简单,只需用贝叶斯定理一直求解下去就能得到。

HMM的三个问题

Evaluation:P(o|λ),求概率,可用前向算法或后向算法求解
Learning:求参数 λ = a r g m a x P ( q ∣ λ ) \lambda=argmaxP(q|\lambda) λ=argmaxP(qλ),通过EM求解
Decoding:预测 P ( y i + 1 ∣ q 1 , . . . , q t ) , P(y_{i+1}|q_1,...,q_t), P(yi+1q1,...,qt),

Evaluation

用一个例子引入:
假设有五十个人都单独的说单词cat,利用MLE求解得到 λ c a t \lambda_{cat} λcat的估计是 λ c a t = a r g m a x l o g P ( y 1 , . . . , y 50 ∣ λ ) \lambda_{cat}=argmax logP(y_1,...,y_{50}|\lambda) λcat=argmaxlogP(y1,...,y50λ)
再有五十个人都单独的说单词dog,利用MLE求解得到 λ d o g \lambda_{dog} λdog的估计是 λ d o g = a r g m a x l o g P ( y 1 , . . . , y 50 ∣ λ ) \lambda_{dog}=argmax logP(y_1,...,y_{50}|\lambda) λdog=argmaxlogP(y1,...,y50λ)
。。。

现在新来了一个人,让他说一个词,我们用上面求解的λ估计他说的到底是什么词 P ( Y ∣ λ ) P(Y|\lambda) P(Yλ)

利用我们刚刚求解的公式进行求解:
在这里插入图片描述可以看到这个概率非常难算,总共T个sum,每个sum还有k个变换。

解决办法:前向算法或者后向算法。
以前向算法为例,引入一个参数 q t q_t qt,在计算过程中再用积分积掉这个参数就OK了。
定义 α i ( t ) = P ( y 1 , . . . , y t , q t = i ∣ λ ) \alpha_i(t)=P(y_1,...,y_t,q_t=i|\lambda) αi(t)=P(y1,...,yt,qt=iλ)
在这里插入图片描述递归的计算下去,最后得到:
在这里插入图片描述
最后求得 P ( y 1 , . . . , y t ) = ∑ j = 1 k α j ( T ) P(y_1,...,y_t)=\sum_{j=1}^k\alpha_j(T) P(y1,...,yt)=j=1kαj(T)

如果是后向算法,引入 β i ( t ) = P ( t + 1 , . . . , y T ∣ q t = i , λ ) \beta_i(t)=P(t+1,...,y_T|q_t=i,\lambda) βi(t)=P(t+1,...,yTqt=i,λ)。过程略。。

Learning

利用EM进行求解。
EM公式:
在这里插入图片描述
这里定义 X:观测变量,Z:隐变量,θ:参数
那么EM公式可以改写为:
在这里插入图片描述未完待续。。。。。。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐