经过几次尝试,我训练了GAN来产生半敏感的输出。在此模型中,它几乎立即找到了解决方案并被卡在那里。鉴别器和生成器的损失均为0.68(我使用了BCE损失),并且两者的准确度均达到了50%左右。生成器的输出乍一看足以成为真实数据,但是经过分析,我发现它仍然不是很好。
我在这里的解决方案是增加鉴别器的功能(增加其大小)并重新训练。我希望通过使其更大来迫使发生器生成更好的样本。我得到以下输出。
随着GAN损失的增加和产生的样品越来越差,鉴别器可以更容易地将其识别出来。
当我检查来自训练有素的生成器的输出时,我看到它遵循了真实数据遵循的一些基本规则,但是再次经过严格的审查,它们未能通过更复杂的测试,真实数据将通过。我想改善这一点。
我的问题是:
编辑:我正在使用的体系结构是Graph GAN的一种形式。生成器只是一系列线性层。判别器是3个Graph Conv图层,然后是一些线性图层。与此paper有点类似。我正在做的两件事可能是非常规的:
GAN的输出(一旦重新缩放并且形状已更改)类似于:
[[ 46.09169 -25.462175 20.705683 -31.696495 ]
[ 35.10637 -18.956036 15.20579 -24.803787 ]
[ 10.253135 -5.759581 5.9068713 -6.3003526]]
一个真实的例子是:
[[ 45.6 30.294546 -17.218746 -29.41284 ]
[ 1.8186008 1.7064333 0.5984112 0.19312467]
[ 44.31433 28.234058 -17.615921 -29.262213 ]]
值得注意的是,矩阵的左上角值始终为45.6。我的生成器甚至不能始终如一地产生这个。