Elucidating the Design Space of Diffusion-Based Generative Models 阅读笔记
文章使用模块化(modular)的思想,分别从采样、训练、score network设计三个方面分析和改进diffusion-based models。
之前的工作1已经把diffusion-based models统一到SDE或者ODE框架下了,这篇文章的作者同样也从SDE和ODE的角度出发,不过换了一种SDE和ODE的表示形式。
假设有方差是 σ d a t a \sigma_{data} σdata的数据分布 p d a t a ( x ) p_{data}(\mathbf x) pdata(x)。考虑一族分布 p ( x ; σ ) p(\mathbf x; \sigma) p(x;σ),其通过对数据添加方差为 σ \sigma σ的高斯噪声产生。在变化的过程中加入缩放 x = s ( t ) x ^ \mathbf x=s(t)\hat{\mathbf x} x=s(t)x^,则有下面的ODE:
d x = [ s ˙ ( t ) s ( t ) x − s ( t ) 2 σ ˙ ( t ) σ ( t ) ∇ x log p ( x s ( t ) ; σ ( t ) ) ] d t (4) \mathrm{d} \mathbf x = \left[ \frac{\dot s(t)}{s(t)} \mathbf x - s(t)^2 \dot\sigma(t) \sigma(t) \nabla_{\mathbf x} \log p(\frac{\mathbf x}{s(t)}; \sigma(t)) \right] dt \tag{4} dx=[s(t)s˙(t)x−s(t)2σ˙(t)σ(t)∇xlogp(s(t)x;σ(t))]dt(4)perturbation kernel的形式是:
p 0 t ( x ( t ) ∣ x ( 0 ) ) = N ( x ( t ) ; s ( t ) x ( 0 ) , s ( t ) 2 σ ( t ) 2 I ) (11) p_{0t}(\mathbf x(t) | \mathbf x(0)) = \mathcal N(\mathbf x(t) ; s(t)\mathbf x(0), s(t)^2\sigma(t)^2 \mathbf I) \tag{11} p0t(x(t)∣x(0))=N(x(t);s(t)x(0),s(t)2σ(t)2I)(11)在之前的工作1中SDE的形式是:
d x = f ( t ) x + g ( t ) d w t (10) \mathrm{d} \mathbf x = f(t)\mathbf x + g(t)dw_t \tag{10} dx=f(t)x+g(t)dwt(10)其中 s ( t ) = exp ( ∫ o t f ( ξ ) d ξ ) s(t)=\exp(\int_o^t f(\xi)d\xi) s(t)=exp(∫otf(ξ)dξ), σ ( t ) = ∫ o t g ( ξ ) 2 s ( ξ ) 2 d ξ \sigma(t)=\sqrt{\int_o^t \frac{g(\xi)^2}{s(\xi)^2}d\xi} σ(t)=∫ots(ξ)2g(ξ)2dξ。
不同于之前的论文,这篇文章考虑的是一个直接估计去噪输出的去噪函数 D ( x ; σ ) D(\mathbf x;\sigma) D(x;σ)。
E y ∼ p d a t a E n ∼ N ( 0 , σ 2 I ) ∥ D ( y + n ; σ ) − y ∥ 2 2 , ∇ x log p ( x ; σ ) = ( D ( x ; σ ) − x ) / σ 2 (2,3) \mathbb E_{y \sim p_{data}} \mathbb E_{\mathbf n \sim \mathcal N(\mathbf 0, \sigma^2 \mathbf I)} \| D(\mathbf y + \mathbf n;\sigma) - \mathbf y \|_2^2,~~~~\nabla_{\mathbf x}\log p(\mathbf x ; \sigma) = (D(\mathbf x; \sigma) - \mathbf x)/ \sigma^2 \tag{2,3} Ey∼pdataEn∼N(0,σ2I)∥D(y+n;σ)−y∥22, ∇xlogp(x;σ)=(D(x;σ)−x)/σ2(2,3)其中 y \mathbf y y是训练样本, n \mathbf n n是添加的噪声。在这种设置下,score function变成了用 D ( x ; σ ) D(\mathbf x;\sigma) D(x;σ)估计添加的噪声。用网络 D θ ( x ; σ ) D_\theta(\mathbf x;\sigma) Dθ(x;σ)按照公式(2)可以估计 D ( x ; σ ) D(\mathbf x;\sigma) D(x;σ)。需要注意的是, D θ ( x ; σ ) D_\theta(\mathbf x;\sigma) Dθ(x;σ)可能包括额外的预处理步骤和后处理步骤。
ODE解轨迹的形状由 σ ( t ) \sigma(t) σ(t)和 s ( t ) s(t) s(t)决定。因为在求解微分方程的时候截断误差(truncation error)和 d x / d t dx/dt dx/dt的曲率有关,作者认为最好的选择是 σ ( t ) = t \sigma(t)=t σ(t)=t和 s ( t ) = 1 s(t)=1 s(t)=1,这样 d x / d t = ( x − D ( x ; t ) ) / t dx/dt=(\mathbf x-D(\mathbf x;t))/t dx/dt=(x−D(x;t))/t,并且 σ \sigma σ和 t t t是相同的,两个符号可以串着用。好处是在任何 x , t x,t x,t位置,一个到 t = 0 t=0 t=0的Euler步就是对去噪图像的估计 D θ ( x ; t ) D_\theta(\mathbf x;t) Dθ(x;t),解估计的切线总是指向去噪图像。如下图所示(c)也就是 σ ( t ) = t \sigma(t)=t σ(t)=t和 s ( t ) = 1 s(t)=1 s(t)=1的情况,这和DDIM相同。
SDE可以表示成:
这揭示了为什么随机性在实践中有帮助:隐式朗之万扩散驱动样本在给定时间朝向所需的边际分布,主动纠正早期采样步骤中产生的任何错误。
直接用网络 D θ D_\theta Dθ预测 D ( x ; σ ) D(\mathbf x;\sigma) D(x;σ)在实践中效果并不好,作者考虑对网络 F θ F_\theta Fθ添加预处理步骤和后处理步骤来预测 D ( x ; σ ) D(\mathbf x;\sigma) D(x;σ)
D θ ( x ; σ ) = c s k i p ( σ ) x + c o u t ( σ ) F θ ( c i n ( σ ) x ; c n o i s e ( σ ) ) D_\theta(\mathbf x;\sigma)=c_{skip}(\sigma) \mathbf x + c_{out}(\sigma) F_\theta(c_{in}(\sigma)\mathbf x; c_{noise}(\sigma)) Dθ(x;σ)=cskip(σ)x+cout(σ)Fθ(cin(σ)x;cnoise(σ))
Score-Based Generative Modeling through Stochastic Differential Equations ↩︎ ↩︎
相关文章:
Elucidating the Design Space of Diffusion-Based Generative Models 阅读笔记
文章使用模块化(modular)的思想,分别从采样、训练、score network设计三个方面分析和改进diffusion-based models。 之前的工作1已经把diffusion-based models统一到SDE或者ODE框架下了,这篇文章的作者同样也从SDE和ODE的角度出发…...
计算机网络 | 传输层
计算机网络 | 传输层 计算机网络 | 传输层功能概述 参考视频:王道计算机考研 计算机网络 参考书:《2022年计算机网络考研复习指导》 计算机网络 | 传输层 功能概述 传输层是主机才有的层次。 复用:发送方的不同应用进程都可以使用同一个传…...
Android 13 隐私权限和安全变更之通知
介绍 根据官网https://developer.android.com/about/versions/13/summary?hlzh-cn展示的Android 13 功能和变更列表中提及的,Android 13(API 级别 33)引入了新的权限POST_NOTIFICATIONS。 使用 在Android 13及以上版本,如需向…...
docker-compose安装和使用(自启、redis、mysql、rabbitmq、activemq、es、nginx、java应用)
1.在线安装docker-compose: 参考官网:https://docs.docker.com/compose/install/other/ docker-compose安装及简单入门 [Docker] docker-compose使用教程 Docker系列教程22-docker-compose.yml常用命令 # 安装(加速下载https://ghproxy.…...
dll文件缺失,ps,pr无法打开,游戏运行不了如何解决
最近重装了系统,然后打开原来的软件发现都会报错,说***.dll文件缺失 于是找了很多解决办法 方案一 说是下载一个dll文件恢复助手,一键恢复 不要信 统统不管用,不是收费高就是没作用 方案二 下载对应dll文件去c盘对应软件位置…...
前后端数据导入导出Excel
一:导入 Excel有读取也便有写出,Hutool针对将数据写出到Excel做了封装。 原理 Hutool将Excel写出封装为ExcelWriter,原理为包装了Workbook对象,每次调用merge(合并单元格)或者write(写出数据&…...
RackNerd 圣何塞 VPS 测评
发布于 2023-07-06 on https://chenhaotian.top/vps/racknerd-ca/ RackNerd 圣何塞 VPS 测评 官网链接:https://my.racknerd.com/index.php?rp/store/kvm-vps 这款是2022年双十一特别款,现在已经买不到了 网络是G口,4T流量 稳定性不错&…...
php74 安装sodium
下载编译安装libsodium wget https://download.libsodium.org/libsodium/releases/libsodium-1.0.18-stable.tar.gz tar -zxf libsodium-1.0.18-stable.tar.gz cd libsodium-stable ./configure --without-libsodium make && make check sudo make install下载编译安装…...
优思学院:想成为质量工程师?了解质量工程师职责和能力是关键!
在职场中,质量工程师的角色显得至关重要。但如果你不清楚质量工程师的工作职责以及所需具备的能力,那么这个岗位可能会显得遥不可及。本文将为你详细介绍质量工程师的工作内容以及如何选择适合自己的质量工程师岗位。 一、质量工程师的工作职责 1. 质量…...
Rollup failed to resolve import
问题描述 我在打包vue3的项目的时候报了以下错误 问题原因 打包时,静态资源目录没有识别出来,导致打包终止并报错 问题解决 需要把路径改为跟路径,就可以打包啦 错误资源路径写法 <img src"src/assets/image/底部导航背景/book2…...
基于VScode 使用plantUML 插件设计状态机
本文主要记录本人初次在VScode上使用PlantUML设计 本文只讲述操作的实际方法,假设java已安装成功 。 1. 在VScode下安装如下插件 2. 验证环境是否正常 新建一个文件夹并在目录下面新建文件test.plantuml 其内容如下所示: startuml hello world skinparam Style …...
2023年中国汽车智能工厂市场规模不断增大,智能化已成趋势[图]
汽车智能工厂是在数字化工厂的基础上,通过互联网技术与工业技术结合,数据监管设备以及AI等技术的结合,实现汽车整车从原材料及零部件的生产到运输、组装一系列的自动化生产。汽车智能工厂很大程度上降低成本和人为干扰,实现自动化…...
cola架构:一种扩展点的实现思路浅析
目录 1.扩展点使用实例 2.主要技术点 2.1 注解加持 2.2 注解解析 2.3 扩展点路由 在实际项目中,我们经常使用策略模式、或者状态模式来隔离同一接口下不同的实现逻辑,进而消除代码中ifelse硬编码分支,使代码结构更清晰,也大大…...
Thread常用API
setname方法每个线程取名 需要创建构造器 线程设置名字 package Thread_api_test;// 继承Thread类 public class MyThread extends Thread {//创建构造器 线程设置名字public MyThread(String name){super(name);}Overridepublic void run() {super.run();Thread mThread.cur…...
系列九、Redis的发布订阅
一、概述 Redis的发布订阅是进程间的一种消息通信模式,发送者(Publisher)发送消息,订阅者(Subscriber)接收消息。 二、命令 三、案例演示 3.1、订阅单个 客户端订阅 cctv-1、cctv-2、 cctv-3三个频道 SUB…...
《TypeScript》系列之对比JavaScript,TypeScript的优势
概述 TypeScript是微软公司开发的一种基于JavaScript语言的编程语言,它的目的并不是创造一种全新的语言,而是增强JavaScript的功能,使其更适合多人合作的企业级项目。TypeScript可以看做是JavaScript的超集,即它继承了后者的全部…...
Notepad++使用技巧
显示远程连接的文件目录 自动完成:函数自动提示 自动输入:输入一半括号自动补全另一半 自动关联 .pc文件识别为C 列模式 按住Alt不松手,可以直接范围选择,便于编辑选择的区域 关键行筛选 1.进入搜索页面的标记 2.选中标…...
React 中报Type error: Could not find a declaration file for module ‘qs‘.(已解决)
ts项目引入qs 比如 nextjs 或者reactjs npm install --save-dev types/qs 确保你的tsconfig.json文件中有以下设置 {"compilerOptions": {"types": ["qs"]}} 如果你的项目中没有tsconfig.json文件,你可以创建一个。在项目根目录下创…...
【Linux】:Linux环境与版本
以下哪个命令输出Linux内核的版本信息 A.uname -r B.vmstat C.sar D.stat uname -r 查看linux内核版本信息 vmstat 报告关于内核线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息 sar 主要帮助我们掌握系统资源的使用情况,特别是内存和CPU的使用情况 stat 用于显示…...
PNG转EPS,包括Latex导入
在电脑TEXLIVE文件夹里中找到bmeps.exe TEXLIVE\2022\bin\win32 可以新建一个文件夹picture(图片和exe文件必须在一个文件夹里),将bmeps.exe复制出来,方便后续大量图片操作 导入png图片 新建一个txt文件,命名为Fig1.…...
Visual Studio 2022 cmake编译 PP-OCRv4
1 环境准备 下载PaddleOCR PaddleOCR C 部署代码位于 PaddleOCR\deploy\cpp_infer目录下 paddle_inference paddle_inference opencv 这里使用已经安装好的opencv4.5.5下载dirent-master.zip 下载dirent-master.zip, 解压并复制dirent.h文件到PaddleOCR\deploy\cpp_infer目录下…...
学习笔记|串口与PC通信的接线|移植驱动程序|串口通信实战|STC32G单片机视频开发教程(冲哥)|第二十一集(上):串口与PC通信
目录 1.串口与PC通信的接线芯片与芯片之间的通讯:芯片与电脑之间的通讯: 2.利用实验箱示例代码移植驱动程序3.串口通信实战最小工程代码移植编译提示错误:undefined identifier 1.串口与PC通信的接线 上节试验是串口和电脑进行一个通信&…...
关于Mybaits缓存....
记Mybaits缓存踩的坑 1.问题提出 最近开发一个记录操作前后修改内容的功能,获取修改前数据比较简单,直接从数据库获取,记录修改后的功能也比较简单,直接将用户修改的内容封装成po对象,然后两个比对就可以了ÿ…...
Vue axios调用springboot接口获取数据库数据并显示到网页
axios调用接口获取数据 可以查看简述化的此文 点击 此文简述化文章 PS**由于我自己的本次springboot项目内容很多,所以只是截取了其中关于axios调用接口获取数据的内容,还请大家了解工作原理即可** 前端 添加axios和vue2链接 <script src"htt…...
12-bean创建流程3
文章目录 1 bean实例化前 2. bean实例化doCreateBean() 1 bean实例化前 createBean方法里面的resolveBeforeInstantiation方法,InstantiationAwareBeanPostProcessor接口创建一个代理对象返回 try {// Give BeanPostProcessors a chance to return a p…...
volatile关键字 和 i = i + 1过程
本文是复制粘贴,请直接看原文 原文链接:Java并发编程:volatile关键字解析 - Matrix海子 - 博客园 (cnblogs.com) ------------------------------------------------------------------------------------------------------------------- Java并发编程࿱…...
ubuntu20 安装 cmake 3.27
1. 下载cmake3.27 建议从cmake官网下载安装,虽然比较慢,但从清华镜像里下载的cmake文件不全。 我下载的是:cmake-3.27.7.tar.gz 博客 ubuntu安装cmake的三种方法(超方便!)-CSDN博客 里面提供了三种方法&am…...
faster lio 回环 加入GTSAM优化的记录
首先感谢这位博主的文章:https://blog.csdn.net/weixin_41281151/article/details/125371285,其中部分代码参考于改博主中的github: https://github.com/kahowang/FAST_LIO_SAM 不同的是,我使用的是faster lio进行更改,…...
深入剖析 深度学习中 __init()__函数和forward()函数
目录 前言1. __init()__函数2. forward()函数3. 两者关系 前言 再看代码时,发现init函数和forward函数都有参数,具体是怎么传参的呢? 为了更方便的讲解,会举简单的代码例子结合讲解。 forward() 和 __init__() 是神经网络模型类…...
BUUCTF学习(一):SQL注入,万能密码
1、场景 2、题目 3、解题 用户名:admin or 11# 密码:123456 4、解析SQL注入 “SQL注入是一种常见的Web应用程序漏洞,攻击者可以通过注入的SQL语句获取数据库的敏感信息,对网站用户的数据安全造成威胁。SQL注入的特点包括广泛性、隐…...
怎么制作网站小游戏/seo公司 杭州
如何搭建知识付费系统?如何搭建一个知识付费课程平台知识付费一直很火爆,在这个不确定的时代,很多人已经明确知道,学习是终身的事情,也有人在说这只是在制造焦虑,但知识付费越来越火是个明确的事实。这就有…...
做好公司网站/山西百度查关键词排名
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面…...
网站建设新方式简单省时/企业网站优化
C语言中计算二叉树的宽度的两种方式二叉树作为一种很特殊的数据结构,功能上有很大的作用!今天就来看看怎么计算一个二叉树的最大的宽度吧。采用递归方式下面是代码内容:int GetMaxWidth(BinaryTree pointer){int width[10];//加入这棵树的最大…...
代做电子商务网站作业/百度网站推广价格查询
403. 青蛙过河 自己的做法。(其实,实际上这个做法实际上和官方题解的方法一的思路是一样的)。 时间复杂度:O(n2)O(n^2)O(n2) (不过使用了unordered_map) const int N 2010; class Solution { public:bool f[N][N] {0};bool can…...
佛山企业网站建设服务/网络营销成功的原因
解说linux启动流程 一:概述 关于linux的系统启动流程我们可以从下面图片中的流程一步一步展开,其实linux系统的启动过程中,我们可以比喻为一个接力赛,计算机的不同模块负责这个接力赛中接力棒的交接(为了更好的理解&a…...
做网站一定要用云解析吗/百度站长工具收费吗
时代的发展少不了科学技术的投入,在计算机软件的发展中,触控软件技术的进步发展能够更好的带来全新的互动展示体验,实现触控行业显示技术进步发展,所能够有效的提升新时代社会发展的价值,形成更高的社会发展成果&#…...