[论文解析] Diffusion Models Beat GANs on Image Synthesis

news2025/1/18 17:12:55

在这里插入图片描述
code link: https://github.com/openai/guided-diffusion.

文章目录

  • Overview
    • What problem is addressed in the paper?
    • What is the key to the solution?
    • What is the main contribution?
    • Potential fundamental flaws; how this work can be improved?
  • Contents
    • Diffusion model
    • 背景
    • 延用改进
    • 采样品质标准
    • 架构改进
  • Classifer guidance
    • Conditional Reverse Noising Process
    • Conditional Sampling for DDIM
    • Scaling Classifier Gradients
  • Results
  • Limitations
  • Conclusion

Overview

What problem is addressed in the paper?

We show that diffusion models can achieve image sample quality superior to the current state-of-the-art generative models.

What is the key to the solution?

we further improve sample quality with classifier guidance

What is the main contribution?

We achieve an FID of 2.97 on ImageNet 128×128, 4.59 on ImageNet 256×256, and 7.72 on ImageNet 512×512, and we match BigGAN-deep even with as few as 25 forward passes per sample, all while maintaining better coverage of the distribution.

Finally, we find that classifier guidance combines well with upsampling diffusion models, further improving FID to 3.94 on ImageNet 256×256 and 3.85 on ImageNet 512×512. W

Potential fundamental flaws; how this work can be improved?

The samples from the single step model are not yet competitive with GANs。
In the future, our method could be extended to unlabeled data by clustering samples to produce synthetic labels [ 36] or by training discriminative models to predict when samples are in the true data distribution or from the sampling distribution.

Contents

Diffusion model

扩散模型是一类基于可能性的模型,最近被证明可以产生高质量的图像[56,59,25],同时提供理想的属性,如分布覆盖、固定的训练目标和易于扩展。这些模型通过从信号中逐渐去除噪声来生成样本,其训练目标可以表示为重加权变分下界[25]

我们假设扩散模型和GANs之间的差距源于至少两个因素:

  • 首先,最近的GAN文献中使用的模型架构已经被大量探索和改进;
  • 第二,GANs能够在多样性和保真度之间进行权衡,产生高质量的样本,但不能覆盖整个分布。

目标:

  • 改进模型架构,
  • 通过设计一个方案来权衡多样性和保真度。

通过这些改进,我们实现了新的最先进的技术,在几个不同的指标和数据集上超过了GANs

背景

在高水平上,扩散模型通过逆转一个逐渐的噪声过程从分布中取样。特别地,采样从噪声xT开始,并产生噪声逐渐减少的样本xT−1,xT−2,…直到最终样本x0。每个时间步长t对应一定的噪声水平,而xt可以被认为是信号x0与一些噪声的混合物,其中的信噪比由时间步长t决定。在本文的其余部分,我们假设噪声来自一个对角高斯分布,这对自然图像很好,并简化了各种推导。

在DDPM的基础上,模型可以被参数化为在这里插入图片描述,表示预测样本xt 对应的t时刻的噪音。

为了训练模型,通过随机采样 x 0 , t x_0,t x0,t噪音产生样本,他们共同产生一个有噪音的样本xt,训练的目标是在这里插入图片描述,也就是真实噪声和预测噪声之间的简单均方误差损失。具体如下:
在这里插入图片描述

DDPM在合理的假设下,将给定xt情况下xt-1的分布在这里插入图片描述建模对数高斯在这里插入图片描述,其中,均值在这里插入图片描述可以通过计算在这里插入图片描述得到。具体如下:
在这里插入图片描述
方差则被固定为一个已知常数。

延用改进

最近的几篇论文提出了对扩散模型的改进。在这里,我们描述了一些用于我们的模型的改进。
【43】认为,固定方差在扩散步骤较少的时候是一个次优的方案,并且提出了参数化方差。
在这里插入图片描述
其中v是一个神经网络的输出。两个 β \beta β的定义来源于DDPM,具体的,
在这里插入图片描述
在这里插入图片描述
【43】还提出了一个加权loss的训练,混合训练方差和权重。
用混合目标学习反向过程方差可以使抽样步骤更少而样品质量没有很大下降。我们采用了这个目标和参数化,并在整个实验中使用它。

DDIM 制定了一个替代的非马尔可夫噪声过程,具有与DDPM相同的正向边缘,但允许通过改变反向噪声的方差产生不同的反向采样器。通过将该噪声设置为0,他们提供了一种将任何模型在这里插入图片描述转换为从潜在对象到图像的确定性映射的方法,并发现这提供了一种步骤更少的抽样替代方法。当使用少于50个抽样步骤时,我们采用这种抽样方法

采样品质标准

  • IS:它衡量了一个模型捕获完整ImageNet类分布的程度,同时仍然生成单个样本,这些样本是单个类的令人信服的示例。这个指标的一个缺点是,它不能覆盖整个分布或捕获类内的多样性,并且记住完整数据集的一小部分的模型仍然具有较高的is
  • FID:提供了Inception-V3[62]潜空间中两个图像分布之间距离的对称度量。
  • sFID:使用空间特征而不是标准集合特征的FID版本。他们发现,这种度量可以更好地捕捉空间关系,以连贯的高层结构奖励图像分布。
  • 改进的精度和召回度量,以分别测量样本保真度(作为落入数据歧管的模型样本的分数(精度))和多样性(作为落入样本歧管的数据样本的分数)(召回)

我们使用FID作为总体样本质量比较的默认度量,因为它同时捕捉多样性和保真度,并且已经成为最先进生成建模工作的事实标准度量。我们使用精度或IS来测量保真度,使用召回来测量多样性或分布覆盖率。

架构改进

DDPM 架构:
UNet模型使用残差层和下采样卷积的堆栈,然后使用上采样卷积的残差层堆栈,并使用跳跃连接连接具有相同空间大小的层。此外,他们使用具有单个头部的16×16分辨率的全局关注层,并将时间步长嵌入的投影添加到每个残差块中。

我们探讨了以下架构更改:

  • 增加深度与宽度,保持模型尺寸相对恒定。
  • 增加关注点的数量。
  • 在32×32、16×16和8×8分辨率下使用注意力,而不是仅在16×16分辨率下使用。
  • 使用BigGAN[5]残差块对激活进行上采样和下采样,遵循[60]。
  • 重新缩放剩余连接√2,遵循[60,27,28]。

在本文的其余部分中,我们使用这个最终改进的模型架构作为我们的默认:可变宽度,每个分辨率有2个残差块,多个磁头,每个磁头有64个通道,32、16和8分辨率的注意力,用于上采样和下采样的BigGAN残差块,以及用于将时间步长和类嵌入到残差块中的自适应组标准化。

Classifer guidance

具体的,我们在噪音样本xt上训练一个分类器在这里插入图片描述,并且用梯度在这里插入图片描述来引导diffusion sampling process想任意标签类别y靠近。

为了简洁表达:在这里插入图片描述注意,对于每个时间步t,它们指的是单独的函数,并且在训练时,模型必须以输入t为条件。

Conditional Reverse Noising Process

unconditional reverse noising process在这里插入图片描述
加上条件y之后,在这里插入图片描述
在这里插入图片描述

其中Z是常数项,算法1总结了相应的采样算法。
在这里插入图片描述

Conditional Sampling for DDIM

我们把上述过程称为stochastic diffusion sampling process(随机扩散采样过程),conditional sampling 也可用于deterministic sampling methods like DDIM(确定性扩散采样过程)。

如果我们有一个模型在这里插入图片描述来预测添加到样本中的噪声,那么这可以用来推导得分函数:
在这里插入图片描述
带入在这里插入图片描述
在这里插入图片描述
最后,我们可以定义对应于联合分布得分的新的预测在这里插入图片描述
在这里插入图片描述

算法2总结了相应的采样算法:
在这里插入图片描述

Scaling Classifier Gradients

在这里插入图片描述
在这里插入图片描述当s>1时,此分布变得比p(y|x)更尖锐,因为较大的值会被指数放大。换言之,使用更大的梯度尺度更侧重于分类器的模式,这对于产生更高保真度(但不太多样化)的样本是潜在的期望。

在上述推导中,我们假设基础扩散模型是无条件的,即p(x)模型。也可以训练条件扩散模型p(x|y),并以完全相同的方式使用分类器指导。表4显示,无条件和有条件模型的样本质量都可以通过分类器指导大大提高。我们看到,在足够高的尺度下,引导无条件模型可以非常接近非引导条件模型的FID,尽管直接使用类标签进行训练仍然有帮助。指导条件模型进一步改进FID。
在这里插入图片描述

Results

在这里插入图片描述
在这里插入图片描述

Limitations

  • 采样时仍比GAN慢
  • 我们提出的分类器引导技术目前仅限于标记的数据集,并且我们没有提供有效的策略来权衡未标记数据集的多样性和保真度。未来,我们的方法可以通过聚类样本以产生合成标签[36]或通过训练判别模型来预测样本何时处于真实数据分布或来自采样分布,从而扩展到未标记的数据。

Conclusion

我们已经表明,扩散模型是一类具有固定训练目标的基于似然的模型,可以获得比最先进的GAN更好的样本质量。我们改进的架构足以在无条件图像生成任务上实现这一点,而我们的分类器引导技术允许我们在类条件任务上做到这一点。在后一种情况下,我们发现可以调整分类器梯度的比例,以平衡多样性和保真度。这些引导扩散模型可以减少GAN和扩散模型之间的采样时间间隔,尽管扩散模型在采样期间仍然需要多次正向通过。最后,通过将引导与上采样相结合,我们可以进一步提高高分辨率条件图像合成的样本质量。

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

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

相关文章

web前端期末大作业:基于html化妆品购物商城项目的设计与实现——化妆品官方网站设计与实现(HTML+CSS+JS)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

【cocos源码学习】cocos2d-x-4.0 Android Demo工程结构的简析

说明 使用cocos new创建的Android工程,并对其进行简单的结构分析 Android工程结构 基于gradle构建的Android工程是于模块来组织的,工程根目录本身是一个主模块,其它为子模块,每个模块都有一个build.gradle文件,主模…

Java基本微信小程序的智能图书管理系统 计算机毕业设计

本设计旨在研究一种社区图书管理系统设计与实现系统,以各种浏览器web页面加上云服务器后端服务系统,通过这一设计过程,进一步熟悉web前端开发技术和云服务器后端开发技术和方法,培养理论联系实际及知识的综合运用能力。 图书管理系…

论文翻译:USE OF LIDAR FOR NEGATIVE OBSTACLE DETECTION: A THOROUGH REVIEW

(鉴定为水刊 综述 老板让看的) Abstract: 野外自动驾驶陆地车辆的负面障碍是指路面上的坑洼、沟渠、悬崖、坑或任何类型的障碍物,但不是以可见的方式,它给车辆或潜在的乘客带来风险,甚至给环境带来风险。 自主陆地车辆正在前进。这…

Golang前置环境配置

