先整理下相关概念:

条件随机场P(Y|X):
表示的是给定一组输入随机变量 X 的条件下另一组输出随机变量 Y 的马尔可夫随机场,也就是说 CRF 的特点是假设输出随机变量构成马尔可夫随机场。

什么是随机场?
官方定义:
随机场就是随机过程在空间上的推广。随机过程的基本参数是时间变量,而随机场的变量是位置向量u(x,y,z).所以随机场就是定义在一个场域参数集合上的随机变量系。对于场域内的任一点,都有随机变量与它对应。
讲人话:就是多维的随机过程.

什么是马尔科夫随机场:
马尔科夫随机场就是概率无向图模型,就是联合概率分布.
讲人话:就是多维随机变量的联合分布.

为什么引入无向图:
为了直观、便于分析,学术上,图论的东西可以用于概率,概率的东西可以用于图论,方便多学科促进.
讲人话:就是为了好看.

什么是生成式模型和判别式模型?
https://blog.csdn.net/appleyuchi/article/details/85319921

什么是线性链随机场?
李航的书P195页有定义:
P(Yi∣X,Y1,⋅⋅⋅,Yi−1,Yi+1,⋅⋅⋅,Yn)=P(Yi∣X,Yi−1,Yi+1)P(Y_i|X,Y_1,···,Y_{i-1},Y_{i+1},···,Y_n)=P(Y_i|X,Y_{i-1},Y_{i+1})P(Yi​∣X,Y1​,⋅⋅⋅,Yi−1​,Yi+1​,⋅⋅⋅,Yn​)=P(Yi​∣X,Yi−1​,Yi+1​)
这个判别式是什么意思呢?
也就是说:这个YiY_iYi​只和前一个词语Yi−1Y_{i-1}Yi−1​或者后一个词语Yi+1Y_{i+1}Yi+1​以及输入X相关
讲人话,举个可能不太恰当的例子哈:
“我要犒赏你们”
这里的你们如果放在一句话的开头,那么词性就是"主语"
由于上面这个桔子中的"你们"放在"犒赏后面",那么"你们"的词性就是"宾语"
所以这里的:
Yi−1Y_{i-1}Yi−1​=动词
YiY_{i}Yi​=宾语
上面这个例子,举得不是太合适,只是想表明一个"词性标注"的观点:
一个词语被标注为那种词性是和前后的词语是相关的.,而这种相关性也刚好和"马尔科夫性"相吻合,所以一拍即可,crf就被拿来对词语进行标注了.

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
下面是重点,linear-CRF的具体举例:
李航书上的P196的例11.1有些问题,没有提供输入的x的具体的值是什么.
刘建平的博客园也是照抄了李航书上的东西,他似乎也是没有完全搞懂.

下面我们详细讲讲这个"词性标注"的例子.

借用一张分词的图:

我们的目的:
输入一段分词后的话,
输出每个词语的词性标注.

我们先回顾下HMM,每次计算的概率这样的:
当前计算的概率·转移概率·摸到红(白)球的概率
然后获取总积累概率最大的一条路径作为"状态序列",讲人话,就是想知道,这些小球是从哪几个盒子里面摸到的.

与此对应的linear-CRF,viterbi计算最优路径问题是这样的:
∑i=13w⋅Fi(yi−1,yi,x)\sum_{i=1}^{3}w·F_i(y_{i-1},y_i,x)i=1∑3​w⋅Fi​(yi−1​,yi​,x)
那么根据上面的图,每一层发生了什么呢?
我们知道,如果是HMM,那么每一层表示:跳转到某个盒子+抽取小球
对于linear-CRF而言,每一层表示:跳转到某个盒子(词性)+抽取小球(具体的词语)
但是呢,linear-CRF计算公式换了换,例如,计算第二层时,
公式变成:
δ2(l)=maxj{θ1(j)+w⋅F2(j,l,x)}\delta_2(l)=max_j\{\theta_1(j)+w·F_2(j,l,x)\}δ2​(l)=maxj​{θ1​(j)+w⋅F2​(j,l,x)}

讲得有点乱,我们来个表格对比下上面的内容:

计算过程 HMM的例子 linear-CRF的例子
算法 viterbi viterbi
算法目标 P∗=max1≤i≤3δ3(i)P^*=max_{1≤i≤3}\delta_3(i)P∗=max1≤i≤3​δ3​(i) maxi=13w⋅Fi(y(i−1),yi,x)max_{i=1}^3w·F_i(y_{(i-1)},y_i,x)maxi=13​w⋅Fi​(y(i−1)​,yi​,x)
计算思路 跳转到每一层的盒子中
然后抽红白球(放回抽取)
跳转到每一层的盒子(词性)中
然后生成某个词语(放回生成)
算法输入 摸到的小球颜色序列,
例如:(红,白,红)
生成的词语序列,
例如:(我,要,去,吃,饭)
算法输出 (第三个盒子,第三个盒子,第三个盒子) (名词,谓语,动词,动词,名词)
算法第2层,
状态为l的计算
δ2(l)=max⁡1≤j≤3[δ1(j)ajl]bl(o2)\delta_2(l)=\max_{1≤j≤3}[\delta_1(j)a_{jl}]b_l(o_2)δ2​(l)=max1≤j≤3​[δ1​(j)ajl​]bl​(o2​) δ2(l)\delta_2(l)δ2​(l)=
maxj{δ1(j)+wF2(j,l,x)}max_j\{\delta_1(j)+wF_2(j,l,x)\}maxj​{δ1​(j)+wF2​(j,l,x)}
上图中的圆圈含义 每个圆圈代表放小球的盒子
每个盒子中都有不同颜色的小球
每个圆圈代表不同的词性
每个词性都可以依据概率生成不同的词语

