倒塌太多是有道理的-值到单个-value 会导致问题。但是,我对如何训练感到有些困惑运行前的较短时间可以修复它。但是当我在谷歌上搜索“Helvetica 场景”时,我能找到的只是一个名为Look Around You的模仿秀的参考。
既然这似乎是一件真实的事情,而不仅仅是一个模仿——我在哪里可以找到更多关于它的信息,以及如何防止它?为什么它被称为“Helvetica 场景”?
倒塌太多是有道理的-值到单个-value 会导致问题。但是,我对如何训练感到有些困惑运行前的较短时间可以修复它。但是当我在谷歌上搜索“Helvetica 场景”时,我能找到的只是一个名为Look Around You的模仿秀的参考。
既然这似乎是一件真实的事情,而不仅仅是一个模仿——我在哪里可以找到更多关于它的信息,以及如何防止它?为什么它被称为“Helvetica 场景”?
将太多的概率质量放在一个单一的确实是 GAN 的一个主要问题。通常它被称为模式崩溃。大多数 GAN 论文都会讨论它。
我有点困惑如何在跑步之前训练𝐺更短的时间𝐷可以解决它。
这个想法是保持鉴别器与生成器保持同步. 通过培训少,你在训练更多的。通常,使用 GAN 进行交替优化,即训练为了迭代,然后为了迭代等等。的“工作”就是能够辨别假货来自真实数据点的输出。但是,如果你不训练足够了(即,你训练太多了,所以), 然后将迅速“逃跑”并利用局部最小值. 从的观点,如果“喜欢”一些输出,那么最简单的事情就是只输出 !训练更少(因此更多)允许这个最小值移动,并防止从剥削他们。
注意过度训练先验似乎不是一件坏事。事实上,随着更现代的 GAN 损失(例如 Wasserstein 损失),人们想要尽可能大。这只是意味着在每一步都收敛为一个很好的鉴别器,所以它应该为. (事实上,收敛的证明取决于这样做!)但在实践中,对于原始 GAN,过度训练倾向于导致无用的渐变(见下文):没有可以做会取悦判别器,所以所有的权重更新都是无用的,所以 GAN 只是徒劳地在参数空间中徘徊)。这种甩尾被其他人称为不稳定训练。:)
换句话说,对于 vanilla GAN,训练不足可能导致模式崩溃,而过度训练可能会导致不稳定。人们似乎专注于减轻不稳定性,以至于过度训练并避免模式崩溃。
如何预防?
减轻它的一种常见方法是使用不同的损失函数,例如 Wasserstein 损失。原始 GAN 公式的一个问题是(通过最小化 JS 散度)可能具有非常无信息的梯度,因为损失不能很好地处理重叠很少的分布(即,当共享支持很小时)。从某种意义上说,当发电机表现不佳时,这太苛刻了。相反,即使两个分布彼此相距很远,最优传输损失也会平稳减少。参见例如 Wasserstein GAN 论文及其后续文章。
为什么它被称为“Helvetica 场景”?
就是你说的那个节目,一个地方放太多钙,造成灾难。在这里,当太多的生成器概率密度被放置在数据空间的一小块区域中时,就会发生灾难。:)