变分自编码器(VAE)
前言
在这个GAN大行其道的时代,变分自编码器作为一种经典的生成模型(GAN有模型坍塌问题,咱们VAE就没有),好像没有必要存在了,其实不然,变分自编码器仍有其很大的价值,也广泛各种方向。经过了几天的学习和思考,特整理出此笔记,主要参考文献在本文末尾给出。网上也有很多博客,但其实那些博客里有很多细节东西没有讲清,或者有很多东西连博主都没有搞懂。毕竟VAE涉及的东西还是很多的。本文或许有诸多纰漏,希望能够得到读者的指正,谢谢。
从网络结构说起

图里面的细节不懂别想啦,把这篇文章看完了就懂了。对比着图可解释:我们首先给输入一张图片给进编码器(其实就是一个神经网络),之后通过编码器得到满足这张图片的高斯分布的均值和方差(为什么?稍后我们解释这个神经网络的作用),然后在这个高斯分布中进行采样得到样本,之后将这个样本送入解码器(神经网络)中,就得到解码后的图片啦。之后我们就可以利用解码器,直接从之前所得那个分布(其实是标准的正态分布,为什么?且看下文)里进行采样,送入Decoder里,就可以得到一张我们没有见过的图片啦。
呃,有点乱,那我们就从头开始讲吧。
隐变量
根源
变分贝叶斯
Reparameterization trick
网络结构

我们来回顾一下我们的整个结构,训练阶段我们从X经过Encoder得到后验分布Q(z|X),然后从这个分布里采样到Decoder里得到图片。生成图片时,我们从标准的正态分布采样送到Decoder就可以生成新图片。
最后我们假设我们的Decoder训练的分布是正态分布的话,那么我们就有一个MSE损失。
代码及实验结果
罢了,就到这吧。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/230468.html原文链接:https://javaforall.net
