VAE与GAN的关系(2)

上文从 K L ( q ( x , y ) p ( x , y ) ) 推导出GAN的两个Loss,并给出生成器Loss的正则项设计思路,接下来我们仍从引入隐变量构成联合概率分布角度,推导VAE的Loss。
首先,我们观察 K L ( p ( x , z ) q ( x , z ) ) 有:

K L ( p ( x , z ) q ( x , z ) ) = K L ( p ( x ) q ( x ) ) + p ( x ) K L ( p ( z | x ) q ( z | x ) ) d x K L ( p ( x ) q ( x ) ) ( 1 )

K L ( p ( x , z ) q ( x , z ) ) K L ( p ( x ) q ( x ) ) 的上界,优化此上界就达到了优化 K L ( p ( x ) q ( x ) ) 本身。
对于VAE而言, x 表示数据样本空间的一个数据点,e.g:MNIST的图片空间是784(28*28)维度空间; z 表示编码器生成的编码(Code),它是一个多维随机变量,一般为100维,于是有:
1、真实分布: p ( x , z ) = p ( z | x ) p ( x )
2、拟合分布: q ( x , z ) = q ( x | z ) q ( z )
在VAE中,可令 q ( z ) 为标准正态分布, p ( z | x ) 为正态分布,而 q ( x | z ) 为随机变量 z 到空间 X 的映射的随机分布的密度。回到联合概率分布KL散度:
K L ( p ( x , z ) q ( x , z ) ) = p ( x , z ) log p ( x , z ) q ( x , z ) d x d z = p ( z | x ) p ( x ) log p ( z | x ) p ( x ) q ( x | z ) q ( z ) d x d z = p ( z | x ) p ( x )   [ log p ( z | x ) + log p ( x ) log q ( x | z ) log q ( z ) ] d x d z = p ( z | x ) p ( x ) log p ( x ) d x d z p ( z | x ) p ( x ) log q ( x | z ) d x d z + p ( z | x ) p ( x ) log p ( z | x ) q ( z ) d x d z ( 2 )

1、右边第一项是 p ( x , z ) p ( x ) log p ( x ) d x d z 是真实分布的积分,与VAE可调参数无关,因而在优化时无需考虑,可忽略。
2、第三项有:
p ( z | x ) p ( x ) log p ( z | x ) q ( z ) d x d z = E x p ( x ) ( p ( z | x ) log p ( z | x ) q ( z ) d z ) = E x p ( x ) ( K L ( p ( z | x ) q ( z ) ) ) ( 3 )

3、第二项有:
p ( z | x ) p ( x ) log q ( x | z ) d x d z = p ( x ) p ( z | x ) log q ( x | z ) d x d z = E x p ( x ) ( p ( z | x ) log q ( x | z ) d z ) ( 4 )

x p ( x ) 仅抽样1个点,得到 x i 作为Encoder的输入,求 x p ( x ) 的期望就失去了意义,则(4)式变形为:
p ( z | x ) p ( x ) log q ( x | z ) d x d z = p ( z | x i ) log q ( x | z ) d z = E z p ( z | x i ) ( log q ( x | z ) ) ( 5 )

z p ( z | x i ) 也仅抽一个样本 z i ,(5)式得到 log q ( x i | z i )
综上,对VAE的Encoder和Decoder优化时,有以下等价关系:
K L ( p ( x , z ) q ( x , z ) ) log q ( x i | z i )   +   E x p ( x ) ( K L ( p ( z | x ) q ( z ) ) ) ( 6 )

(6)式右端恰好是VAE的Loss表达式。

小结:
1、GAN与VAE两个生成模型的Loss推导都可以放在联合概率密度的KL散度的统一框架下进行讨论,而且都得到了与原始推导相同的结果;
2、GAN与VAE所设计的隐变量不同,结构不同,导致了近似处理的方法不同,但它们的出发点是相同的(上述第一点)。
3、GAN最后的Loss反映的是生成样本与真实样本的概率流型之间的距离,而VAE最后的Loss反映的是Auto-Encoder的输出 x ^ 与原来数据点 x 两点之间的距离。因而导致了生成效果的不同,以及训练难度的不同。

问题:能否将两者结合起来呢?

本文主要参考文章:
文章:Variational Inference: A Unified Framework of Generative Models and Some Revelations,原文:arXiv:1807.05936,中文链接:https://kexue.fm/archives/5716

猜你喜欢

转载自blog.csdn.net/StreamRock/article/details/81734864
VAE
GAN