温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

条件变分自动编码器CVAE的基本原理和keras实现是怎样的

发布时间:2021-11-22 17:35:22 来源:亿速云 阅读:205 作者:柒染 栏目:大数据

本篇文章为大家展示了条件变分自动编码器CVAE的基本原理和keras实现是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

变分自动编码器(VAE)是一种有方向的图形生成模型,已经取得了很好的效果,是目前生成模型的最先进方法之一。它假设数据是由一些随机过程,涉及一个未被注意的连续随机变量z假设生成的z是先验分布Pθ(z)和条件生成数据分布Pθ(X | z),其中X表示这些数据。z有时被称为数据X的隐藏表示。

像任何其他自动编码器架构一样,它有一个编码器和一个解码器。编码器部分试图学习qφ(z | x),相当于学习数据的隐藏表示x或者x编码到隐藏的(概率编码器)表示。解码器部分试图学习Pθ(X | z)解码隐藏表示输入空间。图形化模型可以表示为下图。

条件变分自动编码器CVAE的基本原理和keras实现是怎样的

对模型进行训练,使目标函数最小化

条件变分自动编码器CVAE的基本原理和keras实现是怎样的

这种损失的第一项是重建错误或数据点的预期负对数可能性。期望是关于编码器的分布在表示通过采取一些样本。这个术语鼓励解码器在使用来自潜在分布的样本时学会重构数据。较大的错误表示解码器无法重构数据。

第二项是Kullback-Leibler编码器之间的分布q_φ(z | x)和p (z)。这个散度度量了在使用q表示z上的先验时损失了多少信息,并鼓励其值为高斯分布。

在生成过程中,来自N(0,1)的样本被简单地输入解码器。训练和生成过程可以表示为以下

条件变分自动编码器CVAE的基本原理和keras实现是怎样的

一种训练时变分自编码器实现为前馈神经网络,其中P(X|z)为高斯分布。红色表示不可微的采样操作。蓝色表示损失计算

条件变分自动编码器CVAE的基本原理和keras实现是怎样的

测试时变分的“自动编码器”,它允许我们生成新的样本。“编码器”路径被简单地丢弃。

对VAE进行如此简要的描述,其原因在于,VAE并不是本文的主要关注对象,而是与本文的主要主题紧密相关的。

用VAE生成数据的一个问题是,我们对生成的数据类型没有任何控制。例如,如果我们用MNIST数据集训练VAE,并尝试通过向解码器输入Z ~ N(0,1)来生成图像,它也会产生不同的随机数字。如果我们训练好,图像会很好,但我们将无法控制它会产生什么数字。例如,你不能告诉VAE生成一个数字“2”的图像。

为此,我们需要对VAE的体系结构进行一些修改。假设给定一个输入Y(图像的标签),我们希望生成模型生成输出X(图像)。所以,VAE的过程将被修改为以下:鉴于观察y, z是来自先验分布Pθ(z | y)和输出分布Pθ产生的x (x | y,z)。请注意,对于简单的VAE,之前是Pθ(z)和输出是由Pθ(x | z)。

条件变分自动编码器CVAE的基本原理和keras实现是怎样的

VAE中的可视化表示任务

这里编码器部分试图学习qφ(z | x, y),相当于学习隐藏的代表数据或编码xy条件。解码器部分试图隐藏表示学习Pθ(x | z, y)解码隐藏表示输入空间条件的y。图形化模型可以表示为如下图所示。

条件变分自动编码器CVAE的基本原理和keras实现是怎样的

条件VAE (Conditional VAE)的神经网络结构可以表示为如下图。

条件变分自动编码器CVAE的基本原理和keras实现是怎样的 

X是像。Y是图像的标签,它可以用一个离散向量表示。

CVAE的一个keras实现:https://github.com/nnormandin/ConditionalVAE/blob/master/ConditionalVAE.ipynb

上述内容就是条件变分自动编码器CVAE的基本原理和keras实现是怎样的,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI