向量量化的变分自编码器VQ-VAE理论基础的探索

之前探索了变分自编码器VAE中Encoder和Decoder的理论基础

https://blog.csdn.net/liliang199/article/details/156280212

这里进一步探索向量量化的变分自编码器VQ-VAE的理论基础。

所用示例参考和修改自网络资料。

1. 核心思想与动机

VQ-VAE指Vector Quantized Variational AutoEncoder。

VQ-VAE在VAE上引入离散潜在空间,通过向量量化将连续编码映射到离散码本中。

相比VAE其关键差异在于:

1)学习离散表示,更接近自然信号(语言、语音、图像)的本质

2)避免VAE中的后验坍缩问题

3)为后续自回归建模(如PixelCNN)提供高质量的离散潜在表示

这里从多个角度分析和探索VQ-VAE相比VAE的这些差异改进。

2. 模型架构与数学定义

2.1 编码器Encoder

编码器产生连续向量:

其中是编码器神经网络,输出维度为。

2.2 向量量化层

向量量化层主要包括码本、向量量化两部分。

码本(Codebook):

其中是码本大小,离散潜在变量的取值数,d为离散潜在变量的维度。

量化操作:

给定编码器输出,通过最近邻搜索找到码本中最接近的向量:

这产生了离散潜在表示。

2.3 解码器Decoder

解码器从量化后的向量重建数据:

3. 损失函数与训练目标

3.1 总体损失函数

VQ-VAE的损失函数包含三部分:

其中:

表示停止梯度操作,是超参数通常设为0.25。

3.2 各部分说明

1)重构损失(Reconstruction Loss)

  • 使解码器能从量化向量中重建输入

  • 对于图像:通常用L2损失或感知损失

  • 对于离散数据:用交叉熵损失

2)码本损失(Codebook Loss)

  • 更新码本向量使其接近编码器输出

  • sg操作:码本更新时不考虑编码器的梯度

3)承诺损失(Commitment Loss)

  • 鼓励编码器输出承诺于特定的码本向量

  • 防止编码器输出在码本向量之间频繁跳跃

3.3 梯度流处理

量化操作不可导,VQ-VAE使用直通估计器(Straight-Through Estimator)处理梯度。

前向传播:使用量化后的向量

反向传播:将解码器的梯度直接复制到编码器输出

数学上表示为:

3.4 两阶段训练流程

VQ-VAE训练分两个阶段。

第一阶段:训练VQ-VAE

  1. 训练编码器、码本、解码器

  2. 学习高质量的数据离散表示

  3. 得到压缩的潜在空间:个可能的向量

第二阶段:训练先验模型

在训练好的VQ-VAE之上,学习离散潜在变量的先验分布:

常用自回归模型有PixelCNN、Transformer,可捕获离散潜在变量之间的长程依赖关系。

4 相比VAE的优化

4.1 VAE vs VQ-VAE

这里动从多个角度对比VAE和VQ-VAE。

1)潜在空间

VAE采用连续连续空间表示,VQ-VAE采用离散表示。

2)后验分布

VAE采用连续的高斯分布,VQ-VAE采用分类分布(ont-hot)。

3)KL项

VAE采用显式KL散度,VQ-VAE则通过量化隐式约束。

4)正则化

VAE采用KL散度正则化,VQ-VAE则采用码本与承诺损失。

5)从高斯先验采样

VAE从从高斯先验采样,VQ-VAE则从码本索引采样。

4.2 VQVAE理论优势

相比VAE,VQ-VAE有一些列优势。

1)避免了后验坍缩

VAE中当解码器过于强大时,可能忽略潜在变量,导致KL散度项趋向于0。

VQ-VAE通过强制离散表示避免了这一问题。

2)解耦表示学习与生成建模

VQ-VAE专注于学习有效的离散表示,先验模型专注于学习序列依赖关系。

这种分离使得每部分可以独立优化

3)支持多尺度架构

VQ-VAE可以扩展到多尺度,形成层次化离散表示。

每一层捕获不同抽象级别的信息。

5. VQ-VAE核心洞察

5.1 目标函数推导

VQ-VAE可视为最小化以下目标

其中第二项保证编码器输出与量化向量的接近。

VQ-VAE与EM算法也有关联,VQ-VAE的训练类似于期望最大化(EM)算法。

E步相当于将数据点分配到最近的码本向量,具体为最近邻搜索。

M步相当于更新码本向量和网络参数以最小化重构误差。

5.2 实际应用扩展

VQ-VAE有一系列进一步改进,比如VQ-VAE-2、VQ-GAN。

VQ-VAE-2使用多尺度层次化潜在空间,底层捕获局部细节,高层捕获全局结构。

VQ-GAN则结合对抗损失生成更高质量的图像。

VQ-VAE在音频领域也应用广泛。

比如将波形编码为离散token序列,使用Transformer学习token序列的分布。

5.3 VQ-VAE总结

VQ-VAE的核心贡献在于:

1)离散潜在表示,更符合许多模态(语言、语音)的本质

2)解耦训练,表示学习与序列建模分离

3)可扩展性,支持层次化、多尺度架构

4)实用性,为自回归生成模型提供高质量的离散输入

VQ-VAE离散表示在生成建模中优势明显,被后续一系列生成式框架采用,

如DALL-E、AudioLM、Codeformer。

reference


VAE中Encoder和Decoder的理论基础的探索

https://blog.csdn.net/liliang199/article/details/156280212

PixcelCNN-Pytorch

https://github.com/singh-hrituraj/PixelCNN-Pytorch

What Is DALL-E?

https://www.coursera.org/articles/what-is-dall-e

audiolm-pytorch

https://github.com/lucidrains/audiolm-pytorch

VQ-VAE-2

https://github.com/vvvm23/vqvae-2

VQGAN

https://github.com/Westlake-AI/VQGAN

CodeFormer

https://github.com/sczhou/CodeFormer

相关推荐
秦先生在广东2 分钟前
可审计决策原语:重塑 Agent 循环中的治理与信任
人工智能
米小虾8 分钟前
一周 AI 观察(9.23–9.30):越狱的 Agent、腰斩的价格,与一场关于 GPU 的金融赌局
人工智能
秦先生在广东15 分钟前
AI 时代的交付新瓶颈:从代码生成速度到生产环境持续信任
人工智能
米小虾19 分钟前
把调度器扔了:微软 Agensh 让 1024 个编码 Agent 自组织,但收益正在变平
人工智能
米小虾24 分钟前
告别盲目重复采样:PTTS 用「规划-执行分离」把测试时算力省下一半
人工智能
有毒的教程38 分钟前
AI文生视频转场提示词(直接复制,分类型|适配MiniMax H3 / 可灵 / Runway)
人工智能·音视频
泛联新安42 分钟前
软件定义汽车时代,如何让AI研发“可信”?——泛联新安构建汽车企业级可信AI体系的落地路径
大数据·人工智能·安全·网络安全·汽车·漏洞挖掘·代码安全
吴建旭 智宅焕1 小时前
AI搜索时代的智能家居交付知识架构:官网作为可信一手信息源与全国交付基础设施
人工智能·架构·智能家居
yuanxi2001 小时前
001267拟扩产光模块:大客户销售如何用价值力读一条扩产公告
人工智能·职场和发展·创业创新·学习方法
梦帮科技1 小时前
领域认知知识库图谱注入:从双式记账图网络到高质量问答对自动化合成流水线
运维·网络·数据库·人工智能·矩阵·架构·自动化