VAE的局限
对于普通的VAE来说,其生成能力和过程表现在从一个隐藏的变量空间中采样,然后去解码生成一个新的东西,拿minist手写数据集举例的话,我们在生成数字之前并不知道解码器会从这个隐变量z中解码出什么数字。这是因为原始的VAE直接对隐变量z和数据X建模,而CVAE可以对定义在条件概率下的隐变量z和数据X建模。
VAE公式
编码器是在基于X对隐变量z建模。
CVAE公式
上述VAE中不管X的类型是什么,如minist中的X为0~9,不同的数字可能有不一样的数据分布,但这个信息并没有得到利用,所以可以加入数据的标签作为条件,得到编码器:
Q(Z|X,c)
Q
(
Z
|
X
,
c
)
,解码器:
P(X|z,c)
P
(
X
|
z
,
c
)
,这里c是先验知识,如每张图片的标签,这样就推广为CVAE。
公式如下:
这样,隐变量的分布局限在条件c下,对于编码器即 P(z|c) P ( z | c ) ,在每一个c的值下面,都有一个隐变量z的分布 P(Z) P ( Z ) ,对解码器也是如此。