统计学习方法笔记(十四)隐马尔可夫模型(二)

概率计算算法

一、直接计算法
此种算法想要直接通过概率公式进行计算,首先求出状态序列与观测序列的联合概率密度 P(O,I|λ) P ( O , I | λ ) ,之后对所有可能的状态序列进行求和,即可得到 P(O|λ) P ( O | λ ) ,即利用如下公式:
P(I|λ)=πi1ai1i2ai2i3aiT1iT P ( I | λ ) = π i 1 a i 1 i 2 a i 2 i 3 ⋯ a i T − 1 i T
P(O|I,λ)=bi1(o1)bi2(o2)biT(oT) P ( O | I , λ ) = b i 1 ( o 1 ) b i 2 ( o 2 ) ⋯ b i T ( o T )

P(O,I|λ)=P(O|I,λ)P(I|λ)=πi1bi1(o1)ai1i2bi2(o2)aiT1iTbiT(oT) P ( O , I | λ ) = P ( O | I , λ ) P ( I | λ ) = π i 1 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 )

然而,此种算法计算量太大,不可实现。
二、前向算法
给定隐马尔可夫模型,定义到时刻t部分观测序列且状态为某个状态的概率为前向概率,记为:
αt(i)=P(o1,o2,,ot,it=qi|λ) α t ( i ) = P ( o 1 , o 2 , ⋯ , o t , i t = q i | λ )
前向算法:
输入:隐马尔可夫模型,观测序列
输出:观测序列概率
(1)初值: α1(i)=πibi1(o1) α 1 ( i ) = π i b i 1 ( o 1 )
(2)递推: αt+1(i)=[j=1Nαt(j)aji]bi(ot+1) α t + 1 ( i ) = [ ∑ j = 1 N α t ( j ) a j i ] b i ( o t + 1 )
(3)终止: P(O|λ)=i=1NαT(i) P ( O | λ ) = ∑ i = 1 N α T ( i )
三、后向算法
当模型确定且t时刻的状态确定时,从t+1到T的部分观测序列为 ot+1,ot+2,,oT o t + 1 , o t + 2 , ⋯ , o T 的概率为后向概率,为: βt(t)=P(ot+1,ot+2,,oT|it=qi,λ) β t ( t ) = P ( o t + 1 , o t + 2 , ⋯ , o T | i t = q i , λ )
输入:隐马尔可夫模型,观测序列
输出:观测序列概率
(1) βT(i)=1,i=1,2,,N β T ( i ) = 1 , i = 1 , 2 , ⋯ , N
(2) βt(i)=j=1Naijbj(ot+1)βt+1(j) β t ( i ) = ∑ j = 1 N a i j b j ( o t + 1 ) β t + 1 ( j )
(3) P(O|λ)=i=1Nπibi(o1)β1(i) P ( O | λ ) = ∑ i = 1 N π i b i ( o 1 ) β 1 ( i )
四、一些概率与期望的计算
1、定义 γt(i)=P(it=qi|O,λ) γ t ( i ) = P ( i t = q i | O , λ ) ,则有:
γt(i)=αt(i)βt(i)j=1Nαt(j)βt(j) γ t ( i ) = α t ( i ) β t ( i ) ∑ j = 1 N α t ( j ) β t ( j )
2、定义 ξt(i,j)=P(it=qi,it+1=qj|O,λ) ξ t ( i , j ) = P ( i t = q i , i t + 1 = q j | O , λ ) ,则有:
ξt(i,j)=αt(i)aijbj(ot+1)βt+1(i)i=1Nj=1Nαt(i)aijbj(ot+1)βt+1(i) ξ t ( i , j ) = α t ( i ) a i j b j ( o t + 1 ) β t + 1 ( i ) ∑ i = 1 N ∑ j = 1 N α t ( i ) a i j b j ( o t + 1 ) β t + 1 ( i )
3、期望
在观测O下状态i出现的期望值: t=1Tγt(i) ∑ t = 1 T γ t ( i )
在观测O下由状态i转移的期望值: t=1T1γt(i) ∑ t = 1 T − 1 γ t ( i )
在观测O下由状态i转移到状态j的期望值: t=1T1ξt(i,j) ∑ t = 1 T − 1 ξ t ( i , j )

学习算法

一、监督学习方法
已给训练数据包括S个长度相同的观测序列和对应的状态序列,利用极大似然估计来估计隐马尔可夫模型的参数
1、转移概率的估计: aˆij=Aijj=1NAij a ^ i j = A i j ∑ j = 1 N A i j
2、观测概率的估计: bˆj(k)=Bjkk=1MBjk b ^ j ( k ) = B j k ∑ k = 1 M B j k
3、初始状态概率 πi π i 为S个样本中初始状态为 qi q i 的频率
二、Baum-Welch算法
训练数据只包括S个长度为T的观测序列,目标是学习隐马尔可夫模型的参数,将观测序列数据看作观测数据O,状态序列数据看作不可观测的隐数据I,则模型变为: P(O|λ)=IP(O|I,λ)P(I|λ) P ( O | λ ) = ∑ I P ( O | I , λ ) P ( I | λ )
1、确定完全数据的对数似然函数
logP(O,I|λ) log ⁡ P ( O , I | λ )
2、E步:求Q函数
Q(λ,λ¯¯¯)=IlogP(O,I|λ)P(O,I|λ¯¯¯) Q ( λ , λ ¯ ) = ∑ I log ⁡ P ( O , I | λ ) P ( O , I | λ ¯ )
M步:求极大
具体算法:
输入:观测数据
输出:隐马尔可夫模型参数
(1)初始化
对n=0选取 a(0)ij,bj(k)(0),π(0)i a i j ( 0 ) , b j ( k ) ( 0 ) , π i ( 0 ) 得到模型 λ(0)=(A(0),B(0),π(0)) λ ( 0 ) = ( A ( 0 ) , B ( 0 ) , π ( 0 ) )
(2)递推
a(n+1)ij=t=1T1ξt(i,j)t=1T1γt(i) a i j ( n + 1 ) = ∑ t = 1 T − 1 ξ t ( i , j ) ∑ t = 1 T − 1 γ t ( i )
bj(k)(n+1)=t=1,ot=vkTγt(j)t=1Tγt(i) b j ( k ) ( n + 1 ) = ∑ t = 1 , o t = v k T γ t ( j ) ∑ t = 1 T γ t ( i )
π(n+1)i=γ1(i) π i ( n + 1 ) = γ 1 ( i )
(3)终止
得到模型参数 λ(n+1)=(A(n+1),B(n+1),π(n+1)) λ ( n + 1 ) = ( A ( n + 1 ) , B ( n + 1 ) , π ( n + 1 ) )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值