本文详解paper "A Tutorial on HMMs and Selected Applications in Speech Recognition"并进行matlab实现(尽量用其他编程语言通用的实现)
Problem 3
调整参数使在模型下观测序列概率最大
目前没有方法分析是观测序列概率最大的方法,只有迭代法逐步逼近局部最大值,
如Baum-Welch法,即EM
迭代更新HMM模型中的变量
t时刻在state Si, t+1时刻在Sj, 给出model和观测序列O下的概率
代入前面的forward-backward变量
分子是
其中
回忆problem2中的变量
而
因此
另外
即所有时刻Si被访问到的次数
状态Si迁移到Sj的期望值次数为
重新估计pi, A, B的方法
先回忆一下pi, A, B
初始分布
状态Sj下观测到symbol的概率
状态转移概率
为时刻t在状态Si的概率
其中bj(k)的分子表示先找出obsmat中所有s,t下observation=vk的列
注:obsmat是bj(k)构成的矩阵,size: N*M
然后对找出的列在时间轴上求和,即每行求和,把observation时间序列上求和,仅对找出来vk的列求和
上面的期望值都是sum所有训练data的