条件变分自动编码器

条件变分自编码器CVAE
条件变分自编码器概述

VAE的局限

对于普通的VAE来说,其生成能力和过程表现在从一个隐藏的变量空间中采样,然后去解码生成一个新的东西,拿minist手写数据集举例的话,我们在生成数字之前并不知道解码器会从这个隐变量z中解码出什么数字。这是因为原始的VAE直接对隐变量z和数据X建模,而CVAE可以对定义在条件概率下的隐变量z和数据X建模。

VAE公式

logP(X)DKL[Q(z|X)||P(z|X)]=E[logP(X|z)]DKL[Q(z|X)||P(z)]

编码器是在基于X对隐变量z建模。

CVAE公式

上述VAE中不管X的类型是什么,如minist中的X为0~9,不同的数字可能有不一样的数据分布,但这个信息并没有得到利用,所以可以加入数据的标签作为条件,得到编码器:Q(Z|X,c),解码器:P(X|z,c),这里c是先验知识,如每张图片的标签,这样就推广为CVAE。
公式如下:

logP(X|c)DKL[Q(z|X,c)||P(z|X,c)]=E[logP(X|z,c)]DKL[Q(z|X,c)||P(z|c)]

这样,隐变量的分布局限在条件c下,对于编码器即P(z|c),在每一个c的值下面,都有一个隐变量z的分布P(Z),对解码器也是如此。

条件变分自编码概述

条件变分自动编码器