Improving Diffusion Model Efficiency Through Patching

本文主要是在思路上比较具有创新性. Diffusion需要成百上千的采样步, 这是Diffusion采样速度慢的重要原因. 因此, 很多加速Diffusion的方法关注于如何降低采样步数. 本文的作者则提出了另一种思路, 也就是通过将图像划分patch降低Diffusion模型每一步的采样效率和内存占用量.

1. Introduction

对于图像数据, 降级计算成本的一种很高效的方法就是处理图像数据的低维表示, 这种低维表示可以通过降采样或者编码器得到, 但是这两种方式还需要将低维的数据上采样或是解码器解码出来, 需要更多的网络. 本文采用了一种更方便的做法, 也就是将图像划分成patch然后直接concatenate起来.

本文作者的主要贡献:

  1. 对Diffusion训练目标进行深入分析, 表明在很多的采样步中, 高分辨率的卷积层是冗余的.
  2. 提出了一种Patched Diffusion Model(PDM), 而且证明可以明显降低采样的代价. 而且这种方法可以与现有的降低采样步的方法同时使用.
  3. 作者对不同训练目标的Diffusion效果进行比较, 发现不论是否有patch, 通过预测数据的方法比预测噪声的方法模型更鲁棒.
  4. 作者提出了一种将PDM用于更复杂,分辨率更高的数据的方法, 也就是将一个网络分为多个部分, 然后在256x256的ImageNet上可以得到高质量的结果.

2. Patch Diffusion Model

Diffusion模型的原理不再赘述, 只是这里作者用的标记与DDPM不太一样, 放张图一目了然.

训练的目标, 也就是重建出x

这里的 γt\gamma_tγt​ 是常数. 但是训练的时候如果目标加入了 γt\gamma_tγt​ 反而会导致采样的质量下降, 因为会 overemphasize 高频的信息. 所以作者在文中设置 γt=αt1−αt\gamma_t = \sqrt{\frac{\alpha_t}{1-\alpha_t}}γt​=1−αt​αt​​​, 来兼顾低频的信息.

Diffusion的训练过程, 也就是将 x 进行 perturb 得到 ztz_tzt​, 然后训练网络 xθx_{\theta}xθ​ 通过 ztz_tzt​ 重建出 x, 也就是上面图中训练目标.

2.1 Diffusion模型架构中的冗余

作者指出, 对于任意一个隐变量 ztz_tzt​, 可能是很多的不同的 xxx 加入不同的噪声得到的. 但是这些 xxx 都能对应于这个 ztz_tzt​, 只是概率不同. 这种情况在 t 比较大, 也就是噪声比较大的时候更明显. 怎么理解呢?

如图三个苹果颜色不同形状完全相同, 那么通过上边的隐实验结果分析:变量(也就是近似于噪声的图像)预测得到的 x 可能是这三个苹果中的任何一个. 在这种情况下, 模型优化后会得到的最优的结果是什么呢?

作者指出, 通过上面训练目标进行优化得到的最优的结果可以表示为:

推导的过程如下:

简而言之, 也就是说模型每一步收敛到最优的时候, 预测得到的 x∗x^*x∗ 是输入的 ztz_tzt​ 对应的所有的所有 xxx 的期望, 或者也可以看作是均值. 代入刚才的苹果例子里边, 模型预测的苹果会是三种颜色的一种平均. 这其实和众多用L2损失进行优化的情况相似, 也就是模型最终学到的是所有可能情况的均值, 从而会丧失diversity. 不仅体现在着色模型会倾向于将结果预测成灰色, 还体现在Diffusion模型可能会在预测时高频的信息会很模糊, 因为取的是平均值.

但是作者并没有说怎么解决模糊的问题, 而是基于这种模糊的事实, 指出既然在噪声比较大的时候直接预测的 x 是模糊的, 也就是高频信息并不能很好的得到, 那么就不需要那么高的计算代价, 反正都是模糊的. 于是就不需要在高分辨率上去做卷积.

2.2 Patched Diffusion Models(PDM)

首先来说作者怎么分Patch操作, 对于(H, W, C)的图像, 作者将其按照 P 的大小分成不重叠的Patch, 然后concatenate起来, 于是就将图像转变为 (H/P,W/P,C×P2)(H/P, W/P, C \times P^2)(H/P,W/P,C×P2) 的数据, 这个作为Unet的输入.

作者尝试了不同的patch大小2,4,8. 发现patch=4的时候, 既能有比较好的采样质量, 又能提高速度. 并且作者通过比较不同patch的RMSE证实了在噪声比较大时, 高分辨率做卷积是没多大用的.

之后作者尝试了不同的训练目标, 也就是重建 ϵ\epsilonϵ, xxx, αtϵ−1−αtx\sqrt{\alpha_t} \epsilon - \sqrt{1-\alpha_t} xαt​​ϵ−1−αt​​x三种不同的目标对质量的影响. 结论是重建 xxx, αtϵ−1−αtx\sqrt{\alpha_t} \epsilon - \sqrt{1-\alpha_t} xαt​​ϵ−1−αt​​x 比重建 ϵ\epsilonϵ 更鲁棒.

2.3 Scaling to more complex datasets

这个部分很简单, 就是用了两个Unet, 一个不分patch用在前半部分模糊的阶段, 另一个用在后半部分.

更多实验结果参考原文.

012_SSS_ Improving Diffusion Model Efficiency Through Patching相关推荐

  1. 2019_SIGIR_A Neural Influence Diffusion Model for Social Recommendation

    [论文阅读笔记]2019_SIGIR_A Neural Influence Diffusion Model for Social Recommendation 论文下载地址: https://dl.a ...

  2. 论文笔记(A Neural Influence Diffusion Model for Social Recommendation)

    神经影响传播模型为了社交推荐 原文链接:A Neural Influence Diffusion Model for Social Recommendation, SIGIR'19 原理:社交网络上应 ...

  3. 扩散模型(Diffusion Model)——由浅入深的理解

    Diffusion Model--由浅入深的理解 概览 扩散过程 逆扩散过程 损失函数 总结 参考 Diffusion model 是一种图片生成的范式,大量的数学公式让许多同学望而却步,但实际研究下 ...

  4. Diffusion Model (扩散生成模型)的基本原理详解(三)Stochastic Differential Equation(SDE)

    本篇是<Diffusion Model (扩散生成模型)的基本原理详解(二)Score-Based Generative Modeling(SGM)>的续写,继续介绍有关diffusion ...

  5. Diffusion model知识笔记

    AI画画近期貌似挺火的,也出了不少有趣的作品,甚至闹出了一些轰动的趣事.对此我也惊讶现在的科技都这么发达了么,岂不是可以满足我各种奇奇怪怪的想法[doge]?当然做学问嘛,我们也要知其然并知其所以然, ...

  6. 什么是扩散模型(Diffusion Model)?

    扩散模型是什么?如何工作以及他如何解决实际的问题 在计算机视觉中,生成模型是一类能够生成合成图像的模型(文本生成图像[DALL2.Stable Diffusion].图像生成图像[Diffusion- ...

  7. 【CV】Latent diffusion model 扩散模型体验

    note 文章目录 note 一.diffusion模型 1.1 Stable Diffusion简介 1.2 和GAN对比的优势 二.Latent diffusion model原理 2.1 潜在空 ...

  8. Diffusion Model(扩散模型)

    一.功能(解决问题) 1.根据文字生成图片 2.根据给定的图片生成相似风格画作 3.图片延展 二.发展过程 1.2015年斯坦福大学四位研究者提出 2.2020年底加州伯克利学者改进 3.2021年O ...

  9. 扩散模型Diffusion Model 【质量提升2.0】【扩散模型】

    扩散模型Diffusion Model [质量提升2.0][扩散模型] 文章目录 扩散模型Diffusion Model [质量提升2.0][扩散模型] 一.扩散模型简介 二.前向扩散简介 三.逆向扩 ...

最新文章

  1. winform记事本初步实现
  2. ios中通过ALAssetsLibrary获取所有图片
  3. Cracking the Coding Interview(Stacks and Queues)
  4. python字符串最大长度_字符串String的最大长度
  5. c#中判断对象为空的几种方式(字符串等)
  6. 报告:代币化资产市值已超200亿美元
  7. js读取cookie,js添加cookie,js删除cookie
  8. 华为5g鸿蒙麒麟,华为5G亮王牌:鸿蒙系统+7800W+麒麟990+防水,钱包按耐不住!
  9. python开发环境及网络基础
  10. colorpix取色器
  11. php 解析今日头条视频,今日头条的视频地址解析方法
  12. 阿里云个人网站免费绑定SSL证书(超详细图文教程)
  13. PyTorch模型训练实战技巧,突破速度瓶颈
  14. PL-PS 接口说明
  15. R语言绘制坐标 保存图片
  16. 诺基亚java闪退_手机程序闪退怎么办?使用这三种办法,即可轻松搞定
  17. solr6.4服务器+Tomcat+中文分词器
  18. C语言实现计算机网络技术
  19. 2022最新话费充值系统源码+安装教程
  20. 标题 穿越雷区 java_标题:穿越雷区

热门文章

  1. 与传统媒体相比新媒体传播所具备的特点与优势!
  2. IP协议号大全(转载)
  3. Excel如何快速插入指定数目空白行
  4. 微信投票微信刷票的技巧和意义
  5. JAVA - base64图片加文字水印
  6. 学习LSM(Linux security module)之四:一个基于LSM的简单沙箱的设计与实现
  7. 基于微信小程序的毕业设计题目(22)php有声读物音频播放小程序(含开题报告、任务书、中期报告、答辩PPT、论文模板)
  8. Neuraltalk2
  9. 代码详细教程+文档+PPT+源码等]SSM框架美妆商城全套|电商购物计算机专业毕业论文java毕业设计网站
  10. 计算机一级ps考级知识,Photoshop等级考试一级大纲