马尔可夫链与隐马尔可夫模型

本文介绍了马尔可夫链的概念,包括状态转移概率和有限状态机,并深入探讨了隐马尔可夫模型(HMM),包括概率计算问题如前向算法和后向算法,序列问题中的维特比算法,以及HMM的学习问题,如监督学习和无监督学习中的Baum-Welch算法。
摘要由CSDN通过智能技术生成

马尔可夫链

考察一个随机变量序列,这些随机变量并不是相互独立的,每个随机变量的值依赖于这个序列前面的状态。如果一个系统有 N N N个有限状态 S = ( s 1 , s 2 , s 3 , . . . s N ) S=(s_1,s_2,s_3,...s_N) S=(s1,s2,s3,...sN),那么随着时间推移,该系统将从某一状态转移到另一状态。设 Q = ( q 1 , q 2 , q 3 , . . . , q T ) Q=(q_1,q_2,q_3,...,q_T) Q=(q1,q2,q3,...,qT)为一个随机变量序列,取值为状态集 S S S中的某个状态,对该系统的描述通常需要给出当前时刻 t t t的状态和其前面所有状态的关系:系统在时刻 t t t处于状态 s j s_j sj的概率为: P ( q t = s j ∣ q t − 1 = s i , q t − 2 = s k , . . . ) P(q_t=s_j|q_{t-1}=s_i,q_{t-2}=s_k,...) P(qt=sjqt1=si,qt2=sk,...)
如果特定条件下,系统在时间 t t t的状态只与其在时间 t − 1 t-1 t1的状态相关,即:
P ( q t = s j ∣ q t − 1 = s i , q t − 2 = s k , . . . ) = P ( q t = s j ∣ q t − 1 = s i ) P(q_t=s_j|q_{t-1}=s_i,q_{t-2}=s_k,...)=P(q_t=s_j|q_{t-1}=s_i) P(qt=sjqt1=si,qt2=sk,...)=P(qt=sjqt1=si)
则该系统构成一个离散的一阶马尔可夫链

状态转移概率

考虑独立于时间 t t t一阶马尔可夫过程
P ( q t = s j ∣ q t − 1 = s i ) = a i j , 1 ≤ i , j ≤ N P(q_t=s_j|q_{t-1}=s_i)=a_{ij}, 1\le i,j\le N P(qt=sjqt1=si)=aij,1i,jN
满足: a i j ≥ 0 , ∑ j = 1 N a i j = 1 a_{ij} \ge 0,\sum_{j=1}^Na_{ij}=1 aij0,j=1Naij=1
N N N个状态的一阶马尔可夫过程有 N 2 N^2 N2次状态转移,其状态转移概率可以表示成一个状态转移矩阵 A = [ a i j ] A=[a_{ij}] A=[aij]

有限状态机

如图,马尔可夫模型又可视为随机的有限状态机,圆圈表示状态,状态之间的转移用带箭头的弧表示,弧上的数字为状态转移的概率。初始状态用标记为start的输入箭头表示,任何一个状态都可作为终止状态。

0.6
0.4
0.4
0.3
0.3
1.0
0.6
0.6
0.4
1.0
0.6
a
p
y
h
e
l
start

一个马尔可夫链的状态序列的概率可以通过计算形成该状态序列的所有状态之间转移弧上的概率乘积而得出,即:
P ( q 1 , q 2 , . . . , q T ) = P ( q 1 ) P ( q 2 ∣ q 1 ) P ( q 3 ∣ q 1 , q 2 ) . . . P ( q T ∣ q 1 , q 2 , . . . , q T − 1 ) = P ( q 1 ) P ( q 2 ∣ q 1 ) P ( q 3 ∣ q 2 ) . . . P ( q T ∣ q T − 1 ) = π q 1 ∏ t = 1 T − 1 a q t q t + 1 \begin{aligned} P(q_1,q_2,...,q_T) =& P(q_1)P(q_2|q_1)P(q_3|q_1,q_2)...P(q_T|q_1,q_2,...,q_{T-1})\\ =& P(q_1)P(q_2|q_1)P(q_3|q_2)...P(q_T|q_{T-1})\\ =& \pi_{q_1}\prod_{t=1}^{T-1}a_{q_tq_{t+1}} \end{aligned} P(q1,q2,...,qT)===P(q1)P(q2q1)P(q3q1,q2)...P(qTq1,q2,...,qT1)P(q1)P(q2q1)P(q3q2)...P(qTqT1)πq1t=1T1aqtqt+1
其中, π q 1 = P ( q 1 ) \pi_{q_1}=P(q_1) πq1=P(q1)

隐马尔可夫模型HMM

马尔可夫模型中,每一个状态代表了一个可观察的事件,所以又称作可视马尔可夫模型。对于有些问题,我们并不知道所经过的状态序列,只知道状态序列的概率函数(观测序列,可见的)。也就是说模型的状态转换过程是不可观察的,即隐蔽的。这种情况下,需要使用隐马尔可夫模型进行建模,它可以看作是马尔可夫链的一个扩展。
详细介绍推荐https://www.cnblogs.com/pinard/p/6945257.html
一般的,一个HMM记为一个五元组 μ = ( S , K , A , B , π ) \mu=(S,K,A,B,\pi) μ=(S,K,A,B,π), S S S为状态的集合, K K K为输出符号的集合, A , B , π A,B,\pi A,B,π分别表示状态转移概率、符号发射概率(也叫生成概率,来自观测独立性假设,即任意时刻的观察状态只仅仅依赖于当前时刻的隐藏状态, b j ( k ) = P ( o t = v k ∣ i t = q j ) b_j(k)=P(o_t=v_k|i_t=q_j) bj(k)=P(ot=vkit=qj))和初始状态的概率分布。为了简单,有时也将五元组记为三元组 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π)
HMM中有三个基本问题:

概率计算问题:

给定HMM模型三元组 λ \lambda λ和观察序列 O = ( o 1 , o 2 , o 3 . . . ) O=(o_1,o_2,o_3...) O=(o1,o2,o3...),计算观察序列的概率 P ( O ∣ λ ) P(O|\lambda) P(Oλ)
如果用穷举所有可能的隐藏状态序列 I = ( q 1 , q 2 , . . . , q T ) I=(q_1,q_2,...,q_T) I=(q1,q2,...,qT),分别求观测序列 O = ( o 1 , o 2 , . . . , o T ) O=(o_1,o_2,...,o_T) O=(o1,o2,...,oT)出现的概率分布 P ( O , I ∣ λ ) P(O,I|\lambda) P(O,Iλ),那么就很容易求出边缘概率 P ( O ∣ λ ) P(O|\lambda) P(Oλ)。但该算法的时间复杂度将是 O ( T N T ) O(TN^T) O(TNT),因此利用下列简洁算法——前向后向算法

前向算法

前向和后向算法本质都属于动态规划算法。
定义时刻 t t t时隐藏状态为 q t q_t qt, 观测状态的序列为 o 1 , o 2 , . . . , o t o_1,o_2,...,o_t o1,o2,...,ot的概率为前向概率,即:
α t ( i ) = P ( o 1 , o 2 , . . . , o t , i t = q i ∣ λ ) \alpha_t(i)=P(o_1,o_2,...,o_t,i_t=q_i|\lambda) αt(i)=P(o1,o2,...,ot,it=qiλ)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值