隐马尔科夫模型(前向后向算法、鲍姆-韦尔奇算法、维特比算法)
概率图模型是一类用图来表达变量相关关系的概率模型。它以图为表示工具,最常见的是用一个结点表示一个或一组随机变量,结点之间的变表是变量间的概率相关关系。根据边的性质不同,可以将概率图模型分为两类:一类是使用有向无环图表示变量间的依赖关系,称为有向图模型或贝叶斯网;另一类是使用无向图表示变量间的相关关系,称为无向图模型或马尔科夫网。
隐马尔科夫模型(简称HMM)是结构最简单的动态贝叶斯网,是一种著名的有向图模型,主要用于时间序数据建模,在语音识别,自然语言处理,生物信息,模式识别中有着广泛的应用,虽说随着RNN和LSTM的崛起,HMM的地位有所下降,但很多时候依然是处理序列问题的好用的算法。
1、隐马尔科夫模型
隐马尔科夫模型的图结构如下
从上图中主要有两个信息:一是观测变量xi 仅仅与与之对应的状态变量yi 有关;二是当前的状态变量yi 仅仅与它的前一个状态变量yi-1 有关。
隐马尔科夫模型是由初始概率分布,状态转移概率分布,以及观测概率分布确定的。设Q是所有可能的状态的集合,V是所有可能的观测的集合(注意:这里的状态集合和观测集合中的个数和序列的长度T是不一样的,每个时间端的状态和观测值都是依照概率生成的,也就意味着在一个序列里面会存在状态和观测值相同的情况)。具体集合表达式如下,其中N是可能的状态数,M是可能的观测数:
假设此时存在一个长度为T的序列,I为其状态序列,O为其观测序列(在HMM模型中每个序列都会包含状态序列和观测序列),序列的表达式如下:
在这里我们引入三组参数来描述我们的模型:
状态转移概率矩阵,,状态转移概率矩阵A的表达式如下(矩阵的维度和状态集合的个数是一样的)
其中aij 描述的是在t 时刻从状态qi 转移到t+1 时刻的状态qj 的概率,其条件概率表达式如下
观测概率矩阵,观测概率矩阵B的表达式如下(矩阵的行数和状态集合的个数相等,列数和观测集合的个数相等)
其中bj(k) 描述的是在t 时刻处于状态qj 的条件下生成观测值vk 的概率(在某一时刻下,从状态输出观测值的可能性有k种),其表达式如下
初始状态概率,初始状态概率π 的表达式如下(整个模型的入口是从确定状态i1 开始的,因此需要初始化该值)
其中πi 就是在t = 1 时刻处于状态qi 的概率
给出了上述三个参数之后,隐马尔科夫模型λ 就可以用它们来表示
在隐马尔科夫模型中作出了两个假设来简化模型:
1)齐次马尔科夫性假设,即假设隐藏的马尔科夫链在任意时刻t 的状态只和前一时刻状态有关,与其他时刻的状态无关(而在深度模型中都会假设和前面多个时刻的状态有关,如LSTM;或者和之前的所有状态相关,如RNN。事实上很多应用场景中都不止是和前一个状态相关),这也就简化了模型的复杂度,因此我们可以获得如下的表达式
2)观测独立性假设,即假设任意时刻的观测只依赖于该时刻的马尔科夫链的状态,与其他观测和状态无关,因此可以获得如下表达式
结合上面两个假设,我们可以将我们的模型中所有变量的联合概率分布给出,这就是所谓的 “马尔科夫链”
当确定了模型的三个参数后,我们可以按照如下规则生成观测值序列
输入的是HMM的模型λ=(A, B, π),观测序列的长度T
输出是观测序列O={ o1, o2, ... oT}
生成的过程如下:
1)根据初始状态概率分布π,生成隐藏状态i1