2.扩散模型的正向过程

很早之前就新建了一个专栏从0开始弃坑扩散模型,但发了一篇文章就没有继续这一系列,在这个AIGC的时代,于是我准备重启这个专栏。
整个专栏的学习顺序可以见这篇汇总文章
很多时候我们看到一篇文章很长,难免会心生胆怯,所以我将这些知识进行分解到每一篇中。

这是本专栏的第2章

在正向过程,输入数据通过逐步添加高斯噪声被破坏,经过T次加噪操作后会变成一个符合标准正态分布的纯噪声图像。这是一个马尔可夫过程,当前时刻的状态只由上一时刻状态决定,公式如下所示:
x t ∼ N ( 1 − β t x t − 1 , β t I ) \mathbf{x}_t \sim \mathcal{N}(\sqrt{1 - \beta_t}\mathbf{x}_{t - 1},\beta_t\mathbf{I}) xtN(1βt xt1,βtI)
这个公式意思是现在的 x t x_t xt服从一个数学期望(均值, μ t ( x t − 1 ) {\mu}_t(x_{t-1}) μt(xt1))为 1 − β t x t − 1 \sqrt{1 - \beta_t}\mathbf{x}_{t - 1} 1βt xt1,方差( σ t 2 I \sigma_t^2I σt2I)为 β t I \beta_t\mathbf{I} βtI的标准正态分布(高斯分布),也就是说 x t x_t xt是从和 x t − 1 x_{t-1} xt1有关的标准正态分布里面采样出来。至于为什么值是这样,可以看后面的解释。
这个实际上还可以变成一个等式: x t ∼ N ( 1 − β t x t − 1 , β t I ) ⇒ x t = 1 − β t x t − 1 + β t ϵ t − 1 ; ϵ t − 1 ∼ N ( 0 , I ) \begin{aligned} \mathbf{x}_t &\sim \mathcal{N}(\sqrt{1 - \beta_t}\mathbf{x}_{t - 1},\beta_t\mathbf{I}) \\ \Rightarrow \mathbf{x}_t =& \sqrt{1 - \beta_t}\mathbf{x}_{t - 1} + \sqrt{\beta_t}\epsilon_{t-1}; \epsilon_{t-1} \sim \mathcal{N}(0, \mathbf{I}) \end{aligned} xtxt=N(1βt xt1,βtI)1βt xt1+βt ϵt1;ϵt1N(0,I)
其中 N ( 0 , I ) \mathcal{N}(0, \mathbf{I}) N(0,I)就是标准正态分布。I就是数字1。注意,这两个公式均值前后一致,但等式的加号后面就变成标准差了。
这个等式还可以进一步迭代,直接求出 x t x_{t} xt x 0 x_{0} x0的关系,这里还要懂得一个定理: N ( 0 , σ 1 2 I ) + N ( 0 , σ 2 2 I ) = N ( 0 , ( σ 1 2 + σ 2 2 ) I ) \mathcal{N}(0, \sigma_1^2 I)+\mathcal{N}(0, \sigma_2^2 I)=\mathcal{N}(0, (\sigma_1^2+\sigma_2^2) I) N(0,σ12I)+N(0,σ22I)=N(0,(σ12+σ22)I)
我们现在在等式的基础上再推 x t − 2 x_{t-2} xt2:
x t = 1 − β t x t − 1 + β t ϵ t − 1 ; ϵ t − 1 ∼ N ( 0 , I ) = 1 − β t ( 1 − β t − 1 x t − 2 + β t − 1 ϵ t − 2 ) + β t ϵ t − 1 ; ϵ t − 2 ∼ N ( 0 , I ) = ( 1 − β t ) ( 1 − β t − 1 ) x t − 2 + ( 1 − β t ) β t − 1 ϵ t − 2 + β t ϵ t − 1 \begin{aligned}\mathbf{x}_t =& \sqrt{1 - \beta_t}\mathbf{x}_{t - 1} + \sqrt{\beta_t}\epsilon_{t-1}; \epsilon_{t-1} \sim \mathcal{N}(0, \mathbf{I}) \\ =& \sqrt{1 - \beta_t}(\sqrt{1 - \beta_{t-1}}\mathbf{x}_{t - 2} + \sqrt{\beta_{t-1}}\epsilon_{t-2}) + \sqrt{\beta_t}\epsilon_{t-1}; \epsilon_{t-2} \sim \mathcal{N}(0, \mathbf{I})\\ =& \sqrt{(1 - \beta_t)(1 - \beta_{t-1})}\mathbf{x}_{t - 2} + \sqrt{(1 - \beta_t)\beta_{t-1}}\epsilon_{t-2} + \sqrt{\beta_t}\epsilon_{t-1} \end{aligned} xt===1βt xt1+βt ϵt1;ϵt1N(0,I)1βt (1βt1 xt2+βt1 ϵt2)+βt ϵt1;ϵt2N(0,I)(1βt)(1βt1) xt2+(1βt)βt1 ϵt2+βt ϵt1
根据上面正态分布的定理,我们发现
x t = ( 1 − β t ) ( 1 − β t − 1 ) x t − 2 + ( 1 − β t ) β t − 1 ϵ t − 2 + β t ϵ t − 1 = ( 1 − β t ) ( 1 − β t − 1 ) x t − 2 + ( 1 − β t ) β t − 1 + β t ϵ = ( 1 − β t ) ( 1 − β t − 1 ) x t − 2 + 1 − ( 1 − β t ) ( 1 − β t − 1 ) ϵ = ( 1 − β t ) ( 1 − β t − 1 ) ( 1 − β t − 2 ) x t − 3 + 1 − ( 1 − β t ) ( 1 − β t − 1 ) ( 1 − β t − 2 ) ϵ = ( 1 − β t ) ( 1 − β t − 1 ) ( 1 − β t − 2 ) ( 1 − β t − 3 ) x t − 4 + 1 − ( 1 − β t ) ( 1 − β t − 1 ) ( 1 − β t − 2 ) ( 1 − β t − 3 ) ϵ \begin{aligned}\mathbf{x}_t =\sqrt{(1 - \beta_t)(1 - \beta_{t-1})}\mathbf{x}_{t - 2} + \sqrt{(1 - \beta_t)\beta_{t-1}}\epsilon_{t-2} + \sqrt{\beta_t}\epsilon_{t-1}\\=\sqrt{(1 - \beta_t)(1 - \beta_{t-1})}\mathbf{x}_{t - 2} + \sqrt{(1 - \beta_t)\beta_{t-1} + \beta_t}\epsilon \\=\sqrt{(1 - \beta_t)(1 - \beta_{t-1})}\mathbf{x}_{t - 2} + \sqrt{1-(1-\beta_t)(1-\beta_{t-1})}\epsilon \\=\sqrt{(1 - \beta_t)(1 - \beta_{t-1})(1 - \beta_{t-2})}\mathbf{x}_{t - 3} + \sqrt{1-(1-\beta_t)(1-\beta_{t-1})(1 - \beta_{t-2})}\epsilon \\=\sqrt{(1 - \beta_t)(1 - \beta_{t-1})(1 - \beta_{t-2})(1 - \beta_{t-3})}\mathbf{x}_{t - 4} + \sqrt{1-(1-\beta_t)(1-\beta_{t-1})(1 - \beta_{t-2})(1 - \beta_{t-3})}\epsilon \end{aligned} xt=(1βt)(1βt1) xt2+(1βt)βt1 ϵt2+βt ϵt1=(1βt)(1βt1) xt2+(1βt)βt1+βt ϵ=(1βt)(1βt1) xt2+1(1βt)(1βt1) ϵ=(1βt)(1βt1)(1βt2) xt3+1(1βt)(1βt1)(1βt2) ϵ=(1βt)(1βt1)(1βt2)(1βt3) xt4+1(1βt)(1βt1)(1βt2)(1βt3) ϵ
从上面可以到,我们可以一步一步到 x 0 x_0 x0,后面都是可以合并的,化简一下上面的公式,就可以得到:
x t = α ˉ t x 0 + 1 − α ˉ t ϵ \mathbf{x}_t = \sqrt{\bar{\alpha}_t}\mathbf{x}_{0} + \sqrt{1-\bar{\alpha}_t}\epsilon xt=αˉt x0+1αˉt ϵ,其中令 α t = 1 − β t , α ˉ t = ∏ i = 1 t α i \alpha_t=1-\beta_t, \bar{\alpha}_t=\prod_{i=1}^t\alpha_i αt=1βt,αˉt=i=1tαi,这里呼应前面提到的第一个疑惑,这个公式的值的形式是化简而来的。
通过这个公式,我们就可以知道加噪过程是什么了, α ˉ t \bar{\alpha}_t αˉt不断变小,直到0,那么最后的 x t x_t xt就是一个单纯的标准正态分布了。在DDPM论文中, β t \beta_t βt 1 0 − 4 10^{-4} 104到0.02线性增长, a t a_t at线性变小,但是注意了 α ˉ t \bar{\alpha}_t αˉt是乘法计算,那么它的趋势是越来越快,所以你要注意的是,加噪过程是由慢变快的,而不是匀速。

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

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

