机器学习---学习与推断,近似推断、话题模型

1. 学习与推断

基于概率图模型定义的分布,能对目标变量的边际分布(marginal distribution)或某些可观测变量

为条件的条件分布进行推断。对概率图模型,还需确定具体分布的参数,称为参数估计或学习问

题,通常使用极大似然估计或后验概率估计求解。单若将参数视为待推测的变量,则参数估计过程

和推断十分相似,可以“吸收”到推断问题中。

假设图模型所对应的变量集x={x1,x2,···,xn}能分为XE和XF两个不相交的变量集,推断问

题的目标就是计算边际概率p(XF)或者条件概率p(XF|XE)。同时,由条件概率定义容易有

其中,联合概率p(xF,xE)可基于图模型获得,所以推断问题的关键就在于如何高效计算边际分

布,即

概率图模型的推断方法可以分两类:①精确推断方法:计算出目标变量的边际分布或条件分布的精

确值,一般情况下,该类方法的计算复杂度随极大团规模增长呈指数增长,适用范围有限。

②近似推断方法:在较低的时间复杂度下获得原问题的近似解,在实际问题中更常用。

1.1 精确推断:变量消去

精确推断实质是一种动态规划算法,利用图模型所描述的条件独立性来削减计算目标概率值所需的

计算量。变量消去是最直观的精确推断方法,也是构建其它精确推断算法的基础。

例:计算边缘概率p(x5)

mij(xj)是求加过程中的中间结果,下标 i 表示此项是对 xi 求加的结果,下标 j 表示此项中还剩余

的其它变量;显然,mij(xj)是关于 xj 的函数。

事实上,上述方法对无向图模型同样适用.不妨忽略图14.7(a)中的箭头,将其看作一个无向图

模型,有

其中Z为规范化因子。边际分布P(x5)可这样计算:

变量消去法实际上是利用了乘法对加法的分配律,将对多个变量的积的求和问题转化为对部分变量

交替进行求积和求和的问题。这种转化使得每次的求和和求积运算被限制在局部,仅和部分变量有

关,从而简化了计算。 

变量消去法有一个明显的缺点:若需计算多个边际分布,重复使用变量消去法将会造成大量的冗余

计算.例如在上图的贝叶斯网上,假定在计算P(x5)之外还希望计算P(x4),若采用{x1,

x2,x5,x3}的顺序,则m12(x2)和m23(x3)的计算是重复的。

1.2 信念传播

计算多个边际分布,重复使用变量消去法会造成大量的冗余计算。利用信念传播(Belief

Propagation)方法避免冗余计算 。

信念传播(Belief Propagation)算法将变量消去法中的求和操作看作一个消息传递过程,较好地

解决了求解多个边际分布时的重复计算问题.具体来说,变量消去法通过求和操作。

消去变量xi,其中n(i)表示结点xi的邻接结点.在信念传播算法中,这个操作被看作从 xi 向 xj 传

递了一个消息mij(xj)。这样,描述的变量消去过程就能描述为上图所示的消息传递过程。不难发

现,每次消息传递操作仅与变量 xi 及其邻接结点直接相关,换言之,消息传递相关的计算被限制

在图的局部进行。

信念传播算法中,一个结点仅在接收到来自其它所有结点的消息后才能向另一个结点发送消息,且

结点的边际分布正比于它所接收的消息的乘积:

例:下图中,结点x3要向x5发送消息,必须事先收到来自结点x2和x4的消息,且传递到x5的消息

m35(x5)恰为概率P(x5):

若图中没有环,则信念传播算法经过两个步骤即可完成所有消息传递,进而能计算所有变量上的边

际分布:指定一个根节点,从所有叶结点开始向根节点传递消息,直到根节点收到所有邻接结点的

消息;从根结点开始向叶结点传递消息,直到所有叶结点均收到消息 。

令x1为根结点,则x4和x5为叶结点。以上两步消息传递的过程如上图所示。此时图的每条边上都

