VAE 与世界模型学习总结

VAE 与世界模型学习总结

1. VAE 是什么

VAE(Variational Autoencoder,变分自编码器)是一种概率生成模型。

它的核心目标有两个:

  1. 把高维输入压缩成低维潜在表示
  2. 从潜在表示中重建原始数据,并且让潜在空间具有良好的分布结构

可以把它理解为:

  • 编码器负责"压缩"
  • 解码器负责"还原"
  • 概率建模负责让潜在空间可采样、可生成

2. VAE 的整体结构

VAE 的基本流程可以写成:

x \\rightarrow Encoder \\rightarrow (\\mu, \\log \\sigma\^2) \\rightarrow z \\rightarrow Decoder \\rightarrow \\hat{x}

其中:

  • (x):输入数据,例如一张图像
  • (\mu):潜变量分布的均值
  • (\log \sigma^2):潜变量分布的对数方差
  • (z):从该分布采样得到的潜变量
  • (\hat{x}):解码器重建出来的数据

3. VAE 的核心思想

普通自编码器是:

x \\rightarrow z \\rightarrow \\hat{x}

这里的 (z) 是一个确定值。

而 VAE 不直接输出一个固定的 (z),而是输出一个分布:

q_\\phi(z\|x)=\\mathcal{N}(\\mu(x),\\sigma\^2(x))

这表示:

  • 对于每个输入 (x)
  • 编码器会预测一个高斯分布
  • 再从这个高斯分布中采样出潜变量 (z)

因此,VAE 学到的不是单个点,而是一个"潜在空间中的区域"。


4. 高斯分布可以有维度吗

可以。

4.1 一维高斯

z \\sim \\mathcal{N}(\\mu,\\sigma\^2)

表示一个数在数轴上随机。

4.2 多维高斯

\\mathbf{z} \\sim \\mathcal{N}(\\boldsymbol{\\mu}, \\boldsymbol{\\Sigma})

表示一个向量在高维空间中随机。

如果 latent dim = 32,那么:

z \\in \\mathbb{R}\^{32}

这时用到的是 32 维高斯分布

也就是说,VAE 会输出:

  • 32 个均值
  • 32 个方差

每个维度对应潜变量中的一个分量。


5. 均值和方差是怎么来的

这是一个特别关键的问题。

5.1 不是手工计算出来的

(\mu) 和 (\sigma) 不是手工算的,也不是固定写死的参数。

5.2 它们是编码器网络的输出

编码器本质上是一个函数:

Encoder(x) \\rightarrow (\\mu(x), \\log \\sigma\^2(x))

也就是说:

  • 输入一张图像 (x)
  • 经过卷积层、全连接层等网络结构
  • 输出一个均值向量和一个方差向量

如果潜变量维度是 32,那么:

\\mu(x) \\in \\mathbb{R}\^{32}, \\quad \\log \\sigma\^2(x) \\in \\mathbb{R}\^{32}

所以:

  • 网络参数是可学习的权重 (W,b)
  • (\mu(x))、(\sigma(x)) 是网络对当前输入的计算结果

这两者不要混淆。


6. 重参数化技巧

由于 VAE 需要从高斯分布中采样,但随机采样本身不方便反向传播,所以使用重参数化技巧:

z = \\mu + \\sigma \\odot \\epsilon,\\quad \\epsilon \\sim \\mathcal{N}(0,I)

这一步的含义是:

  1. 先从标准正态分布中采样一个噪声 (\epsilon)
  2. 再根据 (\mu) 和 (\sigma) 对它进行平移和缩放
  3. 得到目标分布中的样本 (z)

这样模型就仍然可以进行梯度反传。


7. z 的形状是什么

如果输入图像是:

x \\in \\mathbb{R}\^{64 \\times 64 \\times 3}

那么它一共有:

64 \\times 64 \\times 3 = 12288

个像素值。

假设潜变量维度设为 32,那么:

z \\in \\mathbb{R}\^{32}

所以:

  • 原图像是 12288 维
  • 潜变量是 32 维

因此,(z) 通常不是图像大小的张量,而是一个低维向量。

有些更现代的模型会使用空间潜变量,例如:

z \\in \\mathbb{R}\^{8 \\times 8 \\times 16}

但即使这样,它也通常仍然远小于原图像尺寸。


8. 解码器怎么把 z 还原成图像

解码器做的事情可以写成:

\\hat{x} = Decoder(z)

如果:

z \\in \\mathbb{R}\^{32}

目标图像大小是:

\\hat{x} \\in \\mathbb{R}\^{64 \\times 64 \\times 3}

那么解码器通常会这样处理:

  1. 先通过全连接层把 32 维向量映射成更大的隐藏表示
  2. reshape 成一个小的特征图
  3. 通过上采样或反卷积逐步放大
  4. 最终输出完整图像

例如:

text 复制代码
z (32)
→ FC
→ 4×4×64
→ 8×8×64
→ 16×16×32
→ 32×32×16
→ 64×64×3

因此,VAE 不是通过"公式反求"来还原图像,而是通过一个神经网络来学习生成图像。


9. Decoder 是否需要输入 x

不需要。

正确流程是:

9.1 重建当前图像

x_t \\rightarrow z_t \\rightarrow \\hat{x}_t

也就是:

\\hat{x}_t = Decoder(z_t)

9.2 预测未来图像

z_{t+1} \\rightarrow \\hat{x}_{t+1}

也就是:

\\hat{x}*{t+1} = Decoder(z* {t+1})

所以:

  • Decoder 的输入是潜变量 (z)
  • 它不需要再加原图 (x)
  • 原图只在训练时用来和重建结果做比较

10. VAE 的损失函数

VAE 的总损失由两部分组成:

\\mathcal{L} = \\mathcal{L}*{rec} + \\mathcal{L}* {KL}

10.1 重建损失

用于约束重建图像和原图接近:

\\mathcal{L}_{rec} = \|\|x - \\hat{x}\|\|\^2

或在某些任务中使用 BCE。

10.2 KL 散度

用于约束编码器输出的分布接近标准正态分布:

D_{KL} = -\\frac{1}{2} \\sum_{i=1}\^{d} \\left(1 + \\log \\sigma_i\^2 - \\mu_i\^2 - \\sigma_i\^2\\right)

这表示:

  • 均值不要偏离 0 太远
  • 方差不要偏离 1 太远

这样潜在空间会更加平滑和规整,更适合采样生成。


11. 世界模型是什么

世界模型(World Model)的核心思想是:

不直接在像素空间做预测,而是在潜在空间中建模世界的动态变化。

通常包含三个模块:

模块 作用
VAE 把图像压缩为潜变量
时序模型(RNN / RSSM 等) 预测潜状态如何随时间变化
Controller 根据状态做动作决策

12. 世界模型中 VAE 的作用

在世界模型里,VAE 负责:

x_t \\rightarrow z_t

也就是:

  • 输入当前时刻的图像观测 (x_t)
  • 输出当前时刻的潜变量表示 (z_t)

这里的 (z_t) 可以理解为:

当前图像的低维压缩语义表示

例如:

  • 场景结构
  • 物体位置
  • 视觉特征
  • 与决策相关的信息

13. 世界模型预测未来的完整流程

Step 1:获得当前观测

x_t

Step 2:用 VAE 编码

x_t \\rightarrow z_t

Step 3:结合动作和历史记忆进行时序预测

(z_t, a_t, h_t) \\rightarrow z_{t+1}, h_{t+1}

其中:

  • (a_t):当前动作
  • (h_t):时序模型的隐藏状态

Step 4:可选地解码成未来图像

z_{t+1} \\rightarrow \\hat{x}_{t+1}

Step 5:循环进行多步预测

z_t \\rightarrow z_{t+1} \\rightarrow z_{t+2} \\rightarrow \\cdots

因此,世界模型可以在潜在空间中"想象未来"。


14. 世界模型中的核心逻辑

可以用一句话概括:

  • VAE 负责看世界
  • RNN / RSSM 负责想未来
  • Decoder 负责把想象还原成画面

其完整链路可以写成:

x_t \\rightarrow z_t \\rightarrow z_{t+1} \\rightarrow z_{t+2} \\rightarrow \\cdots \\rightarrow \\hat{x}_{未来}


15. 你前面几个关键问题的统一总结

15.1 图像输入给 VAE 的是什么

输入的是整张图像,不是单个像素。

15.2 VAE 是对像素建高斯吗

不是。

VAE 是对"整张图像对应的潜变量"建高斯分布。

15.3 如果 latent dim = 32

那么对应的是一个 32 维高斯分布,也就是 32 个均值和 32 个方差。

15.4 这些均值和方差怎么来

它们不是手算的,而是编码器网络对输入图像的输出。

15.5 z 还是不是图像大小

通常不是。

z 是低维潜变量,例如 (\mathbb{R}^{32})。

15.6 怎么从 z 还原图像

把 z 输入解码器,由解码器通过神经网络一步步生成图像。

15.7 Decoder 是否还需要原图

不需要。

Decoder 只需要 z。

15.8 世界模型怎么预测未来

先把当前图像编码成 z,再用时序模型预测未来 z,最后用解码器把未来 z 变成未来图像。


16. 最终一句话总结

VAE 的本质是:

把输入图像编码成一个潜在高斯分布,从中采样得到低维潜变量,再通过解码器重建图像。

世界模型的本质是:

先用 VAE 把图像变成潜状态,再在潜空间中预测未来,最后按需还原成图像。


17. 建议继续学习的下一步

如果你接下来想继续深入,建议按这个顺序:

  1. KL 散度为什么能约束潜空间接近标准正态
  2. 为什么 VAE 往往比普通 AE 更适合生成
  3. RNN、RSSM、Dreamer 这些世界模型的时序部分到底怎么工作
  4. 空间 latent 和向量 latent 的区别
  5. 世界模型中的 reward model 和 policy/controller 如何训练
相关推荐
千寻girling1 天前
机器学习 | 线性回归 | 尚硅谷学习
学习·机器学习·线性回归
jasonblog1 天前
对小龙虾openclaw的关注、学习、使用和变化观察
人工智能·学习·ai
Hical_W1 天前
深入学习CPP17_PMR
c++·学习
xuanwenchao1 天前
ROS2学习笔记 - 1、编写运行第一个程序
笔记·学习
惠惠软件1 天前
豆包 AI 学习投喂与排名优化指南
人工智能·学习·语音识别
V搜xhliang02461 天前
OpenClaw、AI大模型赋能数据分析与学术科研 学习
人工智能·深度学习·学习·机器学习·数据挖掘·数据分析
里昆1 天前
【电力电子】某模拟量采集器的上位机设置和遇到的问题解决
学习
卖报的大地主1 天前
TPAMI 2026 | 判别和扩散生成学习融合的礼物:边界细化遥感语义分割
人工智能·笔记·学习
徒 花1 天前
HCIP学习19 BGP 跨自治系统互通综合实验
网络·学习·智能路由器·hcip·ensp
码喽7号1 天前
vue学习六:状态管理VueX
javascript·vue.js·学习