[Diffusion Model 笔记]DDIM 笔记 数学推导 Denoising Diffusion Implicit Models

目录

  • 核心总结
  • 符号定义
  • 第一套,快速简单讲清采样方法
  • 继续分析,待定系数法求解
  • 图示理解
  • 关于参数sigma

本文是观看以下视频的笔记,强烈推荐观看最后的图示理解:
https://www.bilibili.com/video/BV13P411J7dm/?spm_id_from=333.788

论文:Denoising Diffusion Implicit Models
链接:https://arxiv.org/abs/2010.02502

核心总结

  • DDIM只是一个采样的算法,其训练和DDPM是一样的。

  • DDIM在推导采样公式时,没有用DDPM中q(xt|xt-1)的条件;

  • 同时把一个高斯噪声可以换成随机高斯噪声和预测的噪声的加权和,其中 σ k \sigma_k σk是一个超参数,控制二者的权重

  • 采样公式如下:从任意步数k推出步数s:
    x s = α ˉ s x ^ 0 ∣ k + 1 − α ‾ s − σ k 2 ϵ θ + σ k ϵ \mathbf{x}_{s}=\sqrt{\bar\alpha_s} \hat {\mathbf{x}}_{0\mid k}+ \sqrt{1-\overline{\alpha}_{s}-\sigma_{k}^{2}} \boldsymbol{\epsilon} _{\theta}+{\sigma_{k} \boldsymbol{\epsilon} } xs=αˉs x^0k+1αsσk2 ϵθ+σkϵ
    其中:
    x ^ 0 ∣ k = 1 α ˉ k ( x k − 1 − α ˉ k z ~ ) \hat {\mathbf{x}}_{0\mid k}=\frac{1}{\sqrt{\bar\alpha_{k}}}(\mathbf{x}_{k}-\sqrt{1-\bar\alpha_{k}}\tilde{\mathbf{z}}) x^0k=αˉk 1(xk1αˉk z~)

符号定义

  • xT: 符合高斯分布的噪声
  • x0: 一个符合GT的图像,无噪声的,clean image
  • T: 时间步
  • xt: 第t步的图像,要从他推出t-1的图像。(一直推下去的话可以推出x0)
  • β t \beta_t βt:noise rate,关于t的固定序列,含义是每一步t要加的噪声的比例。
  • α t \alpha_t αt:signal rate,关于t的固定序列, α t \alpha_t αt= 1- β t \beta_t βt,含义是每一步t保留的上一步图像比例。通常会被设置为 lim ⁡ t → T α t = 0 \lim _{t \rightarrow T} \alpha_t=0 limtTαt=0。具体定义是: x t = α t x t − 1 + 1 − α t ϵ t \mathbf{x}_t=\sqrt{\alpha_t} \mathbf{x}_{t-1}+\sqrt{1-\alpha_t} \boldsymbol{\epsilon}_{t} xt=αt xt1+1αt ϵt
  • q:正向扩散:加噪声
  • p:逆向扩散:去噪声
  • ϵ t \boldsymbol{\epsilon}_t ϵt z t \mathbf{z}_t zt: xt相比xt-1加的噪声,服从标准正态分布。本文中z和epsilon混用
  • ϵ \boldsymbol{\epsilon} ϵ:不是t这一步的噪声,而是前面的噪声叠加后的结果,还是以服从标准正态分布
  • z波浪:网络预测的噪声,希望他尽可能接近真实的z
  • x ^ 0 ∣ k \hat {\mathbf{x}}_{0\mid k} x^0k:从k这一步估算的x0,定义为: x ^ 0 ∣ k = 1 α ˉ k ( x k − 1 − α ˉ k z ~ ) \hat {\mathbf{x}}_{0\mid k}=\frac{1}{\sqrt{\bar\alpha_{k}}}(\mathbf{x}_{k}-\sqrt{1-\bar\alpha_{k}}\tilde{\mathbf{z}}) x^0k=αˉk 1(xk1αˉk z~)

第一套,快速简单讲清采样方法

上次在DDPM中,我们是这样开头的:

略。我们考虑了t和t-1之间的关系,所以只能一步一步走。

现在我们这样想:

下式恒成立:
q ( x s ∣ x 0 ) = α ˉ s x 0 + 1 − α ˉ s ϵ q(\mathbf{x}_{s}|\mathbf{x}_{0}) =\sqrt{\bar\alpha_s} \mathbf{x}_0+\sqrt{1-\bar\alpha_s} \boldsymbol{\epsilon} q(xsx0)=αˉs x0+1αˉs ϵ
而,其中的x0可以由任何一步k的xk来估出来:
x 0 ≈ x ^ 0 ∣ k = 1 α ˉ k ( x k − 1 − α ˉ k z ~ ) \mathbf{x}_{0} \approx \hat {\mathbf{x}}_{0\mid k}=\frac{1}{\sqrt{\bar\alpha_{k}}}(\mathbf{x}_{k}-\sqrt{1-\bar\alpha_{k}}\tilde{\mathbf{z}}) x0x^0k=αˉk 1(xk1αˉk z~)

带进来,同时他这个噪声 ϵ \boldsymbol{\epsilon} ϵ只是一个满足高斯分布的噪声就行,那我估出来的噪声 ϵ θ \boldsymbol{\epsilon} _{\theta} ϵθ也满足高斯分布呀。因此可以把这个噪声换成他和我们的加权和,只要保证他们的方差之和等于原来的方差,就还是原来的分布不变:(引入了一个控制权重的参数 σ k \sigma_k σk)
q ( x s ∣ x k , x 0 ) = α ˉ s x ^ 0 ∣ k + 1 − α ˉ s ϵ = α ˉ s x ^ 0 ∣ k + 1 − α ‾ s − σ k 2 ϵ θ + σ k ϵ \begin{aligned} &q(\mathbf{x}_{s}|\mathbf{x}_{k},\mathbf{x}_{0})\\ &=\sqrt{\bar\alpha_s} \hat {\mathbf{x}}_{0\mid k}+\sqrt{1-\bar\alpha_s} \boldsymbol{\epsilon} \\ &=\sqrt{\bar\alpha_s} \hat {\mathbf{x}}_{0\mid k}+ \sqrt{1-\overline{\alpha}_{s}-\sigma_{k}^{2}} \boldsymbol{\epsilon} _{\theta}+{\sigma_{k} \boldsymbol{\epsilon} } \end{aligned} q(xsxk,x0)=αˉs x^0k+1αˉs ϵ=αˉs x^0k+1αsσk2 ϵθ+σkϵ

这得到了DDIM的采样公式:
x s = α ˉ s x ^ 0 ∣ k + 1 − α ‾ s − σ k 2 ϵ θ + σ k ϵ \mathbf{x}_{s}=\sqrt{\bar\alpha_s} \hat {\mathbf{x}}_{0\mid k}+ \sqrt{1-\overline{\alpha}_{s}-\sigma_{k}^{2}} \boldsymbol{\epsilon} _{\theta}+{\sigma_{k} \boldsymbol{\epsilon} } xs=αˉs x^0k+1αsσk2 ϵθ+σkϵ

也就是说,采样的时候不一定要一步一步,可以从任意k采样s。

在这里插入图片描述

在这里插入图片描述

继续分析,待定系数法求解

  • 在DDPM,我们得出xt-1可以写成xt和x0和随机噪声的线性组合的形式;
  • 因此,我们这里可以用待定系数法求解他们的系数,但是不使用q(xt|xt-1)这个条件。
  • 结果就发现,xt 和 x0的系数还是可以求出来;只是求不出后面那个随机噪声的系数epsilon1了
  • 当随机噪声的系数epsilon1等于DDPM时,DDIM就变为了DDPM

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
可以看到和我们之前直接写的是一样的。

图示理解

顺序是红黄绿蓝靛紫。

我们一步步看,等号后面这三项分别是,

  • 红色:先走一大步,得到估计的x0。具体来说是在xt基础上减去估计的噪声
  • 黄色:然后原路返回一点儿,也即再加上某比例的估计的噪声
  • 绿色:然后加上一点点随机扰动
  • 这样就完成了一步,下面继续循环即可。注意这一步不一定非得取当前步-1
  • σt越大,则绿色和紫色的越长,黄色和深蓝色的越短
    在这里插入图片描述

关于参数sigma

咱们控制predicted 噪声和随机噪声权重的参数σt(越大,随机噪声越多),在DDIM的论文中有结果图.

  • 其中 σ ^ \hat\sigma σ^就是DDPM,
  • dim(τ)是steps of sampling trajectory
  • 可以看到DDPM在步数少的时候会差很多
  • 另外,比较1到1的σ值,emm,不太明确,大概sigma越小就越确定一些?吧。
    在这里插入图片描述

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

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

相关文章

数据结构|树形结构|并查集

数据结构|并查集 并查集 心有猛虎,细嗅蔷薇。你好朋友,这里是锅巴的C\C学习笔记,常言道,不积跬步无以至千里,希望有朝一日我们积累的滴水可以击穿顽石。 有趣的并查集剧情演绎:【算法与数据结构】—— 并…

idea自定义配置文件的注释

打开 IntelliJ Idea 软件 依次找到 File—>Editor—>File and Code Templates 设置 Files 下的Class、Interface、Enum等 输入下面的内容 /** * description: ${NAME} * date: ${YEAR}-${MONTH}-${DAY} ${HOUR}:${MINUTE} * author: author **/

php动态高亮web源代码

php动态高亮web源代码 注:配置好不允许高亮的文件名,安全第一 #php实现动态展示目录树结构源代码 适用于开放源代码,结合html缓存使用效果更佳,因循环较多不适合放首页 能力有限没实现行号 演示:show source|开放…

吉布提国家概况

吉布提国家概况 (最近更新时间:2022年10月) 【国 名】 吉布提共和国(The Republic of Djibouti, La Rpublique de Djibouti)。 【面 积】 2.32万平方公里。 【人 口】约100万。主要有伊萨族和阿法尔族。…

认识HTTP

HTTP缺点 通信使用明文(不加密),内容可能会被窃听 不验证通信方的身份,可能遭遇伪装 无法证明报文的完整性,所以有可能遭篡改 一、通信使用明文(不加密),内容可能会被窃听 TCP/…

鸿蒙OpenHarmony【轻量系统 编译】 (基于Hi3861开发板)

编译 OpenHarmony支持hb和build.sh两种编译方式。此处介绍hb方式,build.sh脚本编译方式请参考[使用build.sh脚本编译源码]。 使用build.sh脚本编译源码 进入源码根目录,执行如下命令进行版本编译。 ./build.sh --product-name name --ccache 说明&…

【算法基础实验】图论-深度优先搜索和深度优先路径

深度优先(DFS) 理论基础 深度优先搜索(DFS, Depth-First Search)是图和树的遍历算法中的一种,它从一个节点开始,沿着树的边走到尽可能深的分支,直到节点没有子节点为止,然后回溯继续搜索下一个分支。DFS …

python基础之元组、集合和函数的定义与返回值

1.元祖 1.元祖的定义 元组的数据结构跟列表相似 特征:有序、 有序:有(索引/下标/index) 正序、反序标识符: ( ) 里面的元素是用英文格式的逗号分割开来关键字:tuple 列表和元组有什么区别? 元组…

JavaEE 初阶篇-深入了解 I/O 高级流(缓冲流、交换流、数据流和序列化流)

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 缓冲流概述 1.1 缓冲流的工作原理 1.2 使用缓冲流的步骤 1.3 字节缓冲流于字符缓冲流的区别 1.4 字节缓冲流的实例 1.5 字符缓冲流的实例 2.0 转换流概述 2.1 字符…

局部多项式近似与 AMPM 算法

kappa3; %已在您的代码中定义% 定义窗口大小 windowSize (2*kappa1);% 初始化梯度估计值 [rows, cols] size(wrappedPhase); phi_y zeros(rows, cols); phi_x zeros(rows, cols);% 遍历每个窗口 for m 1kappa:rows-kappafor n 1kappa:cols-kappa% 提取局部窗口Z_mn wrap…

