WGAN解读

WGAN

引言

自从2014年Ian Goodfellow提出以来,GAN就存在着训练困难、生成器和判别器的loss无法指示训练进程、生成样本缺乏多样性等问题。从那时起,很多论文都在尝试解决,但是效果不尽人意,比如最有名的一个改进DCGAN依靠的是对判别器和生成器的架构进行实验枚举,最终找到一组比较好的网络架构设置,但是实际上是治标不治本,没有彻底解决问题。

WGAN(Wasserstein Generative Adversarial Nets),又称沃舍尔斯坦生成对抗网络。原创论文由Martin Arjovsky等人于2017年发表,它的目标是解决传统 GAN 中存在的一些问题,如训练不稳定、模式崩溃等,同时提供更稳定和高质量的生成效果。

对于WGAN的理论模型和原理,具体请参考原论文

本文写作思路参考令人拍案叫绝的Wasserstein GAN - 郑华滨的文章 - 知乎

标题

Wasserstein即引入 Wasserstein 距离(也称为 Earth-Mover 距离)作为损失函数,generative即生成式模型,adversarial即对抗网络,nets是networks的缩写,直译为沃舍尔斯坦生成对抗网络。

摘要(原文没有,以下为笔者总结):

Wasserstein GAN(WGAN)是生成对抗网络(GAN)的一种改进版本,引入了 Wasserstein 距离(也称为 Earth-Mover 距离)作为损失函数,以提高 GAN 训练的稳定性和生成质量。通过使用 Wasserstein 距离,WGAN 能够缓解传统 GAN 中的梯度消失问题,提供更好的生成器训练指标,并保持更多样性的生成结果。

结论

本文的结论部分比较简洁,作者主要是对模型的功能做了客观阐述

我们介绍了一种称为是WGAN的算法,一种传统GAN训练的替代方案。在这个新模型中,我们证明了我们可以提高学习的稳定性,摆脱模式崩溃等问题,并为调试和超参数搜索提供有用的有意义的学习曲线。此外,我们证明了相应的优化问题是合理的,并提供了广泛的理论工作,突出了与分布之间其他距离的深层联系。

简介和相关工作

  • 简介

作者通过分析传统无监督学习问题的方案——学习概率密度,发现了KL散度的缺陷,在实际应用中KL距离没有定义(或简单地无限)。

又分析了传统的解决办法——向输入添加噪声的弊端,于是提出了自己的解决思路:

思考如何更好地表示模型分布和实际分布的接近程度,等价地说重新定义两个分布之间的距离。

紧接着,作者就顺势引入了WGAN的,并提及WGAN的主要贡献有哪些。

  • 相关工作

主要是说明算法证明的部分知识背景,比如积分概率度量(IPMs),最大平均差异(MMD)等

原理介绍

Wasserstein GAN(下面简称WGAN)成功地做到了以下爆炸性的几点:

  • 彻底解决GAN训练不稳定的问题,不再需要小心平衡生成器和判别器的训练程度
  • 基本解决了collapse mode的问题,确保了生成样本的多样性
  • 训练过程中终于有一个像交叉熵、准确率这样的数值来指示训练的进程,这个数值越小代表GAN训练得越好,代表生成器产生的图像质量越高(如题图所示)
  • 以上几点不需要精心设计的网络架构,最简单的多层全连接网络就可以做到

那以上好处来自哪里?这就是令人拍案叫绝的部分了——实际上作者整整花了两篇论文,在第一篇《Towards Principled Methods for Training Generative Adversarial Networks》里面推了一堆公式定理,从理论上分析了原始GAN的问题所在,从而针对性地给出了改进要点;在这第二篇《Wasserstein GAN》里面,又再从这个改进点出发推了一堆公式定理,最终给出了改进的算法实现流程,而改进后相比原始GAN的算法实现流程却只改了四点

  • 判别器最后一层去掉sigmoid
  • 生成器和判别器的loss不取log
  • 每次更新判别器的参数之后把它们的绝对值截断到不超过一个固定常数c
  • 不要用基于动量的优化算法(包括momentum和Adam),推荐RMSProp,SGD也行

改动是如此简单,效果却惊人地好,以至于不少人在感叹:就这样? 太简单了吧!

不禁想起一个段子:一个工程师在电机外壳上用粉笔划了一条线排除了故障,要价一万美元——画一条线,1美元;知道在哪画线,9999美元。上面这四点改进就是作者Martin Arjovsky划的简简单单四条线,对于工程实现便已足够,但是知道在哪划线,背后却是精巧的数学分析,而这也是本文想要整理的内容。

后面内容分为四个部分:

  • 原始GAN究竟出了什么问题
  • WGAN之前的一个过渡解决方案
  • Wasserstein距离的优越性质
  • 从Wasserstein距离到WGAN

原始GAN的问题

原始GAN中判别器要最小化如下损失函数,尽可能把真实样本分为正例,生成样本分为负例:

image-20230805201738227

对于生成器,Goodfellow一开始提出来一个损失函数,后来又提出了一个改进的损失函数,分别是

