前言

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

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

一些基础概念

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

马尔可夫性质

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

上述是节自wiki百科,简单的来说——当前的状态只与上一时刻的状态相关,即满足下式:p(Xn+1=xn+1∣X1=x1,...,Xn−1=xn−1,Xn=xn)=p(Xn+1=xn+1∣Xn=xn)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)
这个公式说明的就是Xn+1=xn+1X_{n+1}=x_{n+1}Xn+1=xn+1的概率仅与Xn=xnX_{n}=x_{n}Xn=xn相关,与之前的状态无关。即,n+1时刻的状态仅与n时刻的状态相关,与再之前的状态无关。
举个简单的在NLP句子生成的例子——句子中某个单词出现的概率仅与前一个单词相关。比如现在有个句子 They came from 要预测后面的单词,就只会考虑from来生成一个单词。
上述也叫做一阶马尔可夫,它因为只考虑前一个状态,能力有限。因此可以类推到n阶马尔科夫。比如二阶马尔可夫可以表示为如下:p(Xn+1=xn+1∣X1=x1,...,Xn−1=xn−1,Xn=xn)=p(Xn+1=xn+1∣Xn−1=xn−1,Xn=xn)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=(q1,q2,...,qT)Q=(q_{1},q_{2},...,q_{T})Q=(q1,q2,...,qT) 是不可观测的(比如说是句子中每个单词的词性标注,这是无法直接观测得到的,且是模型的输出),并记所有可能状态的集合为 S={o1,o2,...,oT}S=\{o_{1},o_{2},...,o_{T}\}S={o1,o2,...,oT} ,由它们产生一个可观测的观测随机序列(observation sequence) O=(o1,o2,...,oT)O=(o_{1},o_{2},...,o_{T})O=(o1,o2,...,oT) (比如说是句子中每个单词,这个是能观测的,且是模型的输入)
在标注的时候,我们想要完成的任务是给定一个句子 OOO,输出序列中每个单词的词性 QQQ,即:P(Q∣O)=P(Q,O)P(O)P(Q|O)=\frac{P(Q,O)}{P(O)}P(QO)=P(O)P(Q,O)
OOO 是显性的,所以 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={X1,…,Xn}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

条件随机场

