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

概率计算算法

一、直接计算法
此种算法想要直接通过概率公式进行计算,首先求出状态序列与观测序列的联合概率密度 P ( O , I | λ ) ,之后对所有可能的状态序列进行求和,即可得到 P ( O | λ ) ,即利用如下公式:
P ( I | λ ) = π i 1 a i 1 i 2 a i 2 i 3 a i T 1 i T
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 | λ ) = π 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 ( o 1 , o 2 , , o t , i t = q i | λ )
前向算法:
输入:隐马尔可夫模型,观测序列
输出:观测序列概率
(1)初值: α 1 ( i ) = π i b i 1 ( o 1 )
(2)递推: α t + 1 ( i ) = [ j = 1 N α t ( j ) a j i ] b i ( o t + 1 )
(3)终止: P ( O | λ ) = i = 1 N α T ( i )
三、后向算法
当模型确定且t时刻的状态确定时,从t+1到T的部分观测序列为 o t + 1 , o t + 2 , , o T 的概率为后向概率,为: β t ( t ) = P ( o t + 1 , o t + 2 , , o T | i t = q i , λ )
输入:隐马尔可夫模型,观测序列
输出:观测序列概率
(1) β T ( i ) = 1 , i = 1 , 2 , , N
(2) β t ( i ) = j = 1 N a i j b j ( o t + 1 ) β t + 1 ( j )
(3) P ( O | λ ) = i = 1 N π i b i ( o 1 ) β 1 ( i )
四、一些概率与期望的计算
1、定义 γ t ( i ) = P ( i t = q i | O , λ ) ,则有:
γ t ( i ) = α t ( i ) β t ( i ) j = 1 N α t ( j ) β t ( j )
2、定义 ξ t ( i , j ) = P ( i t = q i , i t + 1 = q j | O , λ ) ,则有:
ξ 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 = 1 T γ t ( i )
在观测O下由状态i转移的期望值: t = 1 T 1 γ t ( i )
在观测O下由状态i转移到状态j的期望值: t = 1 T 1 ξ t ( i , j )

学习算法

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

猜你喜欢

转载自blog.csdn.net/yeyustudy/article/details/80408374