WGAN:为什么要用EM距离取代交叉熵

面试被问到的一个问题:WGAN使用EM距离作为度量方式,相比原来的交叉熵有什么优势?

一、信息论基础

1、信息熵

假设有事件x,其发生的概率为p(x),那么这件事发生后带来的信息量是:h(x)=-\log p(x),当事件发生的概率越小,其带来的信息量就越大。
因此,信息量度量了一件具体的事情发生后带来的信息,而事件x可能发生也可能不发生,甚至有多种结果,如果在事件发生之前,想要度量它们的信息量,就需要用到信息熵。
信息熵是在事件发生之前对可能产生的各种情况信息量的期望
H(x)=-\sum_{i=1}^n{p(x_i)\log p(x_i)}

连续情况下计算公式为:
H(x)=-\int p(x)\log p(x) dx

H(x)还可以度量概率系统的复杂度。当信息熵越大,说明可能出现的事件种类越多,系统越复杂;信息熵越小,说明事件种类越少,系统越简单。
以上把x当成了一个有很多种可能的事件,实质就是一个概率分布,其信息熵就是对这个分布不确定性的度量。

2、相对熵

相对熵用于度量两种概率分布,假设两个分布分别为p(x)q(x)
在信息论中,相对熵是用来度量使用基于q(x)的编码来编码来自p(x)的样本平均所需的额外的比特个数,同时也可以用来衡量两个概率分布之间的距离。
假设p(x)为真实分布,q(x)是神经网络拟合的分布,现在想要知道网络输出对真实分布的拟合程度,或者说,用分布q(x)去拟合分布p(x)所带来的信息损耗,就可以用相对熵来表示:
\begin{aligned} D(p||q)&=\sum_{i=1}^n[p(x_i)\log p(x_i)-p(x_i)\log q(x_i)] \\ &=\sum_{i=1}^np(x_i)\log \frac {p(x_i)}{q(x_i)} \end{aligned}

可以看到式子的第一项就是p(x)的信息熵的相反数,第二项实际上就是交叉熵的相反数了,所以p和q的相对熵=p和q的交叉熵-p的信息熵
相对熵又叫KL散度,可以从公式看到p和q交换之后,他们的相对熵也会发生变化,也即KL散度具有不对称性。D_{KL}(p||q)表示的是用q去拟合p,D_{KL}(q||p)则表示用p去拟合q,KL只能反映一个对另一个的拟合程度。
为了客观地反映两个分布之间的距离,在KL散度的基础上提出了JS散度,一种对称的度量方式:
D_{JS}(p||q)=\frac {1}{2}D_{KL}(p||\frac {p+q}{2})+\frac {1}{2}D_{KL}(q||\frac {p+q}{2})

由公式可见,p和q的JS散度等价于两个分布到平均分布的KL散度之和,具有交换性,因此JS散度可以较客观地衡量两个分布之间的距离。

3、交叉熵

相对熵的公式中有一项是p和q的交叉熵:
H(p,q)=\sum_{i=1}^np(x_i)\log q(x_i)

在交叉熵上减去一个p的信息熵,就得到了p和q的相对熵,而信息熵是不随q的分布变化的,因此交叉熵也可以用来表示分布q对分布p的拟合程度,常用于做损失函数。

二、原始交叉熵的问题

以下内容参考这篇博客

1、GAN损失

原始GAN中使用交叉熵作为损失函数,判别器需要将真实样本尽量预测为1,将生成样本尽量预测为0,目标函数形式为:
loss_D=-E_{x\in p_g(x)}\log [1-D(x)]-E_{x\in p_r(x)}\log D(x)

其中p_g(x)是生成样本的分布,p_r(x)是真实样本的分布。对于生成器,有一个原始的损失函数,后来又进行了改进:
loss1_G=E_{x\in p_g(x)}\log [1-D(x)]

loss2_G=-E_{x\in p_g(x)}\log D(x)

经过WGAN中大量的实验证明,这两种形式的GAN损失都会产生严重的问题,导致生成器训练不稳定、目标不明确,以及模式崩溃等问题,接下来分别论证。

2、第一种损失形式的问题

GAN的训练是一个极小极大问题,理论上先训练判别器,再训练生成器,然而训练判别器次数如果过多,会使生成器loss降不下来,不论生成什么样的样本都能够被这个判别器鉴别出来;训练判别器次数如果过少,判别器对生成器的输出样本不具有正确的判别能力,会使生成器优化目标不稳定,然而实际应用中很难把握这个度,所以也就出现了GAN难训练的种种问题。

