第十章 隐马尔科夫模型

隐马尔科夫模型3个基本问题

隐马尔科夫模型有3个基本问题:
(1)概率计算问题。给定模型 λ = ( A , B , π ) 和观测序列 O = ( o 1 , o 2 , . . . , o T ) ,计算在模型 λ 下观测序列 O 出现的概率 P ( O | λ ) .
(2)学习问题.已知观测序列 O = ( o 1 , o 2 , . . . , o T ) ,估计模型 λ = ( A , B , π ) 参数,使得在该模型下观测系列概率 P ( O | λ ) 最大,即用极大似然估计的方法估计参数。
(3)预测问题,也称为解码问题。已知模型 λ = ( A , B , π ) 和观测序列 O = ( o 1 , o 2 , . . . , o T ) ,求对给定观测序列条件概率 P ( I | O ) 最大的状态序列 I = ( i 1 , i 2 , . . . , i T ) 。即给定观测序列,求最有可能的对应的状态序列。

前向算法

定义1(前向概率) 给定隐马尔科夫模型 λ ,定义到时刻 t 部分观测序列为 o 1 , o 2 , . . . , o t 且状态为 q i 的概率为前向概率,记作

(1) α t ( i ) = P ( o 1 , o 2 , . . . , o t , i t = q i | λ )
可以递推地求得前向概率 α t ( i ) 及观测序列概率 P ( O | λ )
算法1(观测序列概率的前向算法)
输入:隐马尔科夫模型 λ ,观测序列 O
输出:观测序列概率 P ( O | λ )
(1)初值
(2) α 1 ( i ) = π i b i ( o 1 ) , i = 1 , 2 , . . . , N

(2)递推 t = 1 , 2 , . . . , T 1
(3) α t + 1 ( i ) = [ j = 1 N α t ( j ) a j i ] b i ( o t + 1 ) , i = 1 , 2 , . . . , N

(3)终止 P ( O | λ ) = i = 1 N α T ( i )

后向算法

定义2(后向概率) 给定隐马尔科夫模型 λ ,定义在时刻 t 状态为 q i 的条件下,从 t + 1 T 的部分观测序列为 o t + 1 , o t + 2 , . . . , o T 的概率为后向概率,记作

(4) β t ( i ) = P ( o t + 1 , o t + 2 , . . . , o T | i t = q i , λ )
可以用递推的方法求得后向概率 β t ( i ) 及观测序列概率 P ( O | λ )
算法2(观测序列概率的后向算法)
输入:隐马尔科夫模型 λ ,观测序列 O
输出:观测序列概率 P ( O | λ )
(1)
(5) β T ( i ) = 1 , i = 1 , 2 , . . . , N

(2)对 t = T 1 , T 2 , . . . , 1
(6) β t ( i ) = j = 1 N a i j b j ( o t + 1 ) β t + 1 ( j ) , i = 1 , 2 , . . . , N

(3)
(7) P ( O | λ ) = i = 1 N π i b i ( o 1 ) β 1 ( i )

Baum-Welch算法

输入:观测数据 O = ( o 1 , o 2 , . . . , o T )
输出:隐马尔可夫模型参数
(1)初始化
n = 0 ,选取 a i j ( 0 ) , b j ( k ) ( 0 ) , π i ( 0 ) , 得到模型 λ ( 0 ) = ( A ( 0 ) , B ( 0 ) , π ( 0 ) )
(2)递推。对 n = 1 , 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 , 0 t = v k T γ t ( j ) t = 1 T γ t ( j )
π i ( n + 1 ) = γ 1 ( i )

右端各值按观测 O = ( o 1 , o 2 , . . . , o T ) 和模型 λ ( n ) = ( A ( n ) , B ( n ) , π ( n ) ) 计算。其中
γ t ( i ) = α t ( i ) β t ( i ) j = 1 N α t ( j ) β t ( j )

ξ t ( i , j ) = α t ( i ) a i j b j ( o t + 1 ) β t + 1 ( j ) i = 1 N j = 1 N α t ( i ) a i j b j ( o t + 1 ) β t + 1 ( j )

(3)终止。得到模型参数 λ ( n + 1 ) = ( A ( n + 1 ) , B ( n + 1 ) , π ( n + 1 ) )

维特比算法

输入:模型 λ = ( A , B , π ) 和观测 O = ( o 1 , o 2 , . . . , o T )
输出:最优路径 I = ( i 1 , i 2 , . . . , i T )
(1)初始化

δ 1 ( i ) = π i b i ( o 1 ) , i = 1 , 2 , . . . , N
ψ 1 ( i ) = 0 , i = 1 , 2 , . . . , N

(2)递推,对 t = 2 , 3 , . . . , T
δ t ( i ) = max 1 j N [ δ t 1 ( j ) a j i ] b i ( o t ) , i = 1 , 2 , . . . , N
ψ t ( i ) = a r g max 1 j N [ δ t 1 ( j ) a j i ] , i = 1 , 2 , . . . , N

(3)终止
P = max 1 i N δ T ( i )
i T = a r g max 1 i N [ δ T ( i ) ]

(4)最优路径回溯。对 t = T 1 , T 2 , . . . , 1
i t = ψ t + 1 ( i t + 1 )
求得最优路径 I = ( i 1 , i 2 , . . . , i T )

猜你喜欢

转载自blog.csdn.net/winds_lyh/article/details/80760847
今日推荐