问题

GAN:固定训练好的判别器网络,去指导训练生成器为什么不可以?

回答
GAN(生成对抗网络)的核心在于生成器(Generator)和判别器(Discriminator)的“对抗”与“协作”。你提出的问题——“固定训练好的判别器网络,去指导训练生成器为什么不可以?”——触及了GAN训练过程中的一个关键点,理解了这个问题,就等于抓住了GAN的命脉。

核心原因:动态博弈与梯度传递的失效

简单来说,固定一个训练好的判别器去指导生成器,就如同让一个经验丰富但不再进步的裁判去指导一个新手运动员比赛。问题在于,GAN的训练是一个动态博弈的过程,双方都需要不断学习、适应和提升,才能达到纳什均衡(理论上的理想状态)。

我们拆解一下为什么这样做“不行”,并深入理解其背后的原理:

1. GAN的训练目标:零和博弈的赛跑

生成器 (G) 的目标是生成越来越逼真的数据,欺骗判别器。它的损失函数通常是让判别器将生成数据误判为真实数据的概率最大化(或者说,让判别器对生成数据的预测值越低越好)。
判别器 (D) 的目标是准确地区分真实数据和生成数据。它的损失函数是最大化其对真实数据的预测概率,并最小化对生成数据的预测概率。

这种相互对抗的关系,就像一场零和博弈。判别器越优秀,生成器受到的“压力”越大,需要生成更逼真的数据。生成器越优秀,判别器就越难区分,需要提升自己的判别能力。

2. 梯度传递是训练的生命线

GAN的训练严重依赖于反向传播(Backpropagation)和梯度下降(Gradient Descent)。

判别器 在训练时,接收真实数据和生成数据,计算其对两者的判断,然后根据判断的错误程度(损失)更新自己的权重。
生成器 的训练则更加巧妙:它生成数据,将生成数据输入给判别器,然后利用判别器对这些生成数据的“反馈”——也就是判别器的梯度——来更新自身的权重。

想象一下,生成器是一个正在学习绘画的学生。判别器就像一个美术老师。老师看到学生画的画,指出哪里不像,哪里可以改进(这就是梯度)。学生根据老师的指导(梯度),去修改自己的画笔(生成器的参数)。

3. 固定判别器,梯度传递“断崖式下跌”

如果判别器被固定训练好了,意味着它的权重不再更新,它就是一个静态的、不会进步的“模型”。

判别器的反馈变得单一且有限: 好的判别器能给出非常有价值的“错误信号”(梯度),指导生成器往哪个方向改进。但如果判别器固定了,它对生成器生成的“不好”的数据的反馈(梯度)可能很快就变得非常小,甚至趋于零。
“虚假”的纳什均衡: 一个训练得非常好的判别器,对于任何生成器生成的、它能够轻易辨别的“假”数据,都会给出强烈的“否定”信号(例如,判别器输出接近0)。这意味着生成器能收到的有效梯度会迅速消失。生成器会发现,无论它怎么尝试,这个固定的判别器都能轻易识别出来,并且提供的“改进方向”几乎无效。
生成器无法“学习”判别器的演进: GAN的精髓在于,生成器不仅要“欺骗”判别器,还要“逼迫”判别器学习和进步。当生成器生成的样本越来越接近真实数据时,判别器会越来越难区分,它必须学习更细微的特征。生成器正是通过“学习判别器的学习过程”来提升自己的。如果判别器是固定的,它就没有这个“学习”的过程,生成器也无法从判别器自身能力的演进中获益。
梯度消失(Gradient Vanishing)的严重化: GAN最常见的训练问题之一就是梯度消失。如果判别器已经非常强大且固定,它对于绝大多数生成器产生的样本,其输出都非常确定(例如,几乎100%判断为假)。在这种情况下,通过反向传播传递给生成器的梯度会非常小,使得生成器的权重更新非常缓慢,甚至停滞不前。

一个不恰当但能帮助理解的类比:

想象一个射击训练场,靶子是固定的。

