向量量化的变分自编码器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

相关推荐
QYZL_AIGC6 小时前
全域众链AI赋能实体,开启数字化转型新生态
大数据·人工智能
SCKJAI6 小时前
推出高效能机器人边缘人工智能(AI)平台 ARC6N0 T5X
大数据·人工智能
新加坡内哥谈技术6 小时前
软件工程未来两年
人工智能
_爱明6 小时前
评估回归模型的指标与理解
人工智能·数据挖掘·回归
小途软件6 小时前
基于深度学习的驾驶人情绪识别
java·人工智能·pytorch·python·深度学习·语言模型
向量引擎6 小时前
[架构师级] 压榨GPT-5.2与Sora 2的极限性能:从单体调用到高并发多模态Agent集群的演进之路(附全套Python源码与性能调优方案)
开发语言·人工智能·python·gpt·ai·ai写作·api调用
北芝科技7 小时前
AI在教育中的五大应用场景,助力教学与学习全面智能化解决方案
人工智能·学习
金融小师妹7 小时前
机器学习捕捉地缘溢价:黄金突破一周高位,AI预测模型验证趋势强度
大数据·人工智能·深度学习
byzh_rc7 小时前
[机器学习-从入门到入土] 拓展-范数
人工智能·机器学习
小王毕业啦7 小时前
2003-2023年 285个地级市邻接矩阵、经济地理矩阵等8个矩阵数据
大数据·人工智能·数据挖掘·数据分析·数据统计·社科数据·实证数据