image-20230805201750034

公式2的问题:

概括地说,判别器越好,生成器的梯度消失越严重

这一点其实在IAN的论文中有提及,这里作者是从数学的角度解释了为什么,简单的说就是使用JS散度来衡量生成器的loss是不合理的。

详细的数学证明这里不做阐述,可以阅读参考文献和材料(下同)。

无论Pr跟Pg是远在天边,还是近在眼前,只要它们俩没有一点重叠或者重叠部分可忽略,JS散度就固定是常数log⁡2,而这对于梯度下降方法意味着——梯度为0!此时对于最优判别器来说,生成器肯定是得不到一丁点梯度信息的;即使对于接近最优的判别器来说,生成器也有很大机会面临梯度消失的问题。

那不重叠或重叠部分可忽略的可能性有多大?不严谨的答案是:非常大。比较严谨的答案是:当Pr与Pg的支撑集(support)是高维空间中的低维流形(manifold)时,重叠部分测度(measure)为0的概率为1。

公式3的问题:

最小化生成器loss函数,会等价于最小化一个不合理的距离衡量,导致两个问题,一是梯度不稳定,二是collapse mode即多样性不足

经过一系列的推导可知,最小化公式3等价于最小化公式4:

image-20230805203953542

显而易见,为了最小化生成分布和真实分布的KL散度,却又要最大化两者的KL散度,一个拉进,一个远离,这也就导致了训练时的梯度不稳定。

其次,由于KL散度是不对称的,所以KL(Pg||Pr)和KL(Pr||Pg)是有差的。

以前者为例

image-20230805204608557

换言之,KL(Pg||Pr)对于上述的两种错误的惩罚是不一样的。

第一种错误对应的是“生成器没能生成真实的样本”,惩罚微小;第二种错误对应的是“生成器生成了不真实的样本” ,惩罚巨大。第一种错误对应的是缺乏多样性,第二种错误对应的是缺乏准确性。这一放一打之下,生成器宁可多生成一些重复但是很“安全”的样本,也不愿意去生成多样性的样本,因为那样一不小心就会产生第二种错误,得不偿失。这种现象就是大家常说的collapse mode,也就是模式崩塌。

实验辅证如下:

img

WGAN前作Figure 3。先分别将DCGAN训练1,20,25个epoch,然后固定生成器不动,判别器重新随机初始化从头开始训练,对于第二种形式的生成器loss产生的梯度可以打印出其尺度的变化曲线,可以看到随着判别器的训练,蓝色和绿色曲线中生成器的梯度迅速增长,说明梯度不稳定;红线对应的是DCGAN相对收敛的状态,梯度比较稳定。

过渡解决方案

原始GAN问题的根源可以归结为两点,一是等价优化的距离衡量(KL散度、JS散度)不合理,二是生成器随机初始化后的生成分布很难与真实分布有不可忽略的重叠。

WGAN前作其实已经针对第二点提出了一个解决方案,就是对生成样本和真实样本加噪声,直观上说,使得原本的两个低维流形“弥散”到整个高维空间,强行让它们产生不可忽略的重叠。而一旦存在重叠,JS散度就能真正发挥作用,此时如果两个分布越靠近,它们“弥散”出来的部分重叠得越多,JS散度也会越小而不会一直是一个常数,于是(在第一种原始GAN形式下)梯度消失的问题就解决了。在训练过程中,我们可以对所加的噪声进行退火(annealing),慢慢减小其方差,到后面两个低维流形“本体”都已经有重叠时,就算把噪声完全拿掉,JS散度也能照样发挥作用,继续产生有意义的梯度把两个低维流形拉近,直到它们接近完全重合。以上是对原文的直观解释。

加噪方案是针对原始GAN问题的第二点根源提出的,解决了训练不稳定的问题,不需要小心平衡判别器训练的火候,可以放心地把判别器训练到接近最优,但是仍然没能够提供一个衡量训练进程的数值指标。本作从第一点根源出发,用Wasserstein距离代替JS散度,同时完成了稳定训练和进程指标的问题!

因为本文的重点是WGAN本身,所以WGAN前作的加噪方案简单介绍到这里。

Wasserstein距离的性质

Wasserstein距离又叫Earth-Mover(EM)距离,定义如下:

image-20230805205547403

image-20230805210555668

**Wasserstein距离相比KL散度、JS散度的优越性在于,即便两个分布没有重叠,Wasserstein距离仍然能够反映它们的远近。**WGAN本作通过简单的例子展示了这一点。考虑如下二维空间中的两个分布P1和P2,P1在线段AB上均匀分布,P2在线段CD上均匀分布,通过控制参数可以控制着两个分布的距离远近。

image-20230805205747875

此时容易得到

image-20230805205818027

KL散度和JS散度是突变的,要么最大要么最小,Wasserstein距离却是平滑的,如果我们要用梯度下降法优化这个θ参数,前两者根本提供不了梯度,Wasserstein距离却可以。类似地,在高维空间中如果两个分布不重叠或者重叠部分可忽略,则KL和JS既反映不了远近,也提供不了梯度,但是Wasserstein却可以提供有意义的梯度

