Deep Unsupervised Learning using Nonequilibrium Thermodynamics

news2024/11/21 1:27:04

就直接从算法部分开始了:

2 算法

我们的目标是定义一个前向(或者推理)扩散过程,这个过程能够转换任意的复杂数据分部到一个简单、tractable、分布,并且学习有限时间扩散过程的反转 从而 定义我们的生成模型分布。我们接着展示了反转、生成式扩散过程能够被训练,并且被用来评估可能性。我们同样推导出这些反转过程的交叉熵界,并且展示怎么学习分布能够被第二个分布相乘(例如,在修复货去噪图像时,计算后验所做的那样)。

2.1 前向轨迹

我们标记了数据分布 q(x^{(0)}). 数据的分布逐渐转换为一个表现优异(也叫 tractable,应该是可控的意思)的分布 \pi (y)  通过重复应用马尔可夫扩散内核 T_\pi(y|y';\beta) 对于 \pi (y),其中 \beta 是扩散概率,

因此,对应于从数据分布开始并执行 T 步扩散的前向轨迹是

对于如下所示的实验,q (x^{(t)}|x^{(t-1)})对应于高斯扩散到具有恒等协方差的高斯分布,或二项式扩散到独立的二项式分布。表 App.1 给出了高斯分布和二项式分布的扩散核。

表App.1。针对高斯和二项扩散过程的具体情况,本文的关键方程。N (u; μ, Σ) 是均值 μ 和协方差 Σ 的高斯分布。B (u; r) 是单个伯努利试验的分布,u = 1 以概率 r 出现,u = 0 以概率 1 - r 出现。最后,对于扰动伯努利试验b^t i = x(t-1)(1-\beta_t) + 0.5\beta_t, c^t i =[f_b(x(t+1), t)]i, dt i = r(x(t)i = 1),对于单个位i给出分布。

2.2 反向轨迹

生成分布将被训练来描述相同的轨迹,但相反,

对于高斯扩散和二项式扩散,对于连续扩散(小步长 β 的极限),扩散过程的反转具有与正向过程相同的函数形式(Feller,1949)。由于 q (x^{(t)}|x^{(t-1)}) 是一个高斯(二项式)分布,如果 β_t 很小,则 q (x^{(t-1)}|x^{(t)}) 也将是一个高斯(二项式)分布。轨迹越长,扩散速率β越小。

在学习过程中,只需要估计高斯扩散核的均值和协方差,或二项式核的位翻转概率。如表App.1所示,

  • f_μ(x^(t),t)和f_Σ(x^(t),t)是定义高斯反向马尔可夫跃迁的均值和协方差的函数,
  • f_b(x^(t),t)是提供二项分布的位翻转概率的函数。

运行该算法的计算成本是这些函数的成本,乘以时间步的数量。对于本文中的所有结果都,多层感知器用于定义这些函数。然而,广泛的回归或函数拟合技术将适用,包括非参数方法。

2.3. 模型概率

生成模型分配给数据的概率为

天真地这个积分是难以处理的——但从退火重要性采样和 Jazynski 等式中获取线索,我们改为评估正向和反向轨迹的相对概率,平均在前向轨迹上,

这可以通过平均来自前向轨迹 q (x(1···T )|x(0)) 的样本来快速评估。对于无穷小的 β,轨迹上的正向和反向分布可以是相同的(参见第 2.2 节)。如果它们相同,则只需要来自 q (x(1···T )|x(0)) 的单个样本来准确评估上述积分,这可以通过替换看到。这对应于统计物理学中准静态过程的情况(Spinney & Ford,2013;Jarzynski,2011)。

2.4 训练

训练相当于最大化模型对数似然,

其下界由Jensen不等式提供,

如附录 B 中所述,对于我们的扩散轨迹,这减少到,

其中熵和 KL 散度可以解析计算。这个界限的推导平行于变分贝叶斯方法中对数似然界的推导。

如第 2.3 节所述,如果正向和反向轨迹相同,对应于准静态过程,则等式 13 中的不等式变为等式。

训练包括找到最大化对数似然这个下限的反向马尔可夫转换,

高斯扩散和二项扩散的估计具体目标如表App.1所示。

因此,估计概率分布的任务被简化为对设置高斯序列的均值和协方差的函数进行回归的任务(或设置伯努利试验序列的状态翻转概率)。

2.4.1。设置扩散RATE βt

正向轨迹中βt的选择对训练模型的性能很重要。在AIS中,中间分布的正确调度可以大大提高对数分区函数估计的准确性(Grosse et al., 2013)。在热力学中,平衡分布之间移动时所采取的时间表决定了自由能的损失程度(Spinney & Ford, 2013;Jarzynski, 2011)。

在高斯扩散的情况下,我们通过对 K 的梯度上升来学习前向扩散调度 β2···T。第一步的方差 β1 固定为一个小常数以防止过度拟合。使用“冻结噪声”明确来自 q (x(1···T )|x(0)) 的样本对 β1···T 的依赖性——如 (Kingma & Welling, 2013) 所示,噪声被视为一个额外的辅助变量,并在计算 K 相对于参数的偏导数时保持不变。

对于二项式扩散,离散状态空间使得冻结噪声的梯度上升是不可能的。相反,我们选择正向扩散计划β1···T来擦除每个扩散步骤原始信号的恒定分数1T,产生\beta_t=(T-t+1)^{-1}的扩散速率。

2.5. 乘法分布和计算后验

诸如计算后验以进行信号去噪或缺失值推断等任务需要将模型分布 p (x(0)) 与第二个分布或有界正函数 r (x(0)) 相乘,产生一个新的分布 ̃p (x(0)) ∝ p (x(0)) r (x(0))。

对于许多技术,包括变分自动编码器、GSNs、NDE 和大多数图形模型,乘法分布是昂贵的和困难的。然而,在扩散模型下,它很简单,因为第二个分布可以被视为扩散过程中每一步的小扰动,或者通常精确地乘以每个扩散步骤。图 3 和图 5 展示了使用扩散模型对自然图像进行去噪和修复。以下部分描述了如何在扩散概率模型的背景下乘以分布。

2.5.1。MODIFIED MARGINAL DistributionS

First,为了计算 ̃p (x(0)),我们将每个中间分布乘以相应的函数器 (x(t))。我们在分布或马尔可夫转换之上使用波浪线来表示它属于以这种方式修改的轨迹。̃p (x(0···T )) 是修改后的反向轨迹,它从分布 ̃p (x(T )) =1 ̃ZTp (x(T )) r (x(T )) 开始,并通过中间分布序列进行

其中 ̃Zt 是第 t 个中间分布的归一化常数。

2.5.2. MODIFIED DIFFUSION STEPS

反向扩散过程的马尔可夫核p (x(t) | x(t+1))服从平衡条件

我们希望扰动马尔可夫核 ̃p (x(t) | x(t+1)) 服从扰动分布的平衡条件,

如果

等式 20 将满足

等式 21 可能不对应于归一化概率分布,因此我们选择 ̃p (x(t)|x(t+1)) 为相应的归一化分布

其中 ̃Zt(x(t+1)) 是归一化常数。对于高斯,由于方差小,每个扩散步骤相对于 r (x(t)) 通常是非常尖锐的峰值。这意味着 r(x(t))r(x(t+1)) 可以被视为对 p (x(t)|x(t+1)) 的微小扰动。对高斯的微小扰动会影响平均值,而不是归一化常数,因此在这种情况下,等式 21 和 22 是等价的(见附录 C)。

2.5.3. APPLYING r (x(t))

如果 r (x(t))) 足够平滑,则可以将其视为对反向扩散核 p (x(t)|x(t+1)) 的微小扰动。在这种情况下,̃p (x(t)|x(t+1)) 将具有与 p (x(t)|x(t+1)) 相同的函数形式,但对高斯核具有扰动均值,或二项式核的扰动翻转率。扰动扩散核在表App.1中给出,并在附录C中导出高斯。

如果 r (x(t))) 可以以封闭形式与高斯(或二项式)分布相乘,则可以直接以封闭形式与反向扩散核 p (x(t)|x(t+1)) 相乘。这适用于 r (x(t))) 由某些坐标子集的 delta 函数组成的情况,如图 5 中的修复示例所示。

2.5.4. CHOOSING r (x(t))

通常,应该选择 r (x(t)) 在轨迹过程中缓慢变化。对于本文中的实验,我们选择它是恒定的,

另一个方便的选择是 r (x(t)) = r (x(0)) T -t T。在此第二种选择 r (x(t))) 对反向轨迹的起始分布没有贡献。这保证了从 ̃p (x(T )) 中抽取初始样本以进行反向轨迹仍然很简单。

2.6.反向过程的熵

由于正向过程是已知的,我们可以推导出反向轨迹中每一步条件熵的上界和下界,从而推导出对数似然,

其中上界和下界都仅取决于q (x(1···T)|x(0)),并且可以解析计算。推导在附录 A 中提供。

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

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

相关文章

“人性化设计”技术概要

本文是由《埃森哲技术愿景 2024:“人性化设计”技术将通过提高生产力和创造力来重塑行业并重新定义领导者》这个文章来翻译解读的。原文地址如下,大家可以自行下载: 下载地址 其实看到这篇文章的时候,联想到这些年机器人的市场发展…

使用 HTMX 和 Bun 进行全栈 Web 开发

将 HTMX 放在前端,Bun 放在后端,然后将它们与 Elysia 和 MongoDB 连接起来,形成快速便捷的技术栈,使开发 Web 应用程序变得轻而易举。 Bun 和 HTMX 是目前软件领域最有趣的两个事情。 Bun 是一个速度极快的一体化服务器端 JavaSc…

SpringBoot快速入门笔记(3)

文章目录 一、MybatisPlus1、ORM2、添加依赖3、全局配置4、Navicat5、UserController6、CRUD操作7、BaseMapper8、两个注解 二、多表查询1、模拟用户订单2、通过用户查相关订单3、UserMapperNew4、查询订单和所属用户5、OrderMapper6、OrderController 三、条件查询四、分页查询…

爬虫 新闻网站 并存储到CSV文件 以红网为例 V2.0 (控制台版)升级自定义查询关键词、时间段,详细注释

爬虫:红网网站, 获取指定关键词与指定时间范围内的新闻,并存储到CSV文件 V2.0(控制台版) 爬取目的:为了获取某一地区更全面的在红网已发布的宣传新闻稿,同时也让自己的工作更便捷 对比V1.0升级的…

瑞吉外卖实战学习--14、菜品上传

添加菜品接口 前言效果图1、菜品分类查询接口2、上传图片和下载图片3、创建接收数据的Dto4、创建提交的方法 前言 本项目gitee位置:gitee网址 本篇文章是学习了添加菜品的总结,其中包括菜品分类的接口,图片上传接口,数据整体上传…

【Spring篇】Spring IoC DI

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【Spring系列】 本专栏旨在分享学习Spring MVC的一点学习心得,欢迎大家在评论区交流讨论💌 目录 前言一、IoC二、…

语义分割——自动驾驶鱼眼数据集

一、重要性及意义 环境感知:语义分割技术能够精确识别道路、车辆、行人、障碍物、交通标志和信号等各种交通场景元素。这为自动驾驶系统提供了丰富的环境信息,有助于车辆准确理解周围环境的结构和动态变化。决策规划:基于语义分割的结果&…

AI Kimi:帮助教师做好试卷命题

原文:https://www.toutiao.com/article/7353661304307778083/?log_fromcfd0a50014034_1712243146922 最近,Kimichat工具很火。这款软件不仅仅是一个聊天和阅读工具,还是一个强大的教学辅助工具。作为一位教师,尝试使用Kimichat&…

【React】useState为何返回数组而非对象

useState的正确语法如下 const [count, setCount] useState(0)通过打印可以看到useState返回一个数组,那么为何不返回对象呢 涉及到数组与对象间解构方式的差异 数组的解构:根据索引 const [a,,b] [1,2,3] console.log(a) // 1 console.log(b) // 3…

