隐马尔科夫模型(HMM)及事实上现

摘要:
马尔可夫模型的两个if是有限历史if:系统状态在时间t+1的概率分布仅与时间t的状态有关,并且与时间t时的状态无关;齐次性如果:从时间t到时间t+1的状态转变与t的值无关。隐马尔可夫模型隐马尔可夫模型是一个双随机过程,它是一个5元组:V是输出集。以掷硬币模型为例。有一个孩子手里拿着三枚硬币,每枚硬币都不一样,但也不均匀。这里,如果模型参数已知:A=[0.90.05.05;0.450.10.45;0.450.450.1];B=[0.50.750.25;0.50.250.75];Pi=[1/31/31/3]';3隐马尔可夫模型的问题1.给定上述模型,[正和负]观察的概率是多少?

马尔科夫模型

马尔科夫模型是单重随机过程,是一个2元组:(S,A)。

当中S是状态集合,A是状态转移矩阵。

仅仅用状态转移来描写叙述随机过程。

 

马尔科夫模型的2个如果

有限历史性如果:t+l时刻系统状态的概率分布仅仅与t时刻的状态有关,与t时刻曾经的状态无关;

齐次性如果:从t时刻到t+l时刻的状态转移与t的值无关。

 

以天气模型为例

天气变化有3中状态S:{1(阴),2(云),3(晴)}

隐马尔科夫模型(HMM)及事实上现第1张

图片来自网络


则状态转移矩阵A:

隐马尔科夫模型(HMM)及事实上现第2张

这样,仅仅要知道的初始状态概率向量,就能预測接下来每天的天气了。

 

隐马尔科夫模型

隐马尔科夫模型是双重随机过程,是一个5元组

隐马尔科夫模型(HMM)及事实上现第3张

V是输出集合。

隐马尔科夫模型(HMM)及事实上现第4张

表示在状态j时输出k的概率。

隐马尔科夫模型(HMM)及事实上现第5张是初始状态概率。

用状态转移和输出概率一起来描写叙述随机过程。

 

以扔硬币模型为例

有个小孩手上拿着3个各不同样,也正反不均匀的硬币。他每次随机抽取1个硬币扔,扔了非常多次(比方10次),他并不告诉你他每次抽中的是哪个硬币。可是他会告诉你每次的正反结果:正正反正反正正正……

在这个问题中,我们知道观察序列(硬币的正反),可是小孩手上硬币类型的变换序列被隐藏起来了,我们不知道小孩每次拿的哪个硬币扔,因此是双重随机过程。这就隐马尔科夫过程。

 

这里如果模型參数已知:

A=[0.90.05 0.05;0.45 0.1 0.45;0.45 0.45 0.1];
B=[0.50.75 0.25;0.5 0.25 0.75];
Pi=[1/31/3 1/3]';

隐马尔科夫模型的3个问题

1.【概率问题】给定上述模型,观察到[正正反]的概率是多少?

O=[11 2];

2.【预測问题】给定上述模型,假设观察到上述结果,最可能的硬币转换序列(状态转换序列)是什么?

3.【学习问题】不告诉你模型參数,怎样依据观察序列得到它们?

 

【概率问题】

1.向前算法

向前变量:给定模型,在时刻t,状态为i,且之前的观察序列例如以下的概率。

隐马尔科夫模型(HMM)及事实上现第6张

显然有

隐马尔科夫模型(HMM)及事实上现第7张

Alpha=zeros(3,N);
Beta=zeros(3,N);
Lambda=zeros(3,N);
 
Alpha(:,1)=B(O(1),:)'.*Pi;
Delta=Alpha;
fori=2:N
    Alpha(:,i)=A'*Alpha(:,i-1).*B(O(i),:)';
end
Q1_1=sum(Alpha(:,N));

输出

Alpha=
0.166666666666667      0.150000000000000      0.0867187500000000
0.250000000000000      0.0531250000000000    0.00683593750000000
0.0833333333333333    0.0322916666666667    0.0259765625000000
 
Q1_1=0.119531250000000

2.向后算法

向后变量:给定模型,在时刻t,状态为i,且之后的观察序列例如以下的概率。

隐马尔科夫模型(HMM)及事实上现第8张

显然有

隐马尔科夫模型(HMM)及事实上现第9张

Beta(:,N)=ones(N,1);
fori=N:-1:2
   Beta(:,i-1)=bsxfun(@times,A,B(O(i),:))*Beta(:,i);
