条件随机场Conditional Random Field,CRF、隐马尔可夫模型Hidden Markov Model,HMM、马尔可夫随机场、马尔可夫性质傻傻分不清楚?帮你理理关系_条件扩散模型 和 隐马尔科夫的区别-程序员宅基地

技术标签: 自然语言处理  概率论  

前言

条件随机场(Conditional Random Field,CRF)和隐马尔可夫模型(Hidden Markov Model,HMM)都是自然语言处理的基础模型,还有马尔可夫随机场什么什么的。我在初学的时候属于是被搞晕了。在讲CRF的时候还会提到马尔可夫随机场什么的,搞得我云里雾里。

经过一段时间的学习,对这几个东西的区别有了一些认识。进行了一下简单的梳理,希望对大家理解有一些帮助。但我个人的理解多半有些瑕疵,希望大家能批评指正。

一些基础概念

了解相关的基础概念是区分的关键,不想看的可以直接跳转到区别

马尔可夫性质

其含义是,当一个随机过程在给定现在状态及所有过去状态情况下,其未来状态的条件概率分布仅依赖于当前状态;换句话说,在给定现在状态时,它与过去状态(即该过程的历史路径)是条件独立的,那么此随机过程即具有马尔可夫性质。

上述是节自wiki百科,简单的来说——当前的状态只与上一时刻的状态相关,即满足下式: p ( X n + 1 = x n + 1 ∣ X 1 = x 1 , . . . , X n − 1 = x n − 1 , X n = x n ) = p ( X n + 1 = x n + 1 ∣ X n = x n ) p\left ( X_{n+1}=x_{n+1}|X_{1}=x_{1},...,X_{n-1}=x_{n-1},X_{n}=x_{n} \right )=p\left ( X_{n+1}=x_{n+1}|X_{n}=x_{n} \right ) p(Xn+1=xn+1X1=x1,...,Xn1=xn1,Xn=xn)=p(Xn+1=xn+1Xn=xn)
这个公式说明的就是 X n + 1 = x n + 1 X_{n+1}=x_{n+1} Xn+1=xn+1的概率仅与 X n = x n X_{n}=x_{n} Xn=xn相关,与之前的状态无关。即,n+1时刻的状态仅与n时刻的状态相关,与再之前的状态无关。
举个简单的在NLP句子生成的例子——句子中某个单词出现的概率仅与前一个单词相关。比如现在有个句子 They came from 要预测后面的单词,就只会考虑from来生成一个单词。
上述也叫做一阶马尔可夫,它因为只考虑前一个状态,能力有限。因此可以类推到n阶马尔科夫。比如二阶马尔可夫可以表示为如下: p ( X n + 1 = x n + 1 ∣ X 1 = x 1 , . . . , X n − 1 = x n − 1 , X n = x n ) = p ( X n + 1 = x n + 1 ∣ X n − 1 = x n − 1 , X n = x n ) p\left ( X_{n+1}=x_{n+1}|X_{1}=x_{1},...,X_{n-1}=x_{n-1},X_{n}=x_{n} \right )=p\left ( X_{n+1}=x_{n+1}|X_{n-1}=x_{n-1},X_{n}=x_{n} \right ) p(Xn+1=xn+1X1=x1,...,Xn1=xn1,Xn=xn)=p(Xn+1=xn+1Xn1=xn1,Xn=xn)
n阶就是考虑前n个时刻的状态。

马尔可夫链

是指具有马尔可夫性质的随机过程。

隐马尔可夫

