GAN的Loss的比较研究(2)——传统GAN的Loss的理解2

判别器(Discriminator)输入一个图片 x ,输出y表示分类(仅有0和1两个分类)的概率,该模型可以很直观地用条件概率来描述—— P D ( y | x ) ,于是展开有:

P D ( y | x ) = { P D ( y = 1 | x X r ) P D ( y = 0 | x X r ) P D ( y = 1 | x X f ) P D ( y = 0 | x X f ) ( 1 )

上式中“ x X f ”表示:样本 x 来自假图(Fake Images)集合 X f ,同理,“ x X r ”表示:样本 x 来自真图(real Images)集合 X r P D ( y | x ) 表示给定输入 x 的条件概率,而 P D ( y | x ) 恰好是判别器(Discriminator)的输出。
同理,Ground Truth也可以用这样的描述方式,并且有:
P g t ( y | x ) = { P g t ( y = 1 | x X r ) = 1 P g t ( y = 0 | x X r ) = 0 P g t ( y = 1 | x X f ) = 0 P g t ( y = 0 | x X f ) = 1 ( 2 )

上式中“ P g t ( y = 1 | x X r ) = 1 ”表示:样本 x 来自真图(Real Images)集合 X r ,而标签y取1的条件概率 P g t ( y = 1 | x X r ) 等于1。
假设:真图(real Images)集合 X r 的样本数量是 | X r | ,假图(Fake Images)集合 X f 的样本数量是 | X f | ,总样本数为N,且样本在整个由真图和假图构成的空间( X = X r X f )中均匀分布,则有:
P ( x ) = 1 | X r | + | X f | = 1 N ( 3 ) P g t ( y , x ) = P g t ( y | x ) P ( x ) = 1 N P g t ( y | x ) ( 4 ) P D ( y , x ) = P D ( y | x ) P ( x ) = 1 N P D ( y | x ) ( 5 )

我们前面将Discriminator的输出看作 P D ( y | x ) ,它与联合概率 P D ( y , x ) 仅仅相差一个常系数,单调性一致,最值位置一致,因此,我们可以将Discriminator的输出的角色转变一下,将它看作是联合概率 P D ( y , x ) ,现在考察的就是两个联合概率之间的差异。
Discriminator的输出 P D ( y , x ) 与Ground Truth的联合概率 P g t ( y , x ) 之间的差异可以用交叉熵来衡量,如下:
H ( P g t | P D ) = x i X f X r P g t ( y = 1 , x i ) log P D ( y = 1 , x i )   +   x i X f X r P g t ( y = 0 , x i ) log P D ( y = 0 , x i ) = x i X r P g t ( y = 1 , x i ) log P D ( y = 1 , x i )   +   x i X f P g t ( y = 0 , x i ) log P D ( y = 0 , x i ) ( 6 )

上式中其他项因为 P g t ( y = 1 | x i X f ) = P g t ( y = 0 | x i X r ) = 0 ,而消去,只剩下(6)式末两项。更进一步,根据(4)有 P g t ( y = 0 , x i X f ) = P g t ( y = 1 , x i X r ) = 1 N 。另外,Discriminator输出被定义为概率 P D ( y , x ) ,由此定义:
D ( x ) = P D ( y = 1 , x ) ( 7 )

P D ( y = 0 , x ) = 1 D ( x ) ,于是(6)可变换为:
H ( P g t | P D ) = 1 N ( x i X r log P D ( y = 1 , x i )   +   x i X f log P D ( y = 0 , x i ) ) = 1 N ( x i X r log D ( x i )   +   x i X f log ( 1 D ( x i ) ) ) ( 8 )

若real样本与fake样本数量相等,则有:
H ( P g t | P D ) = 1 2 ( E x i X r ( log D ( x i ) )   +   E x i X f ( 1 log D ( x i ) ) ) ( 9 )

在训练时,我们一般取real样本与fake样本数量相等,于是Discriminator的Loss_D可以定义为:
L o s s _ D = E x i X r ( log D ( x i ) )   +   E x i X f ( 1 log D ( x i ) ) ( 10 )

这与上一篇( GAN的Loss的比较研究(1)——传统GAN的Loss的理解1)从二进制交叉熵(Binary Cross Entropy,简称BCE)推导的结果一致。但我觉得似乎这个角度的推导更顺畅一些,上一篇直接是从每个样本的BCE开始推导,其实是假设了每个样本服从均匀分布的先决条件。

猜你喜欢

转载自blog.csdn.net/StreamRock/article/details/81106989
今日推荐