统计学习方法-第十章

隐马尔可夫模型定义

初始概率分布:向量 π = P ( i 1 = q i ) π = P(i_1=q_i) π=P(i1=qi)

观测概率矩阵 B = [ b j ( k ) ] N × M B=[b_j(k)]_{N×M} B=[bj(k)]N×M
其中 b j ( k ) = P ( o t = v k ∣ i t = q j ) k = 1 , 2 , . . . , M ; j = 1 , 2 , . . . , N b_j(k) = P(o_t=v_k|i_t=q_j)\qquad k=1,2,...,M;j=1,2,...,N bj(k)=P(ot=vkit=qj)k=1,2,...,M;j=1,2,...,N
表示t时刻在qt条件下生成观测结果Vk的概率

状态转移矩阵 A = [ a i j ] N × N A=[a_{ij}]_{N×N} A=[aij]N×N
其中: a i j = P ( i t + 1 = q j ∣ i t = q t ) a_{ij} = P(i_{t+1} = q_j|i_t = q_t) aij=P(it+1=qjit=qt)
表示t时刻在qt条件下在t+1时刻转移到q(t+1)的概率。

可能的状态集合 Q = { q 1 , q 2 , . . . , q N } Q=\left \{ q_1, q_2,...,q_N\right \} Q={q1,q2,...,qN}
N是可能的状态数

可能的观测集合 V = { v 1 , v 2 , . . . , v M } V=\left \{ v_1, v_2,...,v_M\right \} V={v1,v2,...,vM}
M是可能的观测数

状态序列 I = { i 1 , i 2 , . . . , i T } I=\left \{ i_1, i_2,...,i_T\right \} I={i1,i2,...,iT}
I是长度为T的序列

状态序列 O = { o 1 , o 2 , . . . , o T } O=\left \{ o_1,o_2,...,o_T\right \} O={o1,o2,...,oT}
O是长度为T的序列

λ = ( A , B , π ) λ=(A,B,π) λ=(A,B,π)
状态转移矩阵A与初始概率分布向量π确定了隐马尔科夫链,生成不可观察的状态序列。观测概率矩阵B确定了如何从状态生成观测,与状态序列综合确定了如何产生观测序列。

两个假设:
(1):这一时刻的状态只依赖于前一时刻(感觉有点像,拉普拉斯兽)
P ( i t ∣ i t − 1 , o t − 1 , . . . , i 1 , o 1 ) = P ( i t ∣ i t − 1 ) P(i_t|i_{t-1},o_{t-1},...,i_1,o_1) = P(i_t|i_{t-1}) P(itit1,ot1,...,i1,o1)=P(itit1)
(2):观测的独立性假设,即任意时刻只依赖于该时刻的隐马尔可夫链状态,与其他观测状态无关。
P ( o t ∣ i T , o T , i T − 1 , o T − 1 , . . . i t + 1 , o t + 1 , i t , i t − 1 , o t − 1 , . . . , i 1 , o 1 ) = P ( o t ∣ i t ) P(o_t|i_{T },o_{T},i_{T -1},o_{T-1},...i_{t+1},o_{t+1},i_{t},i_{t-1},o_{t-1},...,i_1,o_1) = P(o_t|i_{t}) P(otiT,oTiT1,oT1,...it+1,ot+1,it,it1,ot1,...,i1,o1)=P(otit)

直接计算算法:
P ( O ∣ λ ) = ∑ i 1 , i 2 , . . . , i T π i b i 1 ( o 1 ) a i 1 i 2 b i 2 ( o 2 ) . . . a i T − 1 i T b i T ( o T ) P(O|λ) = \sum_{i_1,i_2,...,i_T}π_ib_{i_1}(o_1)a_{i_1i_2}b_{i_2}(o_2)...a_{i_{T-1}i_T}b_{i_T}(o_T) P(Oλ)=i1,i2,...,iTπibi1(o1)ai1i2bi2(o2)...aiT1iTbiT(oT)

前向算法

由于直接计算,通常计算量过大,所以采用优化算法。记
α t ( i ) = P ( o 1 , o 2 , . . . , o t , i t = q i ∣ λ ) α_t(i) = P(o_1,o_2,...,o_t,i_t=q_i|λ) αt(i)=P(o1,o2,...,ot,it=qiλ)
输入:隐马尔可夫模型λ,观测序列O;
输出:概率P(O|λ)
(1)初值:
α 1 ( i ) = π i b i ( o 1 ) α_1(i) = π_ib_i(o_1) α1(i)=πibi(o1)
(2)递推:对t = 1,2,…,T-1
α i + 1 ( i ) = [ ∑ j = 1 N α t ( j ) a j i ] b i ( o i + 1 ) α_{i+1}(i) = [\sum_{j=1}^N α_t(j)a_{ji}] b_i(o_{i+1}) αi+1(i)=[j=1Nαt(j)aji]bi(oi+1)
(3)终止
P ( O ∣ λ ) = ∑ j = 1 N α T ( i ) P(O|λ) = \sum_{j=1}^N α_T(i) P(Oλ)=j=1NαT(i)
向前计算就是将前一步计算的结果保存减少计算步骤。
后向计算原理类似

学习算法

监督学习方法,对 { ( O 1 , I 1 ) , ( O 2 , I 2 ) , . . . ( O s , I s ) } \left \{ (O_1,I_1),(O_2,I_2),...(O_s,I_s) \right \} {(O1,I1),(O2,I2),...(Os,Is)},用极大似然估计去计算,隐马尔可夫模型。则状态转移的概率同频数统计:
a ^ i j = A i j ∑ j = 1 N A i j \hat a_{ij} = \frac{A_{ij}}{\sum_{j=1}^{N}A_{ij}} a^ij=j=1NAijAij
设样本中状态为j,并观测为k的频数是 B j k B_{jk} Bjk。那么,状态为j,并观测为k的概率为
b ^ j ( k ) = A j k ∑ k = 1 M A j k \hat b_{j}(k) = \frac{A_{jk}}{\sum_{k=1}^{M}A_{jk}} b^j(k)=k=1MAjkAjk
初始状态为概率 π i π_i πi的估计是S个样本中,初始状态为 q i q_i qi的频率。对于监督学习,人工标注数据的代价往往很高,我们使用非监督学习。

Baum-Welch算法就是一个已知观测序列,状态序列未知的隐函数模型,对于这种有隐函数的模型,可以用EM算法求解。求出Q函数,对Q函数的期望进行极大似然估计,得到迭代公式。

预测算法

近似算法

已知时刻t的状态 λ t ( i ) λ_t(i) λt(i),则在 I ∗ = ( I 1 ∗ , I 2 ∗ , . . . , I N ∗ ) I^* = (I_1^*,I_2^*,...,I_N^*) I=(I1,I2,...,IN)的状态可以预估。
λ t ( i ) = α t ( i ) β t ( i ) ∑ j = 1 N α t ( i ) β t ( i ) λ_t(i) = \frac{α_t(i)β_t(i)}{\sum_{j=1}^N α_t(i)β_t(i)} λt(i)=j=1Nαt(i)βt(i)αt(i)βt(i)
在每个时刻最大的可能性为
I t ∗ = a r g m a x 1 &lt; i &lt; N [ λ t ( i ) ] I_t^* = argmax_{1&lt;i&lt;N}[λ_t(i)] It=argmax1<i<N[λt(i)]
上述算法求得的可能不是整体最优解

维特比算法

动态规划
已知t,求t+1,最后得到真个路径,复杂的降低。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值