【机器学习】六、概率图模型

今天我们对概率图模型(Probabilistic Graphical Model,PGM)做一个总结。

模型表示

概率图模型,是指一种用图结构来描述多元随机变量之间条件独立关系的概率模型。

它提出的背景是为了更好研究复杂联合概率分布的数据特征,假设一些变量的条件独立性,由此我们把概率图模型分为有向图无向图,并且介绍了它们的模型表示、条件独立性。

有向图模型又称贝叶斯网络信念网络,其联合概率分布可以分解为每个随机变量Xk的局部条件概率的乘积形式:

贝叶斯网络的条件独立性体现在三种形式:tail-to-tail,head-to-tailhead-to-head。

无向图模型又称马尔科夫随机场马尔科夫网络,它的联合概率分布由Hammersley Clifford定理保证,能够因子分解为定义在最大团上的正函数的乘积

马尔科夫随机场的条件独立性体现在局部马尔可夫性、全局马尔可夫性和成对马尔可夫性,他们是相互等价的:

接着我们介绍了判断变量条件独立性的方法——D分离,最后我们得到更一般的算法来确定以下形式之一的独立性问题:

  • 给定Z,X和Y是否条件独立

  • X和Y边际独立吗

文章链接:

概率图模型(模型表示)

概率图模型(D分离)

模型推断

概率图模型只是为了简便研究模型方便而提出的工具,通常我们把得到联合概率分布参数的过程称为Learning问题,得到参数后,最终要进行推断,称为Inference问题,一般情况下,推断问题分为精确推断近似推断。

精确推断有变量消除法(VE)和信念传播法(BP)。变量消除法的思想,它的核心是每次对一个变量求积分。

VE算法存在很明显的两个缺点:计算步骤无法存储;消除的最优次序是一个NP-hard问题。因此要对此算法进行改进,得到信念传播算法(BP),该算法的流程主要有三步:

step1:任取⼀个节点 作为根节点

step2:对这个根节点的邻居中的每⼀个节点,收集信息

step3:对根节点的邻居,分发信息

近似推断又分为确定性近似随机性近似。

很多情况,无法用最大似然估计(MLE)直接求得参数,模型由一些不可观测的变量决定,它们无法直接观测,需要引入隐变量来定义它们。通常情况可以用期望最大化(EM算法)求解,它是一种迭代算法,主要思想是把一个难于处理的似然函数最大化问题用一个易于最大化的序列取代,而其极限是原始问题的解。

E步本质是求隐变量z的后验分布p(z|x,θ),想方设法把隐变量z积分掉,M步求似然函数最大值的参数θ。

变分推断(VI)是一种确定性近似方法,它的初始算法是基于平均场假设理论,不过该算法存在两个局限:假设太强,期望的积分可能无法计算。由此对算法改进,得到随机梯度变分推断(SGVI),利用重参数技巧和蒙特卡洛采样得到目标函数的梯度,进而采取梯度下降得到近似解。

随机性近似推断的典型是马尔科夫链蒙特卡洛方法(MCMC),主要思想是通过构建马尔可夫链概率序列,使其收敛到平稳分布p(z)。

蒙特卡洛采样是一种随机模拟方法,核心是求解x的概率分布p(x),以及如何基于概率分布去采集n个样本点。采样的目标是采集到的样本能够代表总体,要满足两点:

  • 样本趋向于高概率的区域

  • 样本之间必须独立

常用的采样方法有概率分布采样(CDF Sampling)拒绝采样(Rejection Sampling)重要性采样(Importance Sampling)

马尔可夫链是一种时间和状态都是离散的随机变量序列,它由状态空间和转移矩阵定义,通常情况我们研究齐次马尔可夫链(未来状态的条件概率分布仅依赖于现在状态)。

平稳分布就是表示在某一个时刻后,分布不再改变。我们通过蚱蜢的例子来深入介绍了平稳分布,它表示了停留在某一状态的概率与从随机采样的前期状态转移到它的概率相同。

但并不是所有马氏链都是平稳分布,所以我们想找到一种构建有平稳分布的马氏链。这就引入了平稳分布的充分条件——细致平衡。

细致平衡条件将平稳分布的序列和⻢尔可夫链的转移矩阵联系在⼀起,把转移矩阵作为提议矩阵(提议函数),通过它可以不断⽣成样本点,就可以完成采样了,这个就是MCMC。主要用到MH算法,面对高维空间的话,用到MH的优化算法——Gibbs采样

文章传送门:

模型推断:VE与BP

EM算法

变分推断(Variational Inference)

MCMC(蒙特卡洛采样)

MCMC(马尔可夫链)

MCMC(MH算法)

具体模型

最简单的图模型是朴素贝叶斯,它是一个强假设:即给定y的情况下,特征之间相互独立:

引⼊单个隐变量后,发展出了高斯混合模型(GMM)

如果单个隐变量变成序列的隐变量,就得到了动态空间模型(Dynamic Model)

引⼊齐次马尔科夫假观测独立假设就有隐马尔科夫模型(HMM)卡尔曼滤波粒子滤波.

HMM的隐状态假设是离散的,卡尔曼滤波的隐状态假设是连续的,但观测变量服从高斯分布,而粒子滤波是非线性非高斯情况下的动态模型。

为了打破观测独立性,引⼊了⼀种最大熵马尔科夫模型MEMM它把最大熵原理与隐马尔科夫模型结合:

为了克服 MEMM 中的局域问题,⼜引⼊了条件随机场(CRF),CRF 是⼀个⽆向图,其中,破坏了⻬次⻢尔可夫假设,如果隐变量是⼀个链式结构,那么⼜叫线性链 CRF。

在⽆向图的基础上,引⼊隐变量得到了玻尔兹曼机,这个图模型的概率密度函数是⼀个指数族分布。对隐变量和观测变量作出⼀定的限制,就得到了受限玻尔兹曼机(RBM)

我们看到,不同的概率图模型对下⾯⼏个特点作出假设:

1. 向-边的性质

2. 离散/连续/混合-点的性质

3. 条件独立性-边的性质

4. 隐变量-点的性质

5. 指数族-结构特点

此外,我们介绍五种聚类算法:基于质心的K-means算法,基于概率分布的GMM算法,基于密度的DBSCAN算法,基于无向图的谱聚类,以及基于层次聚类的BIRCH算法,其中K-means可以看成GMM的特殊情形。

最后,我们很久前介绍过了贝叶斯线性回归高斯过程回归(GPR),它也可以看成概率图模型,我们是专门为了介绍一种调参方法而提前介绍这两个模型——贝叶斯优化(BOA),它可以在无法确定函数表达式的前提下,找到函数的最值点。

文章传送门:

高斯混合模型(GMM)

隐马尔可夫模型(背景介绍)

隐马尔可夫模型(前向算法与后向算法)

隐马尔可夫模型(Baum Welch算法与Viterbi算法)

隐马尔可夫模型(模型推断五大问题)

隐马尔可夫模型(算法流程&实例演示)

线性动态系统LDS(别名:卡尔曼滤波)

粒子滤波(Particle Filter)

条件随机场CRF(一)

条件随机场CRF(二)

条件随机场CRF(三)

受限波尔茨曼机(RBM)

高斯网络(GBN与GMN)

聚类算法(K-means)

聚类算法(谱聚类)

聚类算法(BIRCH)

聚类算法(DBSCAN)

聚类算法(相似度与性能度量)

贝叶斯线性回归

高斯过程回归(GPR)

贝叶斯优化

对于上面的概率图模型,我们有部分给出了编程实现,有部分还没有,以后会陆续介绍。目前重点是把原理介绍清楚,对机器学习有个整体把握。熟悉这些工具,加上其原理的思想,在我们工作中灵活应用,希望对亲爱的读者你有用!

我们不久后开始深度学习的内容,再难,我也想你一起学算法!!!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

华为gre带验证key案例

配置FW_A。 a.配置接口的IP地址,并将接口加入安全区域。 system-view [sysname] sysname FW_A [FW_A] interface GigabitEthernet 1/0/1 [FW_A-GigabitEthernet1/0/1] ip address 1.1.1.1 24 [FW_A-GigabitEthernet1/0/1] quit [FW_A] interface GigabitEthernet 1/…

在Linux中搭建Mosquitto MQTT协议消息服务端并结合内网穿透工具实现公网访问

文章目录 前言1. Linux 搭建 Mosquitto2. Linux 安装Cpolar3. 创建MQTT服务公网连接地址4. 客户端远程连接MQTT服务5. 代码调用MQTT服务6. 固定连接TCP公网地址7. 固定地址连接测试 前言 Mosquitto是一个开源的消息代理,它实现了MQTT协议版本3.1和3.1.1。它可以在不…

GZ038 物联网应用开发赛题第1套

2023年全国职业院校技能大赛 高职组 物联网应用开发 任 务 书 (第1套卷) 工位号:______________ 第一部分 竞赛须知 一、竞赛要求 1、正确使用工具,操作安全规范; 2、竞赛过程中如有异议,可向现场考评人员反映,不得扰乱赛场秩序; 3、遵守赛场纪律,尊重考评人员…

HGHAC4.2.1开启DCS Failsafe Mode的步骤

瀚高数据库 目录 环境 文档用途 详细信息 环境 系统平台:Linux x86-64 Red Hat Enterprise Linux 7 版本:4.5.8 文档用途 本文档用于介绍hghac4.2.1版本开启dcs failsafe mode的步骤及验证方法 详细信息 一、新增功能说明 Hghac4.2.1封装自patroni3.…

71 内网安全-域横向网络传输应用层隧道技术

目录 必备知识点:1.代理和隧道技术区别?2.隧道技术为了解决什么?3.隧道技术前期的必备条件? 演示案例:网络传输应用层检测连通性-检测网络层ICMP隧道Ptunnel使用-检测利用传输层转发隧道Portmap使用-检测,利用传输层转发隧道Netcat使用-检测,利用,功能应用层DNS隧…

