变分自编码器(Variational Autoencoder, VAE)的核心作用
flyfish
在 文生视频 和 图生视频 中,变分自编码器(VAE) 的核心作用是:
1 将输入(文本 / 图像)编码为 “潜在动态特征” 的概率分布,这些特征包含视频中物体运动、场景变化、时序逻辑等关键信息;
2 通过解码潜在分布生成连贯的视频帧序列,支持从单一文本描述或静态图像 “扩展” 出动态内容,同时利用概率特性实现多样化生成(如不同动作幅度、镜头角度的视频变体)。
VAE 是连接 “静态输入” 与 “动态视频” 的桥梁,让模型能理解并生成符合逻辑的视频时序变化,兼具 内容一致性 和 创意多样性。
一句话就是VAE 将 具体数据 编码为潜在特征的概率分布
在 变分自编码器(Variational Autoencoder, VAE) 中,“Variational(变分)” 一词源于 变分推断(Variational Inference),这是一种在概率论和机器学习中用于近似复杂概率分布的数学方法。要理解 VAE 中的 “Variational”,需从 VAE 的核心思想和与传统自编码器(AE)的区别说起:
传统自编码器(AE)的局限
传统自编码器由 编码器(Encoder) 和 解码器(Decoder) 组成:
- 编码器将输入数据 x x x 映射到潜在向量 z = f ( x ) z = f(x) z=f(x)(确定性映射);
- 解码器将潜在向量
z
z
z 还原为重构数据
x
^
=
g
(
z
)
\hat{x} = g(z)
x^=g(z)。
其目标是最小化重构误差(如均方误差),但 AE 无法显式建模数据的概率分布,因此缺乏生成新数据的能力(只能重构训练数据,不能生成合理的新样本)。
VAE 的核心改进:概率建模与变分推断
VAE 引入 概率框架,假设输入数据 x x x 由潜在变量 z z z 生成,且 z z z 服从某个先验分布(通常假设为标准正态分布 N ( 0 , I ) \mathcal{N}(0, I) N(0,I))。VAE 的关键是:
- 编码器输出潜在变量的概率分布:
编码器不再输出确定的 z z z,而是输出潜在变量的 均值 μ \mu μ 和 对数方差 log σ 2 \log\sigma^2 logσ2,即假设 z z z 服从以 μ \mu μ 和 σ 2 \sigma^2 σ2 为参数的正态分布 q θ ( z ∣ x ) q_\theta(z|x) qθ(z∣x)(称为 变分分布,近似真实后验分布 p ( z ∣ x ) p(z|x) p(z∣x))。 - 通过重参数化技巧采样潜在变量:
从 q θ ( z ∣ x ) q_\theta(z|x) qθ(z∣x) 中采样 z z z,并将 z z z 输入解码器生成 x ^ \hat{x} x^。 - 优化目标:变分下界(ELBO):
由于真实后验 p ( z ∣ x ) = p ( x ∣ z ) p ( z ) p ( x ) p(z|x) = \frac{p(x|z)p(z)}{p(x)} p(z∣x)=p(x)p(x∣z)p(z) 难以直接计算(分母 p ( x ) p(x) p(x) 是证据,需积分所有 z z z,计算复杂度高),VAE 使用 变分推断,通过最小化变分分布 q θ ( z ∣ x ) q_\theta(z|x) qθ(z∣x) 与真实后验 p ( z ∣ x ) p(z|x) p(z∣x) 的 KL 散度,转而最大化 证据下界(Evidence Lower BOund, ELBO):
ELBO = E q θ ( z ∣ x ) [ log p ϕ ( x ∣ z ) ] − KL ( q θ ( z ∣ x ) ∣ ∣ p ( z ) ) \text{ELBO} = \mathbb{E}_{q_\theta(z|x)}[\log p_\phi(x|z)] - \text{KL}(q_\theta(z|x) || p(z)) ELBO=Eqθ(z∣x)[logpϕ(x∣z)]−KL(qθ(z∣x)∣∣p(z))
其中:- 第一项是 重构损失(期望解码器生成 x x x 的概率);
- 第二项是 KL 散度(约束变分分布 q θ ( z ∣ x ) q_\theta(z|x) qθ(z∣x) 接近先验分布 p ( z ) p(z) p(z),避免过拟合)。
“Variational” 的具体含义
“Variational” 在 VAE 中体现为以下两点:
- 变分分布(Variational Distribution):
用一个简单易计算的分布 q θ ( z ∣ x ) q_\theta(z|x) qθ(z∣x)(如正态分布)去近似复杂的真实后验分布 p ( z ∣ x ) p(z|x) p(z∣x),这种“近似”过程称为 变分近似(Variational Approximation)。 - 变分推断(Variational Inference):
通过优化变分分布的参数 θ \theta θ,使得 q θ ( z ∣ x ) q_\theta(z|x) qθ(z∣x) 尽可能接近 p ( z ∣ x ) p(z|x) p(z∣x),从而间接求解难以计算的后验分布。
与“变分法”的联系(拓展)
“Variational” 一词起源于 变分法(Calculus of Variations),这是一种求解函数优化问题的数学工具(例如求曲线的最短长度)。在 VAE 中,“变分”的概念被拓展到概率分布的优化——即寻找最优的概率分布(变分分布)来近似目标分布(真实后验),本质上是“对分布的优化”,而非对普通变量的优化。
VAE 中“Variational”的核心意义
- 概率视角:VAE 将编码过程视为对潜在变量概率分布的估计,而非确定性映射,从而赋予模型生成新数据的能力(通过从先验分布采样 z z z 并解码)。
- 近似求解:通过变分推断近似复杂后验分布,避免直接计算难以处理的积分,使模型可训练。
- 与传统 AE 的区别:传统 AE 是“确定性编码+重构”,VAE 是“概率编码+变分近似+生成”,“Variational” 正是这一概率建模和近似求解过程的核心体现。
“Variational” 强调 VAE 通过引入概率分布和变分推断,将自编码器从“数据压缩工具”升级为“能建模数据分布的生成模型”。
“编码”过程
VAE 的编码对象:输入数据(高维观测数据)
- 输入:通常是原始数据(如图像、音频、文本等),记为 x x x,属于高维空间(例如 28×28 的图像、1024 维的文本嵌入等)。
- 目标:将高维数据 x x x 编码到低维的 潜在空间(Latent Space),捕捉数据的核心特征,同时保留生成新数据的能力。
VAE 的编码结果:潜在变量的概率分布(而非单一向量)
与传统自编码器(AE)直接输出 确定的潜在向量 z = f ( x ) z = f(x) z=f(x) 不同,VAE 的编码器输出的是 潜在变量 z z z 的概率分布,具体包括:
- 分布参数:
编码器(通常是神经网络)计算潜在变量分布的 均值 μ \mu μ 和 对数方差 log σ 2 \log\sigma^2 logσ2,假设 z z z 服从以 μ \mu μ 和 σ 2 \sigma^2 σ2 为参数的 正态分布 q θ ( z ∣ x ) = N ( z ; μ , σ 2 I ) q_\theta(z|x) = \mathcal{N}(z; \mu, \sigma^2 I) qθ(z∣x)=N(z;μ,σ2I)。- θ \theta θ 是编码器的参数,通过训练学习得到。
- 概率意义:
编码过程本质上是用一个简单的分布(如正态分布)去近似真实后验分布 p ( z ∣ x ) p(z|x) p(z∣x),即 变分分布 q θ ( z ∣ x ) q_\theta(z|x) qθ(z∣x),表示在观测到 x x x 的条件下,潜在变量 z z z 的可能取值分布。
编码的数学与物理意义
- 数学视角:
- 编码器将 x x x 映射到潜在空间的 分布参数,而非单一向量,使得 z z z 具有概率意义(可通过采样生成新样本)。
- 引入 重参数化技巧(Reparameterization Trick):通过 z = μ + σ ⋅ ϵ z = \mu + \sigma \cdot \epsilon z=μ+σ⋅ϵ(其中 ϵ ∼ N ( 0 , I ) \epsilon \sim \mathcal{N}(0, I) ϵ∼N(0,I))从分布中采样 z z z,将随机性从参数转移到噪声变量,使梯度可反向传播。
- 物理意义:
- 潜在空间的分布 q θ ( z ∣ x ) q_\theta(z|x) qθ(z∣x) 编码了输入数据 x x x 的“特征分布”,例如图像的边缘、颜色等底层特征的概率组合。
- 解码器(Decoder)随后将采样的 z z z 解码为重构数据 x ^ \hat{x} x^,目标是让 x ^ \hat{x} x^ 尽可能接近原始 x x x,同时通过 KL 散度约束分布 q θ ( z ∣ x ) q_\theta(z|x) qθ(z∣x) 接近先验分布 p ( z ) p(z) p(z)(通常为标准正态分布)。
与传统自编码器(AE)的对比
特性 | 传统自编码器(AE) | 变分自编码器(VAE) |
---|---|---|
编码输出 | 确定的潜在向量 z = f ( x ) z = f(x) z=f(x) | 潜在变量的分布参数 ( μ , log σ 2 ) (\mu, \log\sigma^2) (μ,logσ2) |
生成能力 | 弱(仅能重构训练数据) | 强(可从先验分布采样 z z z 生成新数据) |
优化目标 | 重构误差(如均方误差) | 变分下界(ELBO,含重构损失和 KL 散度) |
概率建模 | 无(确定性映射) | 有(显式建模 z z z 的概率分布) |
VAE 的编码本质
- 输入:高维观测数据 x x x(如图像、视频、文本等)。
- 输出:潜在变量 z z z 的概率分布(由均值 μ \mu μ 和方差 σ 2 \sigma^2 σ2 参数化的正态分布 q θ ( z ∣ x ) q_\theta(z|x) qθ(z∣x))。
- 核心目的:通过概率编码,使潜在空间的分布既能捕捉数据特征(重构能力),又能服从简单先验(生成能力),最终实现“从数据分布到潜在分布”的映射,并支持从潜在分布生成新数据。
“潜在”(Latent) 是数据在经过模型编码后得到的 抽象特征表示
1. “潜在”的技术含义
-
潜在空间(Latent Space):
指模型将原始数据(如图像、视频、文本等)通过编码器(Encoder)压缩后得到的 低维抽象空间。例如:- VAE(变分自编码器)会将图像编码为“潜在向量”(Latent Vectors),这些向量包含了生成图像的关键特征(如颜色、形状、结构等),但不直接对应人类可理解的具体属性。
- 扩散模型(例如代码中的
WanPipeline
)在生成视频时,会先在“潜在空间”中进行去噪处理,最终通过VAE的解码器(Decoder)将潜在向量还原为像素空间的视频。
-
潜在表示(Latent Representations):
原始数据在潜在空间中的数学表达,通常是张量(Tensor)形式。例如:- 代码中提到的
vae
(变分自编码器)的作用是将视频帧编码为潜在表示(编码过程),或从潜在表示解码回视频帧(解码过程)。
- 代码中提到的
2. 为什么需要“潜在”?
- 降维与特征压缩:
原始数据(如图像像素)维度很高(如480x832像素的视频帧有数十万像素),直接处理效率低。潜在表示通过编码压缩数据,保留关键信息,剔除冗余(如背景噪声、无关细节)。 - 生成模型的核心桥梁:
生成模型(如VAE、扩散模型)的核心逻辑是:
输入数据 → 编码器 → 潜在表示 → 模型处理(如扩散去噪) → 解码器 → 生成数据。
潜在表示是连接“输入”和“生成”的中间层,模型通过操作潜在空间中的向量来生成新数据。
3. 结合代码场景
在代码中:
vae = AutoencoderKLWan.from_pretrained(...)
加载的VAE负责将视频帧转换为潜在表示(编码),或从潜在表示还原视频帧(解码)。pipe
(扩散管道)的核心计算(如去噪)发生在潜在空间中,处理的是低维潜在向量,而非高维像素数据,这能大幅提升计算效率。
num_frames=81
(生成81帧视频),每帧的潜在表示维度远低于像素维度,模型在潜在空间中逐帧处理并生成连贯的视频序列,最后通过VAE解码为像素视频。
4. 类比理解
可以将“潜在”理解为 “隐含的、抽象的特征”:
- 比如,一张猫的图片的潜在表示,可能包含“猫的轮廓”“毛发颜色”“动作姿态”等抽象特征,但这些特征以数学向量的形式存在,而非人类直接可见的图像。
- 模型通过学习潜在空间的规律(如向量之间的距离、分布),就能生成符合规律的新数据(如生成不同姿态的猫)。