GMM-HMM

需要训练的参数

1.对应于混淆矩阵B的高斯混合模型参数B
2.状态转移矩阵A
3.A中只有对应于自环和后继的状态转移概率需要被训练,其他项全都设置为零,并且不再改变

训练过程

Step 1:构建整个句子的HMM结构
Step 2:将A矩阵中对应于自环和后继的项初始化为0.5,其他项初始化为0
Step 3:用整个训练集的全集均值和方差对B矩阵进行初始化
Step 4:运行Baum-Welch算法的迭代过程。在每一次迭代中,计算前向概率和后向概率(计算方法见下文)以得到t时刻处于状态i的概率,然后将它用于更新参数A和B,重复迭代,直至收敛

前向算法

前言

以下解释建立在已掌握基本隐马尔可夫模型的基础上,隐马尔科夫模型不再做过多解释,这里仅阐明下文用到的相关符号含义:

符号 含义
π \pi π 初始状态概率向量
b b b 观测概率矩阵(观测概率也称发射概率)
b i ( o j ) b_i(o_j) bi(oj) 状态i产生观测 o j o_j oj 的概率
α \alpha α 状态转移矩阵

前向概率定义

给定隐马尔可夫模型 λ \lambda λ,定义到时刻 t t t部分观测序列为 o 1 , o 2 , … , o t o_1,o_2, …,o_t o1,o2,,ot,且状态为 q i q_i qi的概率为前向概率,记作(可省略 λ \lambda λ):

α 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λ)
用图可能更好理解(即已知隐马尔可夫模型,t时刻的观测序列,求状态为 q i q_i qi的概率):
GMM-HMM_第1张图片

算法步骤

输入:隐马尔科夫模型 λ \lambda λ,观测序列 O O O
输出:观测序列概率 P ( O ∣ λ ) P(O|\lambda) P(Oλ)

1.初值:
α 1 ( i ) = π i b i ( o 1 ) , i = 1 , 2 , … , N \alpha_1(i)=\pi _i b_i(o_1),i=1,2,…,N α1(i)=πibi(o1),i=1,2,,N
(理解:即第一个观测为 o 1 o_1 o1的情况下,对应的第一个状态为1、2、3的概率)

2.递推:
对t=1,2,…,T-1,
α t + 1 ( i ) = [ ∑ j = 1 N α t ( j ) α j i ] b i ( o t + 1 ) , i = 1 , 2 , … , N \alpha_{t+1}(i)=\bigg[\sum_{j=1}^{N}\alpha_{t}(j)\alpha_{ji}\bigg] b_i(o_{t+1}),i=1,2,…,N αt+1(i)=[j=1Nαt(j)αji]bi(ot+1),i=1,2,,N

(理解:以求t=3为例,已知t=2时,即第一和二个观测为 o 1 , o 2 o_1,o_2 o1o2的情况下,对应的第二个状态为1、2、3的概率,那么分情况来说即:第二个状态为1时,由状态转移矩阵求第三个状态为1、2、3的概率,再分别乘上对应状态发射产生观测 o 3 o_3 o3的概率进行叠加,第二个状态为2、3同理,把所有的都叠加起来就得到我们想要的结果(解释的过于冗余了,其实就一句话,叠加所有可能的情况)
GMM-HMM_第2张图片

3.终止:
P ( O ∣ λ ) = ∑ i = 1 N α T ( i ) P(O|\lambda)=\sum_{i=1}^{N}\alpha_{T}(i) P(Oλ)=i=1NαT(i)

PS:先写到这里,要去上课了

你可能感兴趣的:(模式识别,模式识别)