深度学习【44】LSGAN

论文:Least Squares Generative Adversarial Networks

LSGAN将原始GAN的损失函数由对数损失函数变成了最小二乘损失函数:
这里写图片描述
对比一下原始GAN损失函数:
这里写图片描述

阅读论文的时候,一看到这个损失函数。我就想这么简单,谁不会啊!!确实很简单,不过论文还是给了充足的理论证明的。而且损失函数里面的a,b,c是有约束的,不能随便搞。

原始GAN证明损失函数的有效性是通过KL对比散度理论证明的。这篇文章也证明了他们的损失函数是有效的。我们都知道KL对比散度是衡量两个分布之间的差异性。不过KL对比散度的函数是tlog(t),而不是最小二乘函数。其实对比散度有很多种我们统称他们为:f-对比散度(wiki)。与最小二乘函数对应的对比散度是皮尔森卡方对比散度(Pearson 2 X 2 -divergence)。其函数是:

(OE)2E ( O − E ) 2 E

ok,我们现在来看看论文怎么证明的。
根据原始GAN论文,最小化原始GAN损失函数相当于最小化 Jensen-Shannon对比散度:
这里写图片描述

好了,我们正式开始。首先,我们将损失函数重写成:
这里写图片描述

上式中的 VLSGAN(G) V L S G A N ( G ) 中比原始的损失函数多了 Expdata(x)[(D(x)c)2] E x ∼ p d a t a ( x ) [ ( D ( x ) − c ) 2 ] ,由于这一项与G网络无关,所以只是一个常数而已。
另外,当我们固定G网络后,D网络的优化公式为:
这里写图片描述

那么LSGAN的Jensen-Shannon对比散度为:
深度学习【44】LSGAN_第1张图片
上面的推导比较简单,我们不再多说。如果我们将a,b,c约束为:b-c=1,b-a=2。那么有:
深度学习【44】LSGAN_第2张图片
也就是peaison 2 X 2 -divergence。
所以上面的a,b,c约束也就是LSGAN损失函数所要满足的约束。

根据这个约束,论文给出了两种情况:
第一种:
这里写图片描述
第二种:
这里写图片描述

这两种的性能差不多。

实验结果

与DCGAN,EBGAN对比:
深度学习【44】LSGAN_第3张图片
感觉还不错。还有其他的对比实验,感兴趣的可以去看看。

你可能感兴趣的:(深度学习)