隐马尔可夫模型

高冷贵族: 隐马尔可夫模型

旧街凉风 提交于 2019-12-04 04:12:24
高冷贵族: 隐马尔可夫模型 https://www.cnblogs.com/vpegasus/p/hmm.html 引言 大家都用过Siri,Cortana之类的语音助手吧? 当你对着手机说出'我的女朋友温柔吗?',Siri 或Cortana就会根据你说的这句话翻译成一段文字,然后再作应答. 先不管应答部分, 你可曾想过: Siri是如何将你说的话翻译成一段文字的?嗯,猜对了, 这里就用到了隐马尔可夫模型(Hiden Markov Model, HMM). 例子 假设你有三个女朋友(嘿~,现实不可以,想想总可以吧~,/躲拖鞋…), 你每周末只能选择陪其中一位(为了世界和平…). 而作为程序员的你,也没有什么情调,只会与女朋友做二种事情: 吃饭,看电影, 而因为工作繁忙,你每周也只能做其中一件事,三位美丽的女士也很理解,体谅你,也都很配合,很高兴. 那么问题来了, 你是如何选择周末去陪哪个女朋友呢? 三位女士都很可爱,你不想冷落每一个人,但第一个女朋友(记为A女朋友)有点聒噪,因此你会稍微少去一点她那里. 第二,第三个女朋友去都比较安静(分别记为B,C). 于是,你在心里默默地(或者是潜意识地)定下了去陪三位女朋友的概率: 女朋友 A B C 概率 0.2 0.4 0.4 比如,陪A女朋友的概率是0.2,可简单的理解为十次大约有二次会去陪她. 然而这只是你刚开始考虑的事

隐马尔可夫模型

梦想的初衷 提交于 2019-12-03 13:14:07
本文主要参考了《统计学习方法》及 https://github.com/aespresso/a_journey_into_math_of_ml 请各位大佬多多指正。 隐马尔可夫模型(hidden Markov model, HMM)描述由隐藏的马尔可夫链随机生成观测序列的过程,属于生成模型。可用于自动分词、词性标注、命名实体识别等。 以命名实体识别为例: 一段文本:武汉市成立自由贸易试验区。我们需要识别出济南市(地点), 自由贸易试验区(地点). 在我们今天使用的NER数据集中, 一共有7个标签: "B-ORG": 组织或公司(organization) "I-ORG": 组织或公司 "B-PER": 人名(person) "I-PER": 人名 "O": 其他非实体(other) "B-LOC": 地名(location) "I-LOC": 地名 文本中以每个字为单位,每个字都对应一个标签。注意:实体开头的那个字使用开头为‘B’的标签来标注,实体中间或结尾的部分用‘I’来标注。 举个栗子:自(B-LOC)贸(I-LOC)区(I-LOC) 什么是隐马尔科夫模型? 隐马尔可夫模型是关于时序的概率模型,描述了一个由隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程,如下图所示: 在上述的命名实体识别的例子中,隐状态序列是实体标记序列,

隐马尔可夫模型