先考虑一下极端情况,也就是判别器训练很多次之后,可以称作此时的判别器为最优判别器D^*。求得D^*的方法为:
loss_DD(x)的导数设为0,此时x为一个具体的样本,
loss_D=-p_g(x)\log [1-D(x)]-p_r(x)\log D(x)

-\frac{p_r(x)}{D(x)}+\frac{p_g(x)}{1-D(x)}=0

得到的D^*(x)为关于两个分布的最优解,
D^*(x)=\frac{p_r(x)}{p_r(x)+p_g(x)}

再将这个最优解代入生成器的目标函数,注意这里为了后续引入JS散度,给生成器损失加了一个不依赖于生成器的项,
loss1_G=E_{x\in p_g(x)}\log [1-D(x)]+E_{x\in p_r(x)}\log D(x)

实际上就是判别器目标函数的相反数,等价于生成器第一个目标函数。代入最优判别器得到,
E_{x\in p_r(x)}\log \frac {2p_r(x)} {p_r(x)+p_g(x)}+E_{x\in p_g(x)}\log \frac {2p_g(x)} {p_r(x)+p_g(x)}-2\log 2

结合JS散度的公式,上述形式可以化为,
loss1_G=2D_{JS}(p_r||p_g)-2\log 2

因此,在第一种生成器损失函数的形式下,根据最优判别器,可以得到生成器的优化目标实质上是最小化两种分布的JS散度。

问题就出在JS散度这种度量方式上,从它的计算方式可以看出,它是在两个分布同样的位置取点,再进行p_r(x_i)\log p_g(x_i)的操作,i始终指示两个分布中同样的位置。
所以,这个优化目标在两个分布有大概率重叠的时候是成立的,但是如果两个分布完全没有重叠的部分,或者它们重叠的部分可忽略时,它们的JS散度就会变成一个常数\log 2
假设p_r(x)=0p_g(x)\not =0,两个分布不重叠,可以得到,
\begin{aligned} loss1_G&=0+E_{x\in p_g(x)}\log \frac {2p_g(x)} {0+p_g(x)}-2\log 2 \\ &=\log 2-2\log 2 \end{aligned}

生成器的损失函数变成了一个常数,就意味着更新时梯度为0,这是在判别器达到最优解的情况下,但即使当判别器在训练过程中,生成器也很有可能面临梯度消失的问题。
上述结论还有一个条件,那就是两个分布没有重叠或重叠很少,关于重叠情况,论文也做了实验验证,得到一个结论:p_rp_g的支撑集是高维空间中的低维流形时,两个分布的重叠部分测度为0的概率为1。
没看懂,不过翻译过来就是两个分布不重叠的可能性非常大。

那么综上,可以得到第一种生成器损失函数存在的问题:在(近似)最优判别器下,最小化生成器的loss等价于最小化p_rp_g之间的JS散度,而由于p_rp_g几乎不可能有不可忽略的重叠,所以无论它们相距多远JS散度都是常数,最终导致生成器的梯度(近似)为0,梯度消失。

3、第二种损失形式的问题

生成器改进的损失形式:
loss2_G=-E_{x\in p_g(x)}\log D(x)

(公式搬运工模式开始),前文已经证明,
E_{x\in p_g(x)}\log [1-D^*(x)]+E_{x\in p_r(x)}\log D^*(x)=2D_{JS}(p_r||p_g)-2\log 2

从KL散度入手,将D_{KL}(p_g||p_r)改写为最优判别器的形式,
D_{KL}(p_g||p_r)=E_{x\in p_g(x)}\log [1-D^*(x)]-E_{x\in p_r(x)}\log D^*(x)

整合前两个式子,就可以得到,
-E_{x\in p_g(x)}\log D^*(x)=D_{KL}(p_g||p_r)-2D_{JS}(p_r||p_g)+2\log 2+E_{x\in p_r(x)}\log D^*(x)

(公式搬运工模式结束),上式就是在最优判别器的情况下,生成器等价的目标函数,式子最后一项是不随生成器改变的,所以可以看到有问题的地方了!

第一,生成器的目标变成了,要最小化生成分布与真实分布的KL散度,同时又要最大化两者的JS散度,这种矛盾的目标会让生成器的优化方向发生错误
第二,第一项的KL散度,对两种分布拟合程度的刻画是不对称的,当p_r(x)\rightarrow 0,p_g(x)\rightarrow 1时,两者的KL散度会逼近无穷大。说明当生成器输出了不太真实的样本时,为其自身带来的惩罚是巨大的,所以生成器就会倾向于生成一些重复但安全的样本,以避免惩罚,这导致了模型缺乏多样性,即模式崩溃

