隐含马尔科夫模型

隐含马尔科夫模型:

任一时刻t的状态st是不可见的,观察者没法通过观察到一个状态序列s1, s2, ...来推测转移概率,但隐含马尔科夫模型在每个时刻t会输出符号Ot,Ot和St相关且仅和St相关。

 

1、给定一个模型,计算某个特定的输出序列的概率。

举例:

已知语音序列{S_{1} ,S_{2} ,S_{3} ,...,S_{t} ,...}的转移概率P(S_{t} |S_{t-1} ),也就是根据上一段语音S_{t-1} 得到下一段语音S_{t} 的概率;

以及语音S_{t} 得到文本O_{t} 的生成概率P(O_{t} |S_{t} );

可以解得:得到的文本翻译序列{O_{x} ,O_{x+1} ,O_{x+2} ,...,O_{x+n} ,...},可以计算得到有多大的概率是正确的。

(问:有多大的概率得到文本翻译序列{O_{x} ,O_{x+1} ,O_{x+2} ,...,O_{x+n} ,...}?)

业界对应的算法是Forward-Backward算法,前向后向算法。

 (dp取sum, dp表示各个状态下的概率)

 

2、给定一个模型和某个特定的输出序列,找到最可能产生这个输出的状态序列。

举例:

已知语音序列{S_{1} ,S_{2} ,S_{3} ,...,S_{t} ,...}的转移概率P(S_{t} |S_{t-1} ),也就是根据上一段语音S_{t-1} 得到下一段语音S_{t} 的概率;

已知以及语音S_{t} 时得到文本O_{t} 的概率P(O_{t} |S_{t} );

已知文本翻译序列{O_{1} ,O_{2} ,O_{3} ,...,O_{t} ,...}

可以解得:概率最大的产生该文本翻译序列的语音序列{S_{1} ,S_{2} ,S_{3} ,...,S_{t} ,...}。

业界对应的算法是Viterbi算法,维特比算法。

(dp取max, 同时打印解决方案, dp表示各个状态下的概率)

 

3、给定足够量的观测数据,如何估计隐含马尔科夫模型的参数。

举例:

已知观测数据语音序列{S_{1} ,S_{2} ,S_{3} ,...,S_{t} ,...},文本翻译序列{O_{1} ,O_{2} ,O_{3} ,...,O_{t} ,...};

可以解得:

转移概率P(S_{t} |S_{t-1}

生成概率P(O_{t} |S_{t}

业界对应的算法是Baum-Welch算法,鲍姆-韦尔奇算法。

(此坑待填)

posted @ 2017-04-23 02:45  我在地狱  阅读(178)  评论(0编辑  收藏  举报