论文阅读:基于MCMC的能量模型最大似然学习剖析

On the Anatomy of MCMC-Based Maximum Likelihood Learning of Energy-Based Models
相关代码:点击

本文只介绍关于MCMC训练的部分,由此可知,MCMC常常被用于训练EBM。最后一张图源于Implicit Generation and Modeling with Energy-Based Models

本研究调查了马尔可夫链蒙特卡罗 (MCMC) 采样在无监督最大似然 (ML) 学习中的效果。 我们的注意力仅限于非归一化概率密度族,其中负对数密度(或能量函数)是 ConvNet。 我们发现,之前研究中用于稳定训练的许多技术都是不必要的。 具有 ConvNet 潜力的 ML 学习只需要几个超参数,并且不需要正则化。 使用这个最小框架,我们确定了仅取决于 MCMC 采样实施的各种 ML 学习成果。

一方面,我们表明训练基于能量的模型很容易,该模型可以使用短期 Langevin 对真实图像进行采样。 即使 MCMC 样本在整个训练过程中比真正的稳态样本具有更高的能量,ML 也可以是有效且稳定的。 基于这一见解,我们引入了一种 ML 方法,该方法具有纯噪声初始化的 MCMC、高质量短期合成,以及与具有信息性 MCMC 初始化(例如 CD 或 PCD)的 ML 相同的预算。 与以前的模型不同,我们的能量模型可以在训练后从噪声信号中获得真实的高多样性样本。

另一方面,使用非收敛 MCMC 学习的 ConvNet 势不具有有效的稳态,并且不能被视为近似训练数据的非标准化密度,因为长期运行的 MCMC 样本与观察到的图像有很大差异。 我们表明,训练 ConvNet 学习真实图像稳态的潜力要困难得多。 据我们所知,所有先前模型的长期 MCMC 样本都失去了短期样本的真实性。 通过正确调整 Langevin 噪声,我们训练了第一个 ConvNet 电位,其中长期和稳态 MCMC 样本是真实图像。

1 Introduction

1.1 诊断基于能量的模型

高维信号的统计建模是许多学科和实际应用中遇到的一项具有挑战性的任务。 我们在这项工作中研究图像信号。 当图像没有注释或标签时,深度监督学习的有效工具就无法应用,而必须使用无监督技术。 这项工作重点关注具有 ConvNet 势函数 (2) 的基于能量的模型 (1) 的无监督范式。

之前研究ConvNet势的最大似然(ML)训练的工作,例如(Xie et al. 2016;2018a;Gao et al. 2018),在学习过程中使用Langevin MCMC样本来近似未知且棘手的对数划分函数的梯度。 作者普遍发现,经过足够的模型更新后,短期 Langevin 从信息初始化(参见第 2.3 节)生成的 MCMC 样本是与数据相似的真实图像。
在这里插入图片描述

图 2:Oxford Flowers 102 数据集从数据样本到亚稳态样本的长期 MH 调整 Langevin 路径。 使用算法 1 的两种变体来训练模型:使用来自噪声初始化的 L = 100 L = 100 L=100 MCMC 步骤训练的非收敛 ML(顶部),以及使用来自持久初始化的 L = 500 L = 500 L=500 MCMC 步骤训练的收敛 ML(底部)。

然而,我们发现,无论 MCMC 初始化、网络结构和辅助训练参数如何,先前工作学习的能量函数都存在重大缺陷。先前所有实现的能量函数的长期和稳态 MCMC 样本都是过饱和图像,具有显着的过饱和图像。 能量低于观测到的数据(见图 2 顶部和图 3)。 在这种情况下,将学习模型描述为训练集的近似密度是不合适的,因为该模型将不成比例的高概率质量分配给与观察数据显着不同的图像。 高质量短期样本和低质量长期样本之间的系统差异是一个关键现象,但在之前的研究中似乎没有被注意到。
在这里插入图片描述
图 3:近期基于能量的模型的长期 Langevin 样本。 概率质量集中在具有不真实外观的图像上。 从左到右:牛津花上的 Wasserstein-GAN 评论家(Arjovsky、Chintala 和 Bottou,2017 年)、牛津花上的 WINN(Lee 等人,2018 年)、ImageNet 上的条件 EBM(Du 和 Mordatch,2019 年)。 W-GAN 批评者并未接受非标准化密度训练,但我们提供了样本以供参考。

1.2 Our Contributions

在这项工作中,我们提出了对通过基于 MCMC 的 ML 学习 ConvNet 潜力的基本理解。 我们诊断学习过程中出现的以前未识别的并发症,并提炼我们的见解来训练具有新功能的模型。 我们的主要贡献是:

  • 识别两个不同的轴,它们表征基于MCMC的ML学习中的每个参数更新:1)正负样本的能量差异,以及2)MCMC收敛或不收敛。 与普遍预期相反,高质量合成不需要收敛。 参见图 1 和第 3 节。
  • 第一个 ConvNet 势是使用 ML 和纯噪声初始化 MCMC 进行训练的。 与之前的模型不同,我们的模型在仅根据噪声进行训练后可以有效地生成真实且多样化的样本。 参见图 7。我们的配套工作(Nijkamp 等人,2019)进一步探讨了这种方法。
  • 第一个具有真实稳态样本的 ConvNet 潜力。 据我们所知,所有以前的训练实现都无法获得在图像空间中具有真实 MCMC 采样的 ConvNet 潜力。 我们参考(Kumar et al. 2019)进行讨论。 请参见图 2(底部)和图 8(中栏和右栏)。
  • 利用磁化能量景观中的扩散来映射图像空间能量函数的宏观结构,以进行无监督的簇发现。 见图9

1.3 Related Work

基于能量的图像模型 基于能量的模型定义状态空间上的非归一化概率密度,以表示给定系统中的状态分布。 Hopfield 网络(Hopfield 1982)将 Ising 能量模型改编为能够表示任意观测数据的模型。 RBM(受限玻尔兹曼机)(Hinton 2012)和 FRAME(滤波器、随机场和最大熵)(Zhu、Wu 和 Mumford 1998;Wu、Zhu 和 Liu 2000)模型引入了具有更大表征能力的能量函数。 RBM 使用与可观察图像像素具有联合密度的隐藏单元。 FRAME模型使用卷积滤波器和直方图匹配来学习数据特征。

开创性的工作(Hinton 等人,2006)研究了基于能量的分层模型。 (Ngiam 等人,2011)是一项重要的早期工作,提出了前馈神经网络来模拟能量函数。 (2) 形式的基于能量的模型在 (Dai, Lu, and Wu 2015) 中介绍。 FRAME 模型的深度变体(Xie 等人,2016 年;Lu、Zhu 和 Wu,2016 年)是第一个通过 ConvNet 势和 Langevin 采样实现真实合成的模型。 (Du and Mordatch 2019) 中应用了类似的方法。多网格模型(Gao et al. 2018)学习不同尺度图像的 ConvNet 势的集合。 (Kim and Bengio 2016; Dai et al. 2017; Xie et al. 2018b; 2018a; Han et al. 2019; Kumar et al. 2019) 中探讨了使用生成器网络作为近似直接采样器来学习 ConvNet 势。 这些作品(Jin、Lazarow 和 Tu 2017;Lazarow、Jin 和 Tu 2017;Lee 等人 2018)在判别框架中学习 ConvNet 潜力。

尽管其中许多工作声称将能量 (2) 训练为观察图像的近似非标准化密度,但生成的能量函数不具有反映数据的稳态(见图 3)。 来自信息初始化的短期 Langevin 样本呈现为近似稳态样本,但进一步的研究表明长期 Langevin 始终破坏短期图像的真实性。 我们的工作首先是解决和纠正所有先前实现的系统性不收敛问题。

2. Learning Energy-Based Models

在本节中,我们回顾了先前作品中基于 MCMC 的 ML 学习的既定原则(Hinton 2002;Zhu、Wu 和 Mumford 1998;Xie 等人 2016)。

2.1 Maximum Likelihood Estimation

基于能量的模型是吉布斯-玻尔兹曼密度在这里插入图片描述

在信号 x ∈ X ⊂ R N x ∈ X ⊂ R^N xXRN 上。 势能 U ( x ; θ ) U(x; θ) U(x;θ) 属于参数族 u = { U ( ⋅ ; θ ) : θ ∈ θ } u = \{U(· ; θ) : θ ∈ θ\} u={U(⋅;θ):θθ}。 棘手的常数 Z ( θ ) Z(\theta) Z(θ) 从未被明确使用,因为势 U ( x ; θ ) U(x; θ) U(x;θ) 为 MCMC 采样提供了足够的信息。 在本文中,我们将注意力集中在形式为的能量势上
在这里插入图片描述
其中 F ( x ; θ ) F(x; θ) F(x;θ) 是具有单个输出通道和权重 θ ∈ R D θ ∈ R^D θRD 的卷积神经网络.
在机器学习中,我们寻求找到 θ ∈ Θ θ ∈ \Theta θΘ,使得参数模型 p θ ( x ) p_θ(x) pθ(x) 非常接近数据分布 q ( x ) q(x) q(x)。 衡量接近程度的一种方法是 KullbackLeibler (KL) 散度。 学习通过解决问题来进行
在这里插入图片描述
我们可以通过求导数的根来最小化 L ( θ ) L(θ) L(θ)
在这里插入图片描述
其中 { X i + } i = 1 n \{X^+_i \} ^n_{i=1} {Xi+}i=1n i . i . d . i.i.d. i.i.d. 来自数据分布 q q q 的样本(称为正样本,因为概率增加),并且 { X i − } i = 1 m \{X^−_i \} ^m_{i=1} {Xi}i=1m i . i . d i.i.d i.i.d 来自当前学习分布 p θ p_θ pθ 的样本(称为负样本,因为概率降低了)。 实际上,正样本 { X i + } i = 1 n \{X^+_i \} ^n_{i=1} {Xi+}i=1n是一批训练图像,负样本 { X i − } i = 1 m \{X^−_i \} ^m_{i=1} {Xi}i=1m 是经过 L L L 次MCMC采样迭代后得到的。
在这里插入图片描述

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

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

相关文章

三、C语言中的分支与循环—循环嵌套 (9)

嵌套循环指的是一个循环内部包含另一个循环。外层循环每执行一次,内层循环会执行完其所有的迭代。嵌套循环经常被用来处理多维数据结构,如多维数组,或者在进行复杂的算法操作时,如排序和搜索算法。 嵌套循环可以是任意类型的循环…

WeNet语音识别+Qwen-72B-Chat Bot+Sambert-Hifigan语音合成

WeNet语音识别Qwen-72B-Chat Bot👾Sambert-Hifigan语音合成 简介 利用 WeNet 进行语音识别,使用户能够通过语音输入与系统进行交互。接着,Qwen-72B-Chat Bot作为聊天机器人接收用户的语音输入或文本输入,提供响应并与用户进行对话…

光伏、储能一体化监控及运维解决方案 安科瑞 许敏

前言:今年以来,在政策利好推动下光伏、风力发电、电化学储能及抽水蓄能等新能源行业发展迅速,装机容量均大幅度增长,新能源发电已经成为新型电力系统重要的组成部分,同时这也导致新型电力系统比传统的电力系统更为复杂…

VS Code 远程连接云机器训练配置

VS Code 远程连接云机器 Visual Studio Code(以下简称 VS Code)是一个由微软开发的代码编辑器。VS Code 支持代码补全、代码片段、代码重构、Git 版本控制等功能。 安装 VSCode步骤简单且网上有很多教程,这里不过多重复了。 VS Code 现已支…

python3 识别人像照片并纠正照片正反

实现效果: 本程序可以将下图第二张照片进行人脸识别,发现相片是否是正向,如果不是就进行相片转正形成下图第一张图。 代码 安装配置 模型下载 首先在我的这篇文件下载相应的人脸识别模型,一般 64标记点就够用,当然…

1月2日代码随想录二叉树的最小深度及层序遍历总结

个人认为这么一个层序遍历的章节放这么多基本一样的题目算是很没意思的了 填充每个节点的下一个右侧节点和二叉树最大深度和前面的代码几乎完全一样,所以我就跳过了 代码随想录 (programmercarl.com) 代码随想录 (programmercarl.com) 111.二叉树的最小深度 给…

android开发百度地图api实现定位图标随手机方向转动

该功能的实现依赖于手机中的传感器元件如陀螺仪、加速度计等,具体开发详见android的官方开发文档: 传感器概览 | Android 开发者 | Android Developershttps://developer.android.com/guide/topics/sensors/sensors_overview?hlzh-cn要自定义一个传…

全网最详细的鼠标点击效果与禁用页面缩小放大

一、文章引导 #mermaid-svg-vObupkPcCxdB8hCq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-vObupkPcCxdB8hCq .error-icon{fill:#552222;}#mermaid-svg-vObupkPcCxdB8hCq .error-text{fill:#552222;stroke:#55222…

c语言:设计投票小程序|练习题

一、题目 设计一个投票小程序 如图&#xff1a; 二、代码图片【带注释】 三、源代码【带注释】 #include <stdio.h> #include<string.h> void win(int,int,int); int main() { char ch[5]; int countLili0; int countjp0; int countzx0; int …

代表团坐车 - 华为OD统一考试

OD统一考试&#xff08;B卷&#xff09; 分值&#xff1a; 100分 题解&#xff1a; Java / Python / C 题目描述 某组织举行会议&#xff0c;来了多个代表团同时到达&#xff0c;接待处只有一辆汽车可以同时接待多个代表团&#xff0c;为了提高车辆利用率&#xff0c;请帮接待…

MongoDB vs MySQL:项目选择哪一个数据库系统?

由于市场上有各种可用的数据库&#xff0c;用户经常会就MongoDB与MySQL进行辩论&#xff0c;以找出更好的选择。 使用MySQL等关系数据库的组织在根据不断变化的需求管理和存储数据时可能会面临一定的困难。同时&#xff0c;新公司想知道选择什么数据库&#xff0c;这样他们就不…

微功耗遥测终端机RTU:守护城市生命线的智能卫士

在城市的繁华背后&#xff0c;隐藏着一套高效运转的“生命线”——排水系统。而在这条生命线上&#xff0c;微功耗遥测终端机RTU(MGTR-W4131U)发挥着不可或缺的作用&#xff0c;为城市的正常运转提供了坚实保障。 微功耗遥测终端机RTU(MGTR-W4131U)&#xff0c;顾名思义&#…

星友提问:本科与硕士的区别是什么?

本科阶段: 主要以学习成绩寄点为主&#xff0c;学习知识的来源更像“大锅饭”&#xff0c;所有同学一起上课&#xff0c;一起考试&#xff0c;以学习为主。硕士阶段: 论文实验科研为主&#xff0c;相对于本来说&#xff0c;成绩弱化的厉害&#xff0c;甚至导师直接说&#xff0…

信号量机制的实际使用-第二十九天

目录 回顾旧知 实现进程互斥 实现进程同步 实现进程的前驱关系 本节思维导图 回顾旧知 1、一个信号量对应一种资源 2、信号量的值 该种资源的剩余数量&#xff08;信号量值小于0&#xff0c;说明此时有进程在等待这种资源&#xff09; 3、P(S)&#xff1a;申请一个资源S&…

三层架构概述

三层架构就是把整个软件的代码分为三个层次&#xff0c;分层的目的是&#xff1a;规范代码&#xff0c;大型软件需要团队配合的时候问题就来了&#xff0c;由于每个程序员风格不一样&#xff0c;而开发软件大量的代码风格不统一就会造成后期调试和维护出现问题&#xff0c;然而…

Dryad数据库学习

从一篇science论文中看到数据存储在了这个平台&#xff0c;这里分享一下&#xff1a;datadryad.org 亲测无需注册&#xff0c;可以直接下载&#xff0c;从一个数据测试看&#xff0c;数据存储在亚马逊云&#xff0c;下载速度还可以&#xff0c;6M/s的样子。 Dryad 是一个开放的…

把类成员函数作为参数传递给thread类......

(1)把类成员函数作为参数传递给thread类 一般地&#xff0c;在调用类的非静态函数时&#xff0c;编译器会隐式添加一参数&#xff0c;它是所操作对象的地址&#xff0c; 用于绑定对象和成员函数&#xff0c;并且位于所有其他实际参数之前。例如&#xff0c;类example具有成员函…

SMD NTC Thermistor NTC热敏电阻(贴片式)

热敏电阻器&#xff08;Thermistor&#xff09;是一种电阻值对温度极为灵敏的半导体元件&#xff0c;又可分为负温度系数&#xff08;NTC&#xff09;热敏电阻和正温度系数&#xff08;PTC&#xff09; NTC热敏电阻用于温度测量&#xff0c;温度控制&#xff0c;温度补偿等&…

单片机快速入门

参考连接&#xff1a; 安装MinGW-64&#xff08;在win10上搭建C/C开发环境&#xff09;https://zhuanlan.zhihu.com/p/85429160MinGW-64; 链接&#xff1a;https://pan.baidu.com/s/1oE1FmjyK7aJPnDC8vASmCg?pwdy1mz 提取码&#xff1a;y1mz --来自百度网盘超级会员V7的分享野…

【力扣100】【好题】79.单词搜索

添加链接描述 class Solution(object):# 定义上下左右四个行走方向directs [(0, 1), (0, -1), (1, 0), (-1, 0)]def exist(self, board, word):""":type board: List[List[str]]:type word: str:rtype: bool"""m len(board)if m 0:return Fa…