在为文本生成训练 GAN 时,我看到很多人从生成器输出中输入 gumbel-softmax 并输入鉴别器。这是为了绕过必须从 softmax 中采样的问题,这是一个不可微的过程,因此会阻止训练。
我的问题是,为什么不直接将生成器中的常规 softmax(没有 argmax!)输入到鉴别器中呢?使用 gumbel-softmax 有什么好处?
谢谢。
在为文本生成训练 GAN 时,我看到很多人从生成器输出中输入 gumbel-softmax 并输入鉴别器。这是为了绕过必须从 softmax 中采样的问题,这是一个不可微的过程,因此会阻止训练。
我的问题是,为什么不直接将生成器中的常规 softmax(没有 argmax!)输入到鉴别器中呢?使用 gumbel-softmax 有什么好处?
谢谢。
直接传递 softmax 的输出也很常见(在少数文本 GAN 中),例如参见改进的 Wasserstein GAN (WGAN-GP)。
使用硬 Gumbel-softmax(+ 直通估计器),您可以传递 one-hot 编码向量,这与实际数据相同。如果你通过 softmax 的输出,鉴别器应该能够更容易地区分真实数据(一个热点)和假数据(非一个热点)。
话虽如此,在我看来,这两种方法现在都不是很有希望。似乎有更多基于 REINFORCE 的文本 GAN。