对抗神经网络其实时两个网络的组合,可以理解为一个网络生成模拟数据,另一个网络判断生成的数据是真实的还是模拟的。生成模拟数据的网络要不断优化自己让判别的网络判断不出来,判别的网络也要优化自己让自己判断得更加准确。
一、GAN的理论知识
GAN有generator和discriminator两部分构成
generator:主要是从训练数据中产生相同分布的samples,对于输入x,类别标签y,在生成式模型中估计器联合概率分布。discriminator:判断输入是真实数据还是generator生成的数据,即估计样本属于某类的条件概率分布。采用传统的监督学习方式。
二者结合后,经过大量次数的迭代训练会使generator尽可能模拟出以假乱真的样本,而discriminator会更精确的鉴别真伪数据的能力,最终真个GAN会达到所谓的纳什均衡,即discriminator对于generator的数据鉴别结果为正确率和错误率各占50%
1.GAN的训练方法
根据GAN的结构不同,会有不同的对应训练方法。有的会在一个优化步骤中对两个网络优化,有的会对两个网络采取不同的优化步骤。
二、DCGAN——基于深度卷积的GAN
DCGAN即使用卷积网络的对抗网络,其原理和GAN一样,只是把CNN卷积技术用于GAN模式的网络中,G网络生成数据是,使用反卷积的重构技术来重构原始图片。D网络采用卷积技术来识别图片特征。
同时,DCGAN中的卷积神经网络也做了一些结构的改变,以提高样本的质量和收敛速度:
G网络中取消了所有的池化层,使用转置卷积并且步长大于等于2进行上采样D网络中也加入stride的卷积代替pooling在D网络和G网络中均使用批量归一,而在最后一层通常不会使用batch normalization,这是为了保证模型能够学习到数据的正确均值和方差。去掉FC层,使网络变成全卷积网络G网中使用ReLU作为激活函数,最后一层使用Tanh作为激活函数D网络中使用LeakyReLU作为激活函数
DCGAN中换成了两个卷积网,可以更好的学习到输入图像层次化的表示,尤其在生成器部分会有更好的莫您效果,采用Adam优化算法。
三、InfoGAN和ACGAN:指定类别生成模拟样本的GAN
1.InfoGAN:带有隐含信息的GAN
InfoGAN是GAN模型的一种改进,是一种能够学习样本中的关键维度信息的GAN,即对生成样本的噪声进行细化。相比于对抗自编码,InfoGAN的思路正好相反,InfoGAN是先固定标准高斯分布作为网络输入,再慢慢调整网络输出去调整网络输出去匹配复杂样本分布。
InfoGAN生成器是从标准高斯分布中随机采样作为输入,生产恒模拟样本,解码器是将生成器输出的模拟样本还原会成生成器输入的随机中的一部分,判别器将样本作为输入区分真假。
InfoGAN的理论思想是将输入的随机标准高斯分布当做噪声,并将噪声分为两类,第一类是不可压缩的噪音Z,第二类是可解释性的信息C。在一个样本中,决定其本身的只有少量重要的维度,大多数的维度是可有忽略的。这里的解码器也可以叫做重构器,重构一部分输入的特征确定与样本信息相关的维度。
2.AC-GAN:带有辅助分裂信息的GAN
ACG-GAN,即在判别器中再输出相应的分类概率,然后增加输出的分类与真实分类的损失计算,使生成的模拟数据与其所属的class一一对应。
3.实例88:构建InfoGAN生成MNIST模拟数据
四、AEGAN:基于自编码器的GAN
1.AEGAN原理及用途介绍
AEGAN的理论比变分自编码简单得多,在GAN之后加上自解码网络即可。通过GAN可以利用噪声生成模拟数据的特点,使用自解码完成特征到图像的反向映射,从而实现一个可以将数据映射到低维空间,又可以从低维还原到模拟分布数据的网络中。
在InfoGAN上嫁接一个自编码网络,原本的自编码网络在这里叫做反向生成网络,解码器就是GAN网络里的编码器网络。AEGAN网络训练分为两步。
用传统的方法训练一个GAN,图中的GAN为InfoGAN(由隐含信息和噪声信息构成)固定GAN网络,利用自编码网络来训练反向生成网络,使反向生成网络具有高维向低维映射的能力。
AEGAN的原理先固定复杂样本分布作为网络输入,再慢慢调整网络输出去匹配标准高斯分布。对抗自编码网络的思路方向与GAN相反(GAN的思路是将低维数据确定,来匹配高维数据),对抗自编码器应该属于自编码器的变种。变分自编码,其中编码器得出均值和方差,然后比较标准高斯分布kL散度来拟合高斯分布。这里判别器就起到公式计算的功能,目的都是辅助解码器生成标准高斯分布的数据,即拉近编码器分布和标注高斯分布的距离,只不过这部分的公式用神经网络代替。大大降低了模型依赖公式的复杂度,对扩展性也有极好提升,只需要改变判别式中真实样本的输入分布,就可以得到不同分布的编码器。