相关文章

Electron-Vue 脚手架避坑实录,兼容Win11,升级electron22,清理控制台错误

去年的还是有用的,大家继续看,今年再补充一些Electron-Vue 异常处理方案 M1 和 Window10_electron异常处理-CSDN博客 代码gitee.com地址 electron-demo: electron 22 初始代码开发和讲解 升级electron为22版本(这个版本承上启下&#xff0c…

怎么用git在暂存区(stage)中移除不需要提交(commit)的文件?

2024年5月9日&#xff0c;周四上午 非常简单&#xff0c;用下面这条命令就可以了 git rm --cached <file>注&#xff1a;这条命令不会把文件从文件夹中删除&#xff0c;只会把文件从暂存区中移除出去 实战

《Python编程从入门到实践》day23

# 昨日知识点回顾 操控飞船移动发射子弹&#xff0c;删除屏幕之外的子弹 #今日知识点学习 第13章 外星人 13.1 项目回顾 项目添加新功能前审核既有代码&#xff0c;对混乱或低效的代码进行清理 13.2 创建第一个外星人 13.2.1 创建Alien类 # alien.py imp…

影响视频视觉质量的因素——各类视觉伪影

模糊效应&#xff08;Blurring Artifact&#xff09; 图像模糊&#xff08;blurring&#xff09;&#xff1a;平滑图像的细节和边缘产生的现象&#xff0c;模糊对于图像来说&#xff0c;是一个低通滤波器&#xff08;low-pass filter&#xff09;。一般而言&#xff0c;用户更…

预积分的推导2

预积分的推导2 6.零偏的更新7.预积分更新 6.零偏的更新 IMU噪声的推导是假定零偏固定不变&#xff0c;在面对实际过程中&#xff0c;对于零偏的处理有一个技巧&#xff1a;假定零偏的变化是线性的&#xff0c;保留其一阶项。在原先的基础上进行修正。 数学模型并不一定是和真…

商品上新业务状态机接入实践

一、商品上新业务介绍 商品上新即为在得物平台上架一个新的商品&#xff0c;一个完整的商品上新流程从各种不同的来源渠道提交新品申请开始&#xff0c;需要历经多轮不同角色的审核&#xff0c;主要包括&#xff1a; 选品审核&#xff1a;根据新品申请提交的资料信息判定是否符…

Docker 怎么将映射出的路径设置为非root用户权限

在Docker中&#xff0c;容器的根文件系统默认是由root用户拥有的。如果想要在映射到宿主机的路径时设置为非root用户权限&#xff0c;可以通过以下几种方式来实现&#xff1a; 1. 使用具有特定UID和GID的非root用户运行容器&#xff1a; 在运行容器时&#xff0c;你可以使用-u…

设计模式——享元模式(Flyweight)

享元模式&#xff08;Flyweight Pattern&#xff09;是一种软件设计模式&#xff0c;它运用共享技术来有效地支持大量细粒度对象的复用。以下是关于享元模式的详细解释&#xff1a; 定义 享元模式使用共享物件&#xff0c;以尽可能减少内存使用量以及分享信息给尽可能多的相似…

17 空闲空间管理

目录 假设 底层机制 分割与合并 追踪已分配空间的大小 嵌入空闲列表 让堆增长 基本策略 最优匹配 首次匹配 下次匹配 其他方式 分离空闲列表 伙伴系统 小结 分页是将内存成大小相等的内存块&#xff0c;这样的机制下面&#xff0c;很容易去管理这些内存&#xff0c…

巩固学习2

如何寻找bug class Distance:def __init__(self,ntxt):self.x1eval(ntxt[0])self.x2eval(ntxt[1])self.y1eval(ntxt[2])self.y2eval(ntxt[3])print(self.y2,self.y1)def getdistance(self):distancepow(pow(self.x2-self.x1, 2) pow(self.y2-self.y1, 2),0.5)return distance…

Word表格标题间距大修改环绕为无仍无法解决

1.选中表格&#xff0c;右键选择【表格属性】 2.选择【环绕】&#xff0c;此时【定位】可以被启用&#xff08;如下&#xff09;&#xff0c;点击进入窗口 3.修改参数和下面一模一样 注意&#xff1a;【垂直】那里的修改方式是先选段落&#xff0c;后在位置输入0

C语言中栈数据结构的基本实现

概述 栈的特点 使用只能在一端进行插入和删除操作的特殊线性表。 按照后进先出的原则存储数据&#xff1a; 先进入的数据被压入栈底&#xff0c;最后的数据在栈顶需要读取数据的时候&#xff0c;从栈顶开始读取数据 基本实现 栈的创建和初始化 stack.h #ifndef C01_HEL…

python:鸭子类型使用场景

python&#xff1a;鸭子类型使用场景 1 前言 “一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子&#xff0c;那么这只鸟可以被称为鸭子。“----鸭子模型 鸭子模型是Python中的一种编程哲学&#xff0c;也被称为“鸭子类型”。它来源于一句话&#xff1a;“如果它走起路…

qt 5.15.x 安装android过程记录

1.经过好几天的qt for android 安装&#xff0c;发现存在很多坑 参考其他文章可以编译出APK文件。但是我发现(我的机器上)无法调试apk程序&#xff0c;不能调试那怎么行呢&#xff0c;看了很多文章都是运行出结果了就结束了。没有展示怎么调试程序。 很多文章都是建议安装JDK8…

CTF数据安全大赛crypto题目解题过程

CTF-Crypto加密题目内容 下面是一个Base64加密的密文 bXNobnszODdoajM3MzM1NzExMzQxMmo4MGg0bDVoMDYzNDQzNH0原文链接&#xff1a; 数据安全大赛CTF-Crypto题目 - 红客网-网络安全与渗透技术 我们用Python写一个解密脚本&#xff1a; import base64 import time #base64加密…

韩顺平0基础学Java——第7天

p110-p154 控制结构&#xff08;第四章&#xff09; 多分支 if-elseif-else import java.util.Scanner; public class day7{public static void main(String[] args) {Scanner myscanner new Scanner(System.in);System.out.println("input your score?");int s…

什么是Jetpack

Jetpack Jetpack 是一套组件库、工具&#xff0c;可帮助开发人员遵循最佳做法&#xff0c;减少样板代码并编写可在 Android 版本和设备上一致工作的代码&#xff0c;以便开发人员可以专注于他们关心的代码 组成 主要包含四部分&#xff1a;架构&#xff08;Architecture&…

Linux:进程通信(三)信号的捕捉

目录 一、信号捕捉函数 1、signal函数 2、sigaction函数 二、用户态与内核态 1、用户态 2、内核态 用户态与内核态转换 三、volatile关键字 四、SIGCHLD信号 一、信号捕捉函数 1、signal函数 signal函数是C语言标准库中的一个函数&#xff0c;用于处理Unix/Linux系…

Ps 滤镜:其它

Ps菜单&#xff1a;滤镜/其它 Filter/others “其它”子菜单中的滤镜允许创建自己的滤镜、使用滤镜修改蒙版、在图像中使选区发生位移和快速调整颜色。 HSB/HSL HSB/HSL 主要用于实现 RGB、HSB 及 HSL 三种模型的相互转换。 比如&#xff0c;当执行本滤镜从 RGB 转换为 HSB 之后…

国内不同领域对应的AI简谈

AI的普及极大方便了我们的学习和生活&#xff0c;当然&#xff0c;我们很多时候仍找不到适合自己需求的AI工具&#xff0c;那我们便盘点一下国内直接访问的各个领域的AI工具&#xff1a; AI写作辅助 秘塔写作猫说明&#xff1a;秘塔写作猫是一款AI写作工具&#xff0c…