隐马尔科夫模型——简介

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

7. HMM观测序列生成过程

输入:因马尔科夫模型(π,A,B),以及观测序列长度T
输出:观测序列
(1)按照出事状态分布π产生状态 i1
(2)令t=1
(3)按照状态 i(t) 的观测概率分布(混淆矩阵)生成第 t 个观察值
(4)按照状态 i(t) 的状态转移概率(转移概率矩阵)产生第t+1个状态 i(t+1)
(5)令t=t+1;如果 t < T ,回到步骤(3),否则终止



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246774.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

训练的神经网络不工作?一文带你跨过这37个坑

近日&#xff0c;Slav Ivanov 在 Medium 上发表了一篇题为《37 Reasons why your Neural Network is not working》的文章&#xff0c;从四个方面&#xff08;数据集、数据归一化&#xff0f;增强、实现、训练&#xff09;&#xff0c;对自己长久以来的神经网络调试经验做了 37…

HMM——前向算法与后向算法

1. 前言 前向算法和后向算法主要还是针对HMM三大问题之一的评估问题的计算&#xff0c;即给定模型参数&#xff0c;计算观察序列的概率。文章不介绍过多公式&#xff0c;主要看两个例子 复习一下HMM的三大要素&#xff08;以海藻&#xff08;可观测&#xff09;和天气&#x…

HMM——维特比算法(Viterbi algorithm)

1. 前言 维特比算法针对HMM第三个问题&#xff0c;即解码或者预测问题&#xff0c;寻找最可能的隐藏状态序列&#xff1a; 对于一个特殊的隐马尔可夫模型(HMM)及一个相应的观察序列&#xff0c;找到生成此序列最可能的隐藏状态序列。 也就是说给定了HMM的模型参数和一个观测…

HMM——前向后向算法

1. 前言 解决HMM的第二个问题&#xff1a;学习问题&#xff0c; 已知观测序列&#xff0c;需要估计模型参数&#xff0c;使得在该模型下观测序列 P(观测序列 | 模型参数)最大&#xff0c;用的是极大似然估计方法估计参数。 根据已知观测序列和对应的状态序列&#xff0c;或者说…

Web安全(吴翰清)

安全工程师的核心竞争力不在于他能拥有多少个 0day&#xff0c;掌握多少种安全技术&#xff0c;而是在于他对安全理解的深度&#xff0c;以及由此引申的看待安全问题的角度和高度。 第一篇 我的安全世界观 脚本小子 “Script Kids”。 黑客精神所代表的 Open、Free、Share。…

机器学习两种方法——监督学习和无监督学习(通俗理解)

前言 机器学习分为&#xff1a;监督学习&#xff0c;无监督学习&#xff0c;半监督学习&#xff08;也可以用hinton所说的强化学习&#xff09;等。 在这里&#xff0c;主要理解一下监督学习和无监督学习。 监督学习&#xff08;supervised learning&#xff09; 从给定的训…

Tensorflow中padding的两种类型SAME和VALID

边界补充问题 原始图片尺寸为7*7&#xff0c;卷积核的大小为3*3&#xff0c;当卷积核沿着图片滑动后只能滑动出一个5*5的图片出来&#xff0c;这就造成了卷积后的图片和卷积前的图片尺寸不一致&#xff0c;这显然不是我们想要的结果&#xff0c;所以为了避免这种情况&#xff…

机器学习两种距离——欧式距离和马氏距离

我们熟悉的欧氏距离虽然很有用&#xff0c;但也有明显的缺点。它将样品的不同属性&#xff08;即各指标或各变量&#xff09;之间的差别等同看待&#xff0c;这一点有时不能满足实际要求。例如&#xff0c;在教育研究中&#xff0c;经常遇到对人的分析和判别&#xff0c;个体的…

最小二乘法深入

上次写了一个一次函数yaxb类型的最小二乘法&#xff0c;即可以看做是n维输入列向量对应的一个n维输出列向量&#xff0c;然后对已知结果进行学习&#xff0c;得到拟合公式。这里对m*n的矩阵进行最小二乘法分析。 设模型的输出为和训练集输出&#xff0c;它们之间的平方误差为&…

