【机器学习基础】一文读懂用于序列标注的条件随机场(CRF)模型

模型前的铺垫

我们先引入一个假设,假设一个句子的产生只需要两步:

第一步:基于语法产生一个合乎文法的词性序列

第二步:对第一步产生的序列中的每个词性找到符合这个词性的一个词汇,从而产生一个词汇序列,便产生出了一个句子

图1

那么如图1所示,假如我们基于语法产生了一个词性序列("PN V D N"),那基于这样的词性序列到对应的词典集合中选词便可以组合出一个句子。

图2

假如我们产生的句子是"John saw the saw",那么如图2所示,每个词都有一定的概率被选出,基于词性序列("PN V D N")产生这个句子的概率为:

如果把词性序列用y表示,把句子的词汇序列用x表示,那么上述句子的生成可以表示为:

这样我们就可以得到序列x、y同时出现的概率P(x,y):

其中P(y)表示序列y出现的概率:

P(x|y)表示基于序列y生成序列x的概率:

基于上述想法,我们可以得到更一般化的表示:

从而P(y)可以更一般的表示为:

同样P(x|y)可以更一般的表示为:

那么可以得到P(x,y)更一般的表示为:

图3

再来看图3,当序列x是已知的或者说是可观测的,而标记序列y是隐藏的或者说是未知的,那么如何来求得理想标记序列y呢?我们通过采取求解条件概率P(y|x)来求得,即:

其中y是一个可能的标记序列,Y是所有可能的标记序列。上式的意义在于期望求得一个能使条件概率P(y|x)最大的标记序列y。也就是说,如果我知道了P(y|x)如何求,再把每个可能的标记序列y带进去,就能得到想要求得的理想标记序列y。

CRF模型引入

基于上述的铺垫,下面我们开始引入条件随机场模型。

条件随机场(CRF)模型可以用如下式子来描述:

其中:

  • w表示权重向量

  • 表示特征向量

现在我们重点来关注如何求解条件概率P(y|x)

辅助理解

从标注问题的角度来理解条件概率P(y|x)的含义。x表示给定的待标注序列,y表示给定x下对应的一个标记序列。我们希望通过求解条件概率P(y|x)来得到给定x条件下对应的一个理想标注序列

P(y|x)可以表示为:

我们知道

不妨设

辅助理解

R为比例系数

将上式带入P(y|x)的表达式中可得

辅助理解

Y表示所有可能的标注序列的集合,y'表示所有标注序列的集合中的某个标注序列

观察上式,可以看到分母部分其实只和x有关,所以可以将其简化的表示为Z(x),即:

也就是说,要求P(y|x),关键在于求解P(x,y),由之前的铺垫,我们知道:

我们对上式两边取对数得:

其中

上式是如何来的呢?

图4

如图4所示,可得:

从而

同样,我们也能得到

从而

我们可以将上式向量化表示为:

我们可以令

其中

由于的值可能会大于1,这就不能用来表示概率了,所以

参考资料:

李宏毅《Sequence Labeling Problem》课程

英文原文:https://medium.com/visionwizard/object-tracking-675d7a33e687

往期精彩回顾




适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑

获取一折本站知识星球优惠券,复制链接直接打开:

https://t.zsxq.com/y7uvZF6

本站qq群704220115。

加入微信群请扫码:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,让我来回答你的问题。 条件随机场CRF)是一种概率无向图模型用于序列标注问题进行建模。前向-后向算法(forward-backward algorithm)是一种用于评估标记序列概率的算法,它可以通过动态规划的方式高效地计算出所有可能的标记序列的概率。 具体来说,前向-后向算法分为两个步骤:前向算法和后向算法。前向算法用于计算给定观测序列下每个位置的前缀标记序列的概率,而后向算法用于计算给定观测序列下每个位置的后缀标记序列的概率。两个步骤的结果可以结合起来,得到给定观测序列下所有可能的标记序列的概率。 具体来说,前向算法计算方式如下: 1. 初始化:$\alpha_1(i) = \pi_i b_i(o_1), i=1,2,...,N$ 2. 递推:$\alpha_t(i) = [\sum_{j=1}^N \alpha_{t-1}(j)a_{ji}]b_i(o_t), i=1,2,...,N, t=2,3,...,T$ 其中,$\alpha_t(i)$ 表示在时刻 $t$,标记为 $i$ 的前缀标记序列的概率;$\pi_i$ 表示初始状态为 $i$ 的概率;$b_i(o_t)$ 表示在时刻 $t$,观测值为 $o_t$,标记为 $i$ 的发射概率;$a_{ji}$ 表示从标记 $j$ 转移到标记 $i$ 的转移概率。 后向算法计算方式如下: 1. 初始化:$\beta_T(i) = 1, i=1,2,...,N$ 2. 递推:$\beta_t(i) = \sum_{j=1}^N a_{ij}b_j(o_{t+1})\beta_{t+1}(j), i=1,2,...,N, t=T-1,T-2,...,1$ 其中,$\beta_t(i)$ 表示在时刻 $t$,标记为 $i$ 的后缀标记序列的概率。 最终,给定观测序列 $O$,所有可能的标记序列 $I$ 的概率可以通过前向算法和后向算法的结果相乘得到: $P(O) = \sum_{i=1}^N \alpha_T(i) = \sum_{i=1}^N \beta_1(i)\pi_ib_i(o_1)$ 希望这个回答对你有帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值