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(隐状态 | 观测序列) 最大的状态序列。即给定观测序列,求最有可能的对应的状态序列。