隐马尔科夫模型(HMM)
Posted yuliured
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了隐马尔科夫模型(HMM)相关的知识,希望对你有一定的参考价值。
基本概念
1.1Markov Models
处理顺序数据的最简单的方式是忽略顺序的性质,将观测看做独立同分布,然而这样无法利用观测之间的相关性。例如:预测下明天是否会下雨,所有数据看成独立同分布只能得到雨天的相对频率,而实际中,我们知道天气会呈现持续若干天的趋势,观测今天是否下雨对预测明天是否下雨有很大帮助。引入马尔科夫模型(Markov Models)。
1)假设只与最近的一次观测有关,而独立于其他所有之前的观测,那么我们就得到了 一阶马尔科夫链(first-order Markov chain):
观测
xn
的一阶马尔科夫链,其中,特定的观测
xn
的条件概率分布
p(xn|xn−1)
只以前一次观测
xn−1
为条件。
2)允许预测除了与当前观测有关以外,还与当前观测的前一次观测有关,那么我们就得到了二阶马尔科夫链:
二阶马尔科夫链,其中特定的观测 xn 依赖于前两次观测 xn−1 和 xn−2 的值
3)一阶马尔科夫链中的条件概率分布 p(xn|xn−1) 由K -1个参数指定,每个参数都对应于 xn−1 的K个状态,因此参数的总数为K(K -1)。
M阶,则有参数个数 km(k−1) (M指数增长!!)
如何构造任意阶数的不受马尔科夫假设限制的序列模型,同时能够使用较少数量的参数确定??
对于每个观测
xn
,我们引入一个对应的潜在变量
zn
(类型或维度可能与观测变量不同)。假设潜在变量构成了马尔科夫链,得到的图结构被称为状态空间模型(state space model):
隐马尔科夫模型可以被看成上图所示的状态空间模型的一个具体实例,其中潜在变量是离散的。
1.2Hidden Markov Models
定义:
隐马尔可夫模型是关于时序的概率模型,描述由一个隐藏的马儿可夫链随机生成不可观察的状态随机序列,再由各个状态生成一个观测而产生随机序列的过程。
- 状态序列:隐藏的马尔可夫链随机生成的状态序列,称为状态序列(state sequence);
- 观测序列:每个状态生成一个观测,而由此产生的观测的随机序列,称为观测序列(observation sequence)。
- 时刻:序列的每一个位置又看作是一个时刻。
设
Q:所有可能的状态的集合
Q=q1,q2,...q,N
;N是可能的状态数
V:所有可能的观测的集合
V=v1v2,...,vn
;M是可能的观测数
I:长度为T的状态序列
I=(i1,...,iT)
O:对应的观测序列
O=(o1,oT)
A:状态转移概率矩阵
A=[aij]NXN
;其中
aij=p(it+1=qj|it=qi)
,i=1,2,…,N;j=1,2,…N;
在时刻t处于状态
qi
的条件下在时刻t+1转移到状态
qj
的概率。
B:观测概率矩阵
B=[bj(k)]NXN
;其中
bj(k)=p(ot=vk|it=qj)
,k=1,2,…M; j=1,2,…N;
是在时刻t处于状态
qj
的条件下生产观测
v机器学习算法之——隐马尔可夫模型(Hidden Markov Models,HMM) 代码实现