机器学习笔记之近似推断(一)从深度学习角度认识推断

news/2024/4/25 22:34:58/文章来源:https://blog.csdn.net/qq_34758157/article/details/129183302

机器学习笔记之近似推断——从深度学习角度认识推断

  • 引言
    • 推断——基本介绍
    • 精确推断难的原因
      • 虽然能够表示,但计算代价太大
      • 无法直接表示

引言

本节是一篇关于推断总结的博客,侧重点在于深度学习模型中的推断任务。

推断——基本介绍

推断(Inference\text{Inference}Inference)——我们并不陌生,在介绍的每一个概率模型,基本都涉及到推断问题。关于概率模型的三大核心问题分别是:表示(Representation\text{Representation}Representation),推断学习(Learning\text{Learning}Learning)。我们从深度模型,主要是深度生成模型所涉及的推断任务出发,对推断进行描述。

首先,是什么样的原因,导致了推断这个任务的发生?换句话说,推断的动机是什么。

  • 我们基于可观察的样本特征X\mathcal XX,构建概率图模型。如果包含隐变量Z\mathcal ZZ,而隐变量Z\mathcal ZZ绝大多数情况下没有物理意义,它只是我们建模过程中人工设置出来的随机变量。

    Z\mathcal ZZ一上来就是未知的,但为了完善被构建的模型,我们有必要了解隐变量Z\mathcal ZZ的特征信息。从哪里去了解/通过什么渠道去了解Z\mathcal ZZ? 从 样本X\mathcal XX

    当样本X\mathcal XX进入到模型后,Z\mathcal ZZ会产生什么样的反映,而这个反映就是隐变量Z\mathcal ZZ的特征信息,即P(Z∣X)\mathcal P(\mathcal Z \mid \mathcal X)P(ZX)。而推断就是求解Z\mathcal ZZ特征信息P(Z∣X)\mathcal P(\mathcal Z \mid \mathcal X)P(ZX)的手段。因此:推断的第一个动机就是推断自身。我们需要通过样本X\mathcal XX的渠道,将Z\mathcal ZZ的特征信息描述出来

  • 关于推断的另一个动机来自于模型的学习任务。也就是说,在模型参数θ\thetaθ的学习过程中,可能存在 不可避免地使用推断

    一个经典例子就是受限玻尔兹曼机(Restricted Boltzmann Machine,RBM\text{Restricted Boltzmann Machine,RBM}Restricted Boltzmann Machine,RBM)。在受限玻尔兹曼机基于极大似然估计来求解对数似然梯度∇θ[log⁡P(v(i);θ)]\nabla_{\theta} \left[\log \mathcal P(v^{(i)};\theta)\right]θ[logP(v(i);θ)]的过程中,可将对数似然梯度描述为如下形式:

    • 需要注意的是,针对某个观测样本v(i)v^{(i)}v(i),我们并没有将所有参数的对数似然梯度都求出来,仅求解的是v(i)v^{(i)}v(i)中某一随机变量vj(i)v_j^{(i)}vj(i)与对应模型中隐变量h(i)h^{(i)}h(i)的某一随机变量hk(i)h_k^{(i)}hk(i)之间的模型参数Wvj(i)⇔hk(i)\mathcal W_{v_j^{(i)} \Leftrightarrow h_k^{(i)}}Wvj(i)hk(i)的对数似然梯度。
    • 关于hj(i)h_j^{(i)}hj(i)是一个服从‘伯努利分布’的随机变量,完整推导过程见上述链接。
      ∇θ[log⁡P(v(i);θ)]⇒∂∂Wvj(i)⇔hk(i)[log⁡P(v(i);θ)]=P(hk(i)=1∣v(i))⋅vj(i)⏟第一项−∑v(i)P(v(i))⋅P(hk(i)=1∣v(i))⋅vj(i)⏟第二项\begin{aligned} \nabla_{\theta} \left[\log \mathcal P(v^{(i)};\theta)\right] & \Rightarrow \frac{\partial}{\partial \mathcal W_{v_j^{(i)} \Leftrightarrow h_k^{(i)}}} \left[\log \mathcal P(v^{(i)};\theta)\right] \\ & = \underbrace{\mathcal P(h_k^{(i)} = 1 \mid v^{(i)}) \cdot v_j^{(i)}}_{第一项} - \underbrace{\sum_{v^{(i)}} \mathcal P(v^{(i)}) \cdot \mathcal P(h_k^{(i)} = 1 \mid v^{(i)}) \cdot v_j^{(i)}}_{第二项} \end{aligned}θ[logP(v(i);θ)]Wvj(i)hk(i)[logP(v(i);θ)]=第一项P(hk(i)=1v(i))vj(i)第二项v(i)P(v(i))P(hk(i)=1v(i))vj(i)

    关于上述的对数似然梯度结果,第一项中的P(hk(i)=1∣v(i))\mathcal P(h_k^{(i)} = 1 \mid v^{(i)})P(hk(i)=1v(i))就用到了后验概率的推断结果
    推导过程详见受限玻尔兹曼机——推断任务(后验概率),这里nnn表示v(i)v^{(i)}v(i)中随机变量结点的个数。
    P(hk(i)=1∣v(i))=Sigmoid(∑j=1nWhk(i)⇔vj(i)⋅vj(i)+ck(i))\mathcal P(h_k^{(i)} = 1 \mid v^{(i)}) = \text{Sigmoid}\left(\sum_{j=1}^n \mathcal W_{h_k^{(i)}\Leftrightarrow v_j^{(i)}} \cdot v_j^{(i)} + c_k^{(i)}\right)P(hk(i)=1v(i))=Sigmoid(j=1nWhk(i)vj(i)vj(i)+ck(i))
    这明显是一个精确推断(Precise Inference\text{Precise Inference}Precise Inference)。相反,同样使用推断的方式进行求解,使用对比散度这种近似推断的方式加快采样速度。
    由于这里重点描述的是‘推断’与‘学习任务’之间的关联关系,这里就不展开求解了.

    另一个经典例子就是EM\text{EM}EM算法(Expectation Maximization,EM\text{Expectation Maximization,EM}Expectation Maximization,EM)。它的E\text{E}E步可表示为如下形式:
    log⁡P(X;θ)=∫ZQ(Z)⋅log⁡P(X∣θ)dZ=∫ZQ(Z)log⁡P(X,Z;θ)Q(Z)dZ⏟ELBO+{−∫ZQ(Z)log⁡P(Z∣X)Q(Z)dZ}⏟KL Divergence\begin{aligned} \log \mathcal P(\mathcal X ; \theta) & = \int_{\mathcal Z} \mathcal Q(\mathcal Z) \cdot \log \mathcal P(\mathcal X \mid \theta) d\mathcal Z \\ & = \underbrace{\int_{\mathcal Z} \mathcal Q(\mathcal Z) \log \frac{\mathcal P(\mathcal X,\mathcal Z;\theta)}{\mathcal Q(\mathcal Z)}d\mathcal Z}_{\text{ELBO}} + \underbrace{\left\{- \int_{\mathcal Z} \mathcal Q(\mathcal Z) \log \frac{\mathcal P(\mathcal Z \mid \mathcal X)}{\mathcal Q(\mathcal Z)} d\mathcal Z\right\}}_{\text{KL Divergence}} \end{aligned}logP(X;θ)=ZQ(Z)logP(Xθ)dZ=ELBOZQ(Z)logQ(Z)P(X,Z;θ)dZ+KL Divergence{ZQ(Z)logQ(Z)P(ZX)dZ}
    其中X\mathcal XX是基于样本的随机变量集合;Q(Z)\mathcal Q(\mathcal Z)Q(Z)人为设定的、关于隐变量Z\mathcal ZZ的分布;如果关于Z\mathcal ZZ的后验分布P(Z∣X)\mathcal P(\mathcal Z \mid \mathcal X)P(ZX)可求解,即Q(Z)=P(Z∣X)\mathcal Q(\mathcal Z) = \mathcal P(\mathcal Z \mid \mathcal X)Q(Z)=P(ZX),那么此时KL Divergence=0\text{KL Divergence} = 0KL Divergence=0,自然可以使用参数迭代逼近 的方式对模型参数θ\thetaθ进行迭代求解:
    其中的Q(Z)=P(Z∣X)\mathcal Q(\mathcal Z) = \mathcal P(\mathcal Z \mid \mathcal X)Q(Z)=P(ZX)明显是一种对P(Z∣X)\mathcal P(\mathcal Z \mid \mathcal X)P(ZX)的精确推断。
    {log⁡P(X;θ)=ELBO(KL Divergence=0)θ(t+1)=arg⁡max⁡θ[∫ZP(Z∣X,θ(t))log⁡P(X,Z;θ)dZ]\begin{cases} \log \mathcal P(\mathcal X;\theta) = \text{ELBO} \quad (\text{KL Divergence} = 0) \\ \theta^{(t+1)} = \mathop{\arg\max}\limits_{\theta} \left[\int_{\mathcal Z} \mathcal P(\mathcal Z \mid \mathcal X,\theta^{(t)}) \log \mathcal P(\mathcal X , \mathcal Z;\theta) d\mathcal Z\right] \end{cases}logP(X;θ)=ELBO(KL Divergence=0)θ(t+1)=θargmax[ZP(ZX,θ(t))logP(X,Z;θ)dZ]
    但实际情况下,关于隐变量Z\mathcal ZZ的后验分布P(Z∣X)\mathcal P(\mathcal Z \mid \mathcal X)P(ZX)可能无法精确求解,此时Q(Z)\mathcal Q(\mathcal Z)Q(Z)的作用就是逼近当前迭代步骤中的P(Z∣X)\mathcal P(\mathcal Z \mid \mathcal X)P(ZX),使得当前迭代步骤的ELBO\text{ELBO}ELBO达到最大;再将当前迭代步骤最优近似分布Q(Z)\mathcal Q(\mathcal Z)Q(Z)带回ELBO\text{ELBO}ELBO中,从而求出当前迭代步骤的最优参数。这就是广义EM\text{EM}EM算法

    • 相对于EM算法过程,因P(Z∣X)\mathcal P(\mathcal Z \mid \mathcal X)P(ZX)自身无法精确求解的问题,广义EM算法使得分布Q(Z)≈P(Z∣X)\mathcal Q(\mathcal Z) \approx \mathcal P(\mathcal Z \mid \mathcal X)Q(Z)P(ZX)这明显是一种近似推断。
    • 下面描述给定ttt时刻模型参数θ(t)\theta^{(t)}θ(t)的条件下,求解t+1t+1t+1时刻E\text{E}E步的近似分布Q^(t+1)(Z)\hat {\mathcal Q}^{(t+1)}(\mathcal Z)Q^(t+1)(Z)t+1t+1t+1时刻M\text{M}M步最优参数θ(t+1)\theta^{(t+1)}θ(t+1)的过程。
      {Q^(t+1)(Z)=arg⁡max⁡Q(Z)∫ZQ(Z)log⁡P(X,Z;θ(t))Q(Z)dZ⏟ELBO⇔arg⁡min⁡Q(Z)−∫ZQ(Z)log⁡P(Z∣X)Q(Z)dZ⏟KL Divergenceθ(t+1)=arg⁡max⁡θ∫ZQ^(t+1)(Z)log⁡P(X,Z;θ)Q^(t+1)(Z)dZ⏟ELBO\begin{cases} \hat {\mathcal Q}^{(t+1)}(\mathcal Z) = \mathop{\arg\max}\limits_{\mathcal Q(\mathcal Z)} \underbrace{\int_{\mathcal Z} \mathcal Q(\mathcal Z) \log \frac{\mathcal P(\mathcal X,\mathcal Z;\theta^{(t)})}{\mathcal Q(\mathcal Z)} d\mathcal Z}_{\text{ELBO}} \Leftrightarrow \mathop{\arg\min}\limits_{\mathcal Q(\mathcal Z)} \underbrace{- \int_{\mathcal Z} \mathcal Q(\mathcal Z) \log \frac{\mathcal P(\mathcal Z \mid \mathcal X)}{\mathcal Q(\mathcal Z)} d\mathcal Z}_{\text{KL Divergence}}\\ \theta^{(t+1)} = \mathop{\arg\max}\limits_{\theta} \underbrace{\int_{\mathcal Z} \hat {\mathcal Q}^{(t+1)}(\mathcal Z) \log \frac{\mathcal P(\mathcal X,\mathcal Z ;\theta)}{\hat {\mathcal Q}^{(t+1)}(\mathcal Z)}d\mathcal Z}_{\text{ELBO}} \end{cases}Q^(t+1)(Z)=Q(Z)argmaxELBOZQ(Z)logQ(Z)P(X,Z;θ(t))dZQ(Z)argminKL DivergenceZQ(Z)logQ(Z)P(ZX)dZθ(t+1)=θargmaxELBOZQ^(t+1)(Z)logQ^(t+1)(Z)P(X,Z;θ)dZ

    这两个模型参数学习的例子(一个是学习参数梯度,一个是迭代学习参数),它们都不可避免地对隐变量的后验分布进行推断。

精确推断难的原因

虽然能够表示,但计算代价太大

为什么要近似推断?最核心的原因是:精确推断非常困难。也就是说,精确推断的代价太大了

  • 依然以上述受限玻尔兹曼机对数似然梯度求解过程中的第二项为例:
    ∑v(i)P(v(i))⋅P(hk(i)=1∣v(i))⋅vj(i)\sum_{v^{(i)}} \mathcal P(v^{(i)}) \cdot \mathcal P(h_k^{(i)} = 1 \mid v^{(i)}) \cdot v_j^{(i)}v(i)P(v(i))P(hk(i)=1v(i))vj(i)
    其中,∑v(i)\sum_{v^{(i)}}v(i)表示样本数量的连加项,有NNN项;如果观测变量V\mathcal VV中包含nnn个随机变量,即:v(i)=(v1(i),v2(i),⋯,vn(i))n×1Tv^{(i)} = (v_1^{(i)},v_2^{(i)},\cdots,v_n^{(i)})_{n \times 1}^Tv(i)=(v1(i),v2(i),,vn(i))n×1T,并且各观测变量之间相互独立且均服从伯努利分布。那么P(v(i))\mathcal P(v^{(i)})P(v(i))可表示为如下形式:
    P(v(i))=∏m=1nP(vm(i))\mathcal P(v^{(i)}) = \prod_{m=1}^n \mathcal P(v_m^{(i)})P(v(i))=m=1nP(vm(i))
    仅仅P(v(i))\mathcal P(v^{(i)})P(v(i))一项的复杂度就是O(2n)\mathcal O(2^n)O(2n);暂时不考虑P(hk(i)=1∣v(i))\mathcal P(h_k^{(i)} = 1 \mid v^{(i)})P(hk(i)=1v(i))Sigmoid\text{Sigmoid}Sigmoid函数内线性计算的复杂度,上式中的复杂度 至少是O(N⋅2n)\mathcal O(N\cdot 2^n)O(N2n)能算吗?能算,但样本足够多的情况下,代价可看作是无穷大
    这还仅仅是将随机变量设置成最简单的伯努利分布,如果复杂度出现‘指数级别’,就可看做是‘无法求解的’(Intractable\text{Intractable}Intractable).

上述的例子可以根据受限玻尔兹曼机自身关于随机变量的约束能够将复杂的概率分布进行分解,只是分解出的结果计算量太大

无法直接表示

然而存在一些模型,模型内部随机变量关联关系复杂的同时,还十分没有章法。最终导致联合概率分布连分解都做不到

由于受限玻尔兹曼机的条件约束,使得隐变量、观测变量内部均条件独立。但并不是说受限玻尔兹曼机比玻尔兹曼机性能更强大(powerful\text{powerful}powerful),而是玻尔兹曼机仅是理论上的产物,太过于理想化。在真实环境中没有实际作用;

相反受限玻尔兹曼机通过增加约束,使得隐变量的后验分布P(Z∣X)\mathcal P(\mathcal Z \mid \mathcal X)P(ZX)能够准确表示出来。相当于 放弃了模型复杂度,而去追求计算上的可行性
与之相似的还有‘隐马尔可夫模型’中的齐次马尔可夫假设与观测独立性假设,它们都是放弃复杂度、追求计算可行性的典型示例。

可以看出,无向图模型无法直接表示后验概率的主要原因在于随机变量结点之间关联关系过于复杂,从而无法实现条件独立性;而有向图模型无法直接表示后验概率的主要原因在于随机变量之间的结构关系,从而无法实现条件独立性

相关参考:
(系列二十五)近似推断1-介绍

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

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

相关文章

Python中实现将内容进行base64编码与解码

一、需求说明需要使用Python实现将内容转为base64编码,解码,方便后续的数据操作。二、base64简介Base64是一种二进制到文本的编码方式【是一种基于 64 个可打印字符来表示二进制数据的表示方法(由于 2^664,所以每 6 个比特为一个单…

国产音质好的蓝牙耳机有哪些?国产音质最好的耳机排行

随着时间的推移,真无线蓝牙耳机逐渐占据耳机市场的份额,成为人们日常生活中必备的数码产品之一。蓝牙耳机品牌也多得数不胜数,哪些国产蓝牙耳机音质好?下面,我们从音质出来,来给大家介绍几款国产蓝牙耳机&a…

硬件系统工程师宝典(11)-----去耦电容布局“有讲究”

各位同学大家好,欢迎继续做客电子工程学习圈,今天我们继续来讲这本书,硬件系统工程师宝典。 上篇我们说到在电源完整性分析的目标就是要做到电源的干净、稳定和快速响应,以及针对不同噪声处理的实现方法。今天我们来看看去耦电容…

父传子与子传父步骤

父传子: 问题:父页面中引入子组件 把想要传给子页面的值用在子组件中用 :值“值” (用同一个值好区分)来绑定。 在子页面中用props接收 子组件不能改变父组件传过来的值。(传多个页面的时候是,比如父传孙的时候我会…

【2023】华为OD机试真题Java-题目0221-AI处理器组合

AI处理器组合 题目描述 某公司研发了一款高性能AI处理器。每台物理设备具备8颗AI处理器,编号分别为0、1、2、3、4、5、6、7。编号0-3的处理器处于同一个链路中,编号4-7的处理器处于另外一个链路中,不通链路中的处理器不能通信,如下图所示。现给定服务器可用的处理器编号数…

STM32---备份寄存器BKP和 FLASH学习使用

BKP库函数 学习BKP,首先就是知道BKP每一个函数的作用然后如何使用即可 使用备份域的作用只需要操作上面的两个函数即可,其余的都是它的其他功能 BKP简介 备份寄存器是42个16位的寄存器,可用来存储84个字节的用户应用程序数据。他们处在备份…

如何高效管理自己的时间,可以从这几个方向着手

如果你是上班族,天选打工人,你的绝大多数时间都属于老板,能够自己支配的时间其实并不多,所以你可能察觉不到时间管理的重要性。但如果你是自由职业者或者创业者,想要做出点成绩,那你就需要做好时间管理&…

2. Dart 开发工具环境配置

很多编辑器都可以用来开发dart,所以大家可以选择自己喜欢的编辑器去进行开发。我还是比较喜欢vs code如果你不用vs code来开发dart的话,这篇文章可以直接跳过。如果想要在vs code里有dart的语法提示,我们需要安装相关的插件如图点开插件输入d…

预编译(回顾)

浏览器运行机制变量提升机制私有变量提升步骤全局对象 GO 和全局变量对象 VO的区别带var和不带var的区别系统输出顺序变量提升在条件判断下的处理防止函数的变量提升 浏览器运行机制 为了能够让代码执行,浏览器首先会形成一个执行环境栈 ECStack(Execution Contex…

TCP协议和TCP连接

TCP协议和TCP连接一、TCP协议的简介二、TCP连接的简介1、TCP连接的建立(TCP三次握手)2、TCP连接的断开(TCP四次挥手)一、TCP协议的简介 TCP(Transmission Control Protocol)传输控制协议是一种面向连接的、…

java 接口 详解

目录 一、概述 1.介绍 : 2.定义 : 二、特点 1.接口成员变量的特点 : 2.接口成员方法的特点 : 3.接口构造方法的特点 : 4.接口创建对象的特点 : 5.接口继承关系的特点 : 三、应用 : 1.情景 : 2.多态 : ①多态的传递性 : ②关于接口的多态参数和多态…

股票量化交易SQL特征工程入门

虽然现在各种量化教程和自助平台铺天盖地,但是对于新人来说入门最重要的事情就是挖掘特征。 对于传统的学习路径第一步是学习Python或者某一门编程语言,虽说Python入门容易上手快,但是要在实际应用中对股票数据进行分析,并挖掘有…

2023/2/24 图数据库Neo4j的理解与应用

1 什么是图数据库(graph database) 十大应用案例:https://go.neo4j.com/rs/710-RRC-335/images/Neo4j-Top-Use-Cases-ZH.pdf “大数据”每年都在增长,但如今的企业领导者不仅需要管理更大规模的数据,还迫切需要从现有…

8000+字,就说一个字Volatile

简介 volatile是Java提供的一种轻量级的同步机制。Java 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量,相比于synchronized(synchronized通常称为重量级锁),volatile更轻量级&…

【大数据】记一次hadoop集群missing block问题排查和数据恢复

问题描述 集群环境总共有2个NN节点,3个JN节点,40个DN节点,基于hadoop-3.3.1的版本。集群采用的双副本,未使用ec纠删码。 问题如下: bin/hdfs fsck -list-corruptfileblocks / The list of corrupt files under path…

汽车零部件行业mes系统具体功能介绍

众所周知,汽车零部件的组装是汽车制造的关键环节,而汽车零部件江湖变革以精益为终极目标。即汽车零部件制造企业转型升级向精益生产和精益管理方向前进,而车间信息化管理是精益化生产的基础。 汽车零部件行业现状 随着全球汽车产业不断升级…

蓝牙标签操作指南

一、APP安装指南 1.APP权限问题 电子标签APP安装之后,会提示一些权限的申请,点击允许。否则某些会影响APP的正常运行。安装后,搜索不到蓝牙标签,可以关闭App,重新打开。 2.手机功能 运行APP时候,需要打开…

Linux基本介绍与常用操作指令

参考链接: Linux面试必备20个常用命令_无 羡ღ的博客-CSDN博客_linux常用命令 1. Linux简介 Linux是一个支持多用户、多任务、多线程和多CPU的操作系统,特点是免费、稳定、高效, 一般运行在大型服务器上。 1.1 常用目录简介 /:根目…

【华为OD机试模拟题】用 C++ 实现 - 数组的中心位置(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

MES系统需求误区,一文告诉你需求分析有哪些

在企业的实际应用中,对MES系统需求的分析常常会出现六个错误。 要求广泛,目标不明确由于对MES系统的概念和企业的实际运作不了解,导致企业在提出MES系统的要求时,常常会笼统而不明确,有时会混淆目标和需要。比如&#…