上文从
K L ( q ( x , y ) ‖ p ( x , y ) )
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 , 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
)
)
+
∫
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
,
z
)
‖
q
(
x
,
z
)
)
是
K L ( p ( x ) ‖ q ( x ) )
K
L
(
p
(
x
)
‖
q
(
x
)
)
的上界,优化此上界就达到了优化
K L ( p ( x ) ‖ q ( x ) )
K
L
(
p
(
x
)
‖
q
(
x
)
)
本身。
对于VAE而言,
x
x
表示数据样本空间的一个数据点,e.g:MNIST的图片空间是784(28*28)维度空间;
z
z
表示编码器生成的编码(Code),它是一个多维随机变量,一般为100维,于是有:
1、真实分布:
p ( x , z ) = p ( z | x ) p ( x )
p
(
x
,
z
)
=
p
(
z
|
x
)
p
(
x
)
2、拟合分布:
q ( x , z ) = q ( x | z ) q ( z )
q
(
x
,
z
)
=
q
(
x
|
z
)
q
(
z
)
在VAE中,可令
q ( z )
q
(
z
)
为标准正态分布,
p ( z | x )
p
(
z
|
x
)
为正态分布,而
q ( x | z )
q
(
x
|
z
)
为随机变量
z
z
到空间
X
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 )
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
∬
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 )
∬
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 )
∬
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 )
x
∼
p
(
x
)
仅抽样1个点,得到
x i
x
i
作为Encoder的输入,求
x ∼ p ( x )
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 )
∬
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
∼
p
(
z
|
x
i
)
也仅抽一个样本
z i
z
i
,(5)式得到
log q ( x i | z i )
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 )
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
^
与原来数据点
x
x
两点之间的距离。因而导致了生成效果的不同,以及训练难度的不同。
问题:能否将两者结合起来呢?
本文主要参考文章: 文章:Variational Inference: A Unified Framework of Generative Models and Some Revelations,原文:arXiv:1807.05936,中文链接:https://kexue.fm/archives/5716