GAN 与其他较旧的生成模型之间的主要区别是什么?GAN 比其他生成模型更成功的特点是什么?
GAN 和自动编码器的主要区别是什么?
主要区别在于驱动损失度量的理念,以及架构(显然后者是不言而喻的)。
自动编码器
自编码器的工作是同时学习编码网络和解码网络。这意味着将输入(例如图像)提供给编码器,该编码器试图将输入减少为高度压缩的编码形式,然后将其馈送到解码器。
网络学习这种编码/解码,因为损失度量随着输入和输出图像之间的差异而增加 - 每次迭代,编码器在找到输入信息的有效压缩形式方面变得更好一点,而解码器得到一点点更好地从编码形式重建输入。
总结:自动编码器学习非常有效地表示一些输入信息,以及随后如何从其压缩形式重建输入。
生成对抗网络
在这里,我们有一个“生成器”,它的工作是获取一些噪声信号并将其转换到某个目标空间(同样,图像是一个流行的例子)。另一个组件(对手)是“鉴别器”,它的工作是将从所需目标空间绘制的真实图像与生成器创建的假图像区分开来。在这种情况下,网络在两个交替阶段进行训练,每个阶段都有不同的损失:
首先,判别器从真实图像集中获得标记样本,以及生成器生成的假图像(当然,一开始,这些图像只是噪声)。损失是根据一些二元分类损失度量(例如交叉熵)计算的。鉴别器因此开始学习假图像和真实图像之间的差异。
不过,在它可以学到太多东西之前,我们切换到生成器。为了训练生成器,我们再次输入一些噪声并检查鉴别器的输出。这一次,我们希望判别器检测到图像(由生成器生成)是真实的——这意味着我们已经成功欺骗了判别器,因此生成器已经开始学习如何制作类似于“真实”的图像训练集中的图像。
总结:GAN 使用对抗性反馈循环来学习如何生成一些“看起来真实”的信息(即看起来相同/听起来相同/在其他方面与某些真实数据无法区分)
区别
希望这表明两个网络之间存在非常根本的结构差异,以及他们每个人在学习过程中试图实现的目标。我真的不知道 GAN 是否一定“更成功”,但对于某些生成问题,人们观察到它们会提供更“现实”的输出。为什么?我的直觉说,GAN 可能更多地了解“我如何才能让图像看起来像一般真实”,而不是“我如何才能以最大的准确性/效率记住这组特定的图像”。但肯定有相似之处,特别是在生成器(GAN)和解码器(自动编码器)之间。