概率图模型:HMM(隐马),MEMM(最大熵),CRF(条件随机场)

news2024/12/23 18:25:23
1.概率图模型:HMM(隐马),MEMM(最大熵),CRF(条件随机场)
    概率:既然是一个图那么就是一个有圈有边的结构,圈代表随机向量,随机变量之间有边,边上有概率
    既然是模型肯定可以求解:
    有向图求解方式:p(Y)=p(x1)*p(x2|x1)....
    无向图求解方式:
        z(x):代表归一化因子,作用就是为了把最终结果,缩放成一个概率
        累乘:图中有几个最大团,就累乘多少次
        势函数:指数函数:e的多少次方:特征函数

    图模型:
        1.有向图:有箭头,表示单向依赖关系
        2.无向图:没有箭头,表示双向依赖关系

        有向图:
            1.静态贝叶斯网络
            2.动态贝叶斯网络

        无向图:
            马尔可夫网络
            团的概念:由几个节点所构成的闭环。(且节点之间相互连接)
            最大团:最多有几个元素构成一个闭环并且相互连接(节点之间相互连接)
            两个最大团:
                x1,x3,x4;x2,x3,x4

2.齐次马尔可夫假设:
        当前这个状态只依赖于前一个状态。相当于学习过的n-gram的n=2
3.生成式模型和判别式模型
    学习的过程不一样
    如何体现学习方式不同:建模不同,那么学习方式就不同。
    生成式模型:可以直接生成模型来判别
        生成式模型求得联合概率分布P(Y,X),对于没有见过的X,你要求出X与不同标记之间的联合概率分布
    判别式模型:只有规律,通过某些特征进行判别
        1.对条件概率分布P(Y|X)建模
        2.对所有的样本只构建一个模型,确认总体判别边界
        3.观测到输入什么特征,就预测最可能的label
        4.另外,判别式的优点是:对数据量要求没生成式的严格,速度也会快,小数据量下准确率也会好些。
4.序列标注:词性标注、命名实体识别、搜狗输入法
    之前的学习解决四大类问题:回归,分类,聚类,降维

序列标注问题和分类问题的区别和联系
    序列标注是一类特殊的分类任务,分类问题就不用细说了,标注问题相当于是分类问题的一个拓展,
    分类是输入一个序列得到一个分类结果,而标注问题,输入的是一个序列,输出的也是一个序列,
    标注问题输出的是一个向量,分类问题输出的是一个标签。

概率图:

在概率图模型中,数据通过公式G(V,E)进行建模表示:

V:代表的就是随机变量,它可以是一个token同时也可以是一个label,具体的由Y=(y1,y2,y3......yn)为随机变量建模,需要注意的就是,Y是一批的随机向量,y1,y2都是对应的一个token可以理解成每一个y就是一个句子,那么P(Y)代表的就是这些随机向量的分布。

E:代表边,概率的依赖关系。

理解G(V,E):首先概率图模型也是模型,类比线性回归模型,y=w*x+b进行建模,而概率图模型是通过G(V,E)进行建模的,又因为我们的概率图模型是由概率和图构成的,因此,概率和边都是变量就类似于线性回归中的w,b一样,因此我们通过,G(V,E)进行概率图模型的建模。

有向图(HMM)和无向图(CRF):

贝叶斯网络(信念网络)都是有向的,马尔科夫网络无向。所以,贝叶斯网络适合为有单向依赖的数据建模,马尔科夫网络适合实体之间互相依赖的建模。具体地,他们的核心差异表现在如何求  ,即怎么表示这个的联合概率。

 1.有向图:

对于有向图,这么求联合概率:

比如说下列这个有向图,我们想要对其建模:

应该这样表示他们的联合概率:

  1. 无向图:

对于无向图一般情况下指的就是马尔可夫网络。

在无向图中进行建模,需要将一个图分解成若干个,而这些团必须是最大团,则有:

其中,这个很好理解,z就是一个归一化的因子,作用就是归一化,为了让结果是概率的形式。

 

所以说上边的无向图进行建模就变成了:

 

其中,  是一个最大团上随机变量们的联合概率,一般取指数函数的:

 

 好了,管这个东西叫做势函数。

那么概率无向图的联合概率分布可以在因子分解下表示为:

 

这个也是CRF的开端。

齐次马尔可夫假设:

马尔可夫链是X(x1,x2,x3,x4......xn)这里边的xi只受xi-1的影响,也就相当于是一个2-gram。

生成式模型和判别式模型:

 

其实机器学习的任务是从属性X预测标记Y,即求概率P(Y|X);

对于判别式模型来说求得P(Y|X),对没有见过的待测样本X,根据P(Y|X)可以求得标记Y,即可以直接判别出来,如上图的左边所示,实际是就是直接得到了判别边界,所以传统的机器学习算法如逻辑回归模型、支持向量机SVM等都是判别式模型,这些模型的特点都是输入属性X可以直接得到Y(对于二分类任务来说,实际得到一个score,当score大于阈值时则为正类,否则为反类)

那么判别式模型。判别模型的特征,所以有句话说:判别模型是直接对 建模,就是说,直接根据X特征来对Y建模训练。

 

具体地,我的训练过程是确定构建 模型里面“复杂映射关系”中的参数,完了再去inference一批新的sample。

 

所以判别式模型的特征总结如下:

  1. 建模
  2. 对所有的样本只构建一个模型,确认总体判别边界
  3. 观测到输入什么特征,就预测最可能的label
  4. 另外,判别式的优点是:对数据量要求没生成式的严格,速度也会快,小数据量下准确率也会好些。

 

生成式模型求得P(Y,X),对于没有见过的X,你要求出X与不同标记之间的联合概率分布,然后大的获胜,如上图右边所示,并没有什么边界存在,对于未见示例(红三角),求两个联合概率分布(有两个类),比较一下,取那个大的。机器学习中朴素贝叶斯模型、隐马尔可夫模型HMM等都是生成式模型,拿朴素贝叶斯举例,对于输入X,需要求出好几个联合概率,然后较大的那个就是预测结果。

同样,生成式模型。并且需要注意的是,在模型训练中,我学习到的是X与Y的联合模型 ,也就是说,我在训练阶段是只对建模,我需要确定维护这个联合概率分布的所有的信息参数。完了之后在inference再对新的sample计算 ,导出 , 但这已经不属于建模阶段了。

 

 

 

结合贝叶斯过一遍生成式模型的工作流程。学习阶段,建模:  , 然后
另外,LDA也是这样,只是他需要确定很多个概率分布,而且建模抽样都蛮复杂的。

所以生成式总结下有如下特点:

  1. 建模
  2. 这里我们主要讲分类问题,所以是要对每个label(yi)都需要建模,最终选择最优概率的label为结果,所以没有什么判别边界。
  3. 生成式模型的优点在于,所包含的信息非常齐全,称之为“上帝信息”,所以不仅可以用来输入label,还可以干其他的事情。生成式模型关注结果是如何产生的。但是生成式模型需要非常充足的数据量以保证采样到了数据本来的面目,所以速度相比之下,慢。

 

举一个例子:

判别式模型举例:要确定一个羊是山羊还是绵羊,用判别模型的方法是从历史数据中学习到模型,然后通过提取这只羊的特征来预测出这只羊是山羊的概率,是绵羊的概率。

生成式模型举例:利用生成模型是根据山羊的特征首先学习出一个山羊的模型,然后根据绵羊的特征学习出一个绵羊的模型,然后从这只羊中提取特征,放到山羊模型中看概率是多少,在放到绵羊模型中看概率是多少,哪个大就是哪个。


二者目的都是在使后验概率最大化,判别式是直接对后验概率建模,但是生成模型通过贝叶斯定理这一“桥梁”使问题转化为求联合概率。

 

序列标注是一类特殊的分类任务,分类问题就不用细说了,标注问题相当于是分类问题的一个拓展,分类是输入一个序列得到一个分类结果,而标注问题,输入的是一个序列,输出的也是一个序列,标注问题输出的是一个向量,分类问题输出的是一个标签。

区分一下深度学习的标注和机器学习的标注。

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

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

相关文章

数字验证学习笔记——UVM学习2 覆盖方法

一、覆盖方法 覆盖机制可以将原来所属的类型替换为另外一个新的类型。 在覆盖之后,原本用来创建原属类型的请求,将由工厂来创建新的替换类型。 无需再修改原始代码,继而保证了原有代码的封装性。新的替换类型必须与被替换类型兼容&#xff…

OpenStack 学习之 OVN : L2网络 ( Logical switches 逻辑交换机)

OVN Manual install & Configuration Open vSwitch 官网 参考 OVN学习(一) OVN实战一之GNS3操作指南及OVN入门 简单理解和知识 按照 OVN Manual install & Configuration 分别叫做 Controller 节点和 Compute 节点 ,其他一般叫做…

Android Studio 打一个正式签名的Apk

如何打一个带正式签名文件的app (给自己的劳动成果冠名) 1. 选择build -> generate signed bundle/apk 2. 这里有两个选择, bundle or apk, 我们选择apk 于是勾选 apk, 并点下一步 3. 来到选择证书文件的地方, 但是我们这是第一次做, 还没有证书文件, 所以选择新建一个证…

【Docker学习系列】Docker学习2-docker设置阿里云镜像加速器

在上一篇中,我们学会了在centos中安装docer。我们知道,镜像都是外网的,镜像一般都是比较大的,因为种种原因,我们知道,从外网下载比较慢的。所以,本文,凯哥就介绍怎么将docker的镜像拉…

keil5打开keil4工程无法编译的情况解决办法!!!!!!

目录 1.情况 1.keil5使用(打开)keil4文件工程的时候报错 2.解决办法 如果是kei5打开kei4工程文件出现 步骤1: 步骤2: 步骤3: 1.情况 1.keil5使用(打开)keil4文件工程的时候报错 --- Erro…

vscode插件开发

作为一个前端开发相信,大家对于vscode非常熟悉。vscode是微软开源的一款基于 Electron 开发的代码编辑器。并且vscode支持通过插件来扩展编辑器的功能,比如Prettier插件帮助我们快速格式化代码,ES7 React/Redux/React-Native snippets插件帮助…

Kotlin高仿微信-第31篇-支付-服务

Kotlin高仿微信-项目实践58篇详细讲解了各个功能点,包括:注册、登录、主页、单聊(文本、表情、语音、图片、小视频、视频通话、语音通话、红包、转账)、群聊、个人信息、朋友圈、支付服务、扫一扫、搜索好友、添加好友、开通VIP等众多功能。 Kotlin高仿…

hadoop集群中存在配置较低的数据节点应用如何应对磁盘数据溢满的问题之rebalance

现象 登录hdfs web ui发现集群中一个节点的负载远高于另外的节点 分析 一般情况下集群在数据盘配置一样,几乎使用不到rebalance,但是我们的集群中有一个比较小的数据节点,因此我们需要关注各节点数据分布情况,及时进行rebalan…

手撕一个图片色卡提取器,可自定义提取色卡数量!

在一些特殊的业务场景中,我们需要一次性提取一张图片中的色卡信息,并且需要使用十六进制的颜色表示方法进行展示。 今天得空做了一个小工具,用来自定义的提取某一张图片中的色卡信息,需要提取某张图片中的色卡可以自行选择。 实现…

Python基础之SQLite数据库

Python与SQLite数据库 一、概述 对于非常简单的应用而言,使用文件作为持久化存储通常就足够了,但是大多数复杂的数据驱动的应用则需要全功能的关系数据库。 SQLite 的目标则是介于两者之间的中小系统。它量级轻、速度快,没有服务器&#xf…

数学辅导微信小程序设计与实现的源码+文档

摘 要 网络的广泛应用给生活带来了十分的便利。所以把数学辅导管理与现在网络相结合,利用java技术建设数学辅导微信小程序,实现数学辅导的信息化。则对于进一步提高数学辅导管理发展,丰富数学辅导管理经验能起到不少的促进作用。 数学辅导微…

【python】 int、float、double与16进制字符串的互相转换

import structdef intToHex(num): # int转16进制return hex(num)[2:].upper()def hexToInt(hexString): # 16进制转intreturn int(hexString, 16)def floatToHex(floatValue): # float转16进制return struct.pack(>f, floatValue).hex().upper()def hexToFloat(hexString…

chloris.earth ——Chloris 全球生物量 2003 - 2019 数据平台

概述 Chloris 全球生物量 2003 - 2019 数据集提供了地球陆地木本植被生态系统地上生物量存量和变化的估计值。它涵盖 2003 年至 2019 年期间,按年度时间步长计算。全球数据集的空间分辨率约为 4.6 公里。 这些地图和数据集是通过结合来自星载卫星的多个遥感测量结果…

如何保证PCB孔铜高可靠?

PCB板上电路导通,都是靠线路或过孔来传导的,从PCB制造流程可以看出,PCB完成铜厚是由PCB基铜厚度加板电厚度加图电厚度三部分组成,PCB孔铜厚度,是在两个电镀流程中完成,即全板电镀孔铜的厚度加图形电镀孔铜厚…

k8s概念

文章目录k8s概念为什么叫他k8s以及谁开发的k8s是什么k8s特点时光回溯传统部署时代:虚拟化部署时代容器部署时代:容器的优点为什么需要k8s,他能做什么?Kubernetes 不是什么?k8s概念 为什么叫他k8s以及谁开发的 kubern…

EO.Web浏览器 v2023.0.18.0 for .NET -- EO.WebBrowser

.NET PDF 和 Web 浏览器从未如此简单 使用 PDF 文件生成/处理能力快速扩展您的 .NET 应用程序,或者将流行的 Chromium 浏览器引擎与广泛的自定义选项(如自定义资源加载器和 JavaScript 扩展)无缝集成用于 UI 或后台任务。 当前:v2…

steam搬砖项目,小白也能月入过万的副业项目

steam搬砖这个项目,我们做了3年了,项目很稳定。由于项目是轻资产,门槛低,按照我们的方法,只要你足够勤快,这是一个能帮你赚取人生的第一桶金的项目。 仅代表个人收益 steam项目原理就是:倒卖cs…

移动端异构运算技术 - GPU OpenCL 编程(基础篇)

一、前言 随着移动端芯片性能的不断提升,在移动端上实时进行计算机图形学、深度学习模型推理等计算密集型任务不再是一个奢望。在移动端设备上,GPU 凭借其优秀的浮点运算性能,以及良好的 API 兼容性,成为移动端异构计算中非常重要…

小巧有劲的按摩好手,能装兜里的护理工具,小鸟斗士筋膜枪体验

现在很多朋友为了身体健康,平时都会去做些简单的健身,因为之前长期不运动,所以健身后很容易有肌肉酸痛等问题,对此,筋膜枪是个很好用的工具,可以有效促进血液循环,还能够缓解久坐所导致的腰背酸…

java面试强基(16)

说说 List, Set, Queue, Map 四者的区别? List(对付顺序的好帮手): 存储的元素是有序的、可重复的。Set(注重独一无二的性质): 存储的元素是无序的、不可重复的。Queue(实现排队功能的叫号机): 按特定的排队规则来确定先后顺序,存储的元素是有序的、可…