网站小程序分类目录网源码系统+会员登录注册功能 带完整搭建教程

大家好啊,源码小编今天来给大家分享一款网站小程序分类目录网源码系统会员登录注册功能 。 以下是核心代码图模块: 系统特色功能一览: 分类目录:系统按照不同的类别对网站进行分类,方便用户查找自己需要的网站。用户可…

K8S篇之etcd数据备份与恢复

一、etcd备份与恢复 基本了解: 1、k8s 使用etcd数据库实时存储集群中的数据,安全起见,一定要备份。 2、备份只需要在一个节点上备份就可以了,每个节点上的数据是同步的;但是数据恢复是需要在每个节点上进行。 3、etcd…

门窗定制服务预约小程序效果如何

无论建筑工程还是普通家庭,都有门窗订购需求,对商家来说,不断传播品牌、获客转化是首要的,然而在实际经营中门窗生意也会面临一些痛点: 1、品牌宣传拓客难 门窗生意同行较多,而且传单等形式低效且不太适用…

【原创】java+swing+mysql宠物领养管理系统设计与实现

摘要: 生活中,有很多被人遗弃的宠物,这些宠物的处理成为了一个新的难题。生活中也有许多人喜欢养宠物,为了方便大家进行宠物领养,提高宠物领养管理的效率和便利性。本文针对这一问题,提出设计和实现一个基…

环形链表~

题目描述 给你一个链表的头节点 head ,判断链表中是否有环。如果链表中存在环,则返回true。否则,返回false 。 解题思路 采用快慢指针的思想,创建fast和slow一快一慢指针,slow一次走一步,fast一次走两步&…

使用Redis实现文章阅读量、收藏、点赞数量记录功能

目录 一、前言二、业务分析三、Redis数据结构选择分析和实现3.1、三个数据缓存都分别使用 字符串 结构计数器存储对应数量值3.2、三个数据缓存使用一个 Hash 结构存储3.3、阅读量使用字符串结构计算器,收藏和点赞分别使用 Set 集合存储 四、总结 一、前言 在博客中会…

chrome v3开发插件实现所有网站允许跨域

场景: chrome 插件 升级到v3后,原来修改请求响应都变成异步,即无法同步拦截来修改请求响应。 在v3中也不支持修改请求响应内容。 问题:如何在chrome v3中允许其他网站跨域呢。 方式一:禁用chrome跨域,禁…

5G与物联网应用:新一代网络技术融合开创新时代

5G与物联网应用:新一代网络技术融合开创新时代 随着信息技术的不断演进,5G和物联网作为新一代网络技术,正在引领我们走向一个更加智能化、互联互通的新时代。本文将分析5G与物联网应用的技术原理、应用场景与发展趋势,并探讨它们…

BES 在大规模向量数据库场景的探索和实践

导读 本文整理自 2023 年 9 月 5 日 QCon 全球软件开发大会 2023 北京站 —— 向量数据库分论坛的同名主题演讲《BES 在大规模向量数据库场景的探索和实践》。 全文5989字,预计阅读时间15分钟。 向量数据库是一种专门用于存储和查询向量数据的数据库系统。通过 Emb…

idea 一直卡在maven正在解析maven依赖

修改maven Importing的jvm参数 -Xms1024m -Xmx2048m

用POST请求在Linux之间传输文件(Python在Linux间传输文件)

背景 实际需求: 已通过iperf和dd命令测试过两台不同区域之间的Linux服务器带宽,均为1000Mb网络。但发送post请求传输文件至对象存储时,总是卡在14Mb/s。除了排查区域之间的防火墙,也应该尝试检查Linux(KylinV10&…

Python中如何理解这种书写代码的语法??def cracking_passwords(zfile: ZipFile, pwd: str) -> bool:

def cracking_passwords(zfile: ZipFile, pwd: str) -> bool: # Author : 小红牛 # 微信公众号:wdPython这是一种使用Python的函数定义语法。这个函数被命名为cracking_passwords,它接受两个参数:zfile和pwd。参数的类型被标注为ZipFile和…

Java Swing程序设计-18章

Java Swing程序设计-18章 1.Swing概论 Swing是用于创建图形用户界面(GUI)的一组API(应用程序编程接口)。Swing提供了丰富的组件,用于构建用户友好的界面,包括按钮、文本框、标签、列表、表格等。以下是Sw…

c语言练习第10周(1~5)

根据公式求和 输入样例20输出样例 534.188884 #include<stdio.h> #include<math.h> int main() {int i,n;scanf("%d", &n);double s 0,t0;for (i 1; i < n; i) {t t sqrt(i);s s t;}printf("%.6lf", s);return 0; } 第一行输入…

Selenium爬取内容并存储至MySQL数据库

前面我通过一篇文章讲述了如何爬取博客摘要等信息。通常,在使用Selenium爬虫爬取数据后,需要存储在TXT文本中,但是这是很难进行数据处理和数据分析的。这篇文章主要讲述通过Selenium爬取我的个人博客信息,然后存储在数据库MySQL中,以便对数据进行分析,比如分析哪个时间段…
最新文章