目录
隐马尔可夫模型(Hidden Markov Model,HMM)是统计模型,它用来描述一个含有隐含未知参数的马尔可夫过程。其难点是从可观察的参数中确定该过程的隐含参数,然后利用这些参数来作进一步的分析,例如模式识别。
HMM模型解决的问题一般都包含两个特征:(1)问题是基于序列的,比如时间序列;(2)问题中包含两种状态属性,一种是我们可以观测到的状态序列,称为可见状态序列或者观测序列,一种是隐藏的状态序列,称为隐含序列,有的地方也叫状态序列。
要了解HMM,首先需要知道什么是马尔可夫链以及马尔可夫性质:
一 马尔可夫链
马尔可夫链是一组具有马尔可夫性质的离散随机变量的集合,而马尔可夫性质指的是一个时刻一个事件的发生概率,只与其前一刻的随机变量的概率相关,而与再之前的没有关系。举个简单的例子,比如我要预测今天的天气是不是会下雨,那么如果满足马尔可夫性质的话,那就只与昨天的天气有关系,而与再之前的天气没有关系。这样去假设的话在很多场景下可能都不是完全符合(就比如预测股票价格),但是这么做可以大大地简化模型的复杂度,因此马尔可夫链在很多时间序列模型中得到广泛的应用。数学表达如下:
假设状态序列为,则
二 隐马尔可夫模型
在了解了马尔可夫链之后,我们发现其最大的缺点就是在于当前时刻状态的概率只与前一个时刻状态的概率相关,这一点很多场景都不满足这种情况,所以就出现了隐马尔科夫模型。隐马尔科夫模型是在马尔科夫模型的基础之上加上了一个隐变量,在考虑当前时刻的状态概率时,还需要同时参考当前时刻与上一时刻的隐变量的状态。拿股票价格预测来举例,比如说我还是要预测今天的股票价格,那么现在就不仅仅只考虑昨天的股票价格了,还要考虑一下最近这支股票的价格趋势,综合这两个条件去考虑,是不是就显得更为合理了一些,那么这个趋势就是隐藏的变量。
先定义一些变量以支撑后续的表达,假设是所有可观测状态的集合,M是可观测状态的数量,是所有隐含状态的集合,N是隐含状态的数量。那么对应一个长度为T的序列,其隐含序列用表示,观测序列用表示,其中。
2.1 两个很重要的假设
(1)齐次马尔可夫链假设
任意时刻的隐藏状态只依赖于它的前一刻的隐藏状态,这样的假设其实也存在有一些场景并不满足这样的条件,但是这样做的好处就是能让模型变得简单,便于求解。假设在时刻t的隐含状态为,在t+1时刻的隐含状态为,那么根据假设则在隐含状态从t时刻转移到t+1时刻时的转移概率为:
(2)观测独立性假设
任意时刻的观测状态只依赖于当前时刻的隐含状态,这个也是为了简化模型。假设在时刻t的隐含状态为,对应的观测状态为,那么从隐含状态生成观测状态的概率为: