对抗神经网络其实是两个网络的组合,可以理解为一个网络生成模拟数据,另一个网络判断生成的数据是真实的还是模拟的。生成模拟数据的网络要不断优化自己让判别的网络判断不出来,判别的网络也要优化自己让自己判断得更准确。二者关系形成对抗,因此叫对抗神经网络。实验证明,利用这种网络间的对抗关系所形成的网络,在无监督及半监督领域取得了很好的效果,可以算是用网络来监督网络的一个自学习过程。
1、理论知识
GAN由generator(生成式模型)和discriminator(判别式模型)两部分构成。
- generator:主要是从训练数据中产生相同分布的samples,对于输入x,类别标签y,在生成式模型中估计其联合概率分布(两个及以上随机变量组成的随机向量的概率分布)。
- discriminator:判断输入时真实数据还是generator生成的数据,即估计样本属于某类的条件概率分布。它采用传统的监督学习的方法。
二者结合后,经过大量次数的迭代训练会使generator尽可能模拟出以假乱真的样本,而discriminator会有更精确的鉴别真伪数据的能力,最终整个GAN会达到所谓的纳什均衡,即discriminator对于generator的数据鉴别结果为正确率和错误率各占50%。
网络结构如图所示:
- 生成式模型又叫生成器。它先用一个随机编码向量来输出一个模拟样本。
- 判别式模型又叫判别器。它的输入是一个样本(可以是真实样本也可以是模拟样本),输出一个判断该样本是真样本还是模拟样本(假样本)的结果。
判别器的目标是区分真假样本,生成器的目标是让判别器区分不出真假样本,两者目标相反,存在对抗。