【ML】HMM与CRF:概率图模型比较、理论

目录

前言

原理

1. Markov链简述

2.generative model: HMM   Pr(X,Y)

2.1 HMM 基础知识

2.2 词性标注问题

3.discriminative model: CRF

2.2 统计概率图基础知识

2.2 CRF与HMM

2.3 CRF基础知识



前言

网上各种文章的起点都不一样,这篇综合了许多篇文章,基本零基础,包含了很多我个人的理解。我认为在研究问题的时候弄清楚有哪些是假设,哪些是事实性的是非常重要的,更利于我们跳出坑,明白我们模型的局限性,也能看到模型的广阔处女地。概率模型这边完全自学,看了一点PRML以后感觉稍微成点体系了,如有错误请指正。


                                                                             预计阅读时间 100min

原理

CRF是一个判别式模型。通常,判别式模型 discriminative model 计算条件概率,而生成式模型 generative model 计算联合概率分布。

1. Markov链简述

系统对时间存在的状态转移是事实性存在的。马尔可夫模型中假设:事实性的状态转移概率独立于时间t。而离散的一阶马尔可夫链(马尔可夫过程)是依赖于假设:系统在t时刻的状态只与其在t-1状态有关。首先,这两个假设就与真实情况很不相符。比如常见的预测天气的例子,今日的降水量要考虑现在所处的时节,夏天的雨比较长,如果昨天下雨那么今天也下雨的可能性就比较大,冬天的雨一般只能下一天,如果昨天下雨今天很可能晴天降温了。

2.generative model: HMM   Pr(X,Y)

2.1 HMM 基础知识

A) HMM是一个双重随机过程, 一则state sequence的转移是随机的,二则由state到observed的函数是随机的。当然,HMM遵循Markov的思想,认为这其中事实性存在的概率分布是不变的,不受t的影响。 HMM是一种特定的Bayes Net, 等价于一个概率正规语法,或者概率有限状态自动机,可以用NN模拟。

总结一下,HMM的三个假设:

1)Markov性假设:state sequence 是一阶马尔可夫链。

2)不动性假设:转移概率与时间无关。

3)输出独立性假设:某个observed是且仅是当前state的函数。

B) 对于observed和state都确定的情况下,HMM的参数lambda是:状态转移概率矩阵,观察值概率分布矩阵,初始状态概率分布。

HMM往往研究三个问题,记O,Q为observed 和state 序列:

1)评估问题:Pr(O|\lambda)  ——> 前向算法(动态规划) O(N*N*T)

2)解码问题:最可能的Q:max_Q\{Pr(Q|O,\lambda)\} ——>Viterbi(动态规划) O(N*N*T), 应用贪心思想的greedy search 和改良的beam search

3)学习问题(也称训练问题,参数估计问题):调整lambda,使O最大:max_{\lambda}\{Pr(O|\lambda)\}; 学习问题往往需要大量的observed序列。如果状态序列已知,可以采用最大似然估计EM算法,Baum-Welch算法 (详细可见reference(2))

C) 使用HMM需要考虑的问题:

1)初始状态概率分布:随机?先验?利用大量序列计算?

2)计算中连乘概率的溢出问题:前向算法每一步乘比例因子;Viterbi对概率取对数。

2.2 词性标注问题

以词性标注问题为例,假设X是observed sequence, Y是state sequence;HMM能够计算出给定一个词和它可能的词性的联合概率分布。换句话说,HMM假设了两类特征,转移概率:前词词性与上一个词词性的关系;发射概率:以及当前词语和当前词性的关系。首先,无假设的条件概率公式按HMM的假设可变为:

Pr(X,Y)=Pr(X|Y)Pr(Y)=\prod_iPr(x_i|y_i)Pr(y_i|y_i-1)

词性标注问题就是一个HMM学习问题。两个参数矩阵为|Y|*|X|和|Y|*|Y|大小,得到参数后,再解码,就是词性标注结果。

3.discriminative model: CRF

2.2 统计概率图基础知识

首先,概率图模型(probability graph models)大概是这样的体系结构。

preview