北战南征 提交于 2019-12-03 07:05:55
一、基本思想 隐马尔可夫模型是 基于时序的概率模型 ,由 初始状态概率向量Π、状态转移概率矩阵A和观测概率矩阵B 组成。 隐马尔可夫做了两个基本假设: 齐次马尔可夫性假设:任意时刻的状态只与上一时刻的状态有关 观测独立性假设:任意时刻的观测值只与该时刻的状态有关 隐马尔科夫模型主要用来解决三个问题: 概率计算问题 :给定模型λ=(Π,A,B)和观察序列O,求在模型λ下观测序列O出现的概率 P(O|λ) 学习问题 :已知观察序列O,求模型 λ的三个参数 ,使得P(O|λ)最大 预测(解码)问题 :给定模型λ=(Π,A,B)和观察序列O,求在给定观察序列O的基础上,最有可能对应的状态序列I,即 P(I|O) 二、算法流程 1. 概率计算问题 1)前向算法 其中前向概率 \(\alpha_t(i)\) 表示t时刻产生观察序列 \(o_1,o_2,o_3...o_t\) 且t时刻的状态为i的概率。 公式10.15表示状态为i,观察序列为 \(o_1\) 的联合概率 公式10.16中[]里面的内容表示状态为i,观测序列为 \(o_1,o_2,o_3...o_t\) 的联合概率,最后乘以 \(b_i(o_{t+1})\) 得到状态为i,观察序列为 \(o_1,o_2,o_3...o_{t+1}\) 的联合概率 公式10.17表示将所有可能的状态i且对应的观察序列为 \(o_1,o_2,o_3.

隐马尔可夫模型学习笔记(之二,学习算法)

匿名 (未验证) 提交于 2019-12-03 00:32:02
在介绍学习算法之前,先介绍一些概率和期望值的计算。 利用前向概率和后向概率,可以得到关于单个状态和两个状态概率的计算公式。 1. 给定模型 λ λ 和观测 O O ,在时刻 t t 处于状态 q i q i 的概率。记为 γ t ( i ) = P ( i t = q i | O , λ ) (1) (1) γ t ( i ) = P ( i t = q i | O , λ ) 先分解为分数形式 γ t ( i ) = P ( i t = q i , O | λ ) P ( O | λ ) (2) (2) γ t ( i ) = P ( i t = q i , O | λ ) P ( O | λ ) 根据前向概率的定义可以做以下变换 α t ( i ) = P ( o 1 , o 2 . . . o t , i t = q t | λ ) = P ( i t = q t | λ ) P ( o 1 , o 2 . . . o t | i t = q t , λ ) α t ( i ) = P ( o 1 , o 2 . . . o t , i t = q t | λ ) = P ( i t = q t | λ ) P ( o 1 , o 2 . . . o t | i t = q t , λ ) 后向概率的定义如下 β t ( i ) = P ( o t + 1 , o t + 2

隐马尔可夫模型

匿名 (未验证) 提交于 2019-12-03 00:17:01
本文主要参考了《统计学习方法》及 https://github.com/aespresso/a_journey_into_math_of_ml 请各位大佬多多指正。 隐马尔可夫模型(hidden Markov model, HMM)描述由隐藏的马尔可夫链随机生成观测序列的过程,属于生成模型。可用于自动分词、词性标注、命名实体识别等。 以命名实体识别为例: 一段文本:武汉市成立自由贸易试验区。我们需要识别出济南市(地点), 自由贸易试验区(地点). 在我们今天使用的NER数据集中, 一共有7个标签: "B-ORG": 组织或公司(organization) "I-ORG": 组织或公司 "B-PER": 人名(person) "I-PER": 人名 "O": 其他非实体(other) "B-LOC": 地名(location) "I-LOC": 地名 文本中以每个字为单位,每个字都对应一个标签。注意:实体开头的那个字使用开头为‘B’的标签来标注,实体中间或结尾的部分用‘I’来标注。 举个栗子:自(B-LOC)贸(I-LOC)区(I-LOC) 什么是隐马尔科夫模型? 隐马尔可夫模型是关于时序的概率模型,描述了一个由隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程,如下图所示: 在上述的命名实体识别的例子中,隐状态序列是实体标记序列,

matlab贝叶斯隐马尔可夫hmm模型实现

 ̄綄美尐妖づ 提交于 2019-12-02 03:34:18
原文链接: http://tecdat.cn/?p=7973 贝叶斯隐马尔可夫模型是一种用于分割连续多变量数据的概率模型。该模型将数据解释为一系列隐藏状态生成。每个状态都是重尾分布的有限混合,具有特定于状态的混合比例和共享的位置/分散参数。 该模型中的所有参数都配备有共轭先验分布,并通过变化的贝叶斯(vB)推理算法学习,其本质上与期望最大化相似。该算法对异常值具有鲁棒性,并且可以接受缺失值。 本文从未知的BRHMM生成一组数据序列 参数,并仅从这些数据中估算出 生成它们的模型。 结果绘制为 时间序列 设置状态,符号和特征的数量 NumState=2; NumSym=3; NumFeat=5; 设置序列数,每个序列点数和缺失值 NumSeq=2; NumPoint=100; NumMiss=20; 设置参数生成选项。TransParam=1/5 EmissParam=1/5; LocParam=2; DispParam=5; 设置采样选项 NumDeg=5; NumObs=1000; 打印 和显示状态 fprintf('\n') fprintf('Sampling data ... ') 生成用于采样的参数 [Trans,Emiss,Loc,Disp]=GenParam(NumState,NumSym,NumFeat,... TransParam,EmissParam

一文搞懂HMM(隐马尔可夫模型)

时光怂恿深爱的人放手 提交于 2019-11-28 04:18:49
什么是熵(Entropy) 简单来说,熵是表示物质系统状态的一种度量,用它老表征系统的无序程度。熵越大,系统越无序,意味着系统结构和运动的不确定和无规则;反之,,熵越小,系统越有序,意味着具有确定和有规则的运动状态。熵的中文意思是热量被温度除的商。负熵是物质系统有序化,组织化,复杂化状态的一种度量。 熵最早来原于 物理学 . 德国物理学家鲁道夫·克劳修斯首次提出熵的概念,用来表示任何一种能量在空间中分布的均匀程度,能量分布得越均匀,熵就越大。 一滴墨水滴在清水中,部成了一杯淡蓝色溶液 热水晾在空气中,热量会传到空气中,最后使得温度一致 更多的一些生活中的例子: 熵力的一个例子是耳机线,我们将耳机线整理好放进口袋,下次再拿出来已经乱了。让耳机线乱掉的看不见的“力”就是熵力,耳机线喜欢变成更混乱。 熵力另一个具体的例子是弹性力。一根弹簧的力,就是熵力。 胡克定律其实也是一种熵力的表现。 万有引力也是熵力的一种(热烈讨论的话题)。 浑水澄清[1] 于是从微观看,熵就表现了这个系统所处状态的 不确定性程度 。香农,描述一个信息系统的时候就借用了熵的概念,这里熵表示的是这个信息系统的 平均信息量 ( 平均不确定程度 ) 。 最大熵模型 我们在投资时常常讲不要把所有的鸡蛋放在一个篮子里,这样可以降低风险。在信息处理中,这个原理同样适用。在数学上,这个原理称为最大熵原理(the maximum

机器学习算法:隐马尔可夫算法

我是研究僧i 提交于 2019-11-27 12:10:52
隐马尔可夫算法 适用问题:标注问题的统计学习模型 模型类型:生成模型 模型特点:观测序列与状态序列联合概率分布模型 学习策略:极大似然估计、极大后验概率估计 学习的损失函数:对数似然函数 学习算法:概率计算公式、EM算法 总结: 1.隐马尔可夫模型是关于时序的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态的序列,再由各个状态随机生成个观测序列的过程. 隐马尔可夫模型由初始状态概率向量n、状态转移概率矩阵A和观测概率矩阵B决定.因此,隐马尔可大模型可以写成h=(A,B,n). 隐马尔可夫模型是一个生成模型,表示状态序列和观测序列的联合分布,但是状态序列是隐藏的,不可观测的. 隐马尔可夫模型可以用于标注,这时状态对应着标记标注问题是给定观测序列预测其对应的标记序列. 2.概率计算问题.给定模型h=(A,B,n)和观测序列O= (01,02,03),计算在模型A下观测序列0出现的概率P(O|h).前向-后向算法是通过递推地计算前向-后向概率可以高效地进行隐马尔可夫模型的概率计算. 3.学习问题.已知观测序列O= (01,02,03),估计模型h=(A,B,n)参数,使得在该模型下观测序列概率P(O|h)最大.即用极大似然估计的方法估计参数. Baum-Welch算法,也就是EM算法可以高效地对隐马尔可夫模型进行训练.它是一种非监督学习算法, 4.预测问题.已知模型h=(A,