条件随机场Conditional Random Field,CRF、隐马尔可夫模型Hidden Markov Model,HMM、马尔可夫随机场、马尔可夫性质傻傻分不清楚?帮你理理关系
前言
条件随机场(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+1∣X1=x1,...,Xn−1=xn−1,Xn=xn)=p(Xn+1=xn+1∣Xn=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+1∣X1=x1,...,Xn−1=xn−1,Xn=xn)=p(Xn+1=xn+1∣Xn−1=xn−1,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(Q∣O)=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,…,G−1} 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∈Vv∈V 都成立,即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(Yv∣X,Yw,w=v)=P(Yv∣X,Yw,w∼v)
则称条件概率分布 P(Y∣X)P(Y|X)P(Y∣X) 为条件随机场。
其中:w≠vw \neq vw=v 其中 www 表示除了 vvv 以外的所有节点;w∼vw \sim vw∼v其中 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(y∣x),因此判别式模型并不知道训练数据集合的分布,只是找一个超平面做直截了当的损失最小化。
- 隐马尔科夫模型(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(Yv∣X,Yw,w∼v),上文有讲
- 条件随机场计算 P(Y∣X)P(Y|X)P(Y∣X),隐马尔科夫模型和马尔科夫随机场计算 P(Y,X)P(Y,X)P(Y,X)。
- 预测问题的实质是计算 P(Y∣X=x)P(Y|X=x)P(Y∣X=x),就是条件随机场的目标函数,因此相对来说条件随机场可能会准确一点。
- 另外两个的目标函数是 P(Y,X)P(Y,X)P(Y,X),因此它们可以被用来完成预测 P(X∣Y=y)P(X|Y=y)P(X∣Y=y) 的任务。
详细的:
模型的区别
模型的区别
模型的区别
生成与判别的区别
条件随机场Conditional Random Field,CRF、隐马尔可夫模型Hidden Markov Model,HMM、马尔可夫随机场、马尔可夫性质傻傻分不清楚?帮你理理关系相关推荐
- 【大道至简】机器学习算法之隐马尔科夫模型(Hidden Markov Model, HMM)详解(3)---学习问题:Baum-Welch算法推导及Python代码实现
☕️ 本文系列文章汇总: (1)HMM开篇:基本概念和几个要素 (2)HMM计算问题:前后向算法 (3)HMM学习问题:Baum-Welch算法 (4) HMM预测问题:维特比算法 ☕️ 本文来自专栏 ...
- 机器学习算法之——隐马尔可夫模型(Hidden Markov Models,HMM) 代码实现
@Author:Runsen 隐形马尔可夫模型,英文是 Hidden Markov Models,就是简称 HMM. 既是马尔可夫模型,就一定存在马尔可夫链,该马尔可夫链服从马尔可夫性质:即无记忆性. ...
- 隐含马尔可夫模型——Hidden Markov models (HMM)
本文首发于 算法社区 dspstack.com,转载请注明出处,谢谢. 写在前面# 统计学是个好东东,说它是个好东东,因为统计学不像其他有些学科,它不仅在科研领域应用广泛,在平常的生活中我们也会经常碰 ...
- 隐马尔科夫模型(Hidden Markov Models) 系列之五
隐马尔科夫模型(Hidden Markov Models) 系列之五 介绍(introduction) 生成模式(Generating Patterns) 隐含模式(Hidden Patterns) ...
- 隐马尔科夫模型(Hidden Markov Models) 系列之三
隐马尔科夫模型(Hidden Markov Models) 系列之三 介绍(introduction) 生成模式(Generating Patterns) 隐含模式(Hidden Patterns) ...
- 隐马尔科夫模型(Hidden Markov Models) 系列之四
隐马尔科夫模型(Hidden Markov Models) 系列之四 介绍(introduction) 生成模式(Generating Patterns) 隐含模式(Hidden Patterns) ...
- 隐马尔科夫模型(Hidden Markov Models) 系列之一
隐马尔科夫模型(Hidden Markov Models) 系列之一 介绍(introduction) 生成模式(Generating Patterns) 隐含模式(Hidden Patterns) ...
- 机器学习中隐马尔可夫模型(Hidden Markov Model, HMM)理论
隐马尔可夫模型(Hidden Markov Model, HMM) 前言 :内容从实际案例到模型提取.建立.求解以及应用,侧重于该模型在机器学习中的研究和应用. 参考书: <统计学习方法> ...
- 初识马尔科夫模型(Markov Model)
初识马尔科夫模型(Markov Model) 一.概念 二.性质 三.学习步骤 一.概念 马尔科夫模型(Markov Model)是一种概率模型,用于描述随机系统中随时间变化的概率分布.马尔科夫模型基 ...
- 【NLP】用于序列标注问题的条件随机场(Conditional Random Field, CRF)
上一篇介绍了隐马尔科夫模型,隐马尔科夫模型引入了马尔科夫假设,即当前时刻的状态只与其前一时刻的状态有关.但是,在序列标注任务中,当前时刻的状态,应该同该时刻的前后的状态均相关.于是,在很多序列标注任务 ...
最新文章
- 第 1 章 容器生态系统 - 003 - 容器生态系统 (续)
- 2006关注IT技术
- 百度大脑险胜最强大脑背后:200万人2亿照片做训练
- 腾讯数十亿广告的基础是精准实时推荐
- mysql获取日期的月日_MySQL获取月,日的日期列表
- 关于java多态中覆盖的理解
- OpenCV使用MultiTracker
- maven打包跳过测试
- SAP CRM Service Order(服务订单)的状态字段设计原理介绍
- oracle 24756,关于ORA-24756: transaction does not exist的问题
- UI历练素材|成功,少不了的临摹进阶
- 兔子吃萝卜java游戏下载_巴迪兔子吃萝卜
- 框架设计--第七章 MyBatis的核心配置--习题答案
- pywin32的一系列用法
- 西电雨课堂等网课测试大合集【2023.5.22更新】
- 股票自选股基本函数大全-3
- MySQL数据库引擎和索引
- java斗地主发牌代码_[Java源码]扑克牌——斗地主发牌实现
- 向量叉积求平面平行四边形面积
- java 字节码增强之ASM