前几节我们大概的介绍了学习算法,即GIS和IIS的算法,这两个算法在最大熵模型中讲的比较详细,想要深入理解这两个算法,需要你理解动态规划算法。这里的条件随机场实际上是根据最大熵模型的思想过来的,因为通过前面我们可以看出CRF算法的目标公式就是按照最大熵算法构造而来的,不同的是特征函数的选取不同,但是都是大同小异,因此这里大家需要对最大熵模型深入理解,而条件随机场是根据隐马尔可夫过来的,在他的基础上加上概率图模型和团的思想简单来讲就是把可观测符号的独立性假设去掉了,同时引入判断当前的转态和前一个状态有关,这是符合语言特性的,因此,他们的关系大家应该搞清楚,只有这样我们在遇到实际问题时才能辨别出问题是适合哪个算法模型,或者问题出在哪里,所有这一部分很重要,本节将详细讲解CRF是如何预测的。

条件随机场的预测算法

我们先把条件随机场的目标公式拿过来,首先是定义式,然后是简化向量式和矩阵式,具体定义请参考前文或者李航的书:

定义式:

简化向量式:

矩阵式:

上面都是条件随机场的目标函数,定义式有两个参数,分别是对转移状态和位置的特征的权值参数,简化向量式是为了方便计算把两个参数合二为一了,原理还是一样的,矩阵式是为了适合编程进行的调整,其中我们通过最大熵模型的求解算法IIS进行求解的权值,最后检查一下建立模型的有效性,计算一下期望比对一下观察是否相符,这些都是前面的讲到的知识,本节将接着介绍条件随机场的使用即如何预测的。

我们都知道隐马尔可夫的三个基本问题,其中第二个问题是通过可观测的信号进行反推HMM的状态转移概率,在语音识别中,我们知道语音的拼音了,让我们求对应的汉字,这其实是标注问题,即我知道了一个形式,使用另外一种形式以最大概率的进行标记他,因为我们的条件随机场就是根据HMM的缺点改进的,因此他也是解决标注问题, 即我们在输入语音向量x的前提下,以最大的概率使用汉字进行标注他就是上面的简化向量式,这就是语音识别了,即我知道了拼音序列,反推他对应的汉字的序列。那么也就是说以后只要我们遇到标注性的问题都可以通过CRF进行求解了。下面我们就来看看他说如何标注的。

上式就是我们的目标函数了,也是我们上面的解释的数学化描述,就是在这个是指求的参数y使的y在x 的条件下概率最大,然后把上面的简化向量式带进去即可得到上式的第二行,然后把归一化的去掉,求其非归一化的概率,因为我们计算出概率的目的是为了比较,因此是不是概率我们不关心,我们关心的是大小,因此可以去掉,同时计算量就会下降,这样就得到了上面的目标式。因此这里就是最优化问题了:

那么上面的都代表什么意思呢?

这里就是不详细解释了,把其都写成向量形式, 这些在前面都讲解了,不懂的请好好看看前面 的基础,那么我们为了使用维特比算法, 这里还需要把最优化目标表达式改一下,如下:

其中:

其实是一样的,这里大家别迷惑了,我们继续:

现在我们需要求解这个概率,这个概率可以求解吗?当然可以求解了,但是这个使用遍历的方法不可行,因为什么呢?因为你只要给,我通过慢慢算是可以的,但是现在加每个位置的标注有四种可能即S,B,M,E四种可能的标注,那么如归输入的语音有100个地方需要标注,则需要计算计算量,这个计算量很大了,可以说不肯能遍历所有的可能,因此这里需要使用维特比算法,这个算法我们在HMM中求解第二个问题时使用过,因此这里也是可以使用的,本来不想仔细说这个算法的,但是感觉用到的很多,因此这里系统的讲解一下维特比的算法思想,以后遇到类似的情况我们也可以使用这个算法解决问题,好废话不多说,下面开始:

维特比算法

维特比算法思想是基于动态规划的,这里我会稍微深入的讲解一下动态规划思想,尽量让大家能看明白,首先我们使用标注问题进行讲解,现在这里和大家说一下什么是分词,这里使用一个例子进行讲解:

上式就是对一个句子进行分词了,这里的S(single,单个的意思) 、B是(begin,开始)、M(more ,更多)、E(end结束),这里我们是怎么标号的呢,上面是人为正确划分的,这里我们把单个的词使用S来代表,两个字以上的组合词分别使用B、M、E来表示,这样,就把汉字通过符号来表示了。那么我们通过符号就可以把分词问题转化为标注问题了。我们在举一个例子:

我们假设已经标号了,那么我们通过符号就可以表示已经分好的词了,上面虽然分的不对,但是功能已经实现了,所以只要知道这些符号的组合基本上就可以分词了,我们知道分词后就会知道一句话每个字都是一个划分标志,又因为每个字都有四个划分选项即S\B\M\E,下面我们结合图进行讲解:

假设这里有一句话是“我喜欢北京天安门“,现在我们需要对此进行标注,这里我们以每个字为间隔为例进行标注,总共有四种标注即SBME,因此这里只有一条线是正确的,如上图的红线走势就是正确的,现在我们来看看他的计算量,如果使用遍历的方法,有多少种可能呢?答案是种路径,这才一句话8个字每个字才有4种可能结果的划分,我看到就有将近7万左右的可能,计算量可想而知很大,如果一句话有100个字,每个字的划分是100种,这样的情况根本无法计算,因此不能使人遍历的方法即穷举法,那使用什么方法呢?这个方法不仅要计算量小,还要求得最大的概率路径即对应上图正确的标注,这个怎么做呢?大家这样想,最大概率是指全局最优解,那么这里就可以使用动态规划的思想,这个思想就可以完美的满足上面的两个条件即计算量小,还能找到全局最优解即最大概率,这个思想其实不难,动态规划的思想是分析时是从全局即结果出发,然后往刚开始进行推理,然后计算出每往前推一步的结果然后保留,已知到刚开始的位置,写代码时就从开始出开始,然后进行根据之前的计算好的概率进行选择最优的路径,这里我们把分析省了,直接进行选择,看下图分析:

首先我们是知道字与字之间的标注概率的,例如喜欢,从“喜”到“欢”的概率很大,说明他们是一个词这是知道的,也就说说明我们知道上图的每一步的概率,类红线s到B的概率是知道的,这些概率都是知道的,怎么来的呢?根据语料库计算出来的,现在的问题是我们如何知道最正确的标注路径呢?我么你可以这样做,我们可以把两个两个看为一个单元,如上图的红色虚线框,此时我么你可以计算这个红色框的对应标注的最大概率,然后把红色框看为一个整体和后面的在进行求解,如上图的紫色部分,同时也记录标注的最大概率(此时的概率是前面红色框的概率与到达三角形的概率的乘积),然后在把其看为一个整体,然后在加入另外一列就这样我们每一次都会得到概率最大的,然后在和后面的概率累乘,这是简化版的动态规划思想。如下图:

下面我们就通过公式进行描述,下面我们在通过公式讲解,大家应该明白了,下面开始:

首先求出位置1的各个标记,如下图这里的j就是可选的四个标记即SBME了,这就相当于我们的红色虚线了的概率了,这个大家应该能理解吧。

一般地,由递推公式,求出到位置的各个标记的非规范化概率最大值,同时记录非规范化概率最大值的路径,

这里他直接是第i个了,根据上面的理解大家应该可以看懂吧,看不懂的请留言吧。

上式是记录路径的。

直到时终止.这时求得非规范化概率的最大值为

及最优路径的终点

由此最优路径终点返回,

求得最优路径
直接截图了,这里大家需要深入理解呀

好了,本节结束了,大家好好思考维特比算法,这里的算法和动态规划有点不同,这里的更简单点,等我开算法专栏在详细讲解动态规划,那时大家在看一定会深入理解的,好了,本节结束,下一节简单介绍自然语言处理的一些细节方面的内容,如分词、标注等等内容,下一节将开始分词。

