HMM知识点整合与理解


基本概念

马尔可夫性: 下一个状态只和当前状态有关(在现在的条件下,过去和未来彼此独立)

随机场: 给空间中的所有位置按某种分布随机赋予一个集合中的值,那么这个被赋值了的位置的全体称为随机场,随机场可以被描述成一个无向图

马尔科夫随机场: 满足马尔可夫性的随机场称为马尔可夫随机场

用一个通俗的比喻来形容,一只被切除了大脑的白鼠在若干个洞穴间的蹿动就构成一个马尔可夫随机场。因为这只白鼠已没有了记忆,瞬间而生的念头决定了它从一个洞穴蹿到另一个洞穴;当其所在位置确定时,它下一步蹿往何处与它以往经过的路径无关。

马尔可夫链: 其中,如果无向图剪切成为了线性结构,那么就称其为马尔可夫链

一阶马尔可夫链: 满足马尔可夫基本定义的(下一个状态只和当前状态有关)的马尔可夫链

二阶马尔可夫链: 是马尔可夫性的扩充,如果下一个状态和之前的两个状态有关,那么这个线性结构称为二阶马尔可夫链(也称之为二阶马尔可夫模型)

如果有朋友听说了n元语义,就可以对应一下,N元语义其实就是N-1阶马尔可夫模型

数学建模: 就是根据实际问题来建立数学的模型,并对数学模型来进行求解,然后根据结果去解决实际问题。当需要从定量的角度分析和研究一个实际问题时,人们就要在深入调查研究、了解对象信息、作出简化假设、分析内在规律等工作的基础上,用数学的符号和语言作表述来建立数学模型。

有的人可能会有些奇怪隐马尔可夫模型的…一些地方,可能看了这个特意放在这里的名词解释会明白一些

马尔可夫模型:具有马尔可夫性的模型

隐马尔可夫模型: 在很多时候,马尔可夫过程不足以描述我们发现的问题,因为我们观察到的状态不够明显,我们推测这些状态背后有隐藏的原因(状态),因此就需要一个观察序列隐序列,如果我们知道观察序列背后真正的隐序列,就能够更好的分析问题。



隐马尔可夫模型(HMM)

HMM 可用一个5元组 { N, M, π,A,B } 表示,其中:

N 表示隐藏状态的数量,我们要么知道确切的值,要么猜测该值;
M 表示可观测状态的数量,可以通过训练集获得;
π={πi} 为初始状态概率;代表的是刚开始的时候各个隐藏状态的发生概率;
A={aij}为隐藏状态的转移概率矩阵;NN,代表的是第一个状态到第二个状态发生的概率;
B={bij}为发射概率矩阵,N
M,代表的是处于某个隐状态的条件下,某个观测发生的概率。

以比较通俗的例子,你只能往地上看花,花有{旺盛,蔫}两种状态,这是观测状态,如果假设花的状态只和天气有关,并且进行简化,那么{下雨,晴天,阴天}就是这个观测状态对应的隐藏状态,其中


HMM可以解决的问题

模型评估问题(概率计算问题)

知道观测序列,知道隐藏序列,π,A,B,求解得到该观测序列的概率

最简单的例子,我用一个六面骰骰一次,骰出了1,求骰出1的概率(1/6)。这时隐藏序列是<六面骰>,观测序列是<1>

解决方案: 穷举(不推荐),前向/后向算法


解码问题(预测问题)

知道观测序列,知道隐藏状态的集合以及π,A,B,预测最大可能的隐藏序列

最简单的例子,我知道我骰了<1>,我想知道我用的最有可能是六面骰还是四面骰(答案是四面骰,因为四面骰的概率是1/4,而六面骰的概率是1/6)。
解决方案: Viterbi算法


参数评估问题(属于非监督学习算法)

知道观测序列,知道隐藏状态的集合,求π,A,B,使得当前观测序列发生的可能性最大
解决方案: EM算法,Baum—Welch算法

注意,所有的解决方案都不唯一,而且解决方案中的方法也并不仅仅局限于解决这个问题,这些解决方案只是针对模型提出的问题的解决

如果这里对这些叙述觉得抽象,可以看一下这篇博客的举例 https://www.cnblogs.com/skyme/p/4651331.html


HMM的缺点

缺乏灵活性,两个以上隐藏状态决定的观测值不能通过HMM求解



HMM的应用


N元语义
背景

如果我们统计过很多很多的文字,把其中每个字出现的次数都统计出来,那么每个字出现的频率就等于概率。
现在我说一句话:我去北京大学玩,求这句话出现的概率是多少

求解办法: 因为我们知道了每个字出现的概率,那么:
P ( 我 去 北 京 大 学 玩 ) = P ( 我 ) ∗ P ( 去 ∣ 我 ) ∗ P ( 北 ∣ 我 去 ) . . . ∗ P ( 玩 ∣ 我 去 北 京 大 学 ) P(我去北京大学玩)=P(我)*P(去|我)*P(北|我去)...*P(玩|我去北京大学) P()=P()P()P()...P()

如果句子一多,那么求解到后面的字会变得非常麻烦。这个时候就有人提出了N元语义

简要介绍

如"我去北京大学玩"中,我们认为"玩"这个字和"我"是否出现并没有太大的关系,因为完全可以"他去北京大学玩",因此,就可以假设一个字出现只和其上文有限个字的出现有关

换而言之,我们认为"玩"应该只和"去"或者只和"大学去"有关(假设,不一定真的有关),也就是
P ( 玩 ∣ 我 去 北 京 大 学 ) ≈ P ( 玩 ∣ 去 ) P(玩|我去北京大学) \approx P(玩|去) P()P()

其中,如果认为"玩"只和"去"有关(即前一个文字),那么就是二元语义,即一阶马尔可夫模型;如果是N元语义(和前N-1个文字有关),那么就是N-1阶马尔可夫模型


BMES标注预测

BMES是语义的标注,其中B=Begin,M=Medium,E=End,S=Single,分别代表一个字在词中的地位(开始,中间,结束,S代表单字成词),我们要句子进行BMES的标注。
在HMM中,BMES即为隐状态的类型,而句子中的每个字,则是观测状态。

同时基于语料的分析,我们能够得到转移概率,初始概率,发射概率,因此对句子进行BMES标注的方法之一就是采用隐马尔可夫模型。

如果有用过jieba分词或者感兴趣的话,可以看一下cut()方法中调用的_cut_DAG的实现,对未登录词,jieba是采用Viterbi算法对其进行了BMES标注后进行切分的,而概率则是jieba分词中预先计算好并写在库中的文本。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值