博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
统计学习方法十:隐马尔科夫模型
阅读量:4943 次
发布时间:2019-06-11

本文共 1518 字,大约阅读时间需要 5 分钟。

一、基本概念

1、马尔科夫假设:当前的状态只与之前的状态有关2、马尔科夫过程:当前的状态只与前n个状态有关,被称为n阶马尔科夫模型。3、马尔科夫链:可以理解为带有概率的状态转移链3、一阶马尔科夫模型:当前的状态只与前一状态有关(1)若有M个状态,则共有M*M个状态转移(2)转移概率:每一个状态转移都有一定的概率,称为~,所有的转移概率用一个M*M的矩阵表示(3)每一个系统开始的时候,需要一个初始概率,称为π向量,表示每种状态作为初始状态出现的概率4、隐马尔科夫模型    可能存在这样一种情况,我们想要的状态并不能直接观察得到,但是呢这个状态和其他某种可观测的状态之间存在一定的概率关系,也就是说可以通过那种可观测的状态(观测状态),来求解我们想要得到的状态(隐状态),这就是隐马尔科夫模型的主要思想。

二、什么是隐马尔科夫模型

1、隐马尔科夫模型定义    隐马尔科夫模型是关于时序的概率模型,描述由一个隐藏的马尔科夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。    简单理解:    (1)首先有一个状态序列,这个序列是不可被观测的  —— 状态序列    (2)状态序列的每个状态可以按照一定的概率生成一个观测    (3)这些观测组合成一个观测序列,显而易见是可被观测的  —— 观测序列    另外:序列的每一个位置又可以被看作一个时刻    隐马尔科夫模型主要用来解决标注问题,需要注意的是,对应着标记的是状态而非观测。也就是说在标注问题中,观测序列是输入,状态序列是输出,根据观测序列预测状态序列。    隐马尔科夫模型是一个生成模型。2、隐马尔科夫模型的两个假设(1)观测值之间严格独立(2)一阶马尔科夫模型:状态的转移过程中当前状态只与前一状态有关注:这也是其和条件随机场(CRF)的主要区别:CRF去除了这两个假设    另,条件随机场是一个判别模型3、隐马尔科夫模型的三要素    假设有N个状态,M个观测(1)状态转移矩阵:一个N*N阶矩阵,描述了各状态间相互转移的概率,记为A(2)观测概率矩阵:一个N*M阶矩阵,描述了每个状态生成每个观测的概率,记为B(3)初始状态概率向量:一个N阶向量,描述了初始时刻处于每个状态的概率,记为π4、隐马尔科夫模型的三个基本问题:(1)概率计算问题:给定模型r=(A,B,π)和观测序列O(o1,o2,...,oT),计算观测序列O出现的概率P(O|r)(2)学习问题:已知观测序列O(o1,o2,...oT),估计模型r的参数,使的观测序列O出现的概率P(O|r)最大(3)预测问题(解码问题):给定模型r=(A,B,π)和观测序列O(o1,o2,...,oT),求最有可能的对应的状态序列。

三、概率计算问题

给定模型r=(A,B,π)和观测序列O(o1,o2,...,oT),计算观测序列O出现的概率P(O|r)主要是两种算法:前向算法和后向算法。为了对比,同时给出两种算法。1、前向概率和后向概率(1)前向概率:给定隐马尔科夫模型r,定义到时刻t,部分观测序列为O1,O2,...Ot且t时刻状态为qi的概率为前向概率(2)后向概率:给定隐马尔科夫模型r,定义在时刻t状态为qi的条件下,从t+1到T的部分观测序列为Ot+1,Ot+1,...OT的概率为后向概率。

680745-20160724220345747-1428144469.png

680745-20160724220310216-730926384.png

2、前向算法与后向算法    输入:隐马尔科夫模型r,观测序列O    输出:观测序列概率P(O|r)(1)前向算法

680745-20160724220705044-1791811627.png

(2)后向算法

680745-20160724220738529-139289118.png

3、算法解析

680745-20160725094201481-1439230394.jpg

680745-20160725094205028-1291355692.jpg
680745-20160725094213263-1399990768.jpg
680745-20160725094803356-1306752619.jpg

转载于:https://www.cnblogs.com/naonaoling/p/5701634.html

你可能感兴趣的文章
<a href="javascript:;"></a>
查看>>
责任心来自爱而不是债
查看>>
网页设计:30个灰常漂亮的老外网页设计作品
查看>>
前端工具 & git笔记
查看>>
Java 集合系列16之 HashSet详细介绍(源码解析)和使用示例
查看>>
java 8-6 抽象的练习
查看>>
用矩阵表示物体的缩放
查看>>
JS中的let和var的区别
查看>>
2-1 CPU多级缓存-缓存一致性.mkv
查看>>
2.1文法
查看>>
【BZOJ1085】迭代加深+启发式搜索
查看>>
安装python工具
查看>>
【SICP练习】53 练习2.21
查看>>
Azure powershell 获取 vmSize 可用列表的命令
查看>>
[模拟]位运算实现四则运算
查看>>
ArcGis连接oracle失败:ORA-6413:连接未打开
查看>>
Linex第三章第四章
查看>>
MPMoviePlayerController属性,方法,通知整理
查看>>
8051、ARM、AVR
查看>>
Vue之不常注意的点
查看>>