GAN损失函数的理解:

GAN损失函数的理解:

因为根据对GAN的理解来看,GAN的生成器希望输出的数据分布能够更加的接近真实数据的分布,同时GAN的判别器需要从真实数据和生成器输出的数据之间做出判断,找到真实数据和fake数据。根据GAN的损失函数:
min⁡Gmax⁡DL(D,G)=Exr∼Pr(.)logD(x)+Ez∼Pg(.)log[1−D(G(z))] \min_G \max_D L(D,G) = E_{x_r\sim P_r(.)}logD(x)+E_{z\sim P_g(.)}log[1-D(G(z))] GminDmaxL(D,G)=ExrPr(.)logD(x)+EzPg(.)log[1D(G(z))]
其中 ,Exr∼Pr(.)E_{x_r\sim P_r(.)}ExrPr(.)Ez∼Pg(.)E_{z\sim P_g(.)}EzPg(.) 表示真实数据和生成数据概率。

所以,从损失函数中可以看到损失函数的计算都是在D(判别器)中产生,因为D的输出一般是TRUE/Fake的判断,所以整体上采用的是二进制交叉熵函数。

左边包含了两个部分:min⁡G\min GminGmax⁡D\max DmaxD ,所以可以分成两步进行:

首先是对于判别器部分:
max⁡DL(D,G)=Exr∼Pr(.)logD(x)+Ez∼Pg(.)log[1−D(G(z))] \max_D L(D,G) = E_{x_r\sim P_r(.)}logD(x)+E_{z\sim P_g(.)}log[1-D(G(z))] DmaxL(D,G)=ExrPr(.)logD(x)+EzPg(.)log[1D(G(z))]
所以,对于1−D(G(z))1-D(G(z))1D(G(z)) 希望可以尽可能的逼近于1,即使得判别器可以准确的辨别生成图片。对于判别器的训练要保证G(生成器)不变,右式第一项中Exr∼Pr(.)logD(x)E_{x_r\sim P_r(.)}logD(x)ExrPr(.)logD(x) 的输入采样自真实数据,所以期望D(x)D(x)D(x) 趋近于1.

然后是生成器部分:
min⁡GL(D,G)=Exr∼Pr(.)logD(x)+Ez∼Pg(.)log[1−D(G(z))] \min_G L(D,G) = E_{x_r\sim P_r(.)}logD(x)+E_{z\sim P_g(.)}log[1-D(G(z))] GminL(D,G)=ExrPr(.)logD(x)+EzPg(.)log[1D(G(z))]
同理,对于生成器的训练要保证判别器部分保持不变,此时主要看第二项。因为想要使得生成的数据可以通过判别器的判别,所以就需要使得D(G(z))D(G(z))D(G(z)) 接近于1,即生成的数据通过判别器,所以对于Ez∼Pg(.)log[1−D(G(z))]E_{z\sim P_g(.)}log[1-D(G(z))]EzPg(.)log[1D(G(z))] 就要尽可能的小,所以要min⁡G\min GminG 。此时就体现了博弈学习的思想,也就是说,如果判别器判别出来就要对生成器做出一个更新,使得生成器变得更好,如果判别器没有准确判断,那么就要对判别器进行训练。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜游神fff

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值