生成模型—VAE
生成模型—VAE(Variational Auto-Encoder)
为进一步了解面部反应生成模型的原理,故详细学习VAE。
Auto-encoder
感谢李宏毅老师的视频!
自编码器是一种无监督学习的神经网络模型,可以用于数据降维、特征压缩、特征提取、数据生成等任务。其主要思想是尝试将输入数据通过编码器(Encoder)转换为一个低维度的潜在特征空间(类似PCA),并使用解码器(Decoder)将该特征空间重建为与原始数据尽可能相似的输出数据。自编码器由编码器和解码器两部分组成,其中编码器将高维度的输入数据映射到低维度的潜在特征空间,而解码器则将该潜在特征空间的表示映射回原来的高维度数据空间,以进行重构或预测任务。
自编码器可以用于无监督特征学习、数据降维、去噪、图像重建等多个领域。其中,通过限制编码和解码过程中的某些约束(如稀疏性、降噪、受限玻尔兹曼机等),可以进一步优化自编码器的表现,增强其鲁棒性和泛化性能。
![AE](https://img2023.cnblogs.com/blog/3204150/202401/3204150-20240111144048818-267309529.png)
自编码器其实是Reconstruction的过程,也就是输入的vector/embedding/representing/code和输出的vector/embedding/representing/code as close as possible.
变体 Denoising Auto-encoder
![DAE](https://img2023.cnblogs.com/blog/3204150/202401/3204150-20240111143759387-21190403.png)
![AE](https://img2023.cnblogs.com/blog/3204150/202401/3204150-20240111144256576-344789084.png)
Discrete Latent Representation
中间Encoder的输出也称作Latent Representation
![Discrete](https://img2023.cnblogs.com/blog/3204150/202401/3204150-20240111145650905-211550553.png)
原先是一个浮点数值的向量,可以让其二值化或者one-hot来得到新的向量,这一步应该是量化 (Quantization),从FP32转换为FP16或者INT8。
![Quantization](https://img2023.cnblogs.com/blog/3204150/202401/3204150-20240111150538168-667119462.png)
Variational Auto-Encoder
首先关于变分推理,具体的贝叶斯公式推导可见文章或视频(评论区笔记)
VAE的讲解视频P1,可从35:17开始观看,收益很大
![VAE](https://img2023.cnblogs.com/blog/3204150/202401/3204150-20240111215803949-1703449973.png)
简单来说,AE只会生成一个固定的Z码,但是因为训练数据的限制,实际不能很好拟合现实情况,所以引入VAE,它生成的是Z的概率分布然后采样出Z'送入Decoder
VQ-VAE
![VQ-VAE0](https://img2023.cnblogs.com/blog/3204150/202401/3204150-20240111152906473-1498519321.png)
![VQ-VAE1](https://img2023.cnblogs.com/blog/3204150/202401/3204150-20240116204254325-1318391025.png)
本文来自博客园,作者:Hunan_tiger,转载请注明原文链接:https://www.cnblogs.com/Hunan-tiger/p/17958402