对于一张图G=(V,E),E表示状态间的依赖关系,V则表示随机变量,其概率分布为Pr(Y)。上图可以看到,贝叶斯网络(信念网络)都是有向的,马尔科夫网络无向。概率图模型就是想求Pr(Y)。贝叶斯网络适合为有单向依赖的数据建模,马尔科夫网络适合实体之间互相依赖的建模。说到这里好像就能看出NLP任务中使用HMM等bayesian网络模型的问题了。

有向图求Pr(Y)就是按照路径将条件概率相乘,类似HMM。

对于无向图,先将图分解成若干个最大团(clique),顶点可以共用。如图,分解为(X1,X3,X4),(X2,X3,X4)。

Pr(Y)=\frac{1}{Z(X)}\prod_c \psi_c (Y_c) \ \ \ \ \ Z(X)=\sum_Y \prod_c \psi_c (Y_c)

其中,psi是一个团上随机变量们的联合概率,一般取指数形式:\psi_c (Y_c) = exp\{\sum_k \lambda_k f_k(c,y|c,x)\}

注意这里的Pr(Y), psi(Y)其实都是条件概率,图结构就是条件。则由Hammersley-Clifford law(证明参见reference (4)):Pr(Y)=\frac{1}{Z(X)}\prod_c \psi_c (Y_c)=\frac{1}{Z(X)}exp\{\sum_c\sum_k \lambda_k f_k(y_i,y_{i-1},x,i)\}

 

2.2 CRF与HMM

首先解释一下生成模型和判别模型的区别:

 Discriminative modelGenerative model
工作机制对Pr(Y|X)建模。通过Y和features,学习出一个明显或者比较明显的边界,比如一个函数。推断时,用X代入函数,与边界比较。

研究出数据的联合分布Pr(X,Y),推断时,对于P(X)利用条件概率公式计算P(Y|X)。

 

特征

 

对所有的样本只构建一个模型,确认总体判别边界

优点是对数据量要求不大。

分类问题要对每个label建模,最终选择最优,所以没有判别边界。中间生成联合分布,并可生成采样数据,关注结果是如何产生的。但是需要非常充足的数据量以保证采样到了数据本来的面目,且速度相比之下更慢。

举例神经网络模型、SVM、perceptron、LR、DT……Naive Bayesian、LDA……

HMM假设了两类特征,一是当前词词性与上一个词词性的关系,以及当前词语和当前词性的关系,分别对应着转移概率和发射概率。CRF没有做上述的假设,而使用feature function来更抽象地表达特征。CRF 有linear和general两种,如下图。

2.3 CRF基础知识

由概率无向图,x,y是序列,y的所有可能取值构成空间Y,linear CRF的条件概率:

Pr(y|x,\lambda)= \frac{1}{Z(x)}exp\{\sum_i \sum_j \lambda_j f_j(x,i,y_j,y_{j-1})\} \\ Z(x)=\sum_{y\in Y} exp\{\sum_i \sum_j \lambda_j f_j(x,i,y_j,y_{j-1})\}

对于特征函数,可以定义转移特征和状态特征:

Pr(y|x,\lambda)= \frac{1}{Z(x)}exp\{\sum_i \sum_j \lambda_j t_j(x,i,y_j,y_{j-1})+\sum_i \sum_j \lambda_j s_j(x,i,y_j)\}

不妨假设每个token(xi)都有T个转移特征,S个状态特征。其实就是对每一个token多次打分。

之后,我们用最大似然估计估计lambda。这里也是Negative Conditional Log-Likelihood,按PRML上讲的标准步骤走就可以。看了一些网上各种公式推导,感觉都不太对,但是这里的偏导求出来也是可以直接利用计算Pr时的中间量的。

Reference: 

(1)理解CRF:https://zhuanlan.zhihu.com/p/70067113

(2)隐Markov模型:https://wenku.baidu.com/view/437ce352cfc789eb172dc8f0.html

(3)如何解释CRF:https://www.zhihu.com/question/35866596 知友Scofield总结的非常好。

(4)Hammersley-Clifford 定理证明: https://blog.csdn.net/csuyzt/article/details/81709439

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值