Generative Adversarial Nets
上周周报已经写了这篇论文,本周相对GAN网络的LOSS进行进一步的学习和研究。

GAN网络:
在这里插入图片描述
条件:G依照真实图像生成大量的类似图像,D是辨别输入的图像是真实图像还是G生成的虚假图像。
原理:G和D是互相促进的。G的目的是产生的图像让D感到模糊不知道该分成realistic(看起来像是现实的)还是fake(看起来是假的),D的目的是将realistic和fake的图像准确分辨。所以G产生的图像会越来越真,D的辨别能力会越来越强,最终达到一个平衡。这种纳什均衡保证了GAN产生的所有图像都可以与原始图像属于一个类别。
作用:GAN大量用于扩充数据集或者给未标记的数据集打标签等任务上。

一些GAN网络的比较:
1,用于图像生成方面在这里插入图片描述
在这里插入图片描述
2.用于风格迁移
在这里插入图片描述
3.图像还原与修复
在这里插入图片描述
LOSS:
对于真实数据,令LABAL=1计算代价函数来训练判别器:
d_loss_real = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(logits=d_logits_real, labels=tf.ones_like(d_logits_real) * (1 - smooth)))
对于生成器,令LABAL=0计算代价函数来训练判别器:
d_loss_fake =
tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(logits=d_logits_fake, labels=tf.zeros_like(d_logits_fake)))

所以判别器的代价函数为:
d_loss = d_loss_real + d_loss_fake
具体解释如下:
有两个Loss:Loss_D(判别网络损失函数)、Loss_G(生成网络损失函数)。
Loss_D只有两个分类,Real image判为1,Fake image(由G生成)判为0,因而可以用二进制交叉熵(BCELoss)来实现Loss_D。

熵(Entropy),是描述一个随机信号源的信息量的指标,为叙述方便,采用离散信号源。设信号源(S)可以发送N个符号{S1,S2,…,SN}, 符号Si出现的概率为Pi,则该信号源所发送一个符号的平均信息量,即熵为:
在这里插入图片描述
于是,熵就可以看成是一个概率的信息度量,于是从信息论过渡到概率度量上。对于连续概率分布,使用概率密度P(x)代替(1)式中的概率Pi,有:
在这里插入图片描述
交叉熵(Cross Entropy)是描述两个随机分布(P、Q)差异的一个指标,其定义如下:
在这里插入图片描述
P、Q的顺序不能互换。当P与Q相同时,交叉熵取最小值,此时计算的是P(或Q)的熵。
所谓二进制交叉熵(Binary Cross Entropy)是指随机分布P、Q是一个二进制分布,即P和Q只有两个状态0-1。令p为P的状态1的概率,则1-p是P的状态0的概率,同理,令q为Q的状态1的概率,1-q为Q的状态0的概率,则P、Q的交叉熵为(只列离散方程,连续情况也一样):
在这里插入图片描述
在GAN中,判别器(Discriminator)的输出与ground-truth(它的取值只有0-1)被看作是概率。交叉熵就是用来衡量这两个概率之间差异的指标:p反映的是ground-truth认为来自real的概率,用L表示(ground truth label)此分布,它只取两个值100%和0%,即1和0;q反映的是Discriminator认为的来自real的概率,用D(Discriminator prediction)表示此分布,它的取值是[0,1]。
一个样本(1幅图片)x,假如来自real,p则为1,q为D(Xr),其交叉熵输出是:
在这里插入图片描述
假如来自fake,p则为0,q为D(Xf),其交叉熵为:
在这里插入图片描述
于是,对于一个样本集,一半来自真实(real),一半来生成器(fake),其交叉熵的平均是:
在这里插入图片描述
D的目标是让Pd接近理想概率分布Pi(Pi分布是:real sample输入时,概率输出为1;fake sample输入时,概率输出为0)。因此交叉熵越小越好,即:
在这里插入图片描述
传统的GAN的object function是:
在这里插入图片描述
公式(7)中Loss_D等于object function取负号,loss越小越好。两类别各自的期望:
Discriminator的Loss:
即让D判断real和fake的能力越高越好,即real越接近1越好,fake越接近0越好。
在这里插入图片描述
Generator的Loss:
即让G尽可能以假乱真,即real越接近0越好,fake越接近1越好。公式9为公式6中的Xr,Xf互换,H(L∣Df)是输入fake图像,判为1。
在这里插入图片描述
参考文献:Generative Adversarial Nets
https://blog.csdn.net/StreamRock/article/details/81096105

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