首页 > 解决方案 > 博弈论在生成对抗网络中的用途在哪里

问题描述

我们知道生成对抗网络的训练是基于博弈论的,并且在训练过程中达到了纳什均衡。但是当使用 tensorflow 查看 GAN 样本时:https ://www.tensorflow.org/tutorials/generation/dcgan ,

我没有在代码中找到应用博弈论和估计纳什均衡的地方。有人可以展示我们在这段代码中使用博弈论的地方吗?

标签: pythontensorflowdeep-learninggenerative-adversarial-network

解决方案


这更像是一个理论/概念上的答案,因为您称之为博弈论的代码中没有明确的部分。

基本上,博弈论的原理是在您有两个网络(生成器和判别器)相互竞争时实现的(对抗部分)。在 GAN 中,当你收敛时达到纳什均衡,即当鉴别器的损失没有以生成器和 vv 为代价而减少时(或更正式地说,当对手的行动不影响玩家的决定时)。

在提供的示例中,您每 15 个 epoch 保存一个模型,以确保您可以在纳什均衡或足够接近它时捕获模型:

    # Save the model every 15 epochs
    if (epoch + 1) % 15 == 0:
      checkpoint.save(file_prefix = checkpoint_prefix)

另一种方法是实现某种提前停止(或者如果您使用 tensorboard 跟踪两个网络的损失以可视化收敛)。

这篇文章似乎对 GAN 的纳什均衡进行了广泛的解释。


推荐阅读