diffusion model 合集

diffusion model 整理

DDPM:

  • 前向一步到位,从数据集里的图片加噪声,根据随机到的 t t t 决定混合的比例,反向要慢慢迭代,DDPM是用了1000步迭代。
  • 模型的输入是带噪声图和 t,t 先生成embedding后,用通道和的方式加到每一层中间去:
    在这里插入图片描述
  • 训练过程是对每个样本分配一个随机的t,采样一个高斯噪声 ϵ \epsilon ϵ,然后根据 t 对图片和噪声进行混合,将加噪的图片和 t 送进模型,预测噪声,计算预测的噪声和 ϵ \epsilon ϵ的L2距离。
  • 测试过程则是采样一个高斯噪声 x T x_T xT,迭代T步地利用模型来预测噪声,利用公式来减去噪声得到当前步的均值,然后加一个乘以方差的高斯噪声模拟 q ( x t − 1 ∣ x t ) q(x_{t-1}|x_t) q(xt1xt)的采样,重复T步,最后一步不加噪,得到最后的生成结果。
  • DDPM是一个随机采样高斯噪声,从噪声生成图片的生成模型。
  • 参考自:https://zhuanlan.zhihu.com/p/563661713
  • 论文链接:https://arxiv.org/pdf/2006.11239.pdf

DDIM

  • 从DDPM的训练过程我们可以看到,我们算损失的时候并不需要一步步前向,可以根据公式一步到位,那我们可不可以通过抛弃这种马尔科夫链的思考方式,加速推理过程的迭代,不要一步一步地走呢。
  • DDIM提出将DDPM视为非马尔可夫过程,而采样其中的一些节点,这些节点组成的子图是一个马尔可夫过程。并且将反向的过程定义为确定过程,也就是把反向过程中加噪声的那一步去掉了。
  • DDIM主要就是加速了DDPM,减少了采样的步数并且将反向过程变为了确定过程,一旦初始的随机噪声 x T x_T xT选定了,反向过程每一步生成的就是确定的。
  • 参考自:https://zhuanlan.zhihu.com/p/565698027
  • 论文链接:https://arxiv.org/pdf/2010.02502.pdf

Diffusion models beat GAN on image Synthesis

  • 探索了一些网络结构。更重要的是,给出了利用分类器引导反向过程的idea,即在反向过程的step中,向预测的 x t − 1 x_{t-1} xt1分布的均值加一个动量,这个动量是 x t x_t xt送进分类器(预先在加噪的图像分类数据集上train好的一个网络)的对应类别(如狗)的损失对 x t x_t xt的梯度。通过反向过程中不断的引导,最终使得生成的图片是对应类别的图片(如狗)。
  • 模型是不需要重新训练的,train好的普通diffusion模型就能直接用这种方式干预反向过程使得推理生成指定类别的图片。

More Control for Free! Image Synthesis with Semantic Diffusion Guidance

  • 这个工作是对上面 classifer guidance的推进,上面用分类器的梯度来引导生成图片,这篇工作则提出,不只是分类器,各种损失都可以用同样的方式来引导diffusion过程,比如利用CLIP的文本和图片之间的距离损失的梯度可以实现文本指导的图像生成,图片和图片之间的style loss+perceptual loss可以实现图像指导的图像生成。

Classifier-Free Diffusion Guidance

  • 这个工作是对上面classifier guidance的方法提出了另一个思路,取消了classifier。模型的输入包括了类别的条件向量和图片,训练过程中以一定几率将类别条件向量置空。测试的时候,采样过程中,每一步会采样两次,一次是置了条件向量的,一次是条件向量置空的,两个输出的加权平均(有条件的权重是 ( 1 + ω ) (1+\omega) (1+ω),无条件的权重是 − ω -\omega ω,所以其实是减法关系)得到下一次采样的结果。
  • 通过这样的方式,在有标签的数据集上训练diffusion模型,可以实现利用类别标签控制生成图片的类别,利用 ω \omega ω控制条件引导的力度,但是缺陷很突出,需要重新训练。
  • 模型的结构也没有在论文中进行披露,我还挺想知道这个条件向量是怎么融合进去的。

GLIDE: Towards Photorealistic Image Generation and Editing with Text-Guided Diffusion Models

  • 基本是对上面两种方案的改进,专注于文本引导,模型换大版,两种方案都试了。用的backbone是Diffusion models beat GAN on image Synthesis的模型,原先是没有文本注入的,现在把文本信息也注入进去了。所以现在训练的时候模型已经明确是有文本的,是在有文本标注的图像数据集上train的。对于classifier-free的方案,就再finetune一下,finetune的时候把20%的文本换成空文本即可。对于classifer-guidance方案,就直接用CLIP来算(要先train一个noised CLIP)
  • 采用的方案是先train一个文本引导的diffusion,但只能输出64x64的图片,然后再train一个文本引导的SR diffusion模型把分辨率提高到256x256.
  • 这个工作还试了文本引导的inpainting任务

stable diffusion

  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值