end
Q1_2=sum(Pi.*B(1,:)'.*Beta(:,1));

输出

Beta=
0.252187500000000      0.500000000000000      1
0.202968750000000      0.587500000000000      1
0.321093750000000      0.412500000000000      1
 
Q1_2=0.119531250000000

 

【预測问题】

Viterbi算法

Viterbi变量:给定模型,在时刻t,状态为i,观察到的最佳转换序列为的概率。

隐马尔科夫模型(HMM)及事实上现第10张

显然有

隐马尔科夫模型(HMM)及事实上现第11张

这里须要把最佳路径记录下来

隐马尔科夫模型(HMM)及事实上现第12张

Q2=zeros(1,N);
fori=2:N
    Delta(:,i)=max(bsxfun(@times,A,Delta(:,i-1)))'.*B(O(i),:)';
   [~,Lambda(:,i)]=max(bsxfun(@times,A,Delta(:,i-1)));
end
[~,Q2(N)]=max(Delta(:,N));
fori=N:-1:2
    Q2(i-1)=Lambda(Q2(i),i);
end


输出

Delta=
0.166666666666667      0.0750000000000000    0.0337500000000000
0.250000000000000      0.0281250000000000    0.00316406250000000
0.0833333333333333    0.0281250000000000    0.00949218750000000

 

最优序列

1     1     1


【学习问题】

1.有监督模式

在有大量标签数据下,直接用频率近似概率參数就可以。

2.无监督模式

Baum-Welch算法

定义变量:在给定模型和观察序列O,在t时刻状态为i,在t+1时刻状态为j的概率

隐马尔科夫模型(HMM)及事实上现第13张

隐马尔科夫模型(HMM)及事实上现第14张

则关于模型參数的一种预计方法为

隐马尔科夫模型(HMM)及事实上现第15张


欢迎參与讨论并关注本博客微博以及知乎个人主页兴许内容继续更新哦~

转载请您尊重作者的劳动,完整保留上述文字以及文章链接,谢谢您的支持!

免责声明:文章转载自《隐马尔科夫模型(HMM)及事实上现》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ADADELTA: AN ADAPTIVE LEARNING RATE METHODGBK编码和UTF-8编码互转的大坑下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

iOS,QRCord(矩阵二维码)

1.二维码及其原理介绍 2.二维码生成 3.二维码解析 二维码及其原理介绍 二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图案表示二进制数据,被设备扫描后可获取其中所包含的信息。一维条码的宽度记载着数据,而其长度没有记载数据。二维条码的长度、宽度均记载着数据。二维条码有一维条码没有的“定位点”和“容错机制”。容错机制在即使没有辨识...

基于分布式的短文本命题实体识别之----人名识别(python实现)

目前对中文分词精度影响最大的主要是两方面:未登录词的识别和歧义切分。 据统计:未登录词中中文姓人名在文本中一般只占2%左右,但这其中高达50%以上的人名会产生切分错误。在所有的分词错误中,与人名有关的错误占到了将近90%,这中国人名都是根据人的想法起的名字,有很大的随意性,并且数量巨大,规律也不尽相同。 1.理论简介 命名实体识别(Named Ent...

Linux FTP基本操作命令 ( 序列二 ftp)

1.登陆ftp服务器 ftp [IP] [PORT] # 登陆ftp服务器,本机登陆可以不写IP实例: [root@ftpsrv vsftpd]#ftp 127.0.0.1 21 Connected to 127.0.0.1 (127.0.0.1). (vsFTPd 2.2.2) Name (127.0.0.1:root): nice Ple...

SAP HANA HDB序列的使用方法及技巧(SAP HANA HDB SEQUENCE ) 沧海

创建序列: 语法:CREATE SEQUENCE <sequence_name> [<common_sequence_parameter_list>] [RESET BY <subquery>] <sequence_name> ::= <identifier> <common_seque...

C# LINQ学习笔记二:LINQ标准查询操作概述

本笔记摘抄自:https://www.cnblogs.com/liqingwen/p/5801249.html,记录一下学习过程以备后续查用。 “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法,大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T>接口 或 IQueryable<T&g...

二维码(QR code)基本知识

1.二维码定义:   二维码(2-Dimensional Bar Code),是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的。它是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图案表示二进制数据,被设备扫描后可获取其中所包含的信息。一维条码的宽度记载着数据,而其长度没有记载数据。二维条码的长度、...