机器学习之条件随机场(CRF)

简介: 什么是CRFCRF即条件随机场(Conditional Random Fields),是在给定一组输入随机变量条件下另外一组输出随机变量的条件概率分布模型,它是一种判别式的概率无向图模型,既然是判别式,那就是对条件概率分布建模。

什么是CRF

CRF即条件随机场(Conditional Random Fields),是在给定一组输入随机变量条件下另外一组输出随机变量的条件概率分布模型,它是一种判别式的概率无向图模型,既然是判别式,那就是对条件概率分布建模。

CRF较多用在自然语言处理和图像处理领域,在NLP中,它是用于标注和划分序列数据的概率化模型,根据CRF的定义,相对序列就是给定观测序列X和输出序列Y,然后通过定义条件概率P(Y|X)来描述模型。

CRF的输出随机变量假设是一个无向图模型或者马尔科夫随机场,而输入随机变量作为条件不假设为马尔科夫随机场,CRF的图模型结构理论上可以任意给定,但我们常见的是定义在线性链上的特殊的条件随机场,称为线性链条件随机场。

概率无向图模型

前面说到CRF的输出随机变量是一个概率无向图模型,那么现在看看该模型。

概率无向图模型是由无向图表示的联合概率分布,假设联合概率分布P(Y)通过无向图来表示,则在图中节点表示随机变量,边表示随机变量之间的依赖关系,联合概率分布P(Y)满足马尔科夫性则称其为概率无向图模型,或者是马尔科夫随机场。

如下图,图是一个由节点和边组成的结构体,无向是指边没有方向,整个图记作G=(V,E),其中V为节点的集合,E为边的集合。

这里写图片描述

每个节点v对应一个随机变量Yv,于是Y=Yv|vV,在观察序列X的条件下,每个随机变量Yv都满足马尔科夫特性,即

P(Yv|X,Yw)=p(Yv|X,Yw,wv) ,其中wv表示w和v是图G中邻近的两个节点。

线性链条件随机场

无向图的结构理论上可以是任意的,但在NLP中对于标记处理问题,对其建模主要用最简单最普通的链式结构,即线性链条件随机场。如下图,可以看到节点为线性链结构,节点对应了序列Y的元素,而观察序列X不做任何独立性假设,但X序列的结构也可以是线性链结构。

这里写图片描述

综上所述,设有线性链结构的随机变量序列 X=(X1,X2,...,Xn),Y=(Y1,Y2,...,YN),在给定观察序列X的条件下,随机变量序列Y的条件概率分布为P(Y|X),若其满足马尔科夫特性,即
P(Yi|X,Y1,Y2...Yn)=P(Yi|X,Yi1,Yi+1),这时P(Y|X)则为线性链条件随机场。

概率的定义

在线性链条件随机场中,在给定的观察序列X情况下,某个特定序列Y的概率为P(Y|X),根据定义有,

P(Y|X)=exp(i,kλktk(Yi1,Yi,X,i)+i,lμlsl(Yi,X,i))

其中,tk(Yi1,Yi,X,i)表示转移函数,表示在序列X下序列Y在位置i-1及i对应的值转移概率,而sl(Yi,X,i)表示状态函数,表示在序列X下序列Y在位置i对应的值概率。另外λk,μl分别为两个函数的权重。

转移函数和状态函数都称为特征函数,特征函数一般取值0或1,满足特征函数的则为1,否则为0。比如下面的转移函数,只有当Yi1,Yi满足一定的条件时才为1,否则为0。

