隐马尔科夫模型HMM(Hidden Markov Models)来源于现实社会的需求,它是为人们服务的,我们通常都习惯于寻找一个事物在一段时间内的变化规律,并能在特定情况下预测下一变化,比如预测天气等。当然HMM还有一些其他的应用,后面还会提到。
既然HMM用处是具有实际意义的,那么下面我们来学习它。
实际生活中,有的时候状态的转变是固定的,如红绿灯的变化规律,下一状态是已知的,这种模式叫确定性的生成模式,而在大多数情况下状态的改变却是不确定的,如根据今天的天气推测明天的天气,这个状态的变化是不明确的,这种模式叫非确定的生成模式,通常我们更倾向于研究非确定性生成模式,所以我们用到了HMM。这里明确一个概念,n阶HMM,意思是说当前的状态只与前n个状态有关,我们通常研究的是1阶HMM,意思是当前状态只与前一状态有关,显然这是不符合现实的一个假设,但它却非常适于分析,同时要注意HMM是与时间无关的一个模型,这也是一个与现实不符的假设。(从此可看出HMM有待改进)
HMM的核心在于思想,算法与两个矩阵。
HMM的两个矩阵为状态转移矩阵(表征状态之间的转移概率)、混淆矩阵(表征特定状态下发射符号(观察值)的概率)。
根据HMM不同的应用,有不同的算法来解决。
主要是三类问题。
①
②
多数情况下,我们都希望能够根据一个给定的HMM模型,根据观察状态序列找到产生这一序列的潜在的隐含状态序列。
③
这是最难的HMM应用。也就是根据观察序列和其代表的隐状态,生成一个三元组HMM (,A,B)。使这个三元组能够最好的描述我们所见的一个现象规律。
我们用forward-backward algorithm来解决在现实中经常出现的问题--转移矩阵和混淆矩阵不能直接得到的情况。
这个方向在语音处理数据库上有重要的地位。因为它可以帮助我们在状态空间很大,观察序列很长的环境下找到合适HMM模型参数:初始状态、转移概率、混淆矩阵等。
详细介绍可参考: