当前位置: 首页 > news >正文

My Note of Diffusion Models

Diffusion Models

Links: https://theaisummer.com/diffusion-models/

Markovian Hierachical VAE

rvs:

  • data: x 0 x_{0} x0,
  • representation: x T x_{T} xT

( p ( x 0 , x 1 , ⋯ , x T ) , q ( x 1 , ⋯ , x T ∣ x 0 ) ) (p(x_0,x_1,\cdots,x_T),q(x_1,\cdots,x_{T}|x_0)) (p(x0,x1,,xT),q(x1,,xTx0))
where x 1 , ⋯ , x T x_1,\cdots,x_T x1,,xT is unobservable, and

  • generative model/backward trajectory:
    p ( x 0 , x 1 , ⋯ , x T ) = p ( x T ) ∏ t p ( x t − 1 ∣ x t ) p(x_0,x_1,\cdots,x_T)=p(x_T)\prod_tp(x_{t-1}|x_{t}) p(x0,x1,,xT)=p(xT)tp(xt1xt)
  • forward trajectory(Markov process):
    q ( x 1 , ⋯ , x T ∣ x 0 ) ) = ∏ t q ( x t ∣ x t − 1 ) q(x_1,\cdots,x_{T}|x_0))=\prod_tq(x_{t}|x_{t-1}) q(x1,,xTx0))=tq(xtxt1)

E L B O : = ∫ q ( x T ∣ x 0 ) log ⁡ p ( x T ) q ( x T ∣ x 0 ) d x T + ∑ t = 2 T ∫ q ( x t − 1 , x t ∣ x 0 ) log ⁡ p ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) d x t − 1 x t + ∫ q ( x 1 ∣ x 0 ) log ⁡ p ( x 1 ∣ x 0 ) d x 1 ELBO:=\int q(x_{T}|x_{0}) \log \frac{p(x_{T})}{q(x_{T}|x_{0})}\mathrm{d}x_{T}\\ +\sum_{t=2}^T \int q(x_{t-1},x_{t}|x_{0})\log \frac{p(x_{t-1}|x_{t})}{q(x_{t-1}|x_{t}, x_{0})}\mathrm{d}x_{t-1}x_{t}\\+\int q(x_{1}|x_{0})\log p(x_{1}|x_{0})\mathrm{d}x_{1} ELBO:=q(xTx0)logq(xTx0)p(xT)dxT+t=2Tq(xt1,xtx0)logq(xt1xt,x0)p(xt1xt)dxt1xt+q(x1x0)logp(x1x0)dx1

Loss

L o s s : = − E L B O = D K L ( q ( x T ∣ x 0 ) ∥ p ( x T ) ) + ∑ t = 2 T ∫ q ( x t ∣ x 0 ) d x t D K L ( q ( x t − 1 ∣ x t , x 0 ) ∥ p ( x t − 1 ∣ x t ) ) − ∫ q ( x 1 ∣ x 0 ) log ⁡ p ( x 1 ∣ x 0 ) d x 1 Loss:=-ELBO= D_{KL} (q(x_{T}|x_{0})\| p(x_{T}))\\ +\sum_{t=2}^T \int q(x_{t}|x_{0})\mathrm{d}x_{t}D_{KL}(q(x_{t-1}|x_{t}, x_{0})\|p(x_{t-1}|x_{t}))\\-\int q(x_{1}|x_{0})\log p(x_{1}|x_{0})\mathrm{d}x_{1} Loss:=ELBO=DKL(q(xTx0)p(xT))+t=2Tq(xtx0)dxtDKL(q(xt1xt,x0)p(xt1xt))q(x1x0)logp(x1x0)dx1

  • prior matching term
  • denoising matching term
  • reconstruction term

Diffusion Models

basic assumption

  • tractable distr: p ( x T ) p(x_{T}) p(xT)
  • forward trajectory(Markov process): q ( x t ∣ x t − 1 ) q(x_{t}|x_{t-1}) q(xtxt1) is fixed (has no unlearned parameter)

Definition(Diffusion Model)

  • tractable distr: p ( x T ) ∼ N ( 0 , 1 ) p(x_{T})\sim N(0,1) p(xT)N(0,1)
  • generative model/backward trajectory: p ( x t − 1 ∣ x t ) ∼ N ( μ ( t ) , Σ ( t ) ) p(x_{t-1}|x_{t})\sim N(\mu(t),\Sigma(t)) p(xt1xt)N(μ(t),Σ(t))
  • forward trajectory(Gaussian diffusion): q ( x t ∣ x t − 1 ) ∼ N ( x t − 1 1 − β t , β t ) q(x_{t}|x_{t-1})\sim N(x_{t-1}\sqrt{1-\beta_t},\beta_t) q(xtxt1)N(xt11βt ,βt),

Parameters:

  • β t = 1 − α t \beta_t=1-\alpha_t βt=1αt or α ˉ t : = ∏ t α t \bar{\alpha}_t:=\prod_t\alpha_t αˉt:=tαt: noise schedule, where α t \alpha_t αt is small
  • α ˉ t \sqrt{\bar{\alpha}_t} αˉt : signal rate

Fact.

  • q ( x t ∣ x 0 ) ∼ N ( x 0 α ˉ t , 1 − α ˉ t ) q(x_{t}|x_{0})\sim N(x_{0}\sqrt{\bar{\alpha}_t},1-\bar{\alpha}_t) q(xtx0)N(x0αˉt ,1αˉt)
  • q ( x t − 1 ∣ x t , x 0 ) ∼ N ( μ q ( x t , x 0 ) , σ 2 ( t ) ) q(x_{t-1}|x_{t},x_{0})\sim N(\mu_q(x_t ,x_0),\sigma^2(t)) q(xt1xt,x0)N(μq(xt,x0),σ2(t)) where
    μ q ( x t , x 0 ) : = α t ( 1 − α ˉ t − 1 ) x t − α ˉ t − 1 ( 1 − α t ) x 0 1 − α ˉ t = 1 α t x t − β t 1 − α ˉ t α t ϵ 0 \mu_q(x_t,x_0):=\frac{\sqrt{\alpha_t}(1-\bar\alpha_{t-1})x_t-\sqrt{\bar\alpha_{t-1}}(1-\alpha_{t})x_0}{1-\bar\alpha_t}\\ =\frac{1}{\sqrt{\alpha_t}}x_t-\frac{\beta_t}{\sqrt{1-\bar\alpha_t}\sqrt{\alpha_t}}\epsilon_0 μq(xt,x0):=1αˉtαt (1αˉt1)xtαˉt1 (1αt)x0=αt 1xt1αˉt αt βtϵ0
    and σ 2 ( t ) : = 1 − α ˉ t − 1 1 − α ˉ t β t \sigma^2(t):=\frac{1-\bar\alpha_{t-1}}{1-\bar\alpha_t}\beta_{t} σ2(t):=1αˉt1αˉt1βt.

Design I: p ( x t − 1 ∣ x t ) ∼ N ( μ ( t ) , Σ ( t ) ) p(x_{t-1}|x_{t})\sim N(\mu(t),\Sigma(t)) p(xt1xt)N(μ(t),Σ(t)):
μ ( t ) = α t ( 1 − α ˉ t − 1 ) x t − β t α ˉ t − 1 x ^ ( x t , t ) 1 − α ˉ t Σ ( t ) = σ 2 ( t ) \mu(t)=\frac{\sqrt{\alpha_t}(1-\bar\alpha_{t-1})x_t-\beta_{t}\sqrt{\bar\alpha_{t-1}}\hat{x}(x_t,t)}{1-\bar\alpha_t}\\ \Sigma(t)=\sigma^2(t) μ(t)=1αˉtαt (1αˉt1)xtβtαˉt1 x^(xt,t)Σ(t)=σ2(t)

Design II: p ( x t − 1 ∣ x t ) ∼ N ( μ ( t ) , Σ ( t ) ) p(x_{t-1}|x_{t})\sim N(\mu(t),\Sigma(t)) p(xt1xt)N(μ(t),Σ(t)):
μ ( t ) = 1 α t x t − β t 1 − α ˉ t α t ϵ ^ ( x t , t ) Σ ( t ) = σ 2 ( t ) \mu(t)=\frac{1}{\sqrt{\alpha_t}}x_t-\frac{\beta_t}{\sqrt{1-\bar\alpha_t}\sqrt{\alpha_t}}\hat{\epsilon}(x_t,t)\\ \Sigma(t)=\sigma^2(t) μ(t)=αt 1xt1αˉt αt βtϵ^(xt,t)Σ(t)=σ2(t)

Fact.
Under the design I:
D K L ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) = 1 2 σ t 2 ( 1 − α ˉ t − 1 ) β t 2 ( 1 − α ˉ t ) 2 ∥ x ^ ( x t , t ) − x 0 ∥ 2 = 1 2 ( 1 1 − α ˉ t − 1 − 1 1 − α ˉ t ) ∥ x ^ ( x t , t ) − x 0 ∥ 2 D_{KL} (q(x_{t−1}|x_t , x_0) \| p_θ (x_{t−1} |x_t))=\frac{1}{2\sigma_t^2}\frac{(1-\bar{\alpha}_{t-1})\beta_t^2}{(1-\bar{\alpha}_{t})^2}\|\hat{x}(x_t,t)-x_0\|^2\\ =\frac{1}{2}(\frac{1}{1-\bar{\alpha}_{t-1}}-\frac{1}{1-\bar{\alpha}_{t}})\|\hat{x}(x_t,t)-x_0\|^2 DKL(q(xt1xt,x0)pθ(xt1xt))=2σt21(1αˉt)2(1αˉt1)βt2x^(xt,t)x02=21(1αˉt111αˉt1)x^(xt,t)x02

Under the design II:
D K L ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) = 1 2 σ t 2 β t 2 ( 1 − α ˉ t ) α t 2 ∥ ϵ ^ ( x t , t ) − ϵ 0 ∥ 2 D_{KL} (q(x_{t−1}|x_t , x_0) \| p_θ (x_{t−1} |x_t))=\frac{1}{2\sigma_t^2}\frac{\beta_t^2}{(1-\bar{\alpha}_{t})\alpha_t^2}\|\hat{\epsilon}(x_t,t)-\epsilon_0\|^2 DKL(q(xt1xt,x0)pθ(xt1xt))=2σt21(1αˉt)αt2βt2ϵ^(xt,t)ϵ02

Algorithm

Loss:
L = ∑ t L t L t ≈ ∑ ϵ ∼ N ( 0 , 1 ) ∥ ϵ − ϵ ^ ( x t , t ) ∥ 2 , ( 0 ≤ t < T ) L=\sum_t L_t\\ L_t\approx \sum_{\epsilon\sim N(0,1)}\|\epsilon-\hat{\epsilon}(x_{t},t)\|^2,(0\leq t<T) L=tLtLtϵN(0,1)ϵϵ^(xt,t)2,(0t<T)
where x t : = α ˉ t x 0 + 1 − α ˉ t ϵ x_{t}:=\sqrt{\bar{\alpha}_t} x_0 + \sqrt{1-\bar{\alpha}_t}\epsilon xt:=αˉt x0+1αˉt ϵ.

train NN ϵ ^ \hat\epsilon ϵ^ by data { ( ϵ ^ ( x t ( x 0 , i , ϵ i l ) , t ) , ϵ i l ) , ϵ i l ∼ N ( 0 , 1 ) , l = 1 , ⋯ , L } \{(\hat{\epsilon}(x_{t}(x_{0,i},\epsilon_{il}),t),\epsilon_{il}),\epsilon_{il}\sim N(0,1),l=1,\cdots, L\} {(ϵ^(xt(x0,i,ϵil),t),ϵil),ϵilN(0,1),l=1,,L} with size of N L NL NL for each t t t


Exercise

  1. Given a latent variable model p ( x , z ) p(x,z) p(x,z) with variational distr. q ( z ∣ x ) q(z|x) q(zx). q ( x ) q(x) q(x) represents data distr. and let q ( x , z ) = q ( z ∣ x ) q ( x ) q(x,z)=q(z|x)q(x) q(x,z)=q(zx)q(x).
    ∫ q ( x ) L x = ∫ q ( x , z ) log ⁡ p ( x , z ) q ( z ∣ x ) ∼ D K L ( q ( x , z ) ∥ p ( x , z ) ) \int q(x)L_x=\int q(x,z)\log\frac{p(x,z)}{q(z|x)}\sim D_{KL}(q(x,z)\|p(x,z)) q(x)Lx=q(x,z)logq(zx)p(x,z)DKL(q(x,z)p(x,z))
    where L x L_x Lx is LEBO.

References

  1. Jonathan Ho, Ajay Jain, Pieter Abbeel. Denoising Diffusion Probabilistic Models, 2020.
  2. Calvin Luo, Understanding Diffusion Models: A Unified Perspective, 2022

相关文章:

My Note of Diffusion Models

Diffusion Models Links: https://theaisummer.com/diffusion-models/ Markovian Hierachical VAE rvs: data: x 0 x_{0} x0​,representation: x T x_{T} xT​ ( p ( x 0 , x 1 , ⋯ , x T ) , q ( x 1 , ⋯ , x T ∣ x 0 ) ) (p(x_0,x_1,\cdots,x_T),q(x_1,\cdots,x_{T…...

