如何理解GAN神经网络
如何理解GAN神经网络
参考资料:
https://easyai.tech/ai-definition/gan/
https://www.zhihu.com/question/63493495
https://zhuanlan.zhihu.com/p/114838349
https://zh.wikipedia.org/wiki/%E7%94%9F%E6%88%90%E5%AF%B9%E6%8A%97%E7%BD%91%E7%BB%9C
一句话来概括 GAN 的设计动机就是——自动化。
生成对抗网络(GAN)由2个重要的部分构成:
- 生成器(Generator):通过机器生成数据(大部分情况下是图像),目的是“骗过”判别器
- 判别器(Discriminator):判断这张图像是真实的还是机器生成的,目的是找出生成器做的“假数据”
第一阶段:固定「判别器D」,训练「生成器G」
我们使用一个还 OK 判别器,让一个「生成器G」不断生成“假数据”,然后给这个「判别器D」去判断。
一开始,「生成器G」还很弱,所以很容易被揪出来。
但是随着不断的训练,「生成器G」技能不断提升,最终骗过了「判别器D」。
到了这个时候,「判别器D」基本属于瞎猜的状态,判断是否为假数据的概率为50%。
2个缺陷
难训练,不稳定。生成器和判别器之间需要很好的同步,但是在实际训练中很容易D收敛,G发散。D/G 的训练需要精心的设计。
模式缺失(Mode Collapse)问题。GANs的学习过程可能出现模式缺失,生成器开始退化,总是生成同样的样本点,无法继续学习。
GAN网络能够用在CV上的pain assessment上吗?
我的感觉是,没太大必要。为啥呢?
1、GAN其实就是一种左脚踩右脚,螺旋上升的模型;
2、在使用的时候,要不选择Generator或者Discriminator;
前者可以用在制造“伪钞”,适用于生成式任务,后者用来鉴别“伪钞”,适合判别式任务。在我们的任务中,应该使用后者,但是,我们的训练数据集呢,又不少所以没有必要再去训练一个Generator了。