MEMM最大熵模型

news2024/12/24 11:32:43

最大熵模型(MEMM): 提出背景:解决模型三个缺点

最大熵结构:HMM框架加上多项的逻辑回归。

HMM缺点:

        1.观测独立假设和齐次马尔可夫假设

        解决办法:调转模型箭头

        2.模型建模和求解不一致(建模:P(X,Y)求解:(P(Y|X)))

        解决办法:生成式模型转为判别式模型,加逻辑回归

        3.不能处理复杂的问题

        解决办法:三个参数:加入复杂的特征函数

softmax(wx)=e(wx)/sum(e(wx))

每个样本都会有很多的特征,每个特征又都会有一个权重,这个权重反映的就是

特征的重要性。

特征函数:关联了y-1和xt的信息。特征函数中的东西都是自定义的。

总结:

    1.HMM的三个缺点

    2.MEMM模型概率

    3.MEMM模型图

    4.特征函数

    5.优缺点

MEMM是判别式有向图模型

CRF是判别式无向图模型

HMM(速度)CRF(精度)MEMM(速度和精度差一点)

最大熵模型(MEMM):

首先说一下HMM的缺点:

  1. 基于HMM的假设,每一个时刻的输出序列都是依靠当前的一个隐藏状态,但是在处理实际的业务的时候,有可能当前的输出序列并不仅仅依靠当前的隐藏状态,而是跟当前的隐藏状态和上一时刻的输出序列都有关系,那么这个时候HMM就做不了了。
  2. HMM是生成式模型,因此是对P(X,Y)进行建模,但是对于HMM求解的问题,都是条件概率P(Y|X),因此,虽然能转换过来,但是1. 增加了无谓的计算量, 2. 构建的模型和求解的问题不匹配
  3. 没有办法加入复杂的特征函数,因此在做实际场景的任务是效果比较差的,比如说命名实体识别的任务,比如一个实体标记成了B,I,O,S,而另一个是B,S对于这种不确定的规则比较复杂的,HMM不能定义出复杂的特征函数,因此效果差,同时隐马比较适用于小量的数据集合,如果在大量的数据集合上,特征之间的交互更加的复杂,HMM是解决不了的

最大熵马尔可夫模型(Maximum Entropy Markov Model,MEMM)的思想把HMM最大熵结合起来,可以提取特征以泛化模型能力,结合上下文依赖直接判别减少建模负担。

首先我们不想通过求P(X,Y)概率分布了,我们想直接求得P(Y|X)的条件概率,那么什么模型可以直接求出来这个条件概率?

逻辑回归:

 

那么逻辑回归中怎么求的P(Y|X)?

将每个特征乘以一个权重,然后将它们相加,然后将指数函数应用于该线性组合:

 

其中 fi 是一个特征,wi 是与该特征相关的权重。对于权重和特征点积进行的 exp(即,指数函数)确保所有值都是正值,并且需要除以分母 Z 以得到(所有概率值的总和为 1)有效概率。

这意味着我们将选择参数 w,使对给定输入值 x 在训练数据中 y 标签的概率最大化我们想通过训练 logistic 回归来获得每一个特征的理想权重(使训练样本和属于的类拟合得最好的权重)。我们最想想训练的是这个权重w。

逻辑回归怎么训练的?

是不是定义通过极大似然估计,然后极大似然函数得出代价函数,计算出了代价之后,就可以进行通过梯度下降等手段进行优化和训练,

 

注意目标函数是不是上的公式。

因此最大熵模型的思想就是相当于:利用 HMM 框架预测给定输入序列的序列标签,同时结合多项 Logistic 回归

就是这个多项的逻辑回归给出了很大的自由度,其中输入可以包含很多不同的特征组合等等。

HMM和MEMM模型图的区别:

 

与当前输入仅依赖于当前状态的 HMM 相比,MEMM 中的当前输入也可以取决于之前的状态。HMM 模型对于每个转换和输入都有确定的概率估计,而 MEMM 给出每个隐藏状态的一个概率估计,这是给定前一个标记和输入值情况下的下一个标记的概率。

在 MEMM 不是状态转换矩阵和观测矩阵,而是只有一个转换概率矩阵。该矩阵将训练数据中先前状态 S_t-1 和当前输入 O_t 对的所有组合封装到当前状态 S_t。如果状态个数为 N,单词个数为M那么这个矩阵的概率的大小应该为 (N⋅M)⋅N

重点:接着就是我们一直在提的特征函数:

特征函数是什么?

特征函数就是加入一些自定义的一些东西,比如:名词后边跟动词等等,也就相当于我们对游戏进行了一些规则的限定,满足的话输出就是1,不满足的话输出就是0。

对比一下逻辑回归和最大熵模型的特征函数:

·  仅仅对输入抽取特征。即特征函数为f(x)

·  对输入和输出同时抽取特征。即特征函数为f(x,y)

最终 wi 是与每个特征 fi(x,y) 相关联的需要学习的权重也是我们要学习的目标。

最大熵模型的优点有:

最大熵统计模型获得的是所有满足约束条件的模型中信息熵极大的模型,作为经典的分类模型时准确率较高。

可以灵活地设置约束条件,通过约束条件的多少可以调节模型对未知数据的适应度和对已知数据的拟合程度

最大熵模型的缺点有:

由于约束函数数量和样本数目有关系,导致迭代过程计算量巨大,实际应用比较难。

标注问题,分类问题的对比:

首先它们都属于分类问题,而标注问题想到与是分类问题的一个拓展。都是有监督的学习,输入X,Y去计算,它们的条件概率P(Y|X),然后去确定最后类别的输出。

不同点在于:

分类问题,最后输出的是一个准确的类别,比如0,1等。而标注问题最后的输出是一个序列,一个向量,这个向量中每一个值都是标注过后的标志类型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/54749.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

农产品溯源中GIS应用

农产品溯源中GIS应用 摘要 构建“从田间地头到餐桌”的农产品安全生产与溯源体系需求日益迫切。农产品的食品安全也是维持人们的生命健康重要因素之一。当前,农业信息化推进速度非常的迅速,各类型农业相关基础设施正在不断加强,信息技术能提…

vs2013的使用及编译中遇到的问题

目录 一、vs2013的使用 1、新建项目 2、新建源文件 3、编辑代码 但是如果每次新建文件都要加上这一句就很麻烦,所以这里提供一个一劳永逸的方法 二、运行代码的中的小问题 问题1:scanf函数不安全 解决办法 法1.用报错提示中的 scanf_s 来代替 scanf…

ShaderGraph实现序列帧动画

介绍 上篇我们介绍了ShaderLab编程实现序列帧动画,这里我们介绍一下如何使用可视化界面ShaderGraph来实现。 在使用ShaderGraph的过程中,我们可以了解ShaderGranph的一些操作,由于上篇文章已经分享了原理方面的知识,这里不再赘述。我们便开始ShaderGraph来实现序列帧动画。…

Proxyless Mesh 在 Dubbo 中的实践

作者:王程铭 背景 随着 Dubbo 3.1 的 release,Dubbo 在云原生的路上又迈出了重要的一步。在这个版本中添加了 Proxyless Mesh 的新特性,Dubbo Proxyless Mesh 直接实现 xDS 协议解析,实现 Dubbo 与 Control Plane 的直接通信&am…

深度学习训练营实现minist手写数字识别

深度学习训练营原文链接环境介绍前置工作设置GPU导入要使用的包进行归一化操作样本可视化调整图片格式构建CNN网络编译模型模型训练预测操作原文链接 🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍦 参考文章:365天深度学习训…

OpenCV图像处理——卷积操作

总目录 图像处理总目录←点击这里 二十五、卷积操作 25.1、预处理 # 指定输入图像 ap argparse.ArgumentParser() ap.add_argument("-i", "--image", requiredTrue, help"path to the input image") args vars(ap.parse_args())# 分别构建…

【数据结构趣味多】顺序表基本操作实现(Java)

