目录
自编码器原理及使用Pytorch框架实现(AutoEncoder)
1.了解变分自编码器(VAE)
基本的编码器本质上是学习输入的x和隐藏变量z之间映射关系,是一个判别模型(Discriminator Model),并不是一个生成模型(Generator Model)。关于自编码器的基本原理请读者阅读上述链接中的内容。
- 给定一个隐藏变量的分布p(z),如果可以学习到条件概率分布p(x | z),则通过联合概率分布p(x,z) = p(x | z),p(z)进行采样学习,生成不同的样本。
- 变分自编码器可以达到上面给定的要求
-
变分自编码同样具有编码器和解码器。编码器接收输入的x,输出隐藏变量z,解码器接收隐藏变量z,输出近似x的变量x'。
-
VAE模型对隐藏变量z的分布有显式约束,希望隐藏变量z符合预先设定的先验分布p(z)。
2.变分自编码器具体流程
(1)具体流程
- 变分自编码器的编码器(Encoder)和解码器(Decoder)在数据流上并不是相连的,不会直接将编码器输出的结果传递到解码器的输入上。
(2)注意具体细节

3.变分自编码器模型结构

(1)编码器(Encoder)
假设设置的batchSize = b,并且每个样本生成一个均值和一个标准差,编码器的过程如下图所示。

(2)解码器(Decoder)

编码器输出的均值和标准差服从高斯分布,解码器从对应的高斯分布中随机抽样z作为输入。
4.Reparameterization Trick
提示:变分自编码器的编码器(Encoder)和解码器(Decoder)在数据流上并不是相连的,不会直接将编码器输出的结果传递到解码器的输入上。为了解决这个问题,提出了一种连续可到的解决方案,称之为Reparameterization Trick。
Reparameterization Trick解决方案如下:

5.变分自编码器损失函数

6.VAE代码实现
Github代码实现: GitHub - KeepTryingTo/Pytorch-GAN: 使用Pytorch实现GAN 的过程
变分自编码器是一种生成模型,通过编码器和解码器学习输入数据与隐藏变量之间的映射。编码器输出的均值和标准差用于在高斯分布中采样得到隐藏变量z,解码器则根据z生成近似输入的数据。ReparameterizationTrick解决了编码器和解码器在数据流上的断开问题,使得模型训练成为可能。文章还介绍了VAE的损失函数以及提供了Pytorch的代码实现示例。




1918

被折叠的 条评论
为什么被折叠?



