生成对抗网络tanh?

Pus*_*dev 8 neural-network deep-learning tensorflow

我想知道,为什么在我看到的大多数GAN模型中(至少在MNIST中),激活函数(对于鉴别器和生成器)都是tanh?ReLu效率更高吗?(对于预测网络,我一直都会阅读)

谢谢!

Chr*_*son 5

有时这取决于您希望激活落入的范围。每当您在 ML 文献中听到“门”时,您可能会看到一个 sigmoid,它介于 0 和 1 之间。在这种情况下,他们可能希望激活值介于 -1 和 1 之间,因此他们使用 tanh。这个页面说使用tanh,但他们没有给出解释。DCGAN使用 ReLUs 或leaky ReLUs,除了生成器的输出。有道理 - 如果您的嵌入的一半变成零怎么办?在 -1 和 1 之间平滑变化的嵌入可能会更好。

我很想听听别人的意见,因为我不确定。

  • 感谢你的回答!为什么如果他们在最后一层使用 sigmoid,他们会希望在前一层中落入 -1 和 1 ?sigmoid 无法处理 ReLu 输出吗?(例如,在mlp中,我已经在中间层和sigmoid中使用了ReLu,并且完全没有问题)但我想我明白了。事实上,如果嵌入中有很多零,生成的像素将全是白色..(但在这种情况下,为什么DCGAN使用ReLus)再次感谢! (2认同)

Ben*_*arr 5

摘自DCGAN论文[Radford等。https://arxiv.org/pdf/1511.06434.pdf] ...

“ ReLU激活(Nair&Hinton,2010)用于生成器,但使用Tanh函数的输出层除外。我们观察到,使用有界激活可以使模型更快地学习饱和并覆盖色彩空间在鉴别器内,我们发现泄漏的整流激活(Maas等,2013)(Xu等,2015)可以很好地工作,特别是对于更高分辨率的建模。这与原始GAN论文相反,使用了maxout激活(Goodfellow等,2013)。”

tanh的对称性可能在这里是一个优势,因为网络应该以对称方式处理较深的颜色和较浅的颜色。