tk(Yi1,Yi,X,i)={1,0,conditionsaboutYi1,Yiotherwise

如果我们令sl(Yi,X,i)=sl(Yi1,Yi,X,i),则转移函数和状态函数可以统一由特征函数表示,对特征在各个位置i求和,有

Fk(Y,X)=ni=1fk(Yi1,Yi,X,i)

最后再加上归一化,最终条件随机场的条件概率为,

P(Y|X)=1Z(X)exp(Kk=1λkFk(Y,X))

其中,
Z(X)=yexp(Kk=1λkFk(Y,X))

如何训练CRF

训练CRF主要就是要训练特征函数的权重,对于训练集(x1,y1),(x2,y2),...,(xn,yn),采用极大似然估计法计算权重参数,条件概率的对数似然函数为:

L(λ)=x,yp~(x,y)ni=1(Kk=1λkfk(yi1,yi,x,i))xp~(x)logZ(x)

其中p~(x,y)为训练样本集中xy的经验概率,它等于xy同时出现的次数除以样本空间容量;p~(x)为训练样本集中x的经验概率,它等于x出现的次数除以样本空间容量。

然后对λ求导,令其为0再求解出λ,即得到解。因为极大似然估计法不一定能得到一个近似解,所以需要利用一些迭代技术来确定参数,比如GIS或IIS算法,这里不再深入。

啥时考虑CRF

如果信息是与时间或空间的前后有关联时要考虑到CRF。

以下是广告

========广告时间========

鄙人的新书《Tomcat内核设计剖析》已经在京东销售了,有需要的朋友可以到 https://item.jd.com/12185360.html 进行预定。感谢各位朋友。

为什么写《Tomcat内核设计剖析》

=========================

欢迎关注:

这里写图片描述
这里写图片描述

目录
相关文章
|
1月前
|
机器学习/深度学习 自然语言处理 C++
【Python机器学习】条件随机场模型CRF及在中文分词中实战(附源码和数据集)
【Python机器学习】条件随机场模型CRF及在中文分词中实战(附源码和数据集)
64 0
|
机器学习/深度学习 自然语言处理 大数据
【NLP】基于机器学习角度谈谈CRF(三)
基于机器学习角度谈谈CRF 作者:白宁超 2016年8月3日08:39:14 【摘要】:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果。在中文分词、中文人名识别和歧义消解等任务中都有应用。
1300 0
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
炸裂!PAI-DSW 和 Free Prompt Editing 图像编辑算法,成就了超神的个人 AIGC 绘图小助理!
【6月更文挑战第11天】PAI-DSW 和 Free Prompt Editing 算法引领图像编辑革命,创造出个人AIGC绘图小助理。PAI-DSW擅长深度图像处理,通过复杂模型和深度学习精准编辑;Free Prompt Editing则允许用户以文本描述编辑图像,拓展编辑创意。结合两者,小助理能根据用户需求生成惊艳图像。简单Python代码示例展示了其魅力,打破传统编辑局限,为专业人士和普通用户提供创新工具,开启图像创作新篇章。未来,它将继续进化,带来更多精彩作品和体验。
|
17天前
|
机器学习/深度学习 算法 TensorFlow
机器学习算法简介:从线性回归到深度学习
【5月更文挑战第30天】本文概述了6种基本机器学习算法:线性回归、逻辑回归、决策树、支持向量机、随机森林和深度学习。通过Python示例代码展示了如何使用Scikit-learn、statsmodels、TensorFlow库进行实现。这些算法在不同场景下各有优势,如线性回归处理连续值,逻辑回归用于二分类,决策树适用于规则提取,支持向量机最大化类别间隔,随机森林集成多个决策树提升性能,而深度学习利用神经网络解决复杂模式识别问题。理解并选择合适算法对提升模型效果至关重要。
185 4
|
1天前
|
机器学习/深度学习 存储 算法
【机器学习】深入探索机器学习:线性回归算法的原理与应用
【机器学习】深入探索机器学习:线性回归算法的原理与应用
|
3天前
|
机器学习/深度学习 数据采集 算法
机器学习入门:算法与数据的探索之旅
【6月更文挑战第13天】本文介绍了机器学习的基础,包括算法和数据处理的重要性。机器学习算法分为监督学习(如线性回归、决策树)、非监督学习(如聚类、降维)和强化学习。数据处理涉及数据清洗、特征工程、数据分割及标准化,是保证模型性能的关键。对于初学者,建议学习基础数学、动手实践、阅读经典资料和参与在线课程与社区讨论。
|
4天前
|
机器学习/深度学习 人工智能 算法
算法金 | 一文彻底理解机器学习 ROC-AUC 指标
```markdown # ROC曲线与AUC详解:评估分类模型利器 本文深入浅出解释ROC曲线和AUC,通过实例和代码帮助理解其在模型评估中的重要性,旨在提升对分类模型性能的理解和应用。 ```
47 13
算法金 | 一文彻底理解机器学习 ROC-AUC 指标
|
6天前
|
机器学习/深度学习 算法 大数据
【机器学习】朴素贝叶斯算法及其应用探索
在机器学习的广阔领域中,朴素贝叶斯分类器以其实现简单、计算高效和解释性强等特点,成为了一颗璀璨的明星。尽管名字中带有“朴素”二字,它在文本分类、垃圾邮件过滤、情感分析等多个领域展现出了不凡的效果。本文将深入浅出地介绍朴素贝叶斯的基本原理、数学推导、优缺点以及实际应用案例,旨在为读者构建一个全面而深刻的理解框架。
11 1
|
6天前
|
机器学习/深度学习 算法 TensorFlow
算法金 | 只需十四步:从零开始掌握Python机器学习(附资源)
```markdown ## 摘要 全网同名「算法金」的作者分享了一篇针对Python机器学习入门的教程。教程旨在帮助零基础学习者掌握Python和机器学习,利用免费资源成为实践者。内容分为基础篇和进阶篇,覆盖Python基础、机器学习概念、数据预处理、科学计算库(如NumPy、Pandas和Matplotlib)以及深度学习(TensorFlow、Keras)。此外,还包括进阶算法如SVM、随机森林和神经网络。教程还强调了实践和理解最新趋势的重要性。
14 0
算法金 | 只需十四步:从零开始掌握Python机器学习(附资源)
|
7天前
|
机器学习/深度学习 算法 数据挖掘
机器学习——DBSCAN 聚类算法
【6月更文挑战第8天】DBSCAN是一种基于密度的无监督聚类算法,能处理不规则形状的簇和噪声数据,无需预设簇数量。其优点包括自动发现簇结构和对噪声的鲁棒性。示例代码展示了其基本用法。然而,DBSCAN对参数选择敏感,计算效率受大规模数据影响。为改善这些问题,研究方向包括参数自适应和并行化实现。DBSCAN在图像分析、数据分析等领域有广泛应用,通过持续改进,将在未来保持重要地位。
30 2

热门文章

最新文章