VAE(Variational AutoEncoder)

VAE 是一种生成模型,它通过学习一个连续的潜在分布(而不是固定编码),使可以从这个分布中采样并生成新数据

VAE(Variational AutoEncoder) = 一种可以"学会生成新数据"的概率模型

输入一个样本 → 学一个"潜在表示 z" → 再生成类似的样本

AutoEncoder(既有编码也有解码)

x → 编码 → z → 解码 → x' 压缩信息,然后还原数据

通过"重建误差"来约束 latent 表示是有意义的,z 的好坏是通过"解码是否能还原 x"来衡量的

普通 AE 做的事:x → 编码 → z → 解码 → x' 目标:让 x' ≈ x

Variational(变分)

不是学一个"确定的 z",而是学一个"分布",即 z ~ N(μ, σ²)

  • μ(均值):这个分布的中心在哪
  • σ(标准差):这个分布有多"宽"

本质是用"可优化的近似分布"去替代"难以计算的真实分布"

VAE 的核心结构

🔹 编码器(Encoder)

输入x,输出 μ(x), σ(x),表示这个样本在 latent space 的分布

🔹 采样

z = μ + σ * ε(ε ~ N(0,1)),让模型具有"随机性"

🔹 解码器(Decoder

z → 生成 x'

1️⃣ 如果任务是"生成数据":解码是核心目标

2️⃣ 如果任务是"学表示(representation)":解码主要是一个训练约束

VAE 在做什么

复制代码
把复杂数据(比如人体、图像)压缩到一个“连续空间 z”
在这个空间里可以: 插值、采样、生成新数据

损失函数

VAE 的 loss 有两部分:

1️⃣ 重建误差

让生成的 x' 接近原始 x,保证z里有信息

让每个 x → 一个"独特的 z"(区分开)

2️⃣ KL 散度(重点)

让 z 的分布接近标准正态 N(0,1),让 latent space连续、平滑、可采样'

不同 x 的 q(z|x):不要太分散、要互相重叠、要填满空间

如果没有KL散度的话,就只能重建 不能生成

让所有 z 像标准正态分布 N(0,1)(挤在一起、平滑)

既不能完全分开,也不能完全一样 ,二者共同作用形成一个"连续、可区分但不离散"的空间

核心目标

学一个"连续、可采样"的潜在空间,使可以从中生成新的数据

为什么要让不同x的z在隐空间里连续

VAE 不是为了"区分不同样本",而是为了"建模数据的分布并能生成新样本", 所以 z 的目标不是"彼此远离"(分类任务的目标),而是"形成一个连续、有结构的空间"

VAE 把每个数据点"涂抹"成一片分布,各个分布互相重叠,把空间填满。这样空间里任意一点解码器都见过(某个分布覆盖到了),采样出来就能得到有意义的结果。

如果每个 x → 一个完全不同、彼此很远的 z,latent space就会变成"离散点集",在几个孤立的点中间随机采样就会落在"空区域",decoder的输出将没有意义,无法生成新样本

举例:

如果:z1(一个人) ------ z2(另一个人)希望中间是"渐变的人"

如果空间不连续:中间没有语义 ❌ → 生成畸形

"z 差别越大越好"适用于判别模型,但 VAE 是生成模型,它需要的是"覆盖空间",而不是"拉开距离"

相关推荐
阿三08128 分钟前
跨境电商售后自动化分级标准:哪些能全自动、哪些半自动、哪些禁止自动化
大数据·人工智能·自动化
IT_陈寒13 分钟前
JavaScript的this又双叒叕让我怀疑人生了
前端·人工智能·后端
颜酱25 分钟前
09 | 重构项目结构
人工智能·python·langchain
ZhengEnCi1 小时前
AI Agent(AI智能体) 记忆管理系统设计 — 从向量库边界到生产级 Memory(记忆) 架构
人工智能
凉菜lc1 小时前
对比文《IM Bot 框架怎么选?Zhin vs Koishi vs NoneBot》
人工智能
阿里云大数据AI技术1 小时前
DataWorks Data Agent 实战课堂(三):对话式完成数据同步与智能诊断
人工智能·agent
骇客野人2 小时前
AI全栈开发指定技术架构
人工智能
Escape2 小时前
为什么你的 AI 越聊越傻?从 Token 到 Agent,彻底搞懂 AI Agent的秘密㊙️
前端·人工智能·后端
2501_926978332 小时前
认知边缘的双向耦合:从核技术类比到智力货币时代
人工智能·经验分享·笔记·ai写作
SQDN3 小时前
Chatbox 1.22.1 获取不到模型?先验 /models,再对齐精确 model ID
人工智能·测试工具·机器学习·chatgpt·json