有方向不同的两条消息,基于这些消息和即可获得所有变量的边际概率。

2. 近似推断

精确推断方法需要很大的计算开销,因此在现实应用中近似推断方法更为常用。近似推断方法大致

可以分为两类:采样法(sampling):通过使用随机化方法完成近似,如MCMC采样;变分推断

(variational inference):使用确定性近似完成推断。

2.1 MCMC采样

很多任务中,我们关心的并非概率分布本身,而是基于概率分布的期望,并且还能基于期望进一步作出决策。若直接计算或逼近这个期望比推断概率分布更容易,则直接操作无疑将使推断问题更为高效。采样法基于这个思路,假定目标是计算函数f(x)在概率密度函数p(x)下的期望:

则可根据p(x)抽取一组样本,然后计算f(x)在这些样本上的均值

用于近似期望E[f],如果样本独立,基于大数定律,这种通过大量取样的方法就

得到较高的近似精度,问题的关键就变成了如何取样,即如何高效地从图模型所描述的概率分布中

获取样本。 

马尔可夫链蒙特卡罗(Markov Chain Monte Carlo, MCMC) 是图模型中最常用的采样技术。

给定连续变量x∈X的概率密度函数p(x),x在区间A中的概率为:

若有函数f:X→R,可计算f(x)的期望:

若x为高维多原变量且服从一个复杂分布,积分操作会很困难。MCMC先构造出服从p分布的独立

同分布随机变量,再得到无偏估计:

如何在概率分布复杂的情况下产生独立同分布的样本?

MCMC算法的关键在于通过“构造平稳分布为p的马尔可夫链”来产生样本:当马尔可夫链运行足够

长的时间(收敛到平稳状态),则产出的样本x近似服从p分布;并且通过多次重复运行、遍历马尔

可夫链就可以取得多个服从该分布的独立同分布样本。

判定马尔可夫链的平稳态:

假定马尔可夫链T的状态转移概率为T(x'|x),t时刻状态的分布为p(xt),则若在某个时刻马

尔可夫链满足平稳条件:

则p(x)是该马尔可夫链的平稳分布,且马尔可夫链在满足该条件时已经收敛到平稳状态。

MCMC方法先设法构造一条马尔可夫链,使其收敛至平稳分布恰为待估计参数的后验分布,然后通

过该马尔可夫链产生样本,用这些样本进行估计。

MCMC中如何构造马尔可夫链的转移概率至关重要,不同构造方法产生不同的MCMC算法。

Metropolis-Hastings (MH)算法是MCMC(Markov Chain Monte Carlo)算法的代表之一。基于

“拒绝采样”逼近平稳分布。算法每次根据上一轮采样结果xt—1来采样获得候选状态样本x*,但这

个样本会以一定概率被拒绝。若从状态xt-1到状态x*的转移概率为,x*最

终收敛到平稳状态,则:

为达到平稳状态,只需将接受率设置为:

Metropolis-Hastings (MH) 算法:

2.2 吉布斯采样 

吉布斯采样(Gibbs sampling)被视为MH算法的特例,也使用马尔可夫链获取样本,平稳分布也

是p(x)。具体来说,假定文本为,目标分布为p(x),在初始化x的取值后,通过

循环下列步骤来完成采样:随机或以某个次序选取某变量xi,根据x中除xi外的变量的现有取值,计

算条件概率p(xi|xj),其中根据p(xi|xj)对变量xi采样,

用采样值代替原值。

2.3 变分推断

变分推断通过使用已知简单分布来逼近需推断的复杂分布,并通过限制近似分布的类型,从而得到

一种局部最优、但具有确定解的近似后验分布。

图模型盘式记法(plate notation):相互独立的、由相同机制生成的多个变量被放在一个方框

(盘)内,并在方框中标出类似变量重复出现的个数N;方框可以嵌套;通常用阴影标注出已知

的、能观察到的变量。

图模型中,已知变量本,Θ是x与z服从的分布参数。所有能观察到的变量x的联合分

布概率密度函数是:

对应的对数似然:

推断和学习任务主要是由观察变量x来估计隐变量z和分布参数θ,即求解p(z|x,Θ)和Θ

可使用EM算法最大化对数似然:

E步:根据t时刻的参数 θt 对进行推断,并计算联合似然函数

M步:基于E步结果进行最大化寻优,对关于变量θ的函数进行最大化从而求取:

 是隐变量z的近似分布,将这个近似分布用q(z)表示:

现实任务中,E部的推断可能很复杂。借助变分推断,简化q的形式(增加假设) 

假设z的分布:

假设复杂的多变量z可以拆解为一系列相互独立的多变量zi,同时令qi分布相对简单或有很好的结构

(如为指数族分布):

要得到qj,可固定qi≠j再对L(q)最大化,可发现上式等于,当

时L(q)最大,可得最优近似:

变量子集zj所服从的最优分布qj*应满足:

因此,通过恰当分割变量子集zj并选择qi服从的分布,往往有闭式解,使得上式

能对隐变量高效推断。

由于在对zj所服从的分布qj*估计时融合了zj之外的其它zi≠j的信息,这是通过联合似然函数Inp(x,

z)在zj之外的隐变量分布上求期望得到的,因此亦称为“平均场”(mean field)方法。

在实际应用中,最重要的是考虑如何对隐变量进行拆解,以及假设各变量子集服从何种分布,在此

基础之上结合EM算法对概率图模型进行推断和参数估计。

3. 话题模型

话题模型(topic model)是一类生成式有向图模型,主要用来处理离散型的数据集合(如文本集

合)。作为一种非监督产生式模型,话题模型能够有效利用海量数据发现文档集合中隐含的语义。

隐狄里克雷分配模型(Latent Dirichlet Allocation,LDA)是话题模型的典型代表。

LDA的基本单元:词(word):待处理数据中的基本离散单元;文档(document):待处理的数

据对象,由词组成,词在文档中不计顺序。数据对象只要能用“词袋”(bag—of—words)表示就可

以使用话题模型;话题(topic):表示一个概念,具体表示为一系列相关的词,以及它们在该概念

下出现的概率。

话题模型的构成:一个话题就像一个箱子,里面装着这个概念下出现概率较高的词。假定数据集中

一共包含K个话题和T篇文档,文档中的词来自一个包含N个词的字典。用T个N维向量W=

表示文档集合。用K个N维向量βk表示话题。的第n个分量Wt,n

表示文档t中词n的词频,的第n个分量βk,n表示话题k中词n的词频。

文档的生成过程:现实任务中通过统计文档中出现的词来获得词频向量wi;LDA从生成式模型的角

度看待文档和话题,认为每篇文档包含多个话题。用表示文档t中所包含的每个话题的比

例,表示文档t中包含话题k的比例。

LDA的图模型表示:生成文档t,从以α为参数的狄利克雷分布中随机采样一个话题分布Θt;按如下

步骤产生文档中的N个词,根据θt进行话题指派,得到文档t中词n的话题Zt,n;根据指派的话题所对

应的的词分布βk随机采样生成词。生成的文档以不同比例包含多个话题,文档中的每个词来自于一

个话题,这个话题是根据话题比例产生的

词频wt,n是唯一已观测变量,依赖于话题指派zt,n及话题对应词频βk,话题指派zt,n依赖于话题分

布Θt,Θt依赖于α,话题词频依赖于参数η。

LDA的基本问题:

①模型参数估计:给定训练数据,参数通过极大似然法估计,寻找α和η以最大

化对数似然(通常采用变分法求取近似解)

②模型推断:模型已知,参数α和η已确定,根据词频来推断文档话题结构,可通过求解(分母常

采用吉布斯采样或变分法进行推断)。

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

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

相关文章

MATLAB环境下一维时间序列信号的同步压缩小波包变换

时频分析相较于目前的时域、频域信号处理方法在分析时变信号方面,其主要优势在于可以同时提供时域和频域等多域信号信息,并清晰的刻画了频率随时间的变化规律,已被广泛用于医学工程、地震、雷达、生物及机械等领域。 线性时频分析方法是将信…

第十七篇【传奇开心果系列】Python的OpenCV库技术点案例示例:自适应阈值二值化处理图像提取文字

传奇开心果短博文系列 系列短博文目录Python的OpenCV库技术点案例示例系列短博文目录前言一、自适应阈值二值化处理图像提取文字轮廓的初步示例代码:二、扩展思路介绍三、调整自适应阈值二值化的参数示例代码四、对二值化图像进行形态学操作示例代码五、使用轮廓特征进行筛选示…

Ubuntu22.04 gnome-builder gnome C 应用程序习练笔记(三)

八、ui窗体创建要点 .h文件定义(popwindowf.h)&#xff0c; TEST_TYPE_WINDOW宏是要创建的窗口样式。 #pragma once #include <gtk/gtk.h> G_BEGIN_DECLS #define TEST_TYPE_WINDOW (test_window_get_type()) G_DECLARE_FINAL_TYPE (TestWindow, test_window, TEST, WI…

java缓冲流

缓冲流相比较基本流效率更高&#xff0c;因为自带长度的8192缓冲区 缓冲流在io体系中的的位置&#xff1a; 字节缓冲流&#xff1a; 缓冲流的构造方法&#xff1a;输入、输出 **先通过一个练习了解字节缓冲流两个写法&#xff1a; //创建缓冲流对象 BufferedInputStream bis…

零基础学编程怎么入手,中文编程工具构件箱之渐变背景构件用法教程,系统化的编程视频教程上线

零基础学编程怎么入手&#xff0c;中文编程工具构件箱之渐变背景构件用法教程&#xff0c;系统化的编程视频教程上线 一、前言 今天给大家分享的中文编程开发语言工具资料如下&#xff1a; 编程入门视频教程链接 https://edu.csdn.net/course/detail/39036 编程工具及实例…

跟着cherno手搓游戏引擎【22】CameraController、Resize

前置&#xff1a; YOTO.h: #pragma once//用于YOTO APP#include "YOTO/Application.h" #include"YOTO/Layer.h" #include "YOTO/Log.h"#include"YOTO/Core/Timestep.h"#include"YOTO/Input.h" #include"YOTO/KeyCod…

070:vue+cesium: 利用canvas设置线性渐变色材质

第070个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中设置线性渐变色的材质,这里使用canvas的辅助方法。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共104行)专栏目标示例效果 配置方式 1)查看基础…