其他参考链接:
https://www.cnblogs.com/Determined22/p/6915730.html
https://zhuanlan.zhihu.com/p/28343520

线性链条件随机场与HMM在viterbi算法中的图解对比相关推荐

  1. 【Learning Notes】线性链条件随机场(CRF)原理及实现

    1. 概述 条件随机场(Conditional Random Field, CRF)是概率图模型(Probabilistic Graphical Model)与区分性分类( Discriminativ ...

  2. 隐马尔可夫模型(HMM)及Viterbi算法

    HMM简介 对于算法爱好者来说,隐马尔可夫模型的大名那是如雷贯耳.那么,这个模型到底长什么样?具体的原理又是什么呢?有什么具体的应用场景呢?本文将会解答这些疑惑. 本文将通过具体形象的例子来引入该模型 ...

  3. 线性条件随机场代码解读

      NER中CRF是必不可少的环节,特地看了一遍CRF相关理论以及allennlp中CRF的代码,特在这里笔记记录下来! 1.线性CRF简介 1.1一般形式   关于线性条件随机场的详细介绍,请参考李 ...

  4. NLP——part of speech (POS)中的隐马尔可夫模型 + Viterbi 算法

    文章目录 POS 隐马尔可夫模型 计算简介 转移概率矩阵(Transition matrix) 观察矩阵(Observation / emission Matrix) 预测 prediction Vi ...

  5. HMM预测算法——Viterbi算法

    **HMM预测算法--Viterbi算法** HMM是一个生成模型,表示状态序列和观测序列的联合分布,但是状态序是隐藏的,不可观测的. Viterbi算法实际上用动态规划(dynamic progra ...

  6. HMM——维特比算法(Viterbi algorithm)

    1. 前言 维特比算法针对HMM第三个问题,即解码或者预测问题,寻找最可能的隐藏状态序列: 对于一个特殊的隐马尔可夫模型(HMM)及一个相应的观察序列,找到生成此序列最可能的隐藏状态序列. 也就是说给 ...

  7. HMM 前向 后向 Viterbi算法讲解通透的

    HMM  前向 后向 Viterbi算法讲解通透的 https://blog.csdn.net/xueyingxue001/article/details/52396494 什么是HMM https: ...

  8. 隐马尔可夫(HMM)、前/后向算法、Viterbi算法

    HMM的模型  图1 如上图所示,白色那一行描述由一个隐藏的马尔科夫链生成不可观测的状态随机序列,蓝紫色那一行是各个状态生成可观测的随机序列 话说,上面也是个贝叶斯网络,而贝叶斯网络中有这么一种,如下 ...

  9. 机器学习知识点(二十四)隐马尔可夫模型HMM维特比Viterbi算法Java实现

    1.隐马尔可夫模型HMM    学习算法,看中文不如看英文,中文喜欢描述的很高深.    http://www.comp.leeds.ac.uk/roger/HiddenMarkovModels/ht ...

最新文章

  1. matlab仿真谱间干扰,内外分解和谱分解问题解析计算及其MATLAB仿真.pdf
  2. flink source 同步_为什么说 Flink + AI 值得期待?
  3. c语言程序设计 第三版 哈工大,c语言程序设计 哈工大 苏小红 第三章习题
  4. global http proxy configuration on ubuntu
  5. 编译Notepad2语法高亮记事本源码心得
  6. Progressive Layered Extraction (PLE)
  7. Redis中雪崩、击穿、穿透详解
  8. 程序员写个人技术博客的价值与意义
  9. 多方位玩转“地平线新发布AIoT开发板——旭日X3派(Sunrise x3 Pi)” 插电!开机!轻松秒杀!
  10. C语言练习题 :猴子吃桃程序
  11. PHP微信公众号开发接口封装
  12. 商场抽奖活动案例,键盘录入,数值拆分,求和,判断
  13. 关于c++取绝对值的方法
  14. 十二星座的心是什么做的
  15. 计算机网路原理复习笔记
  16. a.gray.Bulimia.a病毒
  17. 精力管理--分享感悟
  18. 参数非法异常:java.lang.IllegalArgumentException: class com.xxx.SignDetailRQ declares multiple JSON fields
  19. Appid + appSecret + code 到微信方服务器 获取 session_key openid 并授权登录
  20. bga封装扇出_扇出型封装为何这么火?

热门文章

  1. BNUOJ 4215 最长公共连续子序列
  2. 深入探究VC —— 链接器link.exe(4)【转】http://blog.csdn.net/wangningyu/article/details/4849452...
  3. 从Servlet到JSP,从Model1到Model2
  4. js超出文字个数展示省略号
  5. angularjs ng-click传参控制ng-repeat元素显示与隐藏
  6. CV与IP:基础,经典以及最近发展
  7. 使用模板库的几个注意点
  8. jQuery常见的选择器操作运算符
  9. phpcms v9 搜索页显示自定义字段
  10. 【译】《Understanding ECMAScript6》- 第八章-Module