用来描述一个系统隐性状态的转移和隐性状态的表现概率(来描述一个含有隐含未知参数的马尔可夫过程)。HMM是个双重随机过程(doubly embedded stochastic process),一个是状态转移,另一个是由状态释放出观测值。
在序列标注(Sequence labelling)任务中,模型就是需要对状态序列进行标注。
一些我在公式上的理解——序列 Q = ( q 1 , q 2 , . . . , q T ) Q=(q_{1},q_{2},...,q_{T}) Q=(q1,q2,...,qT) 是不可观测的(比如说是句子中每个单词的词性标注,这是无法直接观测得到的,且是模型的输出),并记所有可能状态的集合为 S = { o 1 , o 2 , . . . , o T } S=\{o_{1},o_{2},...,o_{T}\} S={ o1,o2,...,oT} ,由它们产生一个可观测的观测随机序列(observation sequence) O = ( o 1 , o 2 , . . . , o T ) O=(o_{1},o_{2},...,o_{T}) O=(o1,o2,...,oT) (比如说是句子中每个单词,这个是能观测的,且是模型的输入)
在标注的时候,我们想要完成的任务是给定一个句子 O O O,输出序列中每个单词的词性 Q Q Q,即: P ( Q ∣ O ) = P ( Q , O ) P ( O ) P(Q|O)=\frac{P(Q,O)}{P(O)} P(QO)=P(O)P(Q,O)
O O O 是显性的,所以 P ( O ) P(O) P(O) 也是已知的,实际上是在对 P ( Q , O ) P(Q,O) P(Q,O) 建模,涉及推导,就略过了。

详细的介绍可以看这些资料:

https://www.cnblogs.com/Determined22/p/6750327.html
https://zhuanlan.zhihu.com/p/111899116

随机场

在概率论中, 由样本空间 Ω = { 0 , 1 , … , G − 1 } Ω = \{0, 1, …, G − 1\} Ω={ 0,1,,G1} n取样构成的随机变量Xi所组成的 S = { X 1 , … , X n } S = \{X1, …, Xn\} S={ X1,,Xn}。若对所有的 ω ∈ Ω ω∈Ω ωΩ 下式均成立,则称 π π π 为一个随机场。 π ( ω ) > 0 π(ω) > 0 π(ω)>0.

属于是太抽象了,我也不太理解。给一段百度百科的解释:当给每一个位置中按照某种分布随机赋予相空间的一个值之后,其全体就叫做随机场。我们不妨拿种地来打个比方。其中有两个概念:位置(site),相空间(phase space)。“位置”好比是一亩亩农田;“相空间”好比是种的各种庄稼。我们可以给不同的地种上不同的庄稼,这就好比给随机场的每个“位置”,赋予相空间里不同的值。所以,俗气点说,随机场就是在哪块地里种什么庄稼的事情。

主要了解一些随机场如:马尔可夫随机场(MRF),吉布斯随机场(GRF),条件随机场(CRF)和高斯随机场。

马尔可夫随机场

马尔可夫随机场,又被称为马尔可夫网络或者无向图模型。是一个生成式模型,表示一个联合概率分布。设有联合概率分布 P ( Y ) P(Y) P(Y),它可以用无向图表示,若 P ( Y ) P(Y) P(Y) 满足成对马尔可夫性、局部马尔可夫性和全局马尔可夫性这三个中的任意一个,就称此联合概率分布为马尔可夫随机场或者概率无向图模型。可以理解为:当前的节点只与与该节点直接链接的节点有关系,与随机场中其他的节点都没有关系。

详细的介绍可以看这些资料:

https://blog.csdn.net/weixin_52185313/article/details/120965299
https://www.bookstack.cn/read/huaxiaozhuan-ai/spilt.3.a1c8cb11a2e246b2.md
https://blog.csdn.net/watermelon12138/article/details/91571826

条件随机场

条件随机场针对无向图模型。是一个判别式模型,表示条件概率分布。条件随机场可被看作是最大熵马尔可夫模型在标注问题上的推广。
如果随机变量 Y Y Y 构成一个由无向图 G = ( V , E ) G=(V, E) G=(V,E) 表示的马尔可夫随机场,对任意节点 v ∈ V v∈V vV 都成立,即 P ( Y v ∣ X , Y w , w ≠ v ) = P ( Y v ∣ X , Y w , w ∼ v ) P(Y_{v}|X,Y_{w},w \neq v)=P(Y_{v}|X,Y_{w},w \sim v) P(YvX,Yw,w=v)=P(YvX,Yw,wv)
则称条件概率分布 P ( Y ∣ X ) P(Y|X) P(YX) 为条件随机场。
其中: w ≠ v w \neq v w=v 其中 w w w 表示除了 v v v 以外的所有节点; w ∼ v w \sim v wv其中 w w w 表示与 v v v 相邻的节点