【P37】JMeter 仅一次控制器(Once Only Controller)

文章目录 一、仅一次控制器&#xff08;Once Only Controller&#xff09;参数说明二、测试计划设计2.1、测试计划一2.1、测试计划二 一、仅一次控制器&#xff08;Once Only Controller&#xff09;参数说明 可以让控制器内部的逻辑只执行一次&#xff1b;单次的范围是针对某…...

cleanmymac要不要下载装机?好不好用

当我们收到一台崭新的mac电脑&#xff0c;第一步肯定是找到一款帮助我们管理电脑运行的“电脑管家”&#xff0c;监控内存运行、智能清理系统垃圾、清理Mac大文件旧文件、消除恶意软件、快速卸载更新软件、隐私保护、监控系统运行状况等。基本在上mac电脑防护一款CleanMyMac就够…...

DNS风险分析及防护研究(五):常见的DNS威胁与防御(中科三方)

DNS是互联网运行重要的基础设施&#xff0c;在全球互联网运转中扮演重要作用。互联网中的每一次访问都开始于一次DNS查询&#xff0c;从而将人们更好辨识的域名转换为数字化的IP地址。随着互联网的快速发展以及网络技术的快速发展&#xff0c;DNS固有的缺陷逐步暴露出来&#x…...

使用geoserver发布shp和tiff数据

一、安装并启动geoserver服务 1.1 下载geoserver 进入官网下载 由于geoserver是使用Java语言开发的&#xff0c;所以运行需要java的环境&#xff0c;不同geoserver的版本号对java的版本要求不同&#xff0c;所以选择版本时需注意对应java的版本要求&#xff0c;由于我本地安…...

谷歌周彦祺:LLM浪潮中的女性科学家多面手丨智源大会嘉宾风采

导读 大模型研发竞赛如火如荼&#xff0c;谷歌紧随OpenAI其后推出PalM2、Gemini等系列模型。Scaling Law是否仍然适用于当下的大模型发展&#xff1f;科技巨头与初创企业在竞争中各有哪些优势和劣势&#xff1f;模型研究者应秉持哪些社会责任&#xff1f; 2023智源大会「基础模…...

Burp模块

Target模块 记录流量 1.Target按主机或域名分类记录 2.HTTP History 按时间顺序记录且会记录很多次 3.Target模块的作用 &#xff08;1&#xff09;把握网站的整体情况 &#xff08;2&#xff09;对一次工作的域进行分析 &#xff08;3&#xff09;分析网站存在的攻击面 …...

sql笔记:SQL SERVER字符串填充(标量值函数创建、标量值函数调用)

