机器学习算法之隐马尔可夫模型
马尔可夫性质及马尔可夫链
马尔可夫性质
设 是一个随机过程,E为其状态空间,若对于任意的 任意的 ,随机变量X(t) 在已知变量 之下的条件分布函数只与 有关,而与 无关,即条件分布函数满足下列等式,此性质称为马尔可夫性质。如果随机过程满足马尔可夫性,则该过程称为马尔可夫过程。
马尔可夫链
马尔可夫链是指具有马尔可夫性质的随机过程。在过程中,在给定当前信息的情况下,过去的信息状态对于预测将来状态是无关的。
在马尔可夫链的每一步,系统根据概率分布,可以从一个状态变成另外一个状态,也可以保持当前状态不变。状态的改变叫做转移,状态改变的相关概率叫做转移概率。
马尔可夫链中的三元素是:状态空间S、转移概率矩阵P、初始概率分布π。
隐马尔可夫模型
隐马尔可夫模型(Hidden Markov Model,HMM)是一种统计模型,在语音识别、行为识别、NLP、故障诊断等领域具有高效的性能。
HMM是关于时序的概率模型,描述一个含有未知参数的马尔可夫链所生成的不可观测的状态随机序列,再由各个状态生成观测随机序列的过程。HMM是一个双重随机过程,具有一定状态的隐马尔可夫链和随机的观测序列。
HMM随机生成的状态随机序列被称为状态序列,每个状态生成一个观测,由此产生的观测随机序列,被称为观测序列。
是不可观测的状态 是可观测到的序列。
HMM由隐含状态S、可观测状态O、初始状态概率矩阵 π、隐含状态转移概率矩阵A、可观测值转移矩阵B(又称为混淆矩阵,Confusion Matrix),π 和A决定了状态序列,B决定观测序列,因此HMM可以使用三元符号表示,称为HMM的三元素:
S是所有可能的状态集合:
O是所有可能的观测集合:
I是长度为T的状态序列:
Q是对应的观测序列:
A是隐含状态转移概率矩阵:
其中 是在时刻t处于状态 的条件下,时刻t+1转移到状态 的概率。
B是可观测值转移概率矩阵:
其中 是在时刻t处于状态 的条件下生成观测值 的概率。
π 是初始状态概率向量:
其中 是在时刻t=1处于状态 的概率。
HMM的两个基本性质:
HMM的三个问题
概率计算问题:前向-后向算法
给定模型 λ=(A,B,π) 和观测序列 ,计算模型 λ 下观测到序列Q出现的概率 P(Q|λ)
学习问题:Baum-Welch算法(状态未知)
已知观测序列 ,估计模型 λ=(A,B,π) 的参数,使得在该模型下观测序列 P(Q|λ) 最大
预测问题:Viterbi算法
给定模型 λ=(A,B,π) 和观测序列 ,求给定观测序列条件概率 P(I|Q, λ) 最大的状态序列I
概率计算问题
直接计算法
按照概率公式,列举所有可能的长度为T的状态序列 ,求各个状态序列I与观测序列
的联合概率 P(Q,I;λ) ,然后对所有可能的状态序列求和,从而得到最终的概率 P(Q;λ) 。
前向算法
给定 λ ,定义到时刻t部分观测序列为 且状态为 的概率为前向概率。记做:
注释: 代表 状态为 i 的隐状态对应的 观测状态 的概率
初值: 注释: 代表 状态转移矩阵中 隐状态为 i ,q对应y 的概率值
递推:对于t=1,2,…,T−1,
最终:
推导过程:
后向算法
给定λ,定义到时刻t状态为 的前提下,从t+1到T部分观测序列为 的概率为后向概率。记做:
初值:βT(i)=1
递推:对于 1t=T−1,T−2,…,1,
最终:
推导过程:
单个状态的概率
求给定模型 λ 和观测序列 Q 的情况下,在时刻 t 处于状态 的概率,记做:
单个状态概率的意义主要是用于判断在每个时刻最可能存在的状态,从而可以得到一个状态序列作为最终的预测结果。
两个状态的联合概率
求给定模型λ λλ和观测序列Q的情况下,在时刻t处于状态 并在时刻t+1处于状态 的概率,记做:
学习问题
若训练数据包含观测序列和状态序列,则HMM的学习问题非常简单,是监督学习算法。利用大数定理的结论“频率的极限是概率”,直接给出HMM的参数估计。
若训练数据只包含观测序列,则HMM的学习问题需要使用EM算法求解,是非监督学习算法。此时一般使用Baum-Welch算法。
所有的观测数据为 ,所有的隐状态为 ,则完整的数据为 (Q,I) ,完整数据的对数似然函数为ln(p(Q,I;λ)),然后直接使用EM算法的方式来进行参数估计。
Baum-Welch算法
极大化L函数,分别可以求得π、a、b的值。
预测问题
近似算法
将在每个时刻t最有可能的状态作为最终的预测状态,使用下列公式计算
概率值:
Viterbi算法
Viterbi算法实际是用动态规划的思路求解HMM预测问题,求出概率最大的“路径”,每条“路径”对应一个状态序列。
HMM应用
HMM的常见应用主要用于进行特征提取的场景中或者数据标注的场景中。
在Scikit-learn中安装HMM工具包:
pip install hmmlearn
机器学习算法之隐马尔可夫模型相关推荐
- 【机器学习算法】隐马尔可夫模型HMM(一)
目录 一.马尔可夫模型 1. 马尔可夫性 2. 马尔可夫链 3. 马尔可夫链案例 二.隐马尔可夫模型HMM 1. named entity recognition(命名实体识别)问题概述 2. 什么是 ...
- 机器学习算法之——隐马尔可夫模型(Hidden Markov Models,HMM) 代码实现
@Author:Runsen 隐形马尔可夫模型,英文是 Hidden Markov Models,就是简称 HMM. 既是马尔可夫模型,就一定存在马尔可夫链,该马尔可夫链服从马尔可夫性质:即无记忆性. ...
- 【大道至简】机器学习算法之隐马尔科夫模型(Hidden Markov Model, HMM)详解(3)---学习问题:Baum-Welch算法推导及Python代码实现
☕️ 本文系列文章汇总: (1)HMM开篇:基本概念和几个要素 (2)HMM计算问题:前后向算法 (3)HMM学习问题:Baum-Welch算法 (4) HMM预测问题:维特比算法 ☕️ 本文来自专栏 ...
- 【机器学习】【隐马尔可夫模型-3】后向算法:算法详解+示例讲解+Python实现
0.前排提示 csdn有些数学公式编辑不出来,所以本博用容易书写的表达式来表示专业数学公式,如: (1) 在本博客中用α<T>(i)来表示 (2)在本博客中用[i=1, N]∑来表示 注 ...
- 【火炉炼AI】机器学习044-创建隐马尔科夫模型
[火炉炼AI]机器学习044-创建隐马尔科夫模型 (本文所使用的Python库和版本号: Python 3.6, Numpy 1.14, scikit-learn 0.19, matplotlib 2 ...
- 机器学习笔记之隐马尔可夫模型(六)解码问题
机器学习笔记之隐马尔可夫模型--解码问题 引言 解码问题介绍 解码问题分析 引言 上一节介绍了使用狭义EM算法对模型参数λ\lambdaλ.本节将介绍使用维特比算法(Viterbi)处理解码问题(De ...
- python 隐马尔科夫_机器学习算法之——隐马尔可夫(Hidden Markov ModelsHMM)原理及Python实现...
前言 上星期写了Kaggle竞赛的详细介绍及入门指导,但对于真正想要玩这个竞赛的伙伴,机器学习中的相关算法是必不可少的,即使是你不想获得名次和奖牌.那么,从本周开始,我将介绍在Kaggle比赛中的最基 ...
- (转载)机器学习知识点(十一)隐马尔可夫模型
隐马尔可夫模型 (Hidden Markov Model,HMM) 最初由 L. E. Baum 和其它一些学者发表在一系列的统计学论文中,随后在语言识别,自然语言处理以及生物信息等领域 ...
- 机器学习中的隐马尔科夫模型(HMM)详解
前导性推荐阅读资料: 从朴素贝叶斯分类器到贝叶斯网络(上) 从朴素贝叶斯分类器到贝叶斯网络(下) 欢迎关注白马负金羁的博客 http://blog.csdn.net/baimafujinji,为保证公 ...
最新文章
- 利用owc生成excel并且显示在页面
- 消息队列—经典5连问—你能抗几道?
- 曾是谷歌程序员,抛下百万年薪创业,4 年成就 7 亿用户,今身价百亿!
- 列表生成式、生成器、迭代器
- Python 3.6出现报错解决方案:No Python 3.6 installation was detected,无法卸载Python
- centos7 mysql创建表_centos7下创建数据库和用户
- vue里面rules_vue如何使用rules对表单字段进行校验
- EclipseIDE常用快捷键
- 加入MapReduce后完全分布式集群搭建
- 拓端tecdat|python中的copula:Frank、Clayton和Gumbel copula模型估计与可视化
- 初等模型---交通流和道路通行能力
- 小米游戏本2019 I7-9750H安装黑苹果11.5 big Sur
- mini programe
- Keil--视力保护--背景设置
- banner 图片自动轮播
- JavaScript学习笔记03【基础——对象(RegExp、Global)】
- skinsdog 狗网官网CSGO饰品皮肤开箱网站可直接取回
- android如何暂停倒计时,Android计时器和倒计时的实现(含开始,暂停,和复位)...
- 博客图片上传:Typora+PicGo图床
- Linux-hostname查看及修改