马尔可夫过程

针对隐马尔可夫模型第一个问题的解决方法之前向算法

笑着哭i 提交于 2020-01-31 13:05:58
复习, 状态序列(state sequence),观测序列(observation sequence) 问题一 概率计算问题 转载链接:https://zhuanlan.zhihu.com/p/27056207 给定模型的情况下,求某种观测序列出现的概率。 一般方法: 前向、后向算法 举例来说明一下,例子如下:(例子来源于维基百科) 考虑一个村庄,所有村民都健康或发烧,只有村民医生才能确定每个人是否发烧。医生通过询问患者的感受来诊断发烧。村民只能回答说他们觉得正常,头晕或感冒。 医生认为,他的患者的健康状况作为离散的马可夫链。 “健康”和“发烧”有两个状态,但医生不能直接观察他们;健康与发烧的状态是隐藏的。每天都有机会根据患者的健康状况,病人会告诉医生他/她是“正常”,“感冒”还是“头昏眼花”。 比如,给定的HMM模型参数已知,求出三天观察是(Dizzy,Cold,Normal)的概率是多少?对应的HMM模型参数已知的意思,就是说A(trainsition_probability),B(emission_probability),pi 矩阵是已经知道的。 这里仅算两天 这个问题我们最容易想到的解法就是将路径全部遍历一遍, 假如第一天为 Healthy 第一天为Healthy的概率为:0.6 在第一天为Healthy的基础上,观察为Dizzy的概率为: P(Dizzy|Healthy

HMM隐马尔可夫模型详解

折月煮酒 提交于 2019-12-06 14:14:24
1 隐马尔可夫模型HMM 隐马尔科夫模型(Hidden Markov Model,以下简称HMM)是比较经典的机器学习模型了,它在语言识别,自然语言处理,模式识别等领域得到广泛的应用。 当然,随着目前深度学习的崛起,尤其是 RNN , LSTM 等神经网络序列模型的火热,HMM的地位有所下降。 但是作为一个经典的模型,学习HMM的模型和对应算法,对我们解决问题建模的能力提高以及算法思路的拓展还是很好的。 1.1 什么样的问题需要HMM模型 首先我们来看看什么样的问题解决可以用HMM模型。 使用HMM模型时我们的问题一般有这两个特征: 1)我们的问题是基于序列的,比如时间序列,或者状态序列。 2)我们的问题中有两类数据,一类序列数据是可以观测到的,即观测序列;而另一类数据是不能观察到的,即隐藏状态序列,简称状态序列。 有了这两个特征,那么这个问题一般可以用HMM模型来尝试解决。这样的问题在实际生活中是很多的。比如:我现在在打字写博客,我在键盘上敲出来的一系列字符就是观测序列,而我实际想写的一段话就是隐藏序列,输入法的任务就是从敲入的一系列字符尽可能的猜测我要写的一段话,并把最可能的词语放在最前面让我选择,这就可以看做一个HMM模型了。再举一个,我在和你说话,我发出的一串连续的声音就是观测序列,而我实际要表达的一段话就是状态序列,你大脑的任务

马尔可夫蒙特卡洛采样法

China☆狼群 提交于 2019-12-05 11:33:08
可以用于比较复杂的分布的采样,并且在高维空间中也能使用 马尔可夫蒙特卡洛法 蒙特卡洛法:基于采样的数值型近似求解方法 马尔可夫链:用于采样 MCMC基本思想 针对目标分布,构造一个马尔可夫链,使得该马尔可夫链的平稳分布就是目标分布 从任何一个初始状态出发,沿着马尔可夫链进行转移 最终的状态转移序列会收敛到目标分布,得到一系列样本 核心点:构造马尔可夫链、确定状态转移序列 Metropolis-Hastings采样法 对于目标分布 \(p(x)\) ,选择一个易采样的参考条件分布 \(q(x^*|x)\) ,并令 \[A(x, x^*) = \mathop{\min} \{1, \frac{p(x^*)q(x|x^*)}{p(x)q(x^*|x)} \}\] 然后根据如下过程进行采样 随机选一个初始样本 \(x^{(0)}\) For t = 1, 2, 3,,,,,, 根据参考条件分布 \(q(x^{*}|x^{(t-1)})\) 抽取一个样本 \(x^{*}\) 根据均匀分布 \(U(0,1)\) 产生随机数 \(u\) 若 \(u < A(x^{(t-1)}, x^*)\) ,则令 \(x^{(t)} = x^*\) ,否则令 \(x^{(t)} = x^{(t-1)}\) 样本序列 \(\{ \dots, x^{(t-1)}, x^{(t)} \}\) 最终会收敛到目标分布