/*字符串填充 ,如果返回 -1 说明输入参数有错误*/ CREATE FUNCTION [dbo].[uf_pad_string] ( @string_unpadded VARCHAR(100), --123填充前字符串 @pad_char VARCHAR(1), --0 填充的字符串 @pad_count tinyint, --10 填充后字符串长度 @pad_p…...

python使用hTTP方法

Python中可以使用requests库来发送HTTP请求&#xff0c;其中包括GET、POST、PUT、DELETE等方法。下面是一个使用requests库发送HTTP请求的示例&#xff1a; python import requests # 发送GET请求 response requests.get(Example Domain) # 发送POST请求 data {key1: valu…...

JavaSE常用API

1. Math.round(11.5)等于多少&#xff1f;Math.round(- 11.5) 又等于多少? Math.round(11.5)的返回值是 12&#xff0c;Math.round(-11.5)的返回值是-11。四舍五入的原理是在参数上加 0.5然后进行取整。 2. switch 是否能作用在 byte 上&#xff0c;是否能作用在 long 上…...

华为OD机试之模拟商场优惠打折(Java源码)

模拟商场优惠打折 题目描述 模拟商场优惠打折&#xff0c;有三种优惠券可以用&#xff0c;满减券、打折券和无门槛券。 满减券&#xff1a;满100减10&#xff0c;满200减20&#xff0c;满300减30&#xff0c;满400减40&#xff0c;以此类推不限制使用&#xff1b; 打折券&…...

5月VR大数据:Quest 2下跌超1%,其它变化不大

Hello大家好&#xff0c;每月一期的VR内容/硬件大数据统计又和大家见面了。 想了解VR软硬件行情么&#xff1f;关注这里就对了。我们会统计Steam平台的用户及内容等数据&#xff0c;每月初准时为你推送&#xff0c;不要错过喔&#xff01; 本数据报告包含&#xff1a;Steam VR硬…...

CW32系列模数转换器(ADC)

模数转换器&#xff08;ADC&#xff09;的主要功能是将模拟量转换为数字量&#xff0c;方便MCU进行处理。下面以CW32L083为例介绍CW系列的模数转换器的特点和功能&#xff0c;并提供演示实例。 一、概述 CW32L083 内部集成一个 12 位精度、最高 1M SPS 转换速度的逐次逼近型模…...

电动力学专题:电磁场规范不变性与规范自由度

对称性&#xff0c;不变性&#xff0c;相对性&#xff0c;协变形 在现代物理学中常常被认为具有相同的含义&#xff08;好拗口&#xff09; 规范与规范的自由度 保证电磁场物理量不改变的情况下&#xff0c;有多组势可供选择&#xff0c;而每组势可以称为一个规范 规范不变性…...

max delay的应用场景与常见问题

max delay与min delay用来约束start points到endpoints点对点的路径长度,set_max_delay约束最大值,set_min_delay约束最小值。 max delay的-from和-to并不局限在get_pins,get_cells和get_clocks同样可以。 set_max_delay 5 -from UFF0/Q -to UFF1/D set_max_delay -from …...

非阻塞队列

非阻塞队列 首先我们要简单的理解下什么是非阻塞队列&#xff1a; 与阻塞队列相反&#xff0c;非阻塞队列的执行并不会被阻塞&#xff0c;无论是消费者的出队&#xff0c;还是生产者的入队。 在底层&#xff0c;非阻塞队列使用的是CAS(compare and swap)来实现线程执行的非阻塞…...

动力电池管理系统(BMS)

BMS技术 目录 BMS技术 一、BMS简介 二、BMS主要功能 1、参数检测 2、剩余电量&#xff08;SOC&#xff09;估计 3、充放电控制 4、热管理 5、均衡控制 6、故障诊断 7、信息监控 8、参数标定 9、CAN总线接口 三、BMS架构组成 1、BMS的拓扑架构 1、1集中式架构的B…...

ChatGPT桌面客户端支持gpt4模型,附使用说明

#软件核心功能&#xff1a; 1、支持OpenAI官方秘钥及API2D双秘钥使用&#xff1b;如果全局魔法&#xff0c;可以自己用官方秘钥&#xff1b;没魔法国内可直接使用API2D秘钥&#xff1b; 2、内置GPT4模型选项&#xff0c;如果你的官方秘钥支持可直接使用&#xff1b;你也可以注册…...

Vivado下时序逻辑模块的仿真

文章目录 D触发器两级D触发器带异步复位的D触发器带异步复位和同步置数的D触发器移位寄存器单口RAM伪双口RAM真双口RAM单口ROM 组合逻辑电路在逻辑功能上特点是任意时刻的输出仅仅取决于当前时刻的输入&#xff0c;与电路原来的状态无关。 时序逻辑在逻辑功能上的特点是任意时刻…...

ThreadLocal的使用方式

1. ThreadLocal的使用方式 (1) 在关联数据类中创建private static ThreadLocal 在下面的类中&#xff0c;私有静态 ThreadLocal 实例&#xff08;serialNum&#xff09;为调用该类的静态 SerialNum.get() 方法的每个 线程维护了一个“序列号”&#xff0c;该方法将返回当前…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中&#xff0c;选择 环境 -> 常规 &#xff0c;将其中的颜色主题改成深色 点击确定&#xff0c;更改完成...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

uniapp 字符包含的相关方法

在uniapp中&#xff0c;如果你想检查一个字符串是否包含另一个子字符串&#xff0c;你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的&#xff0c;但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...

提升移动端网页调试效率:WebDebugX 与常见工具组合实践

在日常移动端开发中&#xff0c;网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时&#xff0c;开发者迫切需要一套高效、可靠且跨平台的调试方案。过去&#xff0c;我们或多或少使用过 Chrome DevTools、Remote Debug…...

离线语音识别方案分析

随着人工智能技术的不断发展&#xff0c;语音识别技术也得到了广泛的应用&#xff0c;从智能家居到车载系统&#xff0c;语音识别正在改变我们与设备的交互方式。尤其是离线语音识别&#xff0c;由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力&#xff0c;广…...

Python实现简单音频数据压缩与解压算法

Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中&#xff0c;压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言&#xff0c;提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...