GAN(Generative Adversarial Network)
作者:互联网
GAN(Generative Adversarial Network),我们称之为生成式对抗网络
GAN的几种变体
GAN — CGAN — Pix2Pix — CycleGAN — StarGAN
GAN的作用
- GAN:给定一个随机向量能够生成一个随机的图片
- CGAN :给等一个标签和一个随机的向量生成指定的图片
- Pix2Pix:可用于简笔画生成图片
- CycleGAN:可以用于男女性别转换、油画图片转换等
- StarGAN:CycleGAN的一个简单的版本
GAN的工作原理
从GAN的名字我们可以看出,GAN的实质就是对抗,如何进行对抗呢?
GAN中含有两个"器":生成器(generator)和辨别器(discriminate)
GAN的基本训练流程如下:
- 将样本图片x输入到判别器中,训练判别器的值为1
- 将随机向量z输入到生成器中,得到假的样本图片x,此时的生成器不参与训练
- 将得到的假的样本图片x输入到判别器D中,训练判别器的值为0
- 将随机向量z输入到生成器中,得到的假的样本图片x,此时的生成器参与训练
- 将得到的假的样本图片输入的判别器中,训练判别器的值为1
D 和 G相互进行对抗,当两者的概率达到0.5时,说明此时的效果比较好,我们称此时为纳什均衡
CGAN就是在GAN的训练中添加一个标签值,使得能够训练出自己想要的图片
CGAN的基本训练流程如下:
1.将样本图片x和标签l_x输入到判别器中,训练判别器的值为1
2.将随机向量z和标签l_x输入到生成器中,得到假的样本图片x‘,此时生成器不参与训练。
3.将生成假图像x’ 和标签l_x输入到判别器中,训练判别器的值为0
2.将随机向量z和标签l_x输入到生成器中,得到假的样本图片x‘,此时生成器参与训练。
3.将生成假图像x’ 和标签l_x输入到判别器中,判别器的值为1
Pix2Pix的效果图:
Pix2Pix的工作原理
- 将简笔画样本J和真实图片z输入到判别器中,训练判别器,使得判别器训练的概率为1
- 将简笔画样本J输入到生成器G中,生成假的图片:z’, 此时生成器不训练
- 将z’输入到判别器中,训练判别器为0
- 将简笔画样本J输入到生成器G中,生成假的图片:z’
- 将z’输入到判别器中,训练判别器为1,此时判别器不训练
对于样本的获取,我们通常是将真实图片放入到Photoshop中得到简笔画图片,然后将简笔画和图片成对的放入到模型中进行训练。
CycleGAN的工作原理
- 将男性的图片放入到辨别器D男中,将女性图片放入到辨别器D女中开始进行训练,使得辨别器得值为1
- 将男性图片放入到生成器G女中,得到假的女性图片,此时生成器不参与训练
- 将假的女性图片放入到辨别器D男中,训练判别器,此时的判别器训练的值为0
- 将女性图片放入到生成器G男中,得到假的男性图片,此时生成器不参与训练
- 将假的男性图片放入到辨别其D女中,训练判别器,此时的判别器训练的值为0
- 将男性图片放入到生成器G女中,得到假的女性图片,此时生成器参与训练
- 将假的女性图片放入到辨别器D男中,不训练判别器,此时的判别器的值为1
- 将女性图片放入到生成器G男中,得到假的男性图片,此时生成器参与训练
- 将假的男性图片放入到辨别其D女中,不训练判别器,此时的判别器的值为1
- 将男性图片放入到G女中得到假的女性图片,然后将假的女性图片放入到G男中,得到假的男性图片,此时男性图片和假的男性图片需要相同
- 将女性图片放入到G男中,得到假的男性图片,然后将假的男性图片放入到G女中,得到假的女性图片,此时女性图片和假的女性图片需要相同
训练的效果图: https://zhuanlan.zhihu.com/p/327864013
StarGAN的工作原理
- 将男性图片和男性标签放入到辨别器中,训练辨别器的值为1
- 将男性图片和女性标签放入到生成器中,生成假的女性图片,此时不训练生成器
- 将假的女性图片和男性标签放入到辨别器中,训练辨别器,值为0
- 将男性图片和女性标签放入到生成器中,生成假的女性图片,此时训练生成器
- 将假的女性图片和男性标签放入到辨别器中,不训练辨别器,值为1
- 将男性图片和女性标签放入到生成器中,生成假的女性图片
- 将假的女性图片和男性标签放入到生成器中,生成假的男性图片,此时保存男性图片和假的男性图片应该相同。
标签:男性,判别,训练,生成器,Adversarial,GAN,Generative,放入,图片 来源: https://blog.csdn.net/qq_38973721/article/details/113551794