在我迄今为止看到的许多 GAN 的实现/教程中(例如this),生成器和判别器都是在没有先验知识的情况下开始的。他们通过培训不断提高自己的表现。这让我想知道——是否可以使用预训练的鉴别器?我这样做有两个动机:
- 消除训练鉴别器的开销
- 能够使用已经存在的酷模型
生成器是否能够学习相同的东西,还是取决于它们从头开始的事实?
在我迄今为止看到的许多 GAN 的实现/教程中(例如this),生成器和判别器都是在没有先验知识的情况下开始的。他们通过培训不断提高自己的表现。这让我想知道——是否可以使用预训练的鉴别器?我这样做有两个动机:
生成器是否能够学习相同的东西,还是取决于它们从头开始的事实?
如果从perpect discriminator开始,损失函数会饱和,损失的梯度会很小,因此对生成器的反馈也会很小,从而导致学习速度变慢。实际上,始终希望判别器和生成器能够平衡学习。此外,据称 Wasserstein Loss 解决了这个问题。
您可以在本文中找到更多信息。(我强烈建议阅读)
同样来自论文“训练生成对抗网络的原则方法”:
理论上,人们会期望我们首先训练判别器尽可能接近最优(因此成本函数更好地逼近 JSD),然后在 ,交替这两个东西。但是,这不起作用。在实践中,随着判别器变得更好,生成器的更新会变得更糟。最初的 GAN 论文认为这个问题是由饱和引起的,并切换到另一个没有这个问题的类似成本函数。然而,即使有了这个新的成本函数,更新往往会变得更糟,优化也会变得非常不稳定。
注1:是生成器的参数
注 2:JSD:Jensen-Shannon 散度。对于最优判别器,损失等于
同样来自Wasserstein Loss的论文:
EM 距离是连续且可微的 ae 的事实意味着我们可以(并且应该)训练critic 直到最优。论点很简单,我们训练的评论家越多,我们得到的 Wasserstein 梯度就越可靠,这实际上很有用,因为 Wasserstein 几乎在所有地方都是可微的。对于 JS,随着鉴别器变得更好,梯度变得更可靠,但真正的梯度是 0,因为 JS 是局部饱和的,我们得到梯度消失......在图 2 中,我们展示了一个概念证明,我们训练了一个GAN 鉴别器和 WGAN 批评者直到最优。鉴别器很快学会区分假货和真货,并且如预期的那样不提供可靠的梯度信息。然而,批评家不能饱和,