蓝桥集训之垒骰子

蓝桥集训之垒骰子 核心思想&#xff1a;矩阵乘法 f[i]存顶面数值 构造a矩阵 使得*f[i] f[i-1]a 则f[i] f[1] * an 快速幂优化 #include <iostream>#include <cstring>#include <algorithm>using namespace std;typedef long long LL;const int N 6,m…

xilinx AXI CAN驱动开发

CAN收发方案有很多&#xff0c;常见的解决方案通过是采用CAN收发芯片&#xff0c;例如最常用的SJA1000,xilinx直接将CAN协议栈用纯逻辑实现&#xff0c;AXI CAN是其中一种&#xff1b; 通过这种方式硬件上只需外接一个PHY芯片即可 上图加了一个电平转换芯片 软件设计方面&…

Unity:2D SpriteShape

1.1 简介 Sprite Shape 可以很灵活的更改sprite的轮廓。比如&#xff1a; 它由两部分组成&#xff1a;Sprite Shape Profile、Sprite Shape Controller&#xff0c;需要导入2D Sprite Shape Package. 1.1.1 Sprite导入要求 Texture Type - ‘Sprite (2D and UI)’.Sprite Mo…

【动手学深度学习】深入浅出深度学习之RMSProp算法的设计与实现

目录 &#x1f31e;一、实验目的 &#x1f31e;二、实验准备 &#x1f31e;三、实验内容 &#x1f33c;1. 认识RMSProp算法 &#x1f33c;2. 在optimizer_compare_naive.py中加入RMSProp &#x1f33c;3. 在optimizer_compare_mnist.py中加入RMSProp &#x1f33c;4. 问…

C#/WPF Inno Setup打包程序

Inno Setup介绍 Inno Setup 是一个免费的 Windows 安装程序制作软件。第一次发表是在 1997 年&#xff0c;现在已经更新到Inno Setup 6了。Inno Setup是一个十分简单实用的打包小工具&#xff0c;可以按照我们自己的意愿设置功能&#xff0c;稳定性也很好。 官方网址&#xff1…

考研人千万不能犯的错误——什么情况下求极限可以直接带入值?

博主最近在复习考研的过程中&#xff0c;做了武忠祥老师的每日一题发现有一个题型错的很集中&#xff0c;就是关于极限数值带入的问题&#xff0c;相信也有不少的宝子容易在这种题型上犯错&#xff0c;今天带大家梳理总结一下常见的计算极限时容易犯的错误 极限的四则运算定义…

harmonyOS安装ohpm

下载 下载地址 HUAWEI DevEco Studio和SDK下载和升级 | 华为开发者联盟 初始化 注意&#xff1a;初始化ohpm前&#xff0c;需先完成node.js环境变量配置 1.解压文件&#xff0c;进入commandline-tools-windows-2.0.0.2\command-line-tools\ohpm\bin 2.执行&#xff1a; init.ba…

第二十三章 Git

一、Git Git 是一个开源的分布式版本控制系统&#xff0c;用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 Git 与常用的版本控制工具 CVS, Subversion 等不同&#xff0c;它采用了分布式版…

设计模式总结-建造者模式

建造者模式 模式动机模式定义模式结构模式分析建造者模式实例与解析实例&#xff1a;KFC套餐 模式动机 无论是在现实世界中还是在软件系统中&#xff0c;都存在一些复杂的对象&#xff0c;它们拥有多个组成部分&#xff0c;如汽车&#xff0c;它包括车轮、方向盘、发送机等各种…

点亮创意:ChatGPT如何搭桥DALL-E图像编辑新纪元

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

力扣爆刷第111天之CodeTop100五连刷41-45

力扣爆刷第111天之CodeTop100五连刷41-45 文章目录 力扣爆刷第111天之CodeTop100五连刷41-45一、232. 用栈实现队列二、4. 寻找两个正序数组的中位数三、31. 下一个排列四、69. x 的平方根五、8. 字符串转换整数 (atoi) 一、232. 用栈实现队列 题目链接&#xff1a;https://le…