条件随机场针对无向图模型。是一个判别式模型,表示条件概率分布。条件随机场可被看作是最大熵马尔可夫模型在标注问题上的推广。
如果随机变量 YYY 构成一个由无向图 G=(V,E)G=(V, E)G=(V,E) 表示的马尔可夫随机场,对任意节点 v∈Vv∈VvV 都成立,即P(Yv∣X,Yw,w≠v)=P(Yv∣X,Yw,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≠vw \neq vw=v 其中 www 表示除了 vvv 以外的所有节点;w∼vw \sim vwv其中 www 表示与 vvv 相邻的节点

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

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(Yv∣X,Yw,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) 的任务。

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

条件随机场Conditional Random Field,CRF、隐马尔可夫模型Hidden Markov Model,HMM、马尔可夫随机场、马尔可夫性质傻傻分不清楚?帮你理理关系相关推荐

  1. 【大道至简】机器学习算法之隐马尔科夫模型(Hidden Markov Model, HMM)详解(3)---学习问题:Baum-Welch算法推导及Python代码实现

    ☕️ 本文系列文章汇总: (1)HMM开篇:基本概念和几个要素 (2)HMM计算问题:前后向算法 (3)HMM学习问题:Baum-Welch算法 (4) HMM预测问题:维特比算法 ☕️ 本文来自专栏 ...

  2. 机器学习算法之——隐马尔可夫模型(Hidden Markov Models,HMM) 代码实现

    @Author:Runsen 隐形马尔可夫模型,英文是 Hidden Markov Models,就是简称 HMM. 既是马尔可夫模型,就一定存在马尔可夫链,该马尔可夫链服从马尔可夫性质:即无记忆性. ...

  3. 隐含马尔可夫模型——Hidden Markov models (HMM)

    本文首发于 算法社区 dspstack.com,转载请注明出处,谢谢. 写在前面# 统计学是个好东东,说它是个好东东,因为统计学不像其他有些学科,它不仅在科研领域应用广泛,在平常的生活中我们也会经常碰 ...

  4. 隐马尔科夫模型(Hidden Markov Models) 系列之五

    隐马尔科夫模型(Hidden Markov Models) 系列之五 介绍(introduction) 生成模式(Generating Patterns) 隐含模式(Hidden Patterns) ...

  5. 隐马尔科夫模型(Hidden Markov Models) 系列之三

    隐马尔科夫模型(Hidden Markov Models) 系列之三 介绍(introduction) 生成模式(Generating Patterns) 隐含模式(Hidden Patterns) ...

  6. 隐马尔科夫模型(Hidden Markov Models) 系列之四

    隐马尔科夫模型(Hidden Markov Models) 系列之四 介绍(introduction) 生成模式(Generating Patterns) 隐含模式(Hidden Patterns) ...

  7. 隐马尔科夫模型(Hidden Markov Models) 系列之一

    隐马尔科夫模型(Hidden Markov Models) 系列之一 介绍(introduction) 生成模式(Generating Patterns) 隐含模式(Hidden Patterns) ...

  8. 机器学习中隐马尔可夫模型(Hidden Markov Model, HMM)理论

    隐马尔可夫模型(Hidden Markov Model, HMM) 前言 :内容从实际案例到模型提取.建立.求解以及应用,侧重于该模型在机器学习中的研究和应用. 参考书: <统计学习方法> ...

  9. 初识马尔科夫模型(Markov Model)

    初识马尔科夫模型(Markov Model) 一.概念 二.性质 三.学习步骤 一.概念 马尔科夫模型(Markov Model)是一种概率模型,用于描述随机系统中随时间变化的概率分布.马尔科夫模型基 ...

  10. 【NLP】用于序列标注问题的条件随机场(Conditional Random Field, CRF)

    上一篇介绍了隐马尔科夫模型,隐马尔科夫模型引入了马尔科夫假设,即当前时刻的状态只与其前一时刻的状态有关.但是,在序列标注任务中,当前时刻的状态,应该同该时刻的前后的状态均相关.于是,在很多序列标注任务 ...

最新文章

  1. 第 1 章 容器生态系统 - 003 - 容器生态系统 (续)
  2. 2006关注IT技术
  3. 百度大脑险胜最强大脑背后:200万人2亿照片做训练
  4. 腾讯数十亿广告的基础是精准实时推荐
  5. mysql获取日期的月日_MySQL获取月,日的日期列表
  6. 关于java多态中覆盖的理解
  7. OpenCV使用MultiTracker
  8. maven打包跳过测试
  9. SAP CRM Service Order(服务订单)的状态字段设计原理介绍
  10. oracle 24756,关于ORA-24756: transaction does not exist的问题
  11. UI历练素材|成功,少不了的临摹进阶
  12. 兔子吃萝卜java游戏下载_巴迪兔子吃萝卜
  13. 框架设计--第七章 MyBatis的核心配置--习题答案
  14. pywin32的一系列用法
  15. 西电雨课堂等网课测试大合集【2023.5.22更新】
  16. 股票自选股基本函数大全-3
  17. MySQL数据库引擎和索引
  18. java斗地主发牌代码_[Java源码]扑克牌——斗地主发牌实现
  19. 向量叉积求平面平行四边形面积
  20. java 字节码增强之ASM

热门文章

  1. Java MD5加密工具类
  2. stm32有源蜂鸣器程序,高效简洁优雅。
  3. 蜂鸣器发声程序c语言,基于51单片机蜂鸣器发声的C语言程序
  4. 10大亮点解读--极通EWEBS4.0
  5. SAP Java Connector 错误 - JCO_ERROR_COMMUNICATION
  6. 北斗时钟同步服务器,电力系统卫星时钟-GPS北斗时钟方案
  7. Redis入门指南-2
  8. Java项目经验相关常见面试题
  9. java-php-python-ssm社区志愿者服务管理系统计算机毕业设计
  10. fseek函数、ftell函数和rewind函数