Git--基础学习--面向企业--持续更新

一、基础学习 1.1基本命令 //查询基础信息 git config --global --list //选取合适位置创建 mkdir 文件名 //创建文件夹 //全局配置 git config --global user.email "****e***i" git config --global user.name "*** K****"//--------------------进入…

SHViT:具有内存高效宏设计的单头视觉Transformer

文章目录 摘要1、引言2、分析与方法2.1、宏观设计中的冗余分析2.2、微观设计中的冗余分析2.3、单头自注意力2.4、单头视觉转换器 3、实验3.1、实现细节3.2、SHViT在ImageNet-1K分类任务上的表现3.3、SHViT在下游任务中的表现3.4、消融研究 4、相关工作5、结论SHViT:…

python-opencv实现最近邻插值和双线性插值对图片上采样

使用背景 当我们需要把图像进行放大或者缩小的时候,第一反应是使用resize()实现。很多情况下,我们会调用最近邻插值和双线性插值去放大图片,当然要说没有分辨率的损失那是不可能的,只能说在放大图片的过程中尽可能增加了图片的分…

免费的一键伪原创工具,用来高效写文章真妙!

写文章是一件耗时间、费精力的事,遇到没有写作灵感的时候,写文章就像嚼蜡一样难受,但好在有免费的一键伪原创工具,它能帮助我们高效率实现自动写作文章,并且整个写作的过程我们无需思考内容怎么去写,是可以…

自动驾驶传感器篇: GNSSIMU组合导航

自动驾驶传感器篇: GNSS&IMU组合导航 1.GNSS1.1 GNSS 系统概述1.2 GNSS系统基本组成1. 空间部分(Space Segment):2. 地面控制部分(Ground Control Segment):3. 用户设备部分(Use…

x86 64位的ubuntu环境下汇编(无优化)及函数调用栈的详解

1. 引言 为了深入理解c&#xff0c;决定学习一些简单的汇编语言。使用ubuntu系统下g很容易将一个c的文件编译成汇编语言。本文使用此方法&#xff0c;对一个简单的c文件编译成汇编语言进行理解。 2.示例 文件名&#xff1a;reorder_demo.cpp #include<stdio.h>typede…

摩尔定律仍在延续|从最新1.6nm工艺节点看芯片发展-2

2nm工艺的斗争还没结束&#xff0c;TSMC台积电就又公开宣布了1.6nm&#xff08;TSMC A16TM&#xff09;半导体工艺&#xff0c;太卷了&#xff01; TSMC A16TM技术采用领先的纳米片晶体管&#xff0c;并结合创新的背侧电源轨方案&#xff0c;计划于2026年投入生产。这种设计极…

【项目】YOLOv8/YOLOv5/YOLOv9半监督ssod火灾烟雾检测(YOLOv8_ssod)

假期闲来无事找到一份火灾烟雾数据集&#xff0c;自己又补充标注了一些&#xff0c;通过论文检索发现现在的火灾检测工作主要局限于对新场景的泛化性不够强&#xff0c;所以想着用半监督&#xff0c;扩充数据集的方法解决这个问题&#xff0c;所以本文结合使用现在检测精度较高…

成功案例丨守“鲜”有道 Fortinet为都乐筑就全球安全防护网

作为全球知名的跨国食品企业&#xff0c;都乐业务遍布各大洲。在各种新兴业务模式层出不穷的数字化时代&#xff0c;都乐面临着生产持续性、安全运营、供应链安全等严峻的网络安全挑战。通过采用Fortinet的FortiSIEM、FortiMail等系列Fortinet Security Fabric安全平台生态产品…

DaVinci Resolve Studio 19(达芬奇19调色剪辑)win/mac激活版

DaVinci Resolve Studio是一个结合专业的8k 编辑&#xff0c;颜色混合&#xff0c;视觉效果和音频后期制作的软件。只需点击一下&#xff0c;你就可以立即在编辑、混音、特效和音频流之间切换。此外&#xff0c;达芬奇解决(达芬奇)是一个多用户协作的解决方案&#xff0c;使编辑…
最新文章