扩散模型加速采样之 Rectflow

1,699 阅读2分钟

扩散模型加速采样之 Rectflow

ICLR2023 paper:arxiv.org/abs/2209.03… github:github.com/gnobitab/Re…

motivation

  • 原始扩散模型DDPM推导过程复杂,包含变分推断等数学知识
  • 扩散模型生成大问题: 生成速度慢

contribution

  • 提出 rectified flow 一种 “沿直线” 的生成模型,基于简单常微分方程(ODE),通过构造一个“尽量走直线”的连续运动系统生成目标数据分布
  • 快速一步生成:通过 “reflow” 实现“一步生成”: 只需一步计算就直接产生高质量的结果,而不需要调用计算量大的数值求解器来迭代式地模拟整个扩散过程
  • 用于迁移学习:把任何一种数据或噪声(比如猫脸照片)转换成另外一种数据(比如人脸照片)

image.png

method

分布映射

image.png 给定从两个分布 π0 和 π1 中的采样,我们希望找到一个传输映射 T 使得,当 Z0∼π0 时, Z1=T(Z0)∼π1。

image.png

image.png

image.png

image.png

生成模型:z0 高斯噪声分布 z1 数据分布(如:图片数据集)迁移模型:z0 原域 z1 目标域

image.png

Reflow

假设我们从 π0 里采样出一批 X0 。然后,从 X0 出发,我们模拟上面学出的flow(叫它1-Rectified Flow),得到 X1=Flow1(X0) 。我们用这样得到的 (X0,X1) 对来学一个新的"2-Rectified Flow"

image.png 2-Rectified Flow和1-Rectified Flow在训练过程中唯一的区别就是数据配对不同:在1-Rectified Flow中, X0与 X1是随机或者任意配对的;在2-Rectified Flow中, X0与 X1是通过1-Rectified Flow配对的。

image.png image.png

Distillation

一步生成 X1=X0+v(X0,0)X_1 = X_0 + v(X_0,0), 损失函数minvE[X1X0v(X0,0)2]min_{v}E[||X_1-X_0-v(X_0,0)||^2]

注意问题:以上公式中X1,X0要是配对的,而上述reflow正好解决配对问题,因此在reflow后添加distill操作进行组合操作

Experiment

  • 细节设置:ODEs解析器选择 Euler、RK45 等数值解析方法
  • 无条件图像生成(cifar10)

image.png

image.png

image.png

  • 迁移

image.png

image.png