HMM及CRF

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HMM及CRF相关的知识,希望对你有一定的参考价值。

参考技术A

在概率图模型的表达中,数据(样本)由公式 建模表示:

根据图模型(graphical models)的边是否有向,概率图模型通常被划分成 有向概率图模型 无向概率图模型

求解联合概率

写成通用形式即

如果联合概率分布 满足成对、局部或全局马尔可夫性,就称此联合概率分布为概率无向图模型或马尔可夫随机场(MRF)

设无向图 中的任意两个没有边连接的节点 、 ,其他所有节点为 ,成对马尔可夫性指:给定 的条件下, 和 条件独立

设无向图 的任一节点 , 是与 有边相连的所有节点, 是 、 外的其他所有节点,局部马尔可夫性指:给定 的条件下, 和 条件独立

当 时,等价于

如果把等式两边的条件里的 遮住, 这个式子表示 和 独立,进而可以理解这个等式为给定条件 YW 下的独立。

设节点集合 、 是在无向图 中被节点集合 分开的任意节点集合,全局马尔可夫性指:给定 的条件下, 和 条件独立

成对、局部或全局马尔科夫性,大白话就是说每一个节点的分布只和有边相连的节点有关系。

不同于有向图模型,无向图模型的无向性很难确保每个节点在给定它的邻节点的条件下的条件概率和以图中其他节点为条件的条件概率一致。由于这个原因,无向图模型的联合概率并不是用条件概率参数化表示的,而是定义为由一组条件独立的局部函数的乘积形式。因子分解就是说将无向图所描述的联合概率分布表达为若干个子联合概率的乘积,从而便于模型的学习和计算。

其中 , 归一化是为了让结果算作概率。

所以像上面的无向图:

其中, 是一个最大团 上随机变量们的联合概率,一般取指数函数的:

团: 无向图G中任何两个结点均有边连接的节点子集成为团。
最大团: 若C是无向图G的一个团,并且不能再加进任何一个G的节点使其成为一个更大的团,则称此C为最大团。

那么概率无向图的联合概率分布可以在因子分解下表示为:

举个栗子,一只被切除了大脑的白鼠被随机丢进如下洞穴, 小白鼠在洞穴间随机蹿动

窜动的路线就构成一个马尔科夫链。因为这只白鼠已没有了记忆,瞬间产生的念头决定了它从一个洞穴蹿到另一个洞穴;当其所在位置确定时,它下一步蹿往何处与它以往经过的路径无关。

假设观察者距离洞穴很远, 看不见老鼠窜动的轨迹, 但是每个洞穴中都装有不同颜色的灯, 当老鼠进入到该洞穴时会触发开关将灯点亮, 观察者可以看清被点亮的灯的颜色

假设老鼠窜动的轨迹如下

那么观察者看到的灯亮的顺序则为

一个隐马尔可夫模型则可以如下表示

小白鼠在洞穴(状态)之间的转移存在转移概率, 可由矩阵表示:


这个矩阵称为 状态转移概率分布矩阵 , 如小白鼠从房间F窜到房间C的概率为0.33

假如实验中开关发生故障, 每次进入洞穴后点亮的灯的颜色不再确定, 而是每种颜色的灯亮存在概率, 如下矩阵:

这个矩阵称为 观测状态概率矩阵 , 如小白鼠进到F洞穴, 红灯亮的概率为0.15, 绿灯亮的概率为0.7, 蓝灯亮的概率为0.15

小白鼠最初被随机丢进每个洞穴的初始概率为

隐马尔科夫模型由初始状态概率向量 、状态转移概率矩阵 和观测概率矩阵 决定。 和 决定状态序列, 决定观测序列。因此,隐马尔科夫模型λ可以由三元符号表示,即: 。 , , 称为隐马尔科夫模型的三要素。

隐马尔可夫模型属于有向图模型, 需要计算的概率是“观测序列(输入)和状态序列(输出)的联合概率”,即P(状态序列, 观测序列), 然后再根据贝叶斯公式求解出P(状态序列|观测序列), 构建它们的联合概率分布P(Y,X)的模型属于 生成式模型

显然在现实生活当中, 一个状态的发生很可能不仅仅依赖于前一个状态, 而是依赖于前后多个状态。 拿词性标注来说, 判断一个词是否为动词, 我们可能需要考虑这个词的前一个词(上一个状态)是否为形容词, 这个词后边(下一个状态)是否为名词, 这个词(本身)是否以ing或者ly结尾等等。像这种场景我们便可以用条件随机场来解决

此前我们介绍了马尔科夫随机场(MRF), 如果给定的MRF中每个随机变量 下面还有观察值 ,那么我们的目标就是要确定给定观察集合 下的MRF分布,也就是条件分布,而这种条件分布就是条件随机场。

简单的说,条件随机场(CRF)类似于MRF,只不过CRF比MRF多了一个观察集合,或者说,CRF本质上就是给定了观察值集合的MRF。

这里介绍的CRF指线性链条件随机场, 即观测序列 与状态序列 有相同的图结构如下:

