1.准备
随机过程是一连串随机事件动态关系的定量描述。
马尔可夫过程,Markov process,是随机过程的一种。液体中微粒所作的布朗运动就是一个马尔可夫过程。
马尔可夫链,Markov chain,是具有马尔可夫性质的随机变量的一个数列,如
(X1,X2,X3,...)(1-1)
Xn+1
表示在时间n+1时的状态,它仅依赖于
Xn
,可用式(1-2)表示:
P(Xn+1=x|X1=x1,X2=x2,...,Xn=xn)=P(Xn+1=x|Xn=xn)(1-2)
马尔可夫性质上面这个恒等式可以被看作是马尔可夫性质。
2.隐马尔可夫模型
HMM,Hidden Markov Model,隐马尔可夫模型。
它是关于时序的概率模型, 先有一个不可观测的状态随机序列, 再由各个状态生成一个可观测的序列.
隐马尔可夫模型可以用五个元素来描述,包括2个状态集合和3个概率矩阵:
- 隐含状态Q
Q={q1,q2,...,qn}
这些状态之间满足马尔可夫性质,是马尔可夫模型中实际所隐含的状态。这些状态通常无法通过直接观测而得到。可记隐含状态数目为N.
状态序列 I={i1,i2,...,it} - 观测V
V={v1,v2,...,vm}
在模型中与隐含状态相关联,可通过直接观测而得到。可观测状态的数目不一定要和隐含状态的数目一致,数目可记为M.
观测序列 O={o1,o2,...,ot} - 初始状态概率向量π
表示在初始时刻t=1时的各状态概率. 如 πi 表示 P(i1=qi) . 状态转移概率矩阵A
A=[aij]N×N
aij=P(it+1=qj|it=qi)观测概率矩阵 B
B=[bjk]N×M
bjk=P{ot=vk|it=qj}
2.1 画图表示
图2-1 隐马模型的画图表示
此图中, X为状态, y为观测. 描述了Q,V,A,B.
3. 使用场景
对于HMM来说,如果提前知道了
λ=(A,B,π)
,做模拟是相当容易的。但是应用HMM模型时候呢,往往是缺失了一部分信息的. 如何应用算法去估计这些缺失的信息,就成了一个很重要的问题。
三个基本问题是
- 概率计算
给定模型 λ=(A,B,π) 和观测序列 O, 计算在此模型下观测序列O出现的概率 P(O|λ) - 学习问题
已知O, 估计模型 λ=(A,B,π) 的参数, 使得在此模型下, 观测序列发生的概率 P(O|λ) 最大, 即用最大似然法来估计参数. - 预测问题
已知 λ=(A,B,π) 和O, 求 argmaxIP(I|O,λ) , 即 已知观测序列, 求最可能的状态序列.
4.通俗例子
4.1 掷骰子
来自知乎, 详见: http://www.zhihu.com/question/20962240
准备三个不同的骰子。第一个骰子是我们平常见的骰子(称这个骰子为D6),6个面,每个面(1,2,3,4,5,6)出现的概率是1/6。第二个骰子是个四面体(称这个骰子为D4),每个面(1,2,3,4)出现的概率是1/4。第三个骰子有八个面(称这个骰子为D8),每个面(1,2,3,4,5,6,7,8)出现的概率是1/8。
现在开始掷骰子,每次都先从三个骰子里随机挑一个,再用它掷出去。重复n次,就得到了n个数字。假设实验10次,摸到的骰子依次是
(D6,D8,D8,D6,D4,D8,D6,D6,D4,D8)
(2-1)结果为:
(1,6,3,5,2,7,3,5,2,4)
(2-2)。
数列(2-1)叫做隐含状态链。隐含状态转移概率矩阵描述了隐含状态链的发展。
数列(2-2)叫做可见状态链。隐含状态转移概率矩阵和状态输出矩阵共同描述了可见状态链的发展。
图1 HMM示意图
一种有价值的问题见下。
知道骰子有几种(隐含状态集合),不知道每种骰子是什么(状态输出概率),观测到很多次掷骰子的结果(可见状态集合),想要反推出每种骰子是什么(状态输出概率)。
4.2 盒子和球模型
统计学习方法, 李航, P173.