✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。
我是Srlua小谢,在这里我会分享我的知识和经验。🎥
希望在这里,我们能一起探索IT世界的奥妙,提升我们的技能。🔮
记得先点赞👍后阅读哦~ 👏👏
📘📚 所属专栏:传知代码论文复现
欢迎访问我的主页:Srlua小谢 获取更多信息和资源。✨✨🌙🌙
目录
本文所有资源均可在该地址处获取。
1 简介
参考论文文章:
https://arxiv.org/pdf/1312.6114
https://arxiv.org/pdf/1606.05908v2
如下图所示,生成模型的目标是在一个已只分布p(z)中随机采样z,经过网络G,生成的结果x~=G(z)x=G(z)是满足训练数据p(x)的分布,我们假定生成的分布为pgpg,训练样本的分布为pdatapdata,一个非常麻烦的事是我们不知道,也无法去知道pdatapdata的分布,无法去做损失函数求解G。你可以这样理解,我们生成网络的目的是要得到pg=pdatapg=pdata,如果我都知道pdatapdata,我直接在pdatapdata采样不就完事了,还需要生成网络干嘛?让我们来回顾一下GAN网络,GAN怎么做的呢,GAN网络结构引入了D判别器,可以去翻一下前面的GAN,你会发现所有的损失函数是在D网络出来结果的损失,进而去约束G网络,实际上根本没有去求解pdatapdata的分布,通过对D做损失优化,最终G网络生成的pgpg是等于pdatapdata的,不得不佩服D网络引入的巧妙性。

那么VAE是怎么做的,通过我们前面那么多介绍,想必应该很清楚了,单独只有一个G网络,根本是无法实现生成任务的。GAN是在后面加的判别器能更好的求解损失。那么能否在前面加一个什么网络,使我们的损失函数好做一些,能够求解呢,当然VAE便是如此,在前面加上一个解码网络,接下来我们看看VAE这个过程。
模型结构:先简单解释一下流程,Q是一个编码器,输出的结果是均值和方差,在这个均值方差的正太分布上采样一个z,输入解码网络P得到生成的结果。接下来将围绕这个结构来详细说一下VAE。

AE自编码器(Autoencoder),是把输入X编码到一个laten space中,通过一个低维向量来表示X。VAE变分自编码器(Variational AutoEncoders),laten space是满足正太分布。由于AE的laten space不是一个分布,无法从laten space采样。而如果想要有生成能力,VAE巧妙的使laten space满足正太分布,这样在正太分布上采样即完成了一个生成模型。
从模型结构我们很好理解VAE这样做是合理的,只要把X编码到一个特定分布的laten space中,从而在这个特定分布采样到解码网络即完成生成,重建损失就是AE的重建损失,为了使laten space满足特定的分布,在加上一个KL散度来约束编码器,而事实上VAE中的V(变分)就是因为VAE的推导就是因为用到了KL散度(进而也包含了变分法)。
这样整个训练和loss也就出来,因为laten space 的分布是我们假定的特定分布(如标准正太分布),因此KL散度是可求的,重建损失也就跟AE是一样的,只需要求输入和最终输出结果的距离即可,简直很完美。然而这些都真是我们想的是这样,背后的理论依据又是怎么样的。
2 理论推导
首先要解释的一点是,样本X={x(i)}1NX={x(i)}1N是独立通分布。首先作者定义了一种分布pθpθ,参数为θθ,输入x与隐变量z的关系可以表示为:
pθ(z)pθ(z)表示隐变量z的先验分布;
pθ(x∣z)pθ(x∣z)为释然(由果到



最低0.47元/天 解锁文章
902

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



