隐马尔科夫模型——简介

时间:2022-07-19 23:25:22

1.  前言

学习了概率有向图模型和概率无向图模型,回头再看了一下隐马尔可夫模型(hidden Markov model,HMM)。

HMM属于树状有向概率图模型,主要用于对时序数据的建模,它的潜在变量是离散的;而另一种状态空间模型,称为线性动态系统(linear dynamical system,LDS),它的潜在变量服从高斯分布。

HMM是描述由马尔科夫链随机生成观测序列的过程,属于机器学习里面的生成模型

本文主要参考文献为:PRML、《统计学习方法》、隐马尔可夫模型HMM英文文档

2. 马尔科夫模型

独立同分布忽略了数据的顺序模式。比如给定了一系列的天气观测,如果按照独立同分布来看,如下图所示,那么得到的数据信息就是雨天的相对频率;然而实际上明天下雨在很大程度上依赖于最近几天天气的。

隐马尔科夫模型——简介

马尔科夫链就是放松了独立同分布的假设,用概率乘积的形式表示观测序列的联合概率分布。

隐马尔科夫模型——简介

如果看了前面的概率有向图,会发现马尔科夫链的概率有向图画起来很简单,就是当前节点以前面所有的节点为条件,即被前面所有的节点连接。

如果假设每个条件概率分布只与最近的一次观测有关,与其它观测独立,就得到了一阶马尔科夫链(first order Markov chain),其实这个就是我们常见的马尔科夫链,其联合概率分布为:

隐马尔科夫模型——简介

隐马尔科夫模型——简介

这样还可以求出给定时刻n之前所有的观测,得到第n 个观测的条件概率

隐马尔科夫模型——简介

在这种马尔科夫模型中,条件概率分布隐马尔科夫模型——简介被限制相等,在静止时间序列的预测中(比如红绿灯),称为同质马尔科夫链(homogeneous Markov chain)。

有时候我们希望用更早的观测来预测序列,比如二阶马尔科夫链就与前两个观测有关:

隐马尔科夫模型——简介

联合概率分布可以写出来为:

隐马尔科夫模型——简介

对于一阶马尔科夫模型,如果有K个状态,每个状态有转移到其它的K-1个状态的转移概率,比如为状态1的时候,有转移到第2,....K共(K-1)的转移概率;为状态2的时候,有转移到第1,3,....K共(K-1)的转移概率;......;依次类推,需要K(1-K)个参数。再扩展到M阶马尔科夫模型,就需要隐马尔科夫模型——简介个参数,因此参数的数量随着M指数增加。

为了解决指数增长这个问题,专家们引入隐变量,将隐变量构成马尔科夫链,而非使用观测变量作为马尔科夫链,这样得到的图结构称为状态空间模型(state space model)。

隐马尔科夫模型——简介

这个图就是利用潜在变量的马尔科夫链来表示顺序数据,每个观测以对应的潜在变量的状态为条件。这个图是HMM和LDS的基础。

此图的联合概率分布为:

隐马尔科夫模型——简介

根据前面介绍的概率有向图模型分析:给定了第n+1个状态之前的所有状态时,由于隐状态不可观测,使得条件概率分布隐马尔科夫模型——简介不会有任何的条件独立性,也就是第n+1的预测以来与前面所有的观测。图中如果所有的状态为离散的,那么就得到了HMM。

3. 隐马尔科夫模型

隐马尔科夫模型是统计模型,用来描述一个含有隐含未知参数的马尔可夫过程。

在隐马尔可夫模型中,状态是不可见的,但输出依赖该状态下,是可见的。每个状态通过可能的输出记号有了可能的概率分布。“隐藏”指的是该模型经其传递的状态序列,而不是模型的参数,即使这些参数是精确已知的,我们仍可把该模型称为一个“隐藏”的马尔可夫模型。

有两种生成模式:确定性和非确定性的。

确定性的生成模式:比如红绿灯的变化就是固定的,根据当前状态可以预测下一状态。

非确定性的生成模式:比如天气晴、多云、雨。不能确定下一刻的天气状态,但是我们希望能够生成一个模式来得出天气的变化规律。假设当前天气只与以前的天气状态有关,这被称为马尔可夫假设。

马尔可夫过程就是当前状态只与前n个状态有关。这被称为n阶马尔可夫模型。注意与确定性生成模式的区别,这里得到的是一个概率模型。

对于有M个状态的一阶马尔可夫模型。共有M*M个状态转移。每一个状态转移都有其一定的概率,我们叫转移概率,所有的转移概率可以用一个矩阵表示。每一行每一列的概率和为1.

用一个例子来解释隐马尔科夫模型:

在预测天气时,当不能观察天气时,可以通过观察水藻或者其他植物来预测。这里就包含两个状态:观察状态(水藻的状态)和隐含状态(天气状态)。

语音识别是最为成功的应用,语音信号是观察状态,识别出的文字就是隐含状态。

注意:在任何一种应用中,观察状态的个数和隐含状态的个数可能不一样。

4. HMM三大要素

HMM是一个三元组(π,A,B)

Π=(πi)  初始概率向量,代表的是刚开始的时候各个隐藏状态的发生概率。

A=(aij)  状态转移矩阵,代表的是第一个状态到第二个状态发生的概率。

B=(bij)  混淆矩阵,代表的是处于某个隐状态的条件下,某个观测发生的概率。

这其中,所有的状态转移概率和混淆矩阵在整个系统中是一成不变的,这也是HMM中最不切实且的假设。

5. HMM两大假设

(1)齐次马尔科夫性假设:假设隐藏的马尔科夫链在任意时刻t的状态只依赖其前一时刻的状态,与其它时刻的状态及观测无关,也与当前时刻 t 无关。

隐马尔科夫模型——简介

(2)观测独立性假设:假设任意时刻的观测只依赖于该时刻的马尔科夫链的状态,与其它观测状态无关

隐马尔科夫模型——简介

6. HMM三大基本问题

6.1 评估

概率计算问题,给定模型参数和观测序列,计算在该模型下观测序列出现的概率。利用前向算法或者后向算法计算。

6.2 学习

学习问题,已知观测序列,需要估计模型参数,使得在该模型下观测序列 P(观测序列 | 模型参数)最大,用的是极大似然估计方法估计参数,通常称为前向后向算法或者Baum-Welch算法。

6.3 解码

预测问题,给定模型参数和观测序列,求对给定观测序列条件概率 P(隐状态 | 观测序列) 最大的状态序列。即给定观测序列,求最有可能的对应的状态序列。

7. HMM观测序列生成过程

输入:因马尔科夫模型(π,A,B),以及观测序列长度T 输出:观测序列隐马尔科夫模型——简介 (1)按照出事状态分布π产生状态 i1 (2)令t=1 (3)按照状态 i(t) 的观测概率分布(混淆矩阵)生成第 t 个观察值 (4)按照状态 i(t) 的状态转移概率(转移概率矩阵)产生第t+1个状态 i(t+1) (5)令t=t+1;如果 t < T ,回到步骤(3),否则终止