012_SSS_ Improving Diffusion Model Efficiency Through Patching
Improving Diffusion Model Efficiency Through Patching
本文主要是在思路上比较具有创新性. Diffusion需要成百上千的采样步, 这是Diffusion采样速度慢的重要原因. 因此, 很多加速Diffusion的方法关注于如何降低采样步数. 本文的作者则提出了另一种思路, 也就是通过将图像划分patch降低Diffusion模型每一步的采样效率和内存占用量.
1. Introduction
对于图像数据, 降级计算成本的一种很高效的方法就是处理图像数据的低维表示, 这种低维表示可以通过降采样或者编码器得到, 但是这两种方式还需要将低维的数据上采样或是解码器解码出来, 需要更多的网络. 本文采用了一种更方便的做法, 也就是将图像划分成patch然后直接concatenate起来.
本文作者的主要贡献:
- 对Diffusion训练目标进行深入分析, 表明在很多的采样步中, 高分辨率的卷积层是冗余的.
- 提出了一种Patched Diffusion Model(PDM), 而且证明可以明显降低采样的代价. 而且这种方法可以与现有的降低采样步的方法同时使用.
- 作者对不同训练目标的Diffusion效果进行比较, 发现不论是否有patch, 通过预测数据的方法比预测噪声的方法模型更鲁棒.
- 作者提出了一种将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−αtx三种不同的目标对质量的影响. 结论是重建 xxx, αtϵ−1−αtx\sqrt{\alpha_t} \epsilon - \sqrt{1-\alpha_t} xαtϵ−1−αtx 比重建 ϵ\epsilonϵ 更鲁棒.
2.3 Scaling to more complex datasets
这个部分很简单, 就是用了两个Unet, 一个不分patch用在前半部分模糊的阶段, 另一个用在后半部分.
更多实验结果参考原文.
012_SSS_ Improving Diffusion Model Efficiency Through Patching相关推荐
- 2019_SIGIR_A Neural Influence Diffusion Model for Social Recommendation
[论文阅读笔记]2019_SIGIR_A Neural Influence Diffusion Model for Social Recommendation 论文下载地址: https://dl.a ...
- 论文笔记(A Neural Influence Diffusion Model for Social Recommendation)
神经影响传播模型为了社交推荐 原文链接:A Neural Influence Diffusion Model for Social Recommendation, SIGIR'19 原理:社交网络上应 ...
- 扩散模型(Diffusion Model)——由浅入深的理解
Diffusion Model--由浅入深的理解 概览 扩散过程 逆扩散过程 损失函数 总结 参考 Diffusion model 是一种图片生成的范式,大量的数学公式让许多同学望而却步,但实际研究下 ...
- Diffusion Model (扩散生成模型)的基本原理详解(三)Stochastic Differential Equation(SDE)
本篇是<Diffusion Model (扩散生成模型)的基本原理详解(二)Score-Based Generative Modeling(SGM)>的续写,继续介绍有关diffusion ...
- Diffusion model知识笔记
AI画画近期貌似挺火的,也出了不少有趣的作品,甚至闹出了一些轰动的趣事.对此我也惊讶现在的科技都这么发达了么,岂不是可以满足我各种奇奇怪怪的想法[doge]?当然做学问嘛,我们也要知其然并知其所以然, ...
- 什么是扩散模型(Diffusion Model)?
扩散模型是什么?如何工作以及他如何解决实际的问题 在计算机视觉中,生成模型是一类能够生成合成图像的模型(文本生成图像[DALL2.Stable Diffusion].图像生成图像[Diffusion- ...
- 【CV】Latent diffusion model 扩散模型体验
note 文章目录 note 一.diffusion模型 1.1 Stable Diffusion简介 1.2 和GAN对比的优势 二.Latent diffusion model原理 2.1 潜在空 ...
- Diffusion Model(扩散模型)
一.功能(解决问题) 1.根据文字生成图片 2.根据给定的图片生成相似风格画作 3.图片延展 二.发展过程 1.2015年斯坦福大学四位研究者提出 2.2020年底加州伯克利学者改进 3.2021年O ...
- 扩散模型Diffusion Model 【质量提升2.0】【扩散模型】
扩散模型Diffusion Model [质量提升2.0][扩散模型] 文章目录 扩散模型Diffusion Model [质量提升2.0][扩散模型] 一.扩散模型简介 二.前向扩散简介 三.逆向扩 ...
最新文章
- winform记事本初步实现
- ios中通过ALAssetsLibrary获取所有图片
- Cracking the Coding Interview(Stacks and Queues)
- python字符串最大长度_字符串String的最大长度
- c#中判断对象为空的几种方式(字符串等)
- 报告:代币化资产市值已超200亿美元
- js读取cookie,js添加cookie,js删除cookie
- 华为5g鸿蒙麒麟,华为5G亮王牌:鸿蒙系统+7800W+麒麟990+防水,钱包按耐不住!
- python开发环境及网络基础
- colorpix取色器
- php 解析今日头条视频,今日头条的视频地址解析方法
- 阿里云个人网站免费绑定SSL证书(超详细图文教程)
- PyTorch模型训练实战技巧,突破速度瓶颈
- PL-PS 接口说明
- R语言绘制坐标 保存图片
- 诺基亚java闪退_手机程序闪退怎么办?使用这三种办法,即可轻松搞定
- solr6.4服务器+Tomcat+中文分词器
- C语言实现计算机网络技术
- 2022最新话费充值系统源码+安装教程
- 标题 穿越雷区 java_标题:穿越雷区
热门文章
- 与传统媒体相比新媒体传播所具备的特点与优势!
- IP协议号大全(转载)
- Excel如何快速插入指定数目空白行
- 微信投票微信刷票的技巧和意义
- JAVA - base64图片加文字水印
- 学习LSM(Linux security module)之四:一个基于LSM的简单沙箱的设计与实现
- 基于微信小程序的毕业设计题目(22)php有声读物音频播放小程序(含开题报告、任务书、中期报告、答辩PPT、论文模板)
- Neuraltalk2
- 代码详细教程+文档+PPT+源码等]SSM框架美妆商城全套|电商购物计算机专业毕业论文java毕业设计网站
- 计算机一级ps考级知识,Photoshop等级考试一级大纲