HMM

HMM隐马尔可夫模型详解

折月煮酒 提交于 2019-12-06 14:14:24
1 隐马尔可夫模型HMM 隐马尔科夫模型(Hidden Markov Model,以下简称HMM)是比较经典的机器学习模型了,它在语言识别,自然语言处理,模式识别等领域得到广泛的应用。 当然,随着目前深度学习的崛起,尤其是 RNN , LSTM 等神经网络序列模型的火热,HMM的地位有所下降。 但是作为一个经典的模型,学习HMM的模型和对应算法,对我们解决问题建模的能力提高以及算法思路的拓展还是很好的。 1.1 什么样的问题需要HMM模型 首先我们来看看什么样的问题解决可以用HMM模型。 使用HMM模型时我们的问题一般有这两个特征: 1)我们的问题是基于序列的,比如时间序列,或者状态序列。 2)我们的问题中有两类数据,一类序列数据是可以观测到的,即观测序列;而另一类数据是不能观察到的,即隐藏状态序列,简称状态序列。 有了这两个特征,那么这个问题一般可以用HMM模型来尝试解决。这样的问题在实际生活中是很多的。比如:我现在在打字写博客,我在键盘上敲出来的一系列字符就是观测序列,而我实际想写的一段话就是隐藏序列,输入法的任务就是从敲入的一系列字符尽可能的猜测我要写的一段话,并把最可能的词语放在最前面让我选择,这就可以看做一个HMM模型了。再举一个,我在和你说话,我发出的一串连续的声音就是观测序列,而我实际要表达的一段话就是状态序列,你大脑的任务

隐马尔科夫模型(HMM)学习笔记

只谈情不闲聊 提交于 2019-12-06 14:14:14
参考文献 1.李航《统计学习方法》 2. 刘建平老师的博客内容 3. 一文搞懂HMM 1.HMM模型的应用场景 首先我们来看看什么样的问题解决可以用HMM模型。使用HMM模型时我们的问题一般有这两个特征: 1)我们的问题是基于序列的,比如时间序列,或者状态序列。 2)我们的问题中有两类数据,一类序列数据是可以观测到的,即观测序列;而另一类数据是不能观察到的,即隐藏状态序列,简称状态序列。 2.HMM模型的基本定义 强调HMM的两个强假设: 【1】状态依前:即任意时刻的隐藏状态只依赖于它前一个隐藏状态 【2】观测独立:即任意时刻的观察状态只仅仅依赖于当前时刻的隐藏状态 HMM模型的三元组表示:(A,B,π) 3.HMM观测序列生成算法 4.HMM模型的三个基本问题 4.1评估观测序列出现的概率 (1)暴力解法求HMM观测序列出现的概率 直观上的想法就是:既然模型参数已知,观测序列也已知,那么我们可以穷举所有的隐藏序列。对于每一个隐藏序列, 首先计算其出现的概率,而后计算观测序列出现的概率,则隐藏序列和观测序列同时出现的联合概率就是两个概率相乘,然后求边缘概率分布,即可得到观测序列O在模型λ下出现的条件概率。计算看起来很容易,也很直观,但是当隐藏状态数N较大时,穷举的所有隐藏序列数目将是非常可怕的,这会使得这种计算方式无法进行。 (2)用前向算法求HMM观测序列出现的概率

隐马尔科夫模型(HMM)

