概率密度比
概率密度比是生成模型的重要组成部分,无论是在VAEs的情况下显式的(比如两个高斯分布之间的KL散度),还是在GANs的情况下隐式的。即我们在计算两个分布之间的KL散度(比如 p g p_{g} pg与 p d a t a p_{data} pdata之间的KL散度),这通常归结为计算两个概率分布对数的样本平均值。
以VAE举例,VAE的ELBO是:
E
L
B
O
=
E
q
(
z
∣
x
)
[
l
o
g
p
(
x
∣
z
)
]
−
K
L
[
q
(
z
∣
x
)
∣
∣
p
(
z
)
]
=
E
q
(
z
∣
x
)
[
l
o
g
p
(
x
∣
z
)
]
−
E
q
(
z
∣
x
)
[
l
o
g
q
(
z
∣
x
)
p
(
z
)
]
\begin{aligned} ELBO = & E_{q(z|x)}[logp(x|z)]-KL[q(z|x)||p(z)] \\ = & E_{q(z|x)}[logp(x|z)]-E_{q(z|x)}[log{q(z|x) \over p(z)}] \end{aligned}
ELBO==Eq(z∣x)[logp(x∣z)]−KL[q(z∣x)∣∣p(z)]Eq(z∣x)[logp(x∣z)]−Eq(z∣x)[logp(z)q(z∣x)]
q ( z ∣ x ) p ( z ) {q(z|x) \over p(z)} p(z)q(z∣x)称之为概率密度比,这一项如何求出?VAE假设二者都是高斯分布,所以可以写出解析的形式,从而求解KL项,但是这也限制了VAE的能力,即样本的分布并不一定服从高斯分布,如果强制它服从高斯分布,必定会对VAE效果造成影响。相对而言,GAN就没有这个限制。是否可以使用GAN的思想,即不假设先验或者后验的具体形式,而是由网络去逼近 q ( z ∣ x ) p ( z ) {q(z|x) \over p(z)} p(z)q(z∣x),也就算出了VAE中的KL项。
鉴别器估计概率密度比
假设分布
p
∼
N
(
5
,
0.2
)
p \sim N(5, 0.2)
p∼N(5,0.2),
q
∼
U
(
−
20
,
20
)
q \sim U(-20,20)
q∼U(−20,20),我们想算这两个分布的概率密度比。在两个分布形式已知的情况下很好算出,就是
q
p
=
1
40
∗
N
(
5
,
0.2
)
{q \over p}={1 \over 40*N(5,0.2)}
pq=40∗N(5,0.2)1
如果 p 或 者 q p或者q p或者q其中一个分布形式未知,或者两个分布都未知,但我们有一些从分布 p p p中采样的样本点 x p x_p xp(标签设置为1)和从分布 q q q中采样的样本点 x q x_{q} xq(标签设置为0)。能否根据这些样本点估计出二者的概率密度比?答案是可以的,使用逻辑回归便可。
根据贝叶斯公式有:
p
(
Y
=
1
∣
X
)
=
p
(
X
∣
Y
=
1
)
p
(
Y
=
1
)
p
(
X
∣
Y
=
1
)
p
(
Y
=
1
)
+
p
(
X
∣
Y
=
0
)
p
(
Y
=
0
)
p(Y=1|X)={p(X|Y=1) p(Y=1)\over p(X|Y=1)p(Y=1)+p(X|Y=0)p(Y=0)}
p(Y=1∣X)=p(X∣Y=1)p(Y=1)+p(X∣Y=0)p(Y=0)p(X∣Y=1)p(Y=1)
其中,
Y
表
示
样
本
标
签
Y表示样本标签
Y表示样本标签,
p
(
Y
=
1
)
p(Y=1)
p(Y=1)和
p
(
Y
=
0
)
p(Y=0)
p(Y=0)在样本给定的情况下,也就是
x
p
和
x
q
x_{p}和x_{q}
xp和xq给定的情况下是一个常数,如果设定
x
p
x_{p}
xp的数量等于
x
q
x_q
xq的数量,那么
p
(
Y
=
1
)
=
p
(
Y
=
0
)
=
0.5
p(Y=1)=p(Y=0)=0.5
p(Y=1)=p(Y=0)=0.5。
也就是上式可以化简为
p
(
Y
=
1
∣
X
)
=
p
(
X
∣
Y
=
1
)
p
(
X
∣
Y
=
1
)
+
p
(
X
∣
Y
=
0
)
p(Y=1|X)={p(X|Y=1) \over p(X|Y=1)+p(X|Y=0)}
p(Y=1∣X)=p(X∣Y=1)+p(X∣Y=0)p(X∣Y=1)
令:
p
(
X
∣
Y
=
1
)
=
p
(
x
)
,
p
(
X
∣
Y
=
0
)
=
q
(
x
)
p(X|Y=1)=p(x), p(X|Y=0)=q(x)
p(X∣Y=1)=p(x),p(X∣Y=0)=q(x),那么:
p
(
Y
=
1
∣
X
)
=
1
1
+
q
(
x
)
p
(
x
)
(1)
\tag{1} p(Y=1|X)={1 \over 1+{q(x) \over p(x)}}
p(Y=1∣X)=1+p(x)q(x)1(1)
在逻辑回归中,给定一个样本,其标签为1的概率是:
p
(
Y
=
1
∣
X
)
=
1
1
+
e
−
(
w
T
X
+
b
)
(2)
\tag{2} p(Y=1|X)={1 \over 1+e^{-(w^{T}X+b)}}
p(Y=1∣X)=1+e−(wTX+b)1(2)
比较(1)和(2)式,
q
(
x
)
p
(
x
)
=
e
−
(
w
T
X
+
b
)
{q(x) \over p(x)}=e^{-(w^{T}X+b)}
p(x)q(x)=e−(wTX+b),所以概率密度比就可以用
e
−
(
w
T
X
+
b
)
e^{-(w^{T}X+b)}
e−(wTX+b)来代替。
在GAN中,GAN的鉴别器本质上就是逻辑回归,鉴别器具有这样的结构, g g g是一个非线性神经网络,最后一层激活函数是Sigmoid。输入是 x x x,输出是鉴别器判断样本 x x x为真的概率。
所以,更一般的,我们用 g ( x ) g(x) g(x)来代替 w T X + b w^{T}X+b wTX+b,也就是 q ( x ) p ( x ) = e − g ( x ) {q(x) \over p(x)}=e^{-g(x)} p(x)q(x)=e−g(x), g ( x ) g(x) g(x)作为Sigmoid的输入。
参考博客:
Discriminators as approximations to likelihood ratios¶