EM距离的改进

综合上面对两种生成器损失函数的论证,可以得到结论:第一种损失函数中由于JS散度的特性,会带来生成器梯度的消失问题;第二种损失函数同时存在KL散度和JS散度的相反优化,导致优化目标不稳定、难训练和模式崩溃等问题
所以提出了Wasserstein距离作为新的度量方式。

1、Wasserstein距离

Wasserstein距离又叫EM距离(Earth Mover's Distance),用于度量两个概率分布之间的距离,计算公式如下:

其中\gamma是由P_1P_2所有可能的联合分布集合中的某个元素,代表其中一种情况下P_1P_2的分布形式,再在这个分布形式中抽样得到(x,y)样本点,计算它们之间的距离||x-y||,从而可以得到在联合分布\gamma下样本对之间的期望值E_{(x,y)\in \gamma}[||x-y||],再在所有可能的联合分布中,找到期望值的下界,就是EM距离。
可以理解为Wasserstein距离就是把分布P_1搬到P_2所需要的最小消耗,因此也可以用来表示神经网络拟合出的分布到真实分布之间的距离。

相比于KL散度和JS散度,EM距离的优势在于:当两个分布没有重叠或者重叠部分很少时,也可以表示它们之间的距离,是一种平滑、积累的计算方式。

2、WGAN

Wasserstein GAN的提出旨在解决原始GAN存在的难训练、不稳定以及缺乏多样性的问题,最重要的改进就是使用了EM距离替代交叉熵,作为真假样本之间距离的度量方式。

WGAN与原始GAN第一种形式相比,改了以下四点:

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

从表中可得,WGAN判别器的损失函数为:
loss_D=E_{x\in p_g}f_w(x)-E_{x\in p_r}f_w(x)

生成器的损失函数为:
loss_G=-E_{x\in p_g}f_w(x)

具体实现时先通过数学变换将Wasserstein距离写成可求解的形式,利用一个参数数值范围受限的判别器神经网络来最大化这个形式,就可以近似Wasserstein距离。

所以,开头问题的答案应该是:
原始GAN两种形式各自存在问题,第一种形式等价在最优判别器下等价于最小化生成分布与真实分布之间的JS散度,由于随机生成分布很难与真实分布有不可忽略的重叠以及JS散度的突变特性,使得生成器面临梯度消失的问题;第二种形式在最优判别器下等价于既要最小化生成分布与真实分布直接的KL散度,又要最大化其JS散度,相互矛盾,导致梯度不稳定,而且KL散度的不对称性使得生成器宁可丧失多样性也不愿丧失准确性,导致模式崩溃现象。
由于EM距离相对KL散度与JS散度具有优越的平滑特性,当两个分布不重叠或重叠部分很少时,也可以较细致地刻画它们之间的距离,从而使梯度不至于消失,就能有效拉近生成分布与真实分布。WGAN既解决了训练不稳定的问题,也提供了一个可靠的训练进程指标,而且该指标确实与生成样本的质量高度相关。

参考博客

1、令人拍案叫绝的Wasserstein GAN 及代码(WGAN两篇论文的中文详细介绍)
2、Wasserstein距离

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,923评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,154评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,775评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,960评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,976评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,972评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,893评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,709评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,159评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,400评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,552评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,265评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,876评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,528评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,701评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,552评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,451评论 2 352

推荐阅读更多精彩内容

  • 在GAN的相关研究如火如荼甚至可以说是泛滥的今天,一篇新鲜出炉的arXiv论文《Wasserstein GAN》却...
    MiracleJQ阅读 2,233评论 0 8
  • 转载自 https://mp.weixin.qq.com/s/OXXtPoBrCADbwxVyEbfbYg 25....
    _龙雀阅读 1,670评论 0 0
  • 生成对抗网络基本概念 要理解生成对抗模型(GAN),首先要了解生成对抗模型可以拆分为两个模块:一个是判别模型,另一...
    变身的大恶魔阅读 5,541评论 0 7
  • GAN原理 生成对抗式网络(GAN)作为一种优秀的生成式模型,在图像生成方面有很多应用,主要有两大特点: 不依赖任...
    LuDon阅读 7,170评论 0 4
  • 1.KL散度 KL散度又称为相对熵,信息散度,信息增益。KL散度是是两个概率分布P和Q 差别的非对称性的度量。 K...
    zhouycoriginal阅读 2,613评论 0 1