HMM-前向后向算法(附python实现)

状态序列 \(S = s_1,s_2,...\)

观测序列 \(O=O_1,O_2,...\)

\(\lambda(A,B,\pi)\)

状态转移概率 \(A = \{a_{ij}\}\)

发射概率 \(B = \{b_{ik}\}\)

初始概率分布 \(\pi = \{\pi_i\}\)

观测序列生成过程

初始状态

选择观测

状态转移

返回step2

HMM三大问题

概率计算问题(评估问题)

给定观测序列 \(O=O_1O_2...O_T\),模型 \(\lambda (A,B,\pi)\),计算 \(P(O|\lambda)\),即计算观测序列的概率

解码问题

给定观测序列 \(O=O_1O_2...O_T\),模型 \(\lambda (A,B,\pi)\),找到对应的状态序列 \(S\)

学习问题

给定观测序列 \(O=O_1O_2...O_T\),找到模型参数 \(\lambda (A,B,\pi)\),以最大化 \(P(O|\lambda)\)

概率计算问题

给定模型 \(\lambda\) 和观测序列 \(O\),如何计算\(P(O| \lambda)\)

暴力枚举每一个可能的状态序列 \(S\)

对每一个给定的状态序列

\[P(O|S,\lambda) = \prod^T_{t=1} P(O_t|s_t,\lambda) =\prod^T_{t=1} b_{s_tO_t} \]

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyzgxy.html