详细的介绍可以看这些资料:

https://www.bookstack.cn/read/huaxiaozhuan-ai/spilt.4.a1c8cb11a2e246b2.md
https://blog.csdn.net/watermelon12138/article/details/91571826
https://zhuanlan.zhihu.com/p/148813079
https://www.cnblogs.com/Determined22/p/6915730.html

线性链条件随机场

线性链条件随机场,即将条件随机场推广到特殊的图上面,不做过多的介绍。

区别

  • Conditional random field (条件随机场) is a conditional 马尔科夫随机场,上文有讲
  • 最主要的区别就是生成式模型与判别式模型的区别
    • 生成式模型拟合的是数据的表征,即数据分布 P ( x ) P(x) P(x) 或者联合分布 P ( x , y ) P(x, y) P(x,y)
    • 判别式模型则直接学习类别之前的分类边界,即 P ( y ∣ x ) P(y | x) P(yx),因此判别式模型并不知道训练数据集合的分布,只是找一个超平面做直截了当的损失最小化。
  • 隐马尔科夫模型(HMM)和马尔科夫随机场都是 生成式模型,对 联合分布 进行建模。条件随机场是 判别式模型,对 条件分布 进行建模。
    • HMM是对 P ( Q , O ) P(Q,O) P(Q,O) 建模(Q是隐性,O是显性),上文有讲
    • 马尔科夫随机场,我也不太懂它算了个什么(应该和HMM差不多吧),后续搞懂了会做补充
    • 条件随机场是在求 P ( Y v ∣ X , Y w , w ∼ v ) P(Y_{v}|X,Y_{w},w \sim v) P(YvX,Yw,wv)上文有讲
  • 条件随机场计算 P ( Y ∣ X ) P(Y|X) P(YX),隐马尔科夫模型和马尔科夫随机场计算 P ( Y , X ) P(Y,X) P(Y,X)
    • 预测问题的实质是计算 P ( Y ∣ X = x ) P(Y|X=x) P(YX=x),就是条件随机场的目标函数,因此相对来说条件随机场可能会准确一点。
    • 另外两个的目标函数是 P ( Y , X ) P(Y,X) P(Y,X),因此它们可以被用来完成预测 P ( X ∣ Y = y ) P(X|Y=y) P(XY=y) 的任务。

详细的:
模型的区别
模型的区别
模型的区别
生成与判别的区别

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_54478153/article/details/125169747

智能推荐

oracle 12c 集群安装后的检查_12c查看crs状态-程序员宅基地

文章浏览阅读1.6k次。安装配置gi、安装数据库软件、dbca建库见下:http://blog.csdn.net/kadwf123/article/details/784299611、检查集群节点及状态:[root@rac2 ~]# olsnodes -srac1 Activerac2 Activerac3 Activerac4 Active[root@rac2 ~]_12c查看crs状态

解决jupyter notebook无法找到虚拟环境的问题_jupyter没有pytorch环境-程序员宅基地

文章浏览阅读1.3w次,点赞45次,收藏99次。我个人用的是anaconda3的一个python集成环境,自带jupyter notebook,但在我打开jupyter notebook界面后,却找不到对应的虚拟环境,原来是jupyter notebook只是通用于下载anaconda时自带的环境,其他环境要想使用必须手动下载一些库:1.首先进入到自己创建的虚拟环境(pytorch是虚拟环境的名字)activate pytorch2.在该环境下下载这个库conda install ipykernelconda install nb__jupyter没有pytorch环境

国内安装scoop的保姆教程_scoop-cn-程序员宅基地

文章浏览阅读5.2k次,点赞19次,收藏28次。选择scoop纯属意外,也是无奈,因为电脑用户被锁了管理员权限,所有exe安装程序都无法安装,只可以用绿色软件,最后被我发现scoop,省去了到处下载XXX绿色版的烦恼,当然scoop里需要管理员权限的软件也跟我无缘了(譬如everything)。推荐添加dorado这个bucket镜像,里面很多中文软件,但是部分国外的软件下载地址在github,可能无法下载。以上两个是官方bucket的国内镜像,所有软件建议优先从这里下载。上面可以看到很多bucket以及软件数。如果官网登陆不了可以试一下以下方式。_scoop-cn

