GAN生成论文《The relativistic discriminator: a key element missing from standard GAN》

这篇比较经典,作者首先认为比如说WGAN,WGAN-GP,SN-GAN都是在GAN网络中使用了一个叫做积分概率度量(integral probability metrics,IPM)的模块来使得训练的过程中GAN趋向稳定。

GAN

作者在这里重新定义了GAN……
其实就是为了区分saturating和non-saturating,以及为了之后的描述方便,作者把常见的GAN网络公式 m i n G m a x D L ( G , D ) = m i n G m a x D ( E x ∼ p d a t a [ l o g ( D ( x ) ) ] + E z ∼ p z [ l o g ( 1 − D ( ( G ( z ) ) ) ] ) \mathop{min}\limits_G\mathop{max}\limits_D\mathcal{L}(G,D)=\mathop{min}\limits_G\mathop{max}\limits_D(\mathbb{E}_{x\sim p_{data}}[\mathop{log}(D(x))]+\mathbb{E}_{z\sim p_{z}}[\mathop{log}(1-D((G(z)))]) GminDmaxL(G,D)=GminDmax(Expdata[log(D(x))]+Ezpz[log(1D((G(z)))])
改写成了如下的形式:
L D = E x r ∼ P [ f 1 ~ ( D ( x r ) ) ] + E z ∼ P z [ f 2 ~ ( D ( G ( z ) ) ) ] L_D=\mathbb{E}_{x_r\sim\mathbb{P}}[\tilde{f_1}(D(x_r))]+\mathbb{E}_{z\sim\mathbb{P}_z}[\tilde{f_2}(D(G(z) ))] LD=ExrP[f1~(D(xr))]+EzPz[f2~(D(G(z)))]

L G = E x r ∼ P [ g 1 ~ ( D ( x r ) ) ] + E z ∼ P z [ g 2 ~ ( D ( G ( z ) ) ) ] L_G=\mathbb{E}_{x_r\sim\mathbb{P}}[\tilde{g_1}(D(x_r))]+\mathbb{E}_{z\sim\mathbb{P}_z}[\tilde{g_2}(D(G(z) ))] LG=ExrP[g1~(D(xr))]+EzPz[g2~(D(G(z)))]
P \mathbb{P} P是真实数据的数据分布, P z \mathbb{P}_z Pz是多变量的高斯分布,期望值为0,方差为1。
使用saturating loss的时候,saturating优化的损失函数后面那项是 l o g ( 1 − D ( G ( z ) ) log(1-D(G(z)) log(1D(G(z)),这里的 g 1 ~ = − f 1 ~ \tilde{g_1}=-\tilde{f_1} g1~=f1~, g 2 ~ = − f 2 ~ \tilde{g_2}=-\tilde{f_2} g2~=f2~,即通过交替的方式去最大化/最小化同样的损失函数。如果D网络被训练一个最优的分类器的时候,Standard GAN的loss function就近似于JS散度了。当然对于不同的GAN网络比如F-GANs的话就近似于f-散度,Wasserstein GAN就近似于Wasserstein距离,云云。因此,在saturating loss中训练G网络、最小化 L G L_G LG相当于最小化一种散度函数。这也是论文一开始介绍的,make GANs analogous to divergence minimization
使用non-saturating loss的时候,损失函数后面那项变成 l o g D ( G ( z ) ) logD(G(z)) logD(G(z)), g 1 ~ = f 1 ~ \tilde{g_1}=\tilde{f_1} g1~=f1~, g 2 ~ = f 2 ~ \tilde{g_2}=\tilde{f_2} g2~=f2~,训练优化的函数都相同,只不过是一部分使用真实数据,一部分使用假数据。因此,作者假设对于所有的GAN网络,都使用的是non-saturating loss。
SGAN使用的是交叉熵函数,比如 f 1 ~ ( D ( x ) ) = − l o g ( D ( x ) ) , f 2 ~ ( D ( x ) ) = − l o g ( 1 − D ( x ) ) \tilde{f_1}(D(x))=-log(D(x)),\tilde{f_2}(D(x))=-log(1-D(x)) f1~(D(x))=log(D(x)),f2~(D(x))=log(1D(x)), D ( x ) = s i g m o i d ( C ( x ) ) D(x)=\mathop{sigmoid}(C(x)) D(x)=sigmoid(C(x)), C ( x ) C(x) C(x)用于评价输入的数据是真或者是假。
为什么Standard GAN里面认为output是一个概率值呢?因为最小化上文所述的cross-entropy loss和最大化对数似然的伯努利变量是相同的。因此,D的输出结果被近似于伯努利分布,其表现为概率的形式。
这个地方比较简单,可参考https://blog.csdn.net/github_39421713/article/details/89213747

积分概率度量(Integral Probability Metrics)

IPM的数学表示如下:
I P M F ( P ∣ ∣ Q ) = s u p C ∈ F E x ∼ P [ C ( x ) ] − E x ∼ Q [ C ( x ) ] IPM_F(\mathbb{P}||\mathbb{Q})=\mathop{sup}\limits_{C\in \mathcal{F}}\mathbb{E}_{x \sim\mathbb{P} }[C(x)]-\mathbb{E}_{x\sim\mathbb{Q}}[C(x)] IPMF(PQ)=CFsupExP[C(x)]ExQ[C(x)]
F \mathcal{F} F是一类real valued的函数,返回真实值而非0~1之间的概率。

Standard GAN中缺少的部分

作者认为,真实数据的概率值 ( D ( x r ) ) (D(x_r)) (D(xr))应该是一个逐步下降的过程,假数据的概率值 ( D ( x f ) ) (D(x_f)) (D(xf))应该是一个逐步上升的过程,这是Standard GAN所欠缺的。
这里作者提出了三个论点:
Prior knowledge Argument(从先验知识的观点解释)
作者认为Standard GAN里没有利用到Discriminator中有一半的real data这个先验知识,原因如下:
在经过生成器训练之后,真实数据 x r x_r xr和假数据 x f x_f xf的critic值是近似的,也就是有 C ( x f ) ≈ C ( x r ) C(x_f)\approx C(x_r) C(xf)C(xr)。对于D网络而言,输入中一半是真实数据一半是假数据,但由于D网络并不知道这个先验知识,就会认为真实数据和假数据都是真实的,也就是出现对所有的 x x x都有 D ( x ) ≈ 1 D(x)\approx1 D(x)1的情况。
但假设存在生成器训练的时候learning rate较大或者多轮迭代之后,会出现假数据的值比真实数据还要高,也就是 C ( x f ) > C ( x r ) C(x_f)>C(x_r) C(xf)>C(xr)。也就是说,在这种情况下,假数据的分数值应该高于真实的数据。
作者认为,Standard GAN缺少真实数据的值和分布来作为一个先验知识,因此D网络没有办法去做出一个合理的预测;另一方面,IPM-based的GAN网络无论如何都有真实的数据来进行一个约束条件。这里作者从直觉上就感觉出来,Standard GAN中的D网络应该同时依赖于真实数据和假的数据。
Divergence Minimization Argument(散度最小化的观点)
SGAN的D网络损失函数等同于JS散度,因此计算JS散度也可以表示为如下这种公式: J S D ( P ∣ ∣ Q ) = 1 2 ( l o g ( 4 )

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值