马尔可夫链
- 马尔可夫性质:无记忆性,这一时刻的状态,受且仅受前一时刻的影响。
- 马尔可夫链:是指具有马尔可夫性质的随机过程。在给定当前信息的情况下,过去的信息状态对于预测将来状态是无关的。
- 马尔可夫链三元素:状态空间S、转移概率矩阵P、初始概率分布π。
HMM
- 隐马尔可夫模型(Hidden Markov Model,HMM)是统计模型,用来描述一个含有未知参数的马尔可夫链所生成的不可观测的状态随机序列,再由各个状态生成观测随机序列的过程。
- HMM随机生成的状态随机序列被称为状态序列;每个状态生成一个观测随机序列,被称为观测序列。
- 性质1: 在第t时刻发生状态的概率只和t-1时刻有关。
性质2: 第t时刻的观测值只和第t时刻的状态有关 - HMM由隐含状态S、可观测状态O、初始状态概率矩阵π、隐含状态转移概率矩阵A、可观测值转移矩阵B组成。
π和A决定了状态序列,B决定观测序列,因此HMM可以使用三元符号表示,称为HMM的三元素: λ ( A , B , π ) \lambda(A,B,\pi) λ(A,B,π)
- 隐含状态链(状态序列)、可见状态链(观测序列)、转换概率
- 对于HMM,如果提前知道所有隐含状态之间的转换概率和所有隐含状态到所有可见状态之间的输出概率,做模拟是相当容易的。但是应用HMM模型往往是缺失了一部分信息的:
- 知道骰子有几种,每种骰子是什么,每次掷的都是什么骰子,根据掷骰子掷出的结果,求产生这个结果的概率。
- 知道骰子有几种(隐含状态数量),每种骰子是什么(转换概率),根据掷骰子掷出的结果(可见状态链),我想知道每次掷出来的都是哪种骰子(隐含状态链)。
(求最大似然状态路径:求出一串骰子序列,这串骰子序列产生观测结果的概率最大。) - 知道骰子有几种(隐含状态数量),每种骰子是什么(转换概率),根据掷骰子掷出的结果(可见状态链),我想知道掷出这个结果的概率。
- 知道骰子有几种(隐含状态数量),不知道每种骰子是什么(转换概率),观测到很多次掷骰子的结果(可见状态链),我想反推出每种骰子是什么(转换概率)。
How to do
假设有三个盒子,编号为1,2,3;每个盒子都装有黑白两种颜色的小球,球的比例。如下:
按照下列规则的方式进行有放回的抽取小球,得到球颜色的观测序列:
1、按照π的概率选择一个盒子,从盒子中随机抽取出一个球,记录颜色后放回盒子中;
2、按照某种条件概率选择新的盒子,重复该操作;
3、最终得到观测序列:“白黑白白黑”
例如: 每次抽盒子按一定的概率来抽,也可以理解成随机抽。
第1次抽了1号盒子①,第2次抽了3号盒子③,第3次抽了2号盒子②.... ; 最终如下:
①→③→②→②→③ 状态值
白→黑→白→白→黑 观测值
1、状态集合: S={盒子1,盒子2,盒子3}
2、观测集合: O={白,黑}
3、状态序列和观测序列的长度 T=5 (我抽了5次)
4、初始概率分布: π 表示初次抽时,抽到1盒子的概率是0.2,抽到2盒子的概率是0.5,抽到3盒子的概率是0.3。
5、状态转移概率矩阵 A:a11=0.5 表示当前我抽到1盒子,下次还抽到1盒子的概率是0.5;
6、观测概率矩阵 - 混淆矩阵 - 为了不和之前的混淆矩阵概念冲突,可以称之为发射矩阵,即从一个状态发射到另一个状态: B:如最初的图,b11=第一个盒子抽到白球概率0.4,b12=第一个盒子抽到黑球概率0.6;
-
解码问题(状态预测)
给定模型λ=(A,B,π)和观测序列Q={q1,q2,…,qT},求给定观测序列条件概率P(I|Q,λ)最大的状态序列I
Viterbi维特比算法:已知观测到序列 Q=白→黑→白→白→黑,用Viterbi算法求出在哪一种状态序列发生的可能性最大,即抽取什么样的盒子顺序,更可能得到白→黑→白→白→黑这种结果。
-
评估问题(观测计算)
给定模型λ=(A,B,π)和观测序列Q={q1,q2,…,qT},计算模型λ下观测到序列Q出现的概率P(Q|λ)
前向-后向算法:已知观测到序列 Q=白→黑→白→白→黑,但不知道状态序列 I=①→③→②→②→③;求解P(Q|λ),即Q=白→黑→白→白→黑这个观测序列发生的最大概率。
-
学习问题(模型)
已知观测序列Q={q1,q2,…,qT},估计模型λ=(A,B,π)的参数,使得在该模型下观测序列P(Q|λ)最大
Baum-Welch鲍姆-韦尔奇算法:EM算法的一个特例,专用来求解隐马尔科夫中隐状态参数λ=(A,B,π)。即:根据已知的观测到序列 Q=白→黑→白→白→黑,去寻找一组模型参数λ=(A,B,π),使得在该模型中观测序列发生的可能性P(Q|λ)最大。
|遍历所有的状态去计算当前状态发生的概率(暴力法)
- 维特比算法:从序列头部算起,计算序列长度为1时最大概率得到观测值所在的状态。然后,依此类推。
- 前向-后向算法:将每次观测情况的概率递归进行加和计算。
方向不同仅因为从序列头尾开始计算不同 - 鲍姆-韦尔奇算法:EM算法