其难点是从可观察的参数中确定该过程的隐含参数,然后利用这些参数来作进一步的分析,在被建模的系统被认为是马尔可夫过程与未观测到(隐藏)状态的统计马尔可夫模型。在正常的马尔可夫模型中,状态对于观察者来说是直接可见的。这样状态的转换概率便是全部的参数;而在隐马尔可夫模型中,状态并不是直接可见的,但受状态影响的某些变量则是可见的。每一个状态在可能输出的符号上都有概率分布。因此输出符号的序列能够透露出状态序列的一些信息。
用来描述含有隐含未知数的马尔可夫过程的统计模型。
其难点是从可观察的参数中确定该过程的隐含参数,然后利用这些参数来作进一步的分析,在被建模的系统被认为是马尔可夫过程与未观测到(隐藏)状态的统计马尔可夫模型。在正常的马尔可夫模型中,状态对于观察者来说是直接可见的。这样状态的转换概率便是全部的参数;而在隐马尔可夫模型中,状态并不是直接可见的,但受状态影响的某些变量则是可见的。每一个状态在可能输出的符号上都有概率分布。因此输出符号的序列能够透露出状态序列的一些信息。
隐马尔可夫模型状态演化强调了HMM的状态变迁(见图)。有时明确地表示出模型的演化也是有用的,用与
来表达不同时刻
和
的状态。图中箭头方向则表示不同资讯间的关联性,因此可以得知
与
有关,而
又与
有关。而每个
只和
有关,其中
称为隐藏变数(hidden variable),是观察者无法得知的变数。隐马尔可夫模型常被用来解决有未知条件的数学问题。假设隐藏状态的值对应到的空间有
个元素,也就是说在时间
时,隐藏状态会有
种可能。同样的,
也会有
种可能的值,所以从
到
间的关系会有
种可能。除了
间的关系外,每组
,
间也有对应的关系。若观察到的
有
种可能的值,则该马尔可夫模型的复杂度为
。
假设观察到的结果为,
,隐藏条件为
,
,长度为
,则马尔可夫模型的概率可以表达为:
,由这个概率模型来看,可以得知马尔可夫模型将该时间点前后的资讯都纳入考量。
HMM有3个典型问题:①已知状态转移和输出概率,以及某一特定输出序列,计算某一特定输出序列的概率,通常使用向前算法(forward algorithm)解决。②已知某一特定输出序列,状态转移和输出概率,寻找最可能的能产生某一特定输出序列的隐含状态的序列,通常使用维特比算法(Viterbi algorithm)解决。③已知输出序列,寻找最可能的状态转移以及输出概率。通常使用鲍姆-韦尔奇算法(Baum-Welch algorithm)、反向维特比(reversed Viterbi)算法解决。另外,一些方法使用联合树(junction tree)算法来解决这3个问题。
应用于语音识别、中文断词/分词或光学字符识别,机器翻译,生物信息学和基因组学中的基因组序列中蛋白质编码区域的预测,对相互关联的DNA或蛋白质族的建模,以及从基本结构中预测第二结构元素通信中的译码过程等方面。