每日五道java面试题之java基础篇(三)

第一题. switch 是否能作⽤在 byte/long/String 上&#xff1f; Java5 以前 switch(expr)中&#xff0c;expr 只能是 byte、short、char、int。从 Java 5 开始&#xff0c;Java 中引⼊了枚举类型&#xff0c; expr 也可以是 enum 类型。从 Java 7 开始&#xff0c;expr 还可以…

504. Base 7(七进制数)

题目描述 给定一个整数 num&#xff0c;将其转化为 7 进制&#xff0c;并以字符串形式输出。 问题分析 按照二进制转换的方式进行转换即可 代码 char* convertToBase7(int num) {int count 0;char *x (char *)malloc(sizeof(char)*32);char *y (char *)malloc(sizeof(c…

HCIA--NAT实验

1. 划分网段&#xff0c;配置接口IP地址&#xff0c;内网启用OSPF协议&#xff0c;并配置一对一的NAT&#xff1a; AR1配置&#xff1a; [Huawei]int g0/0/0 [Huawei-GigabitEthernet0/0/0]ip add 10.1.1.1 24 [Huawei-GigabitEthernet0/0/0]int g0/0/1 [Huawei-GigabitEther…

Kafka 入门介绍

目录 一. 前言 二. 使用场景 三. 分布式的流平台 四. Kafka 的基本术语 4.1. 主题和日志 &#xff08;Topic 和 Log&#xff09; 4.2. 分布式&#xff08;Distribution&#xff09; 4.3. 异地数据同步技术&#xff08;Geo-Replication&#xff09; 4.4. 生产者&#xf…

svg 进阶

svg 进阶 svg 应用场景 绘制 icon绘制动画 svg viewport 和 viewBox viewport 是 svg 图像的可见区域 viewBox 是用于在画布上绘制 svg 图形的坐标系统 在一下案例中 svg中 width“500” height“200” 就是可视区域 比如你的svg是100X100但是你的可视区域只有20X20 那么他…

python-游戏篇-初级-超级画板

文章目录 开发环境要求运行方法PyCharmVScode 代码main.pytools.py 效果 开发环境要求 本系统的软件开发及运行环境具体如下。 操作系统&#xff1a;Windows 7、Windows 10。Python版本&#xff1a;Python 3.7.1。开发工具&#xff1a;PyCharm 2018。Python内置模块&#xff…

redis-sentinel(哨兵模式)

目录 1、哨兵简介:Redis Sentinel 2、作用 3、工作模式 4、主观下线和客观下线 5、配置哨兵模式 希望能够帮助到大家&#xff01;&#xff01;&#xff01; 1、哨兵简介:Redis Sentinel Sentinel(哨兵)是用于监控redis集群中Master状态的工具&#xff0c;其已经被集成在re…

【Maven】依赖、构建管理 继承与聚合 快速学习(3.6.3 )

文章目录 Maven是什么&#xff1f;一、Maven安装和配置本地配置文件设置idea配置本地maven 二、基于IDEA的Maven工程创建2.1 Maven工程GAVP属性2.2 Idea构建Maven JavaEE工程 三、Maven工程项目结构说明四、Maven核心功能依赖和构建管理4.1 依赖管理和配置4.2 依赖传递和冲突4.…

Python环境下基于最大离散重叠小波变换和支持向量回归的金融时间序列预测

金融时间序列具有非线性、高频性、随机性等特点&#xff0c;其波动情况不仅与当前股票市场、房地产市场、贸易市场等有强联动性&#xff0c;而且大幅度起伏对于其他市场有较大的影响和冲击。由于金融市场受多种因素影响且各影响因素间也存在一定复杂动态交互关系&#xff0c;导…

css的布局(BFC)

一、css中常规的定位方案 1、普通流 元素按照其在HTML中的先后位置自上而下布局。 行内元素水平排列&#xff0c;当行被占满后换行&#xff1b;块级元素则会被渲染为完整的一行。 所有元素默认都是普通流定位。 2、浮动 元素首先按照普通流的位置出现&#xff0c; 然后根据浮动…

Eclipse安装配置、卸载教程(Windows版)

Eclipse是一个开放源代码的集成开发环境&#xff08;IDE&#xff09;&#xff0c;最初由IBM公司开发&#xff0c;现在由Eclipse基金会负责维护。它是一个跨平台的工具&#xff0c;可以用于开发多种编程语言&#xff0c;如Java、C/C、Python、PHP、Rust等。 Eclipse提供了一个可…

传输频宽是啥?对网速影响有多大?

频宽&#xff0c;即WIFI频道宽度&#xff0c;又称为WIFI信道宽度&#xff0c;是WiFi Channel width的缩写。从科学的定义来说&#xff0c;Wi-Fi频道宽度&#xff0c;是指Wi-Fi无线信号在频谱上所占用的带宽大小。它决定了Wi-Fi网络的数据传输速率和稳定性&#xff0c;一般有20M…

C++ 哈希表(unordered_map与unordered_set)

文章目录 unordered_map 与 unordered_set哈希表 (Hash Table)哈希函数哈希冲突模拟实现封装 补充&#xff1a;unordered_map 与 unordered_set 的使用 unordered_map 与 unordered_set 就和名字一样&#xff0c;这是 map、set 的无序版本&#xff08;数据遍历出来是无序的&am…