从Wasserstein距离到WGAN

我们可以构造一个含参数ω、最后一层不是非线性激活层的判别器网络fω,在限制ω不超过某个范围的条件下,使得

image-20230805213217430

尽可能取到最大,此时L就会近似真实分布与生成分布之间的Wasserstein距离(忽略常数倍数K)。

接下来生成器要近似地最小化Wasserstein距离,可以最小化L,由于Wasserstein距离的优良性质,我们不需要担心生成器梯度消失的问题。再考虑到L的第一项与生成器无关,就得到了WGAN的两个loss。

image-20230805213157819

公式15是公式17的反,可以指示训练进程,其数值越小,表示真实分布与生成分布的Wasserstein距离越小,GAN训练得越好。

算法截图如下:

img

改动的前三点都是从理论分析中得到的,已经介绍完毕;

第四点却是作者从实验中发现的,属于trick,相对比较“玄”。

如果使用Adam,判别器的loss有时候会崩掉,当它崩掉时,Adam给出的更新方向与梯度方向夹角的cos值就变成负数,更新方向与梯度方向南辕北辙,这意味着判别器的loss梯度是不稳定的,所以不适合用Adam这类基于动量的优化算法。改用RMSProp之后,问题就解决了,因为RMSProp适合梯度不稳定的情况。

实验

对WGAN作者做了不少实验验证,本文只提比较重要的三点。

第一,判别器所近似的Wasserstein距离与生成器的生成图片质量高度相关,如下所示(即封面):

第二,WGAN如果用类似DCGAN架构,生成图片的效果与DCGAN差不多:

img

但是厉害的地方在于WGAN不用DCGAN各种特殊的架构设计也能做到不错的效果,比如如果大家一起拿掉Batch Normalization的话,DCGAN就崩了:

img

如果WGAN和原始GAN都使用多层全连接网络(MLP),不用CNN,WGAN质量会变差些,但是原始GAN不仅质量变得更差,而且还出现了collapse mode,即多样性不足:

img

第三,在所有WGAN的实验中未观察到collapse mode,作者也只说应该是解决了,

最后补充一点论文没提到,但是比较微妙的问题。判别器所近似的Wasserstein距离能够用来指示单次训练中的训练进程,这个没错;接着作者又说它可以用于比较多次训练进程,指引调参,此处需要小心。比如下次训练时改了判别器的层数、节点数等超参,判别器的拟合能力就必然有所波动,再比如下次训练时改了生成器两次迭代之间,判别器的迭代次数,这两种常见的变动都会使得Wasserstein距离的拟合误差就与上次不一样。那么这个拟合误差的变动究竟有多大,或者说不同的人做实验时判别器的拟合能力或迭代次数相差实在太大,那它们之间还能不能直接比较上述指标,此处存疑。

总结

WGAN前作分析了Ian Goodfellow提出的原始GAN两种形式各自的问题。

第一种形式在最优判别器下等价于最小化生成分布与真实分布之间的JS散度,由于随机生成分布很难与真实分布有不可忽略的重叠以及JS散度的突变特性,使得生成器面临梯度消失的问题;

第二种形式在最优判别器下等价于既要最小化生成分布与真实分布直接的KL散度,又要最大化其JS散度,相互矛盾,导致梯度不稳定,而且KL散度的不对称性使得生成器宁可丧失多样性也不愿丧失准确性,导致collapse mode现象。

WGAN前作针对分布重叠问题提出了一个过渡解决方案,通过对生成样本和真实样本加噪声使得两个分布产生重叠,理论上可以解决训练不稳定的问题,可以放心训练判别器到接近最优,但是未能提供一个指示训练进程的可靠指标,也未做实验验证。

WGAN本作引入了Wasserstein距离,由于它相对KL散度与JS散度具有优越的平滑特性,理论上可以解决梯度消失问题。作者通过数学变换将Wasserstein距离写成可求解的形式,利用一个参数数值范围受限的判别器神经网络来最大化这个形式,就可以近似Wasserstein距离。在此近似最优判别器下优化生成器使得Wasserstein距离缩小,就能有效拉近生成分布与真实分布。

WGAN既解决了训练不稳定的问题,也提供了一个可靠的训练进程指标,而且该指标确实与生成样本的质量高度相关。在此基础上,作者对WGAN进行了实验验证。

决梯度消失问题。作者通过数学变换将Wasserstein距离写成可求解的形式,利用一个参数数值范围受限的判别器神经网络来最大化这个形式,就可以近似Wasserstein距离。在此近似最优判别器下优化生成器使得Wasserstein距离缩小,就能有效拉近生成分布与真实分布。

WGAN既解决了训练不稳定的问题,也提供了一个可靠的训练进程指标,而且该指标确实与生成样本的质量高度相关。在此基础上,作者对WGAN进行了实验验证。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值