Diffusion mdoel: Denoising Diffusion Probabilistic Models论据解读及实现(一)

news2024/11/18 19:32:33

论文地址:https://arxiv.org/pdf/2006.11239.pdf

1 正向加噪推导

**核心公式1 **
x t = α ˉ t ∗ x 0 + 1 − α ˉ t z t x_t=\sqrt{\bar \alpha_t}*x_{0}+\sqrt{1-\bar \alpha_t}z_t xt=αˉt x0+1αˉt zt
证明如下
α t = 1 − β t β 越来越大,则 α 越来越小 \alpha _t=1-\beta_t \quad\beta越来越大,则\alpha越来越小 αt=1βtβ越来越大,则α越来越小
x t 和 x t − 1 的关系: x t = α t ∗ x t − 1 + 1 − α t z 1 x_t和x_{t-1} 的关系: \quad x_t=\sqrt{\alpha_t}*x_{t-1} + \sqrt{1-\alpha_t}z_1 xtxt1的关系:xt=αt xt1+1αt z1
x t − 1 和 x t − 2 的关系: x t − 1 = α t − 1 ∗ x t − 2 + 1 − α t z 2 x_{t-1}和x_{t-2} 的关系: \quad x_{t-1}=\sqrt{\alpha_{t-1}}*x_{t-2} + \sqrt{1-\alpha_t}z_2 xt1xt2的关系:xt1=αt1 xt2+1αt z2
上式进行合并: x t = α t ∗ ( α t − 1 ∗ x t − 2 + 1 − α t z 2 ) + 1 − α t z 1 上式进行合并:\quad x_t=\sqrt{\alpha_t}*(\sqrt{\alpha_{t-1}}*x_{t-2} + \sqrt{1-\alpha_t}z_2 ) + \sqrt{1-\alpha_t}z_1 上式进行合并:xt=αt (αt1 xt2+1αt z2)+1αt z1
由于每次加入的噪声都是服从高斯分布的

x t = α t ∗ α t − 1 ∗ x t − 2 + α t 1 − α t − 1 z 2 + 1 − α t z 1 x_t=\sqrt{\alpha_t}*\sqrt{\alpha_{t-1}}*x_{t-2} +\sqrt{\alpha_t} \sqrt{1-\alpha_{t-1}}z_2 + \sqrt{1-\alpha_t}z_1 xt=αt αt1 xt2+αt 1αt1 z2+1αt z1

z 1 服从 N ( 0 , 1 − α t ) z 2 服从 N ( 0 , α t ( 1 − α t − 1 ) ) z_1 服从 N(0,1-\alpha_t) \\ z_2服从 N(0,\alpha_t(1-\alpha_{t-1})) z1服从N(0,1αt)z2服从N(0,αt(1αt1))
根据高斯分布公式合并x_t的噪声项,
N ( 0 , σ 1 2 I ) + N ( 0 , σ 2 2 I ) − N ( 0 , ( σ 1 2 + σ 2 2 ) I )    N(0,\sigma_1^2I) + N(0,\sigma_2^2I) - N(0,(\sigma_1^2+\sigma_2^2)I) ~~ N(0,σ12I)+N(0,σ22I)N(0,(σ12+σ22)I)  

基于上式高斯混合分布公式可简化x_t
x t = α t α t − 1 ∗ x t − 2 + 1 − α t ∗ α t − 1 z x_t=\sqrt{\alpha_t\alpha_{t-1}}*x_{t-2} +\sqrt{1-\alpha_t*\alpha_{t-1}}z xt=αtαt1 xt2+1αtαt1 z
由上可递推
x t = α t α t − 1 . . . α 0 ∗ x 0 + 1 − α t ∗ α t − 1 . . . α 0 z t 令 α t ∗ α t − 1 . . . α 0 = α ˉ t x t = α ˉ t ∗ x 0 + 1 − α ˉ t z t x_t=\sqrt{\alpha_t\alpha_{t-1}...\alpha_0}*x_{0} +\sqrt{1-\alpha_t*\alpha_{t-1}...\alpha_0}z_t \\ 令\alpha_t*\alpha_{t-1}...\alpha_0=\bar \alpha_t \\ x_t=\sqrt{\bar \alpha_t}*x_{0}+\sqrt{1-\bar \alpha_t}z_t xt=αtαt1...α0 x0+1αtαt1...α0 ztαtαt1...α0=αˉtxt=αˉt x0+1αˉt zt
有了上述公式,在已知x_0时,任意时刻的x_t都可以计算得出。

2 反向去噪推导

去噪需要求解的是在给定x_0,x_t时,求解x_{t-1}时刻概率
q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t,x_0) q(xt1xt,x0)
根据贝叶斯公式
q ( x t − 1 ∣ x t , x 0 ) = q ( x t ∣ x t − 1 , x 0 ) q ( x t − 1 ∣ x 0 ) q ( x t ∣ x 0 ) q(x_{t-1}|x_t,x_0)=q(x_t|x_{t-1},x_0)\frac{q(x_{t-1}|x_0)}{q(x_{t}|x_0)} q(xt1xt,x0)=q(xtxt1,x0)q(xtx0)q(xt1x0)
根据上面第一节中的正向加噪公式
在这里插入图片描述

则:
q ( x t − 1 ∣ x t , x 0 ) = e x p ( − 1 2 ( ( x t − 1 − α ˉ t − 1 x 0 ) 2 1 − α ˉ t − 1 + ( x t − α t x t − 1 ) 2 1 − α t − ( x t − α ˉ t x 0 ) 2 1 − α ˉ t ) ) q(x_{t-1}|x_t,x_0)= exp(-\frac{1}{2} (\frac{(x_{t-1}-\sqrt{\bar \alpha_{t-1}}x_0)^2}{1-\bar \alpha_{t-1}} + \frac{(x_{t}-\sqrt{\alpha_{t}}x_{t-1})^2}{1- \alpha_{t}} - \frac{(x_{t}-\sqrt{\bar \alpha_{t}}x_0)^2}{1-\bar \alpha_{t}}) ) q(xt1xt,x0)=exp(21(1αˉt1(xt1αˉt1 x0)2+1αt(xtαt xt1)21αˉt(xtαˉt x0)2))
将上式进行化简:
e x p ( − 1 2 ( α t 1 − α t + 1 1 − α ˉ t − 1 ) x t − 1 2 − ( 2 α t 1 − α t x t + 2 α ˉ t − 1 1 − α ˉ t − 1 x 0 ) x t − 1 + C ( x t , x 0 ) ) exp(-\frac{1}{2} (\frac{\alpha_t}{1-\alpha_t}+\frac{1}{1-\bar \alpha_{t-1}})x_{t-1}^2 - (\frac{2\sqrt{\alpha_{t}} } {1- \alpha_{t}} x_t +\frac{2\sqrt{\bar \alpha_{t-1}}}{1-\bar \alpha_{t-1}}x_0)x_{t-1} + C (x_t,x_0)) exp(21(1αtαt+1αˉt11)xt12(1αt2αt xt+1αˉt12αˉt1 x0)xt1+C(xt,x0))
根据下面高斯展开式,二次方与二次方对齐,一次方与一次方对齐,配平上式,可求均值和方差

在这里插入图片描述

μ ˉ t ( x t , x 0 ) = α t ( 1 − α ˉ t − 1 ) 1 − α ˉ t x t + α ˉ t − 1 ( 1 − α t ) 1 − α ˉ t x 0 \bar \mu_t(x_t,x_0)=\frac{\sqrt{\alpha_{t}}(1-\bar \alpha_{t-1} ) } {1- \bar \alpha_{t}} x_t +\frac{\sqrt{\bar \alpha_{t-1}}(1-\alpha_t) } {1- \bar \alpha_{t}} x_0 μˉt(xt,x0)=1αˉtαt (1αˉt1)xt+1αˉtαˉt1 (1αt)x0
上式中含有x_0,由于x_0是未知的,根据正向公式
x t = α ˉ t ∗ x 0 + 1 − α ˉ t z t x_t=\sqrt{\bar \alpha_t}*x_{0}+\sqrt{1-\bar \alpha_t}z_t xt=αˉt x0+1αˉt zt

x 0 = ( x t − 1 − α ˉ t z t ) α ˉ t x_{0}=\frac{(x_t-\sqrt{1-\bar \alpha_t}z_t)}{\sqrt{\bar \alpha_t}} x0=αˉt (xt1αˉt zt)

可得最终 均值
核心公式2
μ ˉ t = 1 α t ( x t − 1 − α t 1 − α ˉ t z t ) \bar \mu_t=\frac{1 } {\sqrt \alpha_{t}} (x_t -\frac{1-\alpha_t } {\sqrt{1- \bar \alpha_{t}}} z_t) μˉt=α t1(xt1αˉt 1αtzt)

上式中z_t是通过网络学习出来的

3 diffusion模型算法

1)训练
核心公式1
x t = α ˉ t ∗ x 0 + 1 − α ˉ t z t x_t=\sqrt{\bar \alpha_t}*x_{0}+\sqrt{1-\bar \alpha_t}z_t xt=αˉt x0+1αˉt zt
在这里插入图片描述

2)采样
核心公式2
μ ˉ t = 1 α t ( x t − 1 − α t 1 − α ˉ t z t ) \bar \mu_t=\frac{1 } {\sqrt \alpha_{t}} (x_t -\frac{1-\alpha_t } {\sqrt{1- \bar \alpha_{t}}} z_t) μˉt=α t1(xt1αˉt 1αtzt)
在这里插入图片描述

3)整体算法架构
在这里插入图片描述

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

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

相关文章

芯片制造详解.刻蚀原理.学习笔记(五)

本篇笔记是看完原视频后的整理和补充,建议各位观看原视频,这里附上地址。 如何雕刻芯片:刻蚀原理|芯片制造详解05 芯片制造详解.刻蚀原理.学习笔记 五 一、刻蚀技术的分类二、刻蚀中三个关键指标2.1 刻蚀速率2.2 选择比2.3 方向性…

linux配置固定ip

为什么要固定ip? 虚拟机是利用DHCP(动态获取ip),ip地址会频繁变化,不利于远程连接linux,同时会改变映射关系。 VMware 第一步:在workstation中配置IP地址网关和网段 1.点击虚拟网络编辑器 …

RISCV - 4 ISA 扩展名命名约定

RISCV - 4 ISA 扩展名命名约定 1 Case Sensitivity2 Base Integer ISA3 Instruction-Set Extension Names4 Version Numbers5 Underscores6 Additional Standard Extension Names7 Supervisor-level Instruction-Set Extensions8 Hypervisor-level Instruction-Set Extensions9…

28_计算机网络(Computer Networks)基础

本篇介绍计算机网络的基础知识。 文章目录 1. 计算机网络历史2. 以太网" (Ethernet)2.1 以太网" (Ethernet)的简单形式及概念2.2 指数退避解决冲突问题2.3 利用交换机减少同一载体中设备2.4 互联网(The Internet)2.5 路由(routing)2.6 数据包…

【Spring AOP + 自定义注解 + 动态数据源 实现主从库切换读写分离】—— 案例实战

