我最近看的一些底层图像算法的 paper 有很多用了各种变形的 GAN 来做。我就很好奇,GAN 到底有啥牛逼。网上关于 GAN 的介绍很多,我从 GAN 的训练角度口头解释下其训练机制。
GAN 的核心思想是纳什均衡理论。因此,GAN 网络中包含一个生成器和一个判别器,如下图所示。生成器和判别器本质是两个独立的网络,因此训练的时候独立训练。
GAN 结构示意图(来源网络)
其训练机理为:生成器和判别器单独交替训练。步骤如下:
1. 训练判别器:
固定生成器的参数,x 输入判别器后输出的结果标签为1,随机噪声 z 输入生成器得到 G(z),再输入判别器后得到的输出结果标签为0,训练判别器到收敛。
2. 训练生成器:
固定判别器的参数,随机噪声输入生成器得到的假图,然后输入判别器得到的结果的标签为1,训练生成器到收敛。
3. 交替循环步骤1和2,当然也可以在不收敛的过程中交替训练。
具体的操作步骤我还没有实践过,改天有时间玩个 demo。