隐身守侯 提交于 2019-12-06 14:11:16
CSDN博客: 皮乾东 知乎: Htrying 微博: Htring的微博 GitHub: Htring 微信公众号: 自然语言处理爱好者 (ID:NLP_lover) 隐马尔科夫模型(HMM) 马尔可夫模型可以参见 百度百科 ,隐马尔科夫模型是将分词作为字,在字符串中的序列标注任务来实现的。它的基本思路是:每个字在构造一个特定的词语时,都占据着一个确定的构词位置(即词位),现规定每个字最多只有四个构词位置:即B(词首),M(词中),E(词尾)和S(单独成词)。举例如下: 1.中文/分词/是/文本处理/不可或缺/的/一步! 2.中/B 文/E 分/B 词 /E 是/S 文/B 本/M 处/M 理/B 不/B 可/M 或/M 缺/E 的/S 一/B 步/E !/S 那么用数学抽象表示则有:用 λ = λ 1 λ 2 . . . λ n \lambda=\lambda_1\lambda_2...\lambda_n λ = λ 1 ​ λ 2 ​ . . . λ n ​ 代表输入的句子, n n n 为句子长度, λ i \lambda_i λ i ​ 表示字, o = o 1 o 2 . . . o n o=o_1o_2...o_n o = o 1 ​ o 2 ​ . . . o n ​ 代表输出的标签,那么理想的输出即为: m a x = m a x P ( o 1 o 2 . .

8 HMM 和 CRF

自作多情 提交于 2019-12-06 10:20:30
近几年在自然语言处理领域中,HMM(隐马尔可夫模型)和 CRF(条件随机场)算法常常被用于分词、句法分析、命名实体识别、词性标注等。由于两者之间有很大的共同点,所以在很多应用上往往是重叠的,但在命名实体、句法分析等领域 CRF 似乎更胜一筹。通常来说如果做自然语言处理,这两个模型应该都要了解,下面我们来看看本文的内容。 从贝叶斯定义理解生成式模型和判别式模型 理解 HMM(隐马尔可夫模型)和 CRF(条件随机场)模型之前,我们先来看两个概念:生成式模型和判别式模型。 在机器学习中,生成式模型和判别式模型都用于有监督学习,有监督学习的任务就是从数据中学习一个模型(也叫分类器),应用这一模型,对给定的输入 X 预测相应的输出 Y。这个模型的一般形式为:决策函数 Y=f(X) 或者条件概率分布 P(Y|X)。 首先,简单从贝叶斯定理说起,若记 P(A)、P(B) 分别表示事件 A 和事件 B 发生的概率,则 P(A|B) 表示事件 B 发生的情况下事件 A 发生的概率;P(AB)表示事件 A 和事件 B 同时发生的概率。 根据贝叶斯公式可以得出: 生成式模型:估计的是联合概率分布,P(Y, X)=P(Y|X)*P(X),由联合概率密度分布 P(X,Y),然后求出条件概率分布 P(Y|X) 作为预测的模型,即生成模型公式为:P(Y|X)= P(X,Y)/ P(X)

隐马尔可夫模型(HMM)的分类

ⅰ亾dé卋堺 提交于 2019-12-05 02:39:03
1、遍历型(ergodic model) 即每个状态都可以由任意一个状态演变而来,aij>0,for all i , j. 如图: 2、left-right type of HMM 每个状态只能由下标值小于当前值得状态以及其本身转移而来,即从左向右转移。因此状态转移矩阵有如下特性: , 这种由左向右转移的HMM转移状态矩阵为上半矩阵,同时此类型矩阵一般同时存在一个最长跳跃距离,即有 是最长跳跃距离,以图中为例, =2. 这种类型的HMM模型能够非常好的用于随时间变化的信号,比如语音信号。 3、其他类型 上图所示HMM模型严格来说也属于left-right type of HMM,但是它又存在它自己独特的规则,更类似于两个平行的left-right HMM的组合模型。 但是我们应该明白,对于不同类型的HMM,对于学习问题的求解来说步骤都是一样的。 来源: https://www.cnblogs.com/aabbcc/p/11898706.html

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

旧街凉风 提交于 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,可简单的理解为十次大约有二次会去陪她. 然而这只是你刚开始考虑的事

jieba分词原理-DAG(NO HMM)

a 夏天 提交于 2019-12-03 10:00:59
最近公司在做一个推荐系统,让我给论坛上的帖子找关键字,当时给我说让我用jieba分词,我周末回去看了看,感觉不错,还学习了一下具体的原理 首先,通过正则表达式,将文章内容切分,形成一个句子数组,这个比较好理解 然后构造出句子的有向无环图(DAG) def get_DAG(self, sentence): self.check_initialized() DAG = {} N = len(sentence) for k in xrange(N): tmplist = [] i = k frag = sentence[k] while i < N and frag in self.FREQ:#对每一个字从这个字开始搜索成词位置 if self.FREQ[frag]: tmplist.append(i)#如果可以成词就加入到DAG中 i += 1 frag = sentence[k:i + 1] if not tmplist: tmplist.append(k)#如果找不到词语,就将自己加入DAG DAG[k] = tmplist return DAG 对句子中的每个字进行分析,从右边一位开始,看sentence[k:i+1]这个词语是否在预设的字典中,这个字典保存了常用的词语(和词语的一部分,但权重为0)和其权重.如果有,并且如果字典中的这个词的权值不等于0

Python: cannot import name hmm

匿名 (未验证) 提交于 2019-12-03 02:33:02
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I cant import hmm module from sklearn. from sklearn import hmm I get error : ImportError: cannot import name hmm 回答1: According to the Hidden Markov Models site here , the sklearn.hmm module has been deprecated and is scheduled for removal in the 0.17 . Confirm that your scikit-learn is at least version 0.16.1 because from 0.17 you won't have sklearn.hmm . 回答2: I don't know if you found a solution to your problem. You can install and implement your HMM using hmmlearn . It can be installed easily with a pip install hmmlearn . To quote Scikit

HMM前向后向算法

匿名 (未验证) 提交于 2019-12-03 00:26:01
HMM前向后向算法 HMM的三个基本问题中,对于HMM参数的学习是最难的。对于给定的观测序列O,如何估计模型参数使得P(O|λ)最大。目前为止,可能并不存在一种方法使得P(O|λ)最大,但是接下里的前向后向算法是能够使上述问题得到局部最优。 首先:假设给定模型λ和观测序列,计算观测序列出现的概率P(O|λ)。令隐含状态序列I={i 1 ,i 2 ...i T };观测序列是O={O 1 ,O 2 ,...O T },计算联合概率P(O,I|λ),然后将所有可能的I进行求和,就是P(O|λ)。 隐含状态序列I的概率是: 当固定隐含状态I和给定模型参数时,观测序列为O={O 1 ,O 2 ,...O T }的概率是P(O|I,λ) O和I同时出现的概率是: 对所有的I进行求和: ---------(1) 给定模型λ和观测序列O,在t时刻处于状态q i 的概率: 而且还有: 回顾一下:前向概率的定义: 给定HMM的参数λ,定义到t时刻的部分观测序列o 1 ,o 2 ..o t ,且状态是q i 的概率为前向概率: 后向概率的定义: 给定HMM的参数λ,在t时刻状态为q i 的条件下,t+1到T的观测序列o t+1 ,o t+2 ..o T 的概率为后向概率: P(i t =q i ,O|λ)的意思是:在给定HMM的参数λ,观测序列是O(O 1 ,O 2 ,...O T )

HMM前向后向算法

匿名 (未验证) 提交于 2019-12-03 00:26:01
HMM前向后向算法 HMM的三个基本问题中,对于HMM参数的学习是最难的。对于给定的观测序列O,如何估计模型参数使得P(O|λ)最大。目前为止,可能并不存在一种方法使得P(O|λ)最大,但是接下里的前向后向算法是能够使上述问题得到局部最优。 首先:假设给定模型λ和观测序列,计算观测序列出现的概率P(O|λ)。令隐含状态序列I={i 1 ,i 2 ...i T };观测序列是O={O 1 ,O 2 ,...O T },计算联合概率P(O,I|λ),然后将所有可能的I进行求和,就是P(O|λ)。 隐含状态序列I的概率是: 当固定隐含状态I和给定模型参数时,观测序列为O={O 1 ,O 2 ,...O T }的概率是P(O|I,λ) O和I同时出现的概率是: 对所有的I进行求和: ---------(1) (1) 式计算量太大,于是才有之前的前向算法和后向算法。 给定模型λ和观测序列O,在t时刻处于状态q i 的概率: 而且还有: 回顾一下:前向概率的定义: 给定HMM的参数λ,定义到t时刻的部分观测序列o 1 ,o 2 ..o t ,且状态是q i 的概率为前向概率: 后向概率的定义: 给定HMM的参数λ,在t时刻状态为q i 的条件下,t+1到T的观测序列o t+1 ,o t+2 ..o T 的概率为后向概率: P(i t =q i ,O|λ)的意思是:在给定HMM的参数λ