如何对go不同版本进行管理 安装gvm gvm工具提供多版本的go进行管理 下载命令: bash < <(curl -s -S -L http://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)这里可能出现对应的raw.githubusercontent.com连不上的情况, 可以在https://www…

springboot+vue基本微信小程序的演出门票管理系统

转票是一个传统的行业。根据当前发展现状&#xff0c;网络信息时代的全面普及&#xff0c;转票也在发生着变化&#xff0c;单就出票这一方面&#xff0c;利用手机预约考试正在逐步进入人们的生活。传统的转票方式&#xff0c;不仅会耗费大量的人力、时间&#xff0c;有时候还会…

Linux(一)按键,目录,基础命令

shell shell就是命令解释器 命令解析器的作用&#xff1a;对用户输入到终端的命令进行解析&#xff0c;调用对应的执行程序 shell将用户输入的命令解释成内核能够识别的指令 shell是按照$Path环境变量 常用的命令解析器&#xff1a; shell – Bourne Shell 路径&#xff1a…

【色彩一致性损失:场景亮度解纠缠网络:纹理-对比度增强网络:IVIF】

DIVFusion: Darkness-free infrared and visible image fusion &#xff08;DIVFusion&#xff1a;无暗区红外与可见光图像融合&#xff09; 红外与可见光图像融合是一种重要的图像增强技术&#xff0c;其目的是在极端环境下生成目标显著、纹理丰富的高质量融合图像。然而&am…

Nginx安装及相关问题解决

文章目录一、 添加 Nginx yum资源库——CentOS 7二、 安装nginx - yum安装三、 启动nginx无法访问解决办法四、 修改nginx页面展示内容通过新建文件通过修改原始文件五、 Nginx 不支持中文怎么办&#xff1f;1. 利用convmv对文件名转码2. 通过修改nginx配置文件转码一、 添加 N…

学生HTML个人网页作业作品:HTML绿色的化妆品静态网站(web前端网页制作课作业)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

【练习题】数据离散化+二维前缀和

【练习题】数据离散化二维前缀和题目大意输入输出样例解释重要提示思路代码时间复杂度题目大意 mtc是一个很优秀的同学&#xff0c;他学习认真&#xff0c;经常刷题。这天&#xff0c;他正好学习到了数据离散化与二位前缀和的相关概念&#xff0c;并给大家进行科普. 数据的离散…

学习周报-20221211

文章目录一 centos7修改系统运行级别的方法方法一方法二二 修改(忘记)centos系统的root密码三 文件的atime、mtime、ctime比较1 定义2 mtime和ctime的比较3 atime在访问文件后并不一定会修改4 相关操作命令对三个时间的影响四 Linux时区设置中的一些问题五 Linux局域网内配置yu…

微服务框架 SpringCloud微服务架构 微服务保护 34 规则持久化 34.1 规则管理模式

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 微服务保护 文章目录微服务框架微服务保护34 规则持久化34.1 规则管理模式34.1.1 规则管理模式34.1.2 规则管理模式 - 原始模式34.1.3 规则管…

android 和风图标字体移植显示墨迹天气图标

android studio版本&#xff1a;21.2.1 例程&#xff1a;newareaautov1 和风天气字体图标使用方法见&#xff1a; android 显示和风天气字体图标_kim5659的博客-CSDN博客_qweather-icons 之前做了个全自动获取天气的app,用的是墨迹的接口&#xff08;实际是科大讯飞再接入墨…

深信服面试常见算法题整理笔记

⭐️我叫恒心&#xff0c;一名喜欢书写博客的研究生在读生。 原创不易~转载麻烦注明出处&#xff0c;并告知作者&#xff0c;谢谢&#xff01;&#xff01;&#xff01; 这是一篇近期会不断更新的博客欧~~~ 有什么问题的小伙伴 欢迎留言提问欧。 文章目录1 反转链表2 排序3 设计…

Docker(二) ----Docker 的基本操作

文章目录前言一、镜像操作1.1 镜像的组成1.2 镜像的操作二、容器操作2.1 容器的基本操作2.2 容器操作的小结总结前言 前面我们学习了Docker的基本定义以及如何安装 Docker, 接下来我们对Docker的基本操作进行了解。上篇文章可点击 初始Docker 一、镜像操作 1.1 镜像的组成 镜…

SpringBoot 整合 Groovy 脚本,实现动态编程

Groovy简介 Groovy 是增强 Java 平台的唯一的脚本语言。它提供了类似于 Java 的语法&#xff0c;内置映射&#xff08;Map&#xff09;、列表&#xff08;List&#xff09;、方法、类、闭包&#xff08;closure&#xff09;以及生成器。脚本语言不会替代系统编程语言&#xff…

在idea中离线安装scala

由于网络受限&#xff0c;需要离线安装和使用scala&#xff0c;安装步骤如下。 1 安装idea scala插件 首先在idea的Help-Aboout选项中&#xff0c;查看idea的版本。 这里可以看到我的版本是2022.3&#xff0c;因此我需要下载对应版本的scala插件&#xff08;Scala插件地址&a…

git使用说明

在Windows上使用Git&#xff0c;可以从Git官网直接下载安装程序&#xff0c;然后按默认选项安装即可。 安装完成后&#xff0c;在开始菜单里找到“Git”->“Git Bash”&#xff0c;蹦出一个类似命令行窗口的东西&#xff0c;就说明Git安装成功&#xff01; 安装完成后&…

MySQL重大Bug!自增主键竟然不是连续递增

InnoDB 自增值保存在内存&#xff0c;MySQL 8.0后&#xff0c;才有了“自增值持久化”能力&#xff0c;即才实现了“若重启&#xff0c;表的自增值可以恢复为MySQL重启前的值”&#xff0c;具体情况是&#xff1a; ≤5.7&#xff0c;自增值保存在内存&#xff0c;无持久化。每…