NLP --- 条件随机场CRF(预测算法详解)相关推荐

  1. NLP --- 条件随机场CRF详解 重点 特征函数 转移矩阵

    20210517 http://www.tensorinfinity.com/paper_170.html 上一节我们介绍了CRF的背景,本节开始进入CRF的正式的定义,简单来说条件随机场就是定义在隐 ...

  2. NLP --- 条件随机场CRF详解

    上一节我们介绍了CRF的背景,本节开始进入CRF的正式的定义,简单来说条件随机场就是定义在隐马尔科夫过程的无向图模型,外加可观测符号X,这个X是整个可观测向量.而我们前面学习的HMM算法,默认可观测符 ...

  3. NLP --- 条件随机场CRF(概率计算问题)

    上一节详解的阐述了条件随机场的定义和简单的学习算法推倒,这里不懂的前翻看前两节的博客,这里不再赘述,本节将主要求期望的问题,为什么要求解期望?本节主要参考的内容是一篇论文和李航的书,论文是<Co ...

  4. 【机器学习】【条件随机场CRF-3】条件随机场的参数化形式详解 + 画出对应的状态路径图 + 给出对应的矩阵表示...

    1.条件随机场概念 CRF,Conditional Random Field,是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模式,其特点是假设输出随机变量构成马尔可夫随机场. 条件随机场 ...

  5. NLP --- 条件随机场CRF背景

    上一节我们主要讲解了最大熵模型的原理,主要是解释了什么是最大熵,已经最大熵的背景知识,其实还是多建议大家读读论文,如果读英语有点难度,那就看李航的<统计学习方法>的最大熵模型和条件随机场, ...

  6. 条件随机场(CRF) - 4 - 学习方法和预测算法(维特比算法)

    声明: 1,本篇为个人对<2012.李航.统计学习方法.pdf>的学习总结,不得用作商用,欢迎转载,但请注明出处(即:本帖地址). 2,由于本人在学习初始时有很多数学知识都已忘记,所以为了 ...

  7. 长文详解基于并行计算的条件随机场CRF

    六月 北京 | 高性能计算之GPU CUDA培训 6月22-24日三天密集式学习  快速带你入门阅读全文> 正文共3974个字,29张图,预计阅读时间18分钟. 之前写过CRF的详解,只是为了让 ...

  8. 条件随机场(CRF)模型详解

    近期做一个小整理,把之前学过的一些模型重新拿出来学习一下.而CRF(Conditional Random Fields,条件随机场)模型是自己了解到的第一批模型之一,所以拿过来复习一下 假设你有许多小 ...

  9. 自然语言处理NLP星空智能对话机器人系列:第21章:基于Bayesian Theory的MRC文本理解基础经典模型算法详解

    自然语言处理NLP星空智能对话机器人系列: 第21章:基于Bayesian Theory的MRC文本理解基础经典模型算法详解 1,Bayesian prior在模型训练时候对Weight控制.训练速度 ...

最新文章

  1. 汇总下几个IP计算/转换的shell小脚本-转
  2. Linux中文件上传使用rz
  3. 1396: 队列问题(2)
  4. Servlet的第一个程序HelloWorld
  5. JVM从入门到精通(一):JVM入门级class文件格式
  6. python stdout stderr 一起输出_python – 使用subprocess.Popen()时,stderr和stdout没有输出
  7. 80%的程序员都不了解的调试技巧
  8. 在Google Cloud Platform的K8上运行Fn函数
  9. Sonar6.0应用之一:基于centos7.2安装
  10. Cannot forward ... response ... committed
  11. 千峰前端html个人笔记
  12. 《深入理解计算机系统》——低谷中的重新振作
  13. O2OA 稳定版 V4.2235 发布,功能性能等多方面优化升级
  14. 守护线程daemon
  15. Taobao api, Jingdong api, 1688api, Pinduoduo api, Douyin api commodity interface source code
  16. 2017 7 12 测试
  17. 学技术总是很慢,你得培养这些个技巧!
  18. 远程办公软件华为云WeLink视频会议指南(上篇:预订视频会议)
  19. 一个真实项目的性能分析策略
  20. 前端安全-CSRF攻击,sql注入,点击劫持

热门文章

  1. docker和vm不兼容遇到的坑
  2. 开源项目推荐!2019阿里,腾讯,百度,美团,头条等大厂技术面试题目汇总
  3. python写签到软件_第一个实用python程序——自动填写工作日志、签到
  4. 深入解析数据库透明加密技术
  5. HCIE证书真的有用吗?
  6. (转载)从IRQ到IRQL(APIC版)
  7. Python如何判断质数(素数)
  8. QT creater联机版斗地主斗地主(服务器与客户端两部分)
  9. 阿里服务器部署及区块链币种同步
  10. 思科刀片服务器系统,思科UCS平台:B460 M4刀片服务器解读