Element ui colorpicker在Vue中的使用_vue el-color-picker-程序员宅基地

文章浏览阅读4.5k次,点赞2次,收藏3次。首先要有一个color-picker组件 <el-color-picker v-model="headcolor"></el-color-picker>在data里面data() { return {headcolor: ’ #278add ’ //这里可以选择一个默认的颜色} }然后在你想要改变颜色的地方用v-bind绑定就好了,例如:这里的:sty..._vue el-color-picker

迅为iTOP-4412精英版之烧写内核移植后的镜像_exynos 4412 刷机-程序员宅基地

文章浏览阅读640次。基于芯片日益增长的问题,所以内核开发者们引入了新的方法,就是在内核中只保留函数,而数据则不包含,由用户(应用程序员)自己把数据按照规定的格式编写,并放在约定的地方,为了不占用过多的内存,还要求数据以根精简的方式编写。boot启动时,传参给内核,告诉内核设备树文件和kernel的位置,内核启动时根据地址去找到设备树文件,再利用专用的编译器去反编译dtb文件,将dtb还原成数据结构,以供驱动的函数去调用。firmware是三星的一个固件的设备信息,因为找不到固件,所以内核启动不成功。_exynos 4412 刷机

Linux系统配置jdk_linux配置jdk-程序员宅基地

文章浏览阅读2w次,点赞24次,收藏42次。Linux系统配置jdkLinux学习教程,Linux入门教程(超详细)_linux配置jdk

随便推点

matlab(4):特殊符号的输入_matlab微米怎么输入-程序员宅基地

文章浏览阅读3.3k次,点赞5次,收藏19次。xlabel('\delta');ylabel('AUC');具体符号的对照表参照下图:_matlab微米怎么输入

C语言程序设计-文件(打开与关闭、顺序、二进制读写)-程序员宅基地

文章浏览阅读119次。顺序读写指的是按照文件中数据的顺序进行读取或写入。对于文本文件,可以使用fgets、fputs、fscanf、fprintf等函数进行顺序读写。在C语言中,对文件的操作通常涉及文件的打开、读写以及关闭。文件的打开使用fopen函数,而关闭则使用fclose函数。在C语言中,可以使用fread和fwrite函数进行二进制读写。‍ Biaoge 于2024-03-09 23:51发布 阅读量:7 ️文章类型:【 C语言程序设计 】在C语言中,用于打开文件的函数是____,用于关闭文件的函数是____。

Touchdesigner自学笔记之三_touchdesigner怎么让一个模型跟着鼠标移动-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏13次。跟随鼠标移动的粒子以grid(SOP)为partical(SOP)的资源模板,调整后连接【Geo组合+point spirit(MAT)】,在连接【feedback组合】适当调整。影响粒子动态的节点【metaball(SOP)+force(SOP)】添加mouse in(CHOP)鼠标位置到metaball的坐标,实现鼠标影响。..._touchdesigner怎么让一个模型跟着鼠标移动

【附源码】基于java的校园停车场管理系统的设计与实现61m0e9计算机毕设SSM_基于java技术的停车场管理系统实现与设计-程序员宅基地

文章浏览阅读178次。项目运行环境配置:Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:Springboot + mybatis + Maven +mysql5.7或8.0+html+css+js等等组成,B/S模式 + Maven管理等等。环境需要1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。_基于java技术的停车场管理系统实现与设计

Android系统播放器MediaPlayer源码分析_android多媒体播放源码分析 时序图-程序员宅基地

文章浏览阅读3.5k次。前言对于MediaPlayer播放器的源码分析内容相对来说比较多,会从Java-&amp;amp;gt;Jni-&amp;amp;gt;C/C++慢慢分析,后面会慢慢更新。另外,博客只作为自己学习记录的一种方式,对于其他的不过多的评论。MediaPlayerDemopublic class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal..._android多媒体播放源码分析 时序图

java 数据结构与算法 ——快速排序法-程序员宅基地

文章浏览阅读2.4k次,点赞41次,收藏13次。java 数据结构与算法 ——快速排序法_快速排序法