判别器(Discriminator)输入一个图片
x
,输出y表示分类(仅有0和1两个分类)的概率,该模型可以很直观地用条件概率来描述——
PD(y|x)
,于是展开有:
PD(y|x)=⎧⎩⎨⎪⎪PD(y=1|x∈Xr)PD(y=0|x∈Xr)PD(y=1|x∈Xf)PD(y=0|x∈Xf)(1)
上式中“
x∈Xf
”表示:样本
x
来自假图(Fake Images)集合
Xf
,同理,“
x∈Xr
”表示:样本
x
来自真图(real Images)集合
Xr
。
PD(y|x)
表示给定输入
x
的条件概率,而
PD(y|x)
恰好是判别器(Discriminator)的输出。
同理,Ground Truth也可以用这样的描述方式,并且有:
Pgt(y|x)=⎧⎩⎨⎪⎪⎪⎪Pgt(y=1|x∈Xr)=1Pgt(y=0|x∈Xr)=0Pgt(y=1|x∈Xf)=0Pgt(y=0|x∈Xf)=1(2)
上式中“
Pgt(y=1|x∈Xr)=1
”表示:样本
x
来自真图(Real Images)集合
Xr
,而标签y取1的条件概率
Pgt(y=1|x∈Xr)
等于1。
假设:真图(real Images)集合
Xr
的样本数量是
|Xr|
,假图(Fake Images)集合
Xf
的样本数量是
|Xf|
,总样本数为N,且样本在整个由真图和假图构成的空间(
X=Xr∪Xf
)中均匀分布,则有:
P(x)=1|Xr|+|Xf|=1N(3)Pgt(y,x)=Pgt(y|x)P(x)=1N⋅Pgt(y|x)(4)PD(y,x)=PD(y|x)P(x)=1N⋅PD(y|x)(5)
我们前面将Discriminator的输出看作
PD(y|x)
,它与联合概率
PD(y,x)
仅仅相差一个常系数,单调性一致,最值位置一致,因此,我们可以将Discriminator的输出的角色转变一下,将它看作是联合概率
PD(y,x)
,现在考察的就是两个联合概率之间的差异。
Discriminator的输出
PD(y,x)
与Ground Truth的联合概率
Pgt(y,x)
之间的差异可以用交叉熵来衡量,如下:
−H(Pgt|PD)=∑xi∈Xf∪XrPgt(y=1,xi)⋅logPD(y=1,xi) + ∑xi∈Xf∪XrPgt(y=0,xi)⋅logPD(y=0,xi)=∑xi∈XrPgt(y=1,xi)⋅logPD(y=1,xi) + ∑xi∈XfPgt(y=0,xi)⋅logPD(y=0,xi)(6)
上式中其他项因为
Pgt(y=1|xi∈Xf)=Pgt(y=0|xi∈Xr)=0
,而消去,只剩下(6)式末两项。更进一步,根据(4)有
Pgt(y=0,xi∈Xf)=Pgt(y=1,xi∈Xr)=1N
。另外,Discriminator输出被定义为概率
PD(y,x)
,由此定义:
D(x)=PD(y=1,x)(7)
则
PD(y=0,x)=1−D(x)
,于是(6)可变换为:
−H(Pgt|PD)=1N(∑xi∈XrlogPD(y=1,xi) + ∑xi∈XflogPD(y=0,xi))=1N(∑xi∈XrlogD(xi) + ∑xi∈Xflog(1−D(xi)))(8)
若real样本与fake样本数量相等,则有:
−H(Pgt|PD)=12(Exi∈Xr(logD(xi)) + Exi∈Xf(1−logD(xi)))(9)
在训练时,我们一般取real样本与fake样本数量相等,于是Discriminator的Loss_D可以定义为:
Loss_D=Exi∈Xr(logD(xi)) + Exi∈Xf(1−logD(xi))(10)
这与上一篇(
GAN的Loss的比较研究(1)——传统GAN的Loss的理解1)从二进制交叉熵(Binary Cross Entropy,简称BCE)推导的结果一致。但我觉得似乎这个角度的推导更顺畅一些,上一篇直接是从每个样本的BCE开始推导,其实是假设了每个样本服从均匀分布的先决条件。