输入“/”快速插入内容

Sora之后,OpenAI Lilian Weng亲自撰文教你从头设计视频生成扩散模型

2024年8月12日修改
机器之心|阅读原文
转载请联系原作者取得授权
选自 Lil’Log|作者:Lilian Weng|机器之心编译|编辑:Panda
过去几年来,扩散模型强大的图像合成能力已经得到充分证明。研究社区现在正在攻克一个更困难的任务:视频生成。近日,OpenAI 安全系统(Safety Systems)负责人 Lilian Weng 写了一篇关于视频生成的扩散模型的博客。
Lilian Weng
机器之心对这篇博客进行了不改变原意的编译、整理,以下是博客原文:
视频生成 任务本身是图像合成的超集,因为图像就是单帧视频。 视频合成的难度要大得多,原因是:
1. 视频合成还需要不同帧之间保持时间一致性,很自然,这需要将更多世界知识编码到模型之中。
2. 相比于文本或图像,收集大量高质量、高维度的视频数据要更为困难,更遑论配对的文本 - 视频数据了。
如果你想了解扩散模型在图像生成方面的应用,可参读本文作者 Lilian Weng 之前发布的博文《What are Diffusion Models?》链接:https://lilianweng.github.io/posts/2021-07-11-diffusion-models/
从头建模视频生成
首先,我们先来看看如何从头设计和训练扩散视频模型,也就是说不使用已经预训练好的图像生成器。
参数化和采样
这里使用的变量定义与之前那篇文章稍有不同,但数学形式是一致的。令 𝐱~𝑞_real 是从该真实数据分布采样的一个数据点。现在,在时间中添加少量高斯噪声,创建出 𝐱 的一个有噪声变体序列,记为:{𝐳_𝑡 | 𝑡 = 1..., 𝑇},其中噪声随 𝑡 的增加而增长,而最后的 𝑞(𝐳_𝑇)~𝒩(𝟎,𝐈)。这个添加噪声的前向过程是一个高斯过程。令 𝛼_𝑡 和 𝜎_𝑡 为这个高斯过程的可微噪声调度(differentiable noise schedule):
为了表示 𝑞(𝐳_𝑡|𝐳_𝑠),其中 0≤𝑠<𝑡≤𝑇,有: