GAN
GAN有很多变种和衍生的算法,如pix2pix GAN、CycleGAN、DiscoGAN、PAN、StarGAN 等。。
原理不多说,一个G(生成器)和一个 D(判别器),整体的目标函数很简洁明确,先训练 D,再训练 G,交替进行,D 的训练用真实样本+生成的假样本,可进行 K 次迭代(默认1),外层再迭代进行 Number 次交替训练。
D 是共享的,G 和 D 的训练过程以及参数迭代过程是分离的。伪代码如下,非常清晰:
GAN 是一种结构或者说设计的思路,跟具体实现关系不大,可非常简单,也可复杂。比如这个用简单的网络来设计生成 mnist 数字图像;DCGAN(Deep Convolutional GAN) 就是将 D 和 G 换成 CNN 来实现,同时,也修改了很多网络的结构,具体参见,以提高样本的质量和收敛的速度。
cGAN
前面的这种传统的GAN有一个问题是每次训练后,所有的随机噪声很有可能产生相同的样本,为了可以产生不同的样