正常GAN训练: 你是一名射击运动员。有个教练(判别器)一直在看你的射击。他告诉你哪发子弹偏了多少,弹道如何,你可以根据他的指导调整你的姿势、呼吸、瞄准。同时,你打得越准,教练就越难挑出毛病,他自己也要琢磨更复杂的判断标准(比如,细微的抖动)。
固定判别器训练: 现在,教练(判别器)已经是个“定型”的老手了。他告诉你“你的子弹全打飞了,离靶子十万八千里”,但因为他不再进步,他无法告诉你“你的子弹偏向左边了3厘米,并且仰角不够”,这些更具体的、能指导你调整的“梯度”信息。你只会得到一个模糊的“不行”,而无法进行有效的精确调整。最终,你的射击技术(生成器)可能在原地踏步,或者因为无法获得准确指导而卡住。

总结:

GAN的训练是一个动态的、相互促进的博弈过程。生成器和判别器需要同步学习、相互适应,通过梯度传递来驱动彼此的进步。固定一个训练好的判别器,就破坏了这个动态过程,导致梯度信息失效,生成器无法获得有效的学习信号,最终训练失败或陷入停滞。GAN的强大之处正是源于这种“不确定性”和“对抗性”的动态反馈。

网友意见

user avatar

谢邀。

这个情况其实我在另外一个相似的问题上做过解答。

偷个懒,就把答案搬过来吧。

这其实是一个很有趣的问题。在实践过程中,如果把判别器(Discriminator)训练得太好了,看似能够在对抗中更加有效的拒绝生成器(Generator)生成的假样本,但是其实一样会产生诸多问题。

判别器最主要的作用就是为生成器提供下降梯度。如果判别器太差,则无法提供有效的梯度,同时判别器越好,生成器梯度消失越严重。

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

(公式1)

其中是真实样本分布,是由生成器产生的样本分布。

假设我们如果要学习得到一个最优网络,必然上式求导等于0,则会得到:

(公式2)

从公式上就不难看出,此时最优的判别器,就是判断为真实图像概率对于判断为真和假的概率和的比值。当且,最优判别器就应该非常自信地给出概率0;如果,说明该样本是真是假的可能性刚好一半一半,此时最优判别器也应该给出概率0.5。

在极端情况——判别器最优时,生成器的损失函数变成什么。给损失函数加上一个不依赖于生成器的项,使之变成

(公式3)

注意,它刚好是判别器损失函数的反。代入最优判别器即公式2,再进行简单的变换可以得到

(公式4)

变换成这个样子是为了引入Kullback–Leibler divergence(简称KL散度)和Jensen-Shannon divergence(简称JS散度)这两个重要的相似度衡量指标。

KL散度和JS散度:

(公式5:KL散度)

(公式6:JS散度)

于是公式4就可以继续写成

(公式7)

根据原始GAN定义的判别器loss,我们可以得到最优判别器的形式;而在最优判别器的下,我们可以把原始GAN定义的生成器loss等价变换为最小化真实分布与生成分布之间的JS散度。我们越训练判别器,它就越接近最优,最小化生成器的loss也就会越近似于最小化和之间的JS散度。

问题就出在这个JS散度上。我们会希望如果两个分布之间越接近它们的JS散度越小,我们通过优化JS散度就能将“拉向”,最终以假乱真。这个希望在两个分布有所重叠的时候是成立的,但是如果两个分布完全没有重叠的部分,或者它们重叠的部分可忽略,它们的JS散度是多少呢?

答案是,因为对于任意一个x只有四种可能:

第一种对计算JS散度无贡献,第二种情况由于重叠部分可忽略所以贡献也为0,第三种情况对公式7右边第一个项的贡献是,第四种情况与之类似,所以最终:。

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

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

所以其实在实践过程中,用一个很优的判别器去训练好一个网络的概率其实很小。

不然还有什么对抗的意义呢,对吧。

ヾ(≧∇≦*)ゝ

参考:

类似的话题

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有