ubuntu16.04 制作gif

byzanz安装 sudo apt-get install byzanz byzanz-record #录像byzanz-playback #回放 下载完成后打开命令行输入byzanz-record –help 其中我们重点关注几个参数 * -d 动画录制的时间,默认录制10秒 * -e 动画开始延迟 * -x 录制区域的起始X坐标 * -y 录制区域的起始Y坐标 …

典型关联分析CCA(canonical correlation analysis)

先看两个数学概念&#xff1a; 相关系数&#xff08;参看百度百科&#xff09; 相关系数是用以反映变量之间相关关系密切程度的统计指标。相关系数是按积差方法计算&#xff0c;同样以两变量与各自平均值的离差为基础&#xff0c;通过两个离差相乘来反映两变量之间相关程度 相…

Kullback–Leibler divergence(相对熵,KL距离,KL散度)

1 前言 注意两个名词的区别&#xff1a; 相对熵&#xff1a;Kullback–Leibler divergence 交叉熵&#xff1a;cross entropy KL距离的几个用途&#xff1a; ① 衡量两个概率分布的差异。 ② 衡量利用概率分布Q 拟合概率分布P 时的能量损耗&#xff0c;也就是说拟合以后丢失…

李宏毅机器学习课程11~~~为何要深?

为何要“深”&#xff1f; pluskid的博客 Deep Learning and Shallow Learning Bengio Y. Learning deep architectures for AI. Foundations and trends in Machine Learning, 2009 Deeper is Better? 模型有更多的参数会有更好的结果&#xff0c;这是毋庸置疑的。 深瘦的模…

没事随便写写——matlab图像与矩阵的转换与存储为txt文件

<span style"font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">刚开课&#xff0c;上了一节计算机图像处理&#xff0c;想了一下把图像转换成矩阵表示&#xff0c;然后存储到txt文档中去。图片用的 lena.jpg</span> …

李宏毅机器学习课程12~~~半监督学习

Semi-supervised Learning The distribution of the unlabeled data tell us something. Usually with some assumptions. Semi-Supervised Generative Model 对比学习见 李宏毅机器学习课程&#xff14;~~~分类&#xff1a;概率生成模型 EM算法思路来最大化似然函数。 Self-tr…

Python程序设计—车万翔

程序设计入门—Python 对象和类型 五种基本对象类型 字符串 &#xff08;string&#xff09;&#xff0c;简记为 str 使用 ’ ’ 或 ” ” 括起来的一系列字符 整数&#xff08;integer&#xff09;&#xff0c;简记为 int 十进制&#xff1a;21&#xff0c;八进制&#xf…

【重大修改】动态时间规整(Dynamic Time Warping)

本文只是简单的介绍DTW算法的目的和实现。具体的DTW可以参考一下文献&#xff1a; 离散序列的一致性度量方法&#xff1a;动态时间规整&#xff08;DTW&#xff09; http://blog.csdn.net/liyuefeilong/article/details/45748399 动态时间归整/规整/弯曲(Dynamic time warpi…

从机器学习谈起

很好的一篇文章&#xff0c;转载自博客园&#xff1a;http://www.cnblogs.com/subconscious/p/4107357.html 在本篇文章中&#xff0c;我将对机器学习做个概要的介绍。本文的目的是能让即便完全不了解机器学习的人也能了解机器学习&#xff0c;并且上手相关的实践。这篇文档也算…

核函数

由于下一篇要学机器学习的另外一种模型——核模型&#xff0c;里面涉及到核函数&#xff0c;所以先找了一下核函数的相关知识。 在知乎上看到了一些比较好的解答&#xff0c;详细参考&#xff1a;http://www.zhihu.com/question/24627666 首先举一个核函数把低维空间映射到高…

关于Matlab编程的思考(待续)

Matlab编程的规范化思考 1.并行化 2.释放内存 3.需要调参的变量太多&#xff0c;可考虑将变量都放到一个结构体里面。 4.find(y),就是要找到y中那些非零项的指引 5.代码运行出现问题的时候&#xff0c;在命令行输入why就可以得到答案 6.输入bench可以给电脑跑分。 7.hom…