李宏毅机器学习笔记:结构学习,HMM,CRF

1、隐马尔可夫模型HMM

1.1Sequence2Sequence

什么是Seq2Seq问题呢?简单来说,就是输入是一个序列,输出也是一个序列。输入和输出的序列可以相等,也可以不相等。在本文中,可以先假设输入输出序列相等。
在这里插入图片描述

1.2 HMM

这里用了一个通俗易懂的例子来解释HMM模型,POS tagging,词性标注。
在这里插入图片描述
PN表示专有名词Proper Noun
V表示动词
D 定冠词
N名词

通常情况下,我们要生成1个句子,可以分为2个步骤。
一、根据语法设计好一个词性序列
二、根据字典中的词汇填充生成一个句子。
在这里插入图片描述
举例子来说,
在这里插入图片描述
图片表示,开始start后面接的词为PN的概率是0.4,接动词V的概率是0.1,接定冠词D的概率是0.5。依次类推。这样,第一步构思的词性顺序为 PN V D N的概率则为0.4x0.8x0.25x0.95x0.1。
在这里插入图片描述
类似地,在词性结构已经是PN V D N的第一步的基础上,生成的句子为 John saw the saw的概率为0.2x0.17x0.63x0.17。

那怎么计算第2步的概率呢?
在这里插入图片描述
在这里插入图片描述
计算方法如上图所示,其中y表示词性,x表示单词。我们是根据词汇x来求目标词性y,目标词性y是隐含的变量,这也是HMM中隐的由来。
现在问题只在于说如何计算。其实很简单,可以直接根据训练数据将这些概率统计出来。
在这里插入图片描述
在这里插入图片描述
如上图所示,词性 s ′ s' s接在词性 s s s后面的概率为训练数据中词性s后面出现词性 s ′ s' s的次数除以词性s出现的总次数。
词性s的单词为特定单词t的概率则为训练数据中所有单词为t且词性属于s的次数除以词性s出现的总次数。
在这里插入图片描述
通过对训练数据中的相关词汇和词性进行统计,便可计算出相应的概率。

1.3 Viterbi算法

在这里插入图片描述
上述可知,假设有 ∣ S ∣ |S| S个词性,序列长度为L。那么该序列的词性可能存在 ∣ S ∣ L |S|^{L} SL种答案。计算复杂度很高。而Vertibi算法则是专门解决该问题而衍生出的优化算法。
在这里插入图片描述
概括来说,HMM可分为上述3个步骤。

1.3 HMM模型的缺点

在这里插入图片描述
举个例子来说,假如训练数据中, y l − 1 y_{l-1} yl1为名词N,后面接动词V的概率为0.9,接定冠词D的概率为0.1。而在给定词性为动词V的条件下,该单词为单词a的概率为0.5,为单词c的概率为0.5。在给定词性为D的条件下,为单词a的概率为1。
在这里插入图片描述
现在我们假设出现了该种场景,第一个单词为N,后一个单词为a,求后一个单词的词性预测。
这个例子比较简单,可以直接穷举出来。假如该单词词性 y l = D y_{l}=D yl=D,那么概率p=0.11=0.1。
假如该单词词性 y l = V y_{l}=V yl=V,p=0.9
0.5=0.45。因此,答案应该为V。
在这里插入图片描述
这个答案V看上去是没有问题的,但是假设我们的训练数据是上述这种情况,完全满足Transition probability 和Emission probability情况。我们预测的最佳答案是N-V-a。
但是,我们的训练数据中原本就出现了N-D-a这种样本。HMM模型所给的答案是训练数据中从未见过的情况,因为其概率最大。这种情况我们认为HMM预测的更好还是原数据更好呢?
答案显然是原数据中出现的样本最好。由此引申出HMM模型的缺陷问题:可能会预测出训练数据中从未出现过的结果。在训练数据为小样本数据集时其实时有一定好处的,因为这样泛化能力更强。
要想解决HMM的缺陷,有2种解决思路,一是使用更为复杂的模型,而是使用条件随机场CRF。

2、CRF

2.1 CRF模型

在这里插入图片描述
我们首先给出CRF的模型,先不纠结如何来的,后续会一一证明。
P ( y ∣ x ) = P ( x , y ) ∑ y ′ P ( x , y ′ ) P(y|x)=\frac{P(x,y)}{\sum_{y'}P(x,y')} P(yx)=yP(x,y)P(x,y)
可根据前面的HMM部分推到得出。字面意思也很好理解,词性为y,词汇为x的组合概率除以词汇为x,词性为所有可能的y的概率之和,便可得到在给定词汇x的情况下词性为y的概率。
CRF从模型上咋一看,和HMM简直时两个东西。但实际上,只是表达形式不同,建模的思想还是很接近的。
在这里插入图片描述
上面公式为HMM模型种的概率推导,取log后可将相乘的形式方便地转化为相加的形式。我们将上面公式种相加的4项一一拆解开。
在这里插入图片描述
首先看最后一项,s代表词性,t代表词汇。公式所想表达的含义为,在一个序列长度为l的句子中,在给定每个词性为y的情况下词汇为x的的概率取对数之和等于给定词性s情况下取词汇t的概率对数之和乘以出现的次数。
在这里插入图片描述
上面的公式还是很复杂的,必须结合这个例子来看下。结合例子就很容易看懂上述的公式。
在这里插入图片描述
依此类推,另外3个表达式可以同样进行表示。
在这里插入图片描述
最后,便从这里推导出了CRF的模型表达式。
在这里插入图片描述
这里注意,我们在训练时并不会对w进行范围限制。log函数取值范围为负无穷到正无穷。我们这里CRF模型最后用的并不是等号,而是正比符号。
在这里插入图片描述
我们可以一步一步分解一下 ϕ ( x , y ) \phi(x,y) ϕ(x,y),看下其中的结构组成到底时什么。可分解为2部分,第一部分时关于tags和words之间的关系。第二部分是关于tags之间的关系。
第一部分对应的为 N s , t ( x , y ) N_{s,t}(x,y) Ns,t(x,y)
在这里插入图片描述
第二部分则对应于 N s t a r t , s ( x , y ) , N s , s ′ ( x , y ) , N s , e n d ( x , y ) N_{start,s}(x,y),N_{s,s'}(x,y),N_{s,end}(x,y) Nstart,s(x,y),Ns,s(x,y),Ns,end(x,y)

2.2 CRF模型训练

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值