💧 S p r i n g A O P 主从数据源切换 读写分离 自定义注解案例实战! \color{#FF1493}{Spring AOP 主从数据源切换 读写分离 自定义注解 案例实战!} SpringAOP主从数据源切换读写分离自定义注解案例实战!💧 …

第三课:运算符

1.算数运算符 int a 20; int b 10; System.out.println(a b); // 30 System.out.println(a - b); // 10 System.out.println(a * b); // 200 System.out.println(a / b); // 2 System.out.println(a % b); // 0 --->模运算相当于数学中除法的余数 ⚠关于/除法 public s…

QEMU源码全解析19 —— QOM介绍(8)

接前一篇文章:QEMU源码全解析18 —— QOM介绍(7) 本文内容参考: 《趣谈Linux操作系统》 —— 刘超,极客时间 《QEMU/KVM》源码解析与应用 —— 李强,机械工业出版社 特此致谢! 上一回讲到了Q…

2023 云原生编程挑战赛火热报名中!导师解析 Serverless 冷启动赛题

大赛介绍 第四届云原生编程挑战赛,是由阿里云主办,云原生应用平台、天池联合承办的云原生著名品牌赛事。 自 2015 年开始,大赛已经成功举办了八届,并从 2020 年开始升级为首届云原生编程挑战赛,共吸引了超过 53000 支…

python爬虫基本功(三)--爬虫所需网络协议知识超详细总结(下)

前言 大家好,这里是Kaiser👏。本文内容是衔接 👉python爬虫基本功(二)—爬虫所需网络协议知识超详细总结(上)👈 一文,为达更好的阅读效果,以及防止知识点出现“断层”,使…

Java方法的使用(重点:形参和实参的关系、方法重载、递归)

目录 一、Java方法 * 有返回类型,在方法体里就一定要返回相应类型的数据。没有返回类型(void),就不要返回!! * 方法没有声明一说。与C语言不同(C语言是自顶向下读取代码)&#…

数电基础知识学习笔记

文章目录: 一:逻辑门 1.逻辑门电路的分类 1.1 按逻辑(逻辑门) 1.1.1 逻辑定义 1.1.2 常见数字电路相关符号 1.1.3 电路图表示 1.1.4 逻辑门电路图像符号 1.2 按电路结构 1.3 按功能特点 2.高低电平的含义 3.常见的门…

给定长度值length,把列表切分成每段长度为length的N段列表,Kotlin

给定长度值length&#xff0c;把列表切分成每段长度为length的N段列表&#xff0c;Kotlin import kotlin.random.Randomfun main(args: Array<String>) {var source mutableListOf<String>()val end Random.nextInt(30) 1for (i in 0 until end) {source.add(i.…

[SV] 文件操作

Verilog 提供了很多对文件进行操作的系统任务。经常使用的系统任务主要包括&#xff1a; 文件开、闭&#xff1a;​$fopen​, ​$fclose​, ​$ferror​文件写入&#xff1a;​$fdisplay​, ​$fwrite​, ​$fstrobe​, ​$fmonitor​字符串写入&#xff1a;​$sformat​, ​$…

python结合tesseract-ocr识别汉字的训练库过程

一、安装python 例如&#xff0c;安装路径为&#xff1a;C:\rtkapp\python-3.8.0 二、安装opencv 三、安装tesseract-ocr 安装完成后&#xff0c;在系统环境变量path中&#xff0c;添加安装路径C:\rtkapp\Tesseract-OCR 四、打开python安装pytesseract 五、安装java运行环境…

TenserRT(四)在 PYTORCH 中支持更多 ONNX 算子

第四章&#xff1a;在 PyTorch 中支持更多 ONNX 算子 — mmdeploy 0.12.0 文档 PyTorch扩充。 PyTorch转换成ONNX&#xff1a; PyTorch有实现。PyTorch可以转化成一个或者多个ONNX算子。ONNX有相应算子。 如果即没有PyTorch实现&#xff0c;且缺少PyTorch与ONNX的映射关系&…

太猛了,靠“吹牛”过顺丰一面,月薪30K

说在前面 在40岁老架构师尼恩的&#xff08;50&#xff09;读者社群中&#xff0c;经常有小伙伴&#xff0c;需要面试美团、京东、阿里、 百度、头条等大厂。 下面是一个5年小伙伴成功拿到通过了顺丰面试&#xff0c;拿到offer&#xff0c;月薪30K。 现在把面试真题和参考答…

一起学算法(插入排序篇)

概念&#xff1a; 插入排序&#xff08;inertion Sort&#xff09;一般也被称为直接插入排序&#xff0c;是一种简单的直观的排序算法 工作原理&#xff1a;将待排列元素划分为&#xff08;已排序&#xff09;和&#xff08;未排序&#xff09;两部分&#xff0c;每次从&…

Python毕业设计可用小游戏:5个热门类型,引爆学生热情!每个类型附单独案例!

游戏大全 前言1.格斗技能类小游戏2.益智塔防类小游戏3.MMO类型游戏4.养成类游戏5.经济类游戏 总结 前言 大家好&#xff0c;我是辣条哥 在当今数字化时代&#xff0c;编程已经成为一项不可或缺的技能。而Python作为一门简洁易学的编程语言&#xff0c;正受到越来越多学生的青睐…

03_使用execle表生成甘特图

背景 每次排期都需要话很多时间 很可能排期还不对头 这时候需要一个表能看到 1.什么时候项目结束 开始 转阶段 2.当前手上的活能不能做完 当前阶段手上有多少活 3.产品经理每次修改完计划迅速排期 甘特图生成 execle表生成 1.需要使用亿图创建甘特图 2.把当前的甘特图数据进…

使用Excel建立贷款损失计算器

前几天上了一门Excel课程&#xff0c;掌握了一些新的小技能&#xff0c;比如模拟运算表和控件以及动态图表的使用&#xff0c;结合工作内容进行了下实操练习。 一、控件和动态图表的使用 以贷款产品的损益测算为例&#xff0c;计算在不同资金成本、获客成本、提前还款损失以及风…