目录 顺序表 1.定义顺序顺序表 2.顺序表功能 3.函数实现(java实现)? 打印顺序表display()函数 新增元素函数add() (默认在数组最后新增) 在 pos 位置新增元素add()函数(与上方函数构成重载) 判定是否包含某个元素…

XctNet:从单个X射线图像重建体积图像的网络

摘要 传统的计算机断层扫描(CT)通过使用不同角度的X射线投影计算逆氡变换来生成体积图像,这导致高剂量辐射、长重建时间和伪影。生物学上,可以利用先前的知识或经验在一定程度上从2D图像中识别体积信息。提出了一种深度学习网络Xc…

为什么要使用 kafka,为什么要使用消息队列?

总结以下两点: 1、缓冲和削峰: 上游数据时有突发流量,下游可能扛不住,或者下游没有⾜够多的机器来保证冗余,kafka在中间可以起到⼀个缓冲的作⽤,把消息暂存在kafka中,下游服务就可以按照⾃⼰的节…

B. Moderate Modular Mode(nmodx=ymodn )

Problem - 1603B - Codeforces 帮助他找到一个整数n,使得1≤n≤2⋅1018,并且nmodxymodn。这里,amodb表示a除以b后的余数。如果有多个这样的整数,请输出任何一个。可以证明,在给定的约束条件下,这样的整数总…

图的关键路径(含多支交叉路径分离输出)

文章目录关键路径的理解关键路径求解的图解与分析关键路径查找的代码实现多支交叉路径的分离输出总结此文代码均可在Windows与Linux操作系统下的常用编译器上运行,例如:vs、vscode、Dev-C等等。关键路径的理解 图的关键路径一般是在求从一个顶点到另一个…

RocketMQ-RocketMQ部署(Linux、docker)

文章目录一、Linux1、单机部署RocketMQ> 前置条件第一步、官网下载 并 上传至服务器第二步、配置jdk环境第三步、修改初始内存第四步、启动 NameServer第五步、启动 Broker第六步、关闭RocketMQDemo:发送与接收消息测试 (Linux端)2、部署可视化管理工具—rocketm…

tictoc 例子理解 13-15

tictoc13-tictoc13 子类化cMessage生成消息,随机目标地址tictoc 14 在13的基础上增加两变量显示于仿真界面tictoc 15 模型数据输出为直方图tictoc13 子类化cMessage生成消息,随机目标地址 在这一步中,目标地址不再是节点2——我们绘制了一个…

[附源码]计算机毕业设计springboot现代诗歌交流平台

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

MySQL存储过程

目录 存储过程 1、存储过程的概念 2、存储过程的优点 3、创建存储过程 格式: 4、调用存储过程 格式 5、查看存储过程 格式: 6、存储过程的参数 7、删除存储过程 格式: 8、存储过程的控制语句 准备a表 (1)条…

Spring基础篇:注入

第一章:注入 一:什么是注入 (Injection)注入就是通过Spring的工厂类和spring的配置文件,对spring所创建的对象进行赋值,为成员变量进行赋值 二:为什么注入 为什么需要Spring工厂创建对象的时…

[附源码]Python计算机毕业设计SSM开放式在线课程教学与辅助平台(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

[附源码]计算机毕业设计JAVA校园闲置物品租赁系统

[附源码]计算机毕业设计JAVA校园闲置物品租赁系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM my…

Maven使用指南(超详细)

Maven高级 目标 理解并实现分模块开发能够使用聚合工程快速构建项目能够使用继承简化项目配置能够根据需求配置生成、开发、测试环境,并在各个环境间切换运行了解Maven的私服 1,分模块开发 1.1 分模块开发设计 (1)按照功能拆分 我们现在的项目都是在…

Delay Penalty for RNN-T and CTC

1. 背景 之前介绍了如何在 RNN-T 流式模型上应用时延正则,以及在 Conformer 和 LSTM 上的实验结果。 本期公众号重点带大家回顾下具体的思路,以及如何类似地在 CTC 流式模型上应用时延正则。 有些内容可能有所重复,读者可适当跳过。2. Dela…