微型扩散

发布: (2026年2月24日 GMT+8 20:01)
6 分钟阅读
原文: Dev.to

Source: Dev.to

请提供您希望翻译的正文内容,我会按照要求将其译成简体中文并保留原有的格式、Markdown 语法以及技术术语。谢谢!

前向扩散

扩散是热力学中描述的将能量从高能态转移到低能态的过程。在扩散模型中,我们通过逐渐向图像添加噪声来模拟这一过程。
想象把墨水滴入一杯水中:墨水最初呈现出明确的形状,随后扩散开来,直至水体颜色均匀。
同理,我们从一张干净的图像开始,在每一步重复加入少量噪声,直至图像变成纯噪声。这称为 前向扩散

逆向扩散

如果我们拍摄墨水扩散的过程并倒放视频,就会看到均匀的颜色重新形成原始的墨点。
在训练过程中,我们让模型预测加入的噪声并将其减去,从而有效地学习如何逆转扩散过程。这就是 逆向扩散

调度器决定在每个时间步添加多少噪声,而算法(通常是 U‑Net 或扩散 Transformer)学习去除这些噪声。

将扩散扩展到视频

对于二维扩散,我们只需要对单帧进行去噪。视频增加了第三维——时间——因此必须保证时间一致性。
如果第 1 帧被去噪成“3”,第 2 帧被去噪成“5”,生成的动画就会出现闪烁。为避免这种情况,模型使用 时间注意力,在当前帧前后查看相邻帧。

在我们的实验中,我们使用带掩码的欧氏距离变换将静态的 28×28 MNIST 数字转换为 15 帧的批次。于是每个数字成为一个包含 15 张图像的序列,表示其随时间的变化,为视频感知架构提供了所需的数据。

Architecture

该骨干网络遵循 DDPM 论文的设计,但针对视频进行了适配:

  • 空间分支 – 使用大小为 (1 × 3 × 3) 的卷积核处理空间信息。
  • 时间分支 – 使用大小为 (3 × 1 × 1) 的卷积核处理时间信息。
# Spatial convolution
nn.Conv3d(in_ch, out_ch, kernel_size=(1, 3, 3), padding=(0, 1, 1)),
nn.BatchNorm3d(out_ch),
nn.ReLU(),

# Temporal convolution
nn.Conv3d(out_ch, out_ch, kernel_size=(3, 1, 1), padding=(1, 0, 0))

Time Embedding

原始 DDPM 使用正弦嵌入(类似于 Transformer 的位置编码)。在我们的简易任务中,采用了一个基础的 MLP:

self.time_mlp = nn.Sequential(
    nn.Linear(1, t_dim),
    nn.ReLU(),
    nn.Linear(t_dim, t_dim)
)

由于任务是从欧氏距离变换(低频、线性函数)预测几何形状,简单的嵌入已经足够。真实的视频扩散包含低频和高频成分以及复杂的物理过程,通常更适合使用正弦嵌入。

Source:

调度器与训练循环

调度器决定在每一步添加多少噪声。在原始的 DDPM 中,达到第 500 步需要 500 次连续的噪声添加,这非常慢。利用向高斯噪声中再加入高斯噪声仍会得到高斯噪声的性质,我们可以直接从干净图像 (x_0) “瞬移”到任意噪声步 (x_t)。

损失函数很直接:取一帧干净图像,在随机时间步加入噪声,预测该噪声,计算预测噪声与真实噪声之间的均方误差(MSE),并进行反向传播。

在训练期间我们可以使用再参数化技巧跳过步骤,但在采样时必须遵循逆扩散链。标准的 DDPM 需要约 1000 步;更快的替代方案是 DDIM,它可以在最多 50 步内生成样本。在模型预测要减去的噪声后,采样器执行减噪操作。

Temporal Consistency (The “Secret Sauce”)

确保连续帧保持一致对于视频扩散至关重要。时间注意力和双分支(空间 + 时间)卷积设计有助于在逆向扩散过程中保持这种一致性。

结论

  • 数据: 将静态 MNIST 数字转换为短时序序列。
  • 架构: 将 3‑D 卷积拆分为独立的空间分支和时间分支。
  • 嵌入: 简单的 MLP 时间嵌入已足以完成低频任务。
  • 训练: 使用调度器的标准 DDPM 损失;可选的 DDIM 采样用于加速。

虽然这个原型并未捕捉现代视频扩散模型的全部复杂性(这些模型通常会基于文本并使用复杂的时间先验),但它提供了一个清晰的概念基础。

若想更深入理解概念,可观看 3Blue1BrownWelch Lab 关于 AI 图像和视频工作原理的视频。
您也可以在我的 GitHub repository 中查看完整代码。

0 浏览
Back to Blog

相关文章

阅读更多 »

别再问模型是否可解释

人工智能可解释性:提出正确的问题 研究人员、实践者,甚至监管者经常会问一个模型是否可解释。这种表述假设…

介绍 Sentira CORE

概述:介绍 Sentira CORE,这是一款交互式的 NLP 与 ML 驱动工具,能够高精度地分析文本情感。它检测六种情感——喜悦、爱、S…

为什么基准在机器学习中会误导

基准测试衡量的是模型,而不是系统。python model.fit X, y 的计时在 .fit 之前开始,之后结束。缺少了什么? - 数据加载 - 数据清洗 - 特征…