设 , 均为线性链表示的随机变量序列,在给定随机变量序列 的情况下,随机变量 的条件概率分布 构成条件随机场,即满足马尔科性:

作为规范化因子,是对 y 的所有可能取值求和。

其中:
: 是定义在边上的转移特征函数(transition),依赖于当前位置 和前一位置 ;对应的权值为
: 是定义在节点上的状态特征函数(state),依赖于当前位置 ;对应的权值为

一般来说,特征函数的取值为 1 或 0 ,当满足规定好的特征条件时取值为 1 ,否则为 0 。

首先要说明的是HMM, CRF, LSTM都可以用来做分词任务。用一个分词的例子来说明, 假如有一句待分词文本, 内容是:

已结婚的和尚未结婚的青年都要实行计划生育

采用 4-tag方法进行分词, B 表示词首, M 表示词中, E 表示词尾, S 表示单字。正确的结果应该是:

已/S 结/B 婚/E 的/S 和/S 尚/B 未/E 结/B 婚/E 的/S 青/B 年/E 都/S 要/S 实/B 行/E 计/B 划/M 生/M 育/E

如果我们用 LSTM+softmax 的话, 它解决问题的步骤是这样的, LSTM用来生成特征向量, 再将其丢给 softmax , 预测每个分类的概率, 将概率最大的分类作为最终的分词结果。 但是这样做没有考虑到标签之间的连接是否合理, 例如可能会出现这种情况

已/S 结/B 婚/B 的/S 和/S 尚/B 未...

显然 B 后边接 B 是不合理的

(找了个BiLSTM做实体标注的示例图)

如果我们用 HMM 的话, 它解决问题的步骤是这样的, 计算每种情况的概率, 如


然后取概率最大的一组作为最后的分词结果。因为HMM的条件独立假设, 使其不能充分考虑上下文信息

最后是 CRF , CRF 也是求每种情况的概率, 但是其概率求解的形式为:

为一个函数,是在全局范围统计归一化的概率

最后放一张关系图

朴素贝叶斯:生成式模型,条件独立 —> 序列形式 隐马尔科夫模型 —> 图形式 通用有向图模型
逻辑回归:判别式模型,条件不独立 —> 序列形式 线性链条件随机场 —> 图形式 通用条件随机场

参考链接

条件随机场CRF HMM,MEMM的区别

http://blog.sina.com.cn/s/blog_605f5b4f010109z3.html

首先,CRF,HMM(隐马模型),MEMM(最大熵隐马模型)都常用来做序列标注的建模,像词性标注,True casing。但隐马模型一个最大的缺点就是由于其输出独立性假设,导致其不能考虑上下文的特征,限制了特征的选择,而最大熵隐马模型则解决了这一问题,可以任意的选择特征,但由于其在每一节点都要进行归一化,所以只能找到局部的最优值,同时也带来了标记偏见的问题(label bias),即凡是训练语料中未出现的情况全都忽略掉,而条件随机场则很好的解决了这一问题,他并不在每一个节点进行归一化,而是所有特征进行全局归一化,因此可以求得全局的最优值。


目前,条件随机场的训练和解码的开源工具还只支持链式的序列,复杂的尚不支持,而且训练时间很长,但效果还可以。

 

这三个模型都可以用来做序列标注模型。但是其各自有自身的特点,HMM模型是对转移概率和表现概率直接建模,统计共现概率。而MEMM模型是对转移 概率和表现概率建立联合概率,统计时统计的是条件概率。MEMM容易陷入局部最优,是因为MEMM只在局部做归一化,而CRF模型中,统计了全局概率,在 做归一化时,考虑了数据在全局的分布,而不是仅仅在局部归一化,这样就解决了MEMM中的标记偏置的问题。

举个例子,对于一个标注任务,“我爱北京天安门“,

                                  标注为" s s  b  e b c e"

对于HMM的话,其判断这个标注成立的概率为 P= P(s转移到s)*P(‘我‘表现为s)* P(s转移到b)*P(‘爱‘表现为s)* ...*P().训练时,要统计状态转移概率矩阵和表现矩 阵。

对于MEMM的话,其判断这个标注成立的概率为 P= P(s转移到s|‘我‘表现为s)*P(‘我‘表现为s)* P(s转移到b|‘爱‘表现为s)*P(‘爱‘表现为s)*..训练时,要统计条件状态转移概率矩阵和表现矩阵。

对于CRF的话,其判断这个标注成立的概率为 P= F(s转移到s,‘我‘表现为s)....F为一个函数,是在全局范围统计归一化的概率而不是像MEMM在局部统计归一化的概率。

以上是关于HMM及CRF的主要内容,如果未能解决你的问题,请参考以下文章

HMM及CRF

HMM隐马尔科夫模型及MATLAB实现

GMM-HMM声学模型

概率图:HMM(隐马尔可夫模型)

隐马尔可夫模型(HMM)总结

从HMM到RNN,机器学习中的时间序列模型