深度神经网络GAN给我们带来了什么改变?

GAN从提出到现在不过三年时间,但是与之相关的论文已经是浩如星海。从很多计算机视觉领域的论文里我们可以发现,往往在旧的方法基础上加个判别器,套上对抗机制,也能取得比原先要好的效果。而对GAN为什么能取得更好的效果,学术界仍没有统一的意见和完备的解释。以图像生成为例,一个比较普遍的解释是,之前我们在图像生成式模型中使用的基于L1范数和L2范数的损失函数,过于注重生成样本与真实样本“像素级”的对应,而且最后经过均值以后每个像素的误差都变成一样,导致生成的图像比较模糊。即使以L1范数做损失函数比L2范数更接近稀疏解,理论上会比基于L2范数的方法获得更锐利的图像,但生成图像的质量仍然不理想。

GAN有什么特别之处呢?正如古德费洛最早的灵感是设计一个神经网络来判断生成样本的好坏样,GAN的最大的优势来自于判别器的引入,让我们不用费尽心思为一些难以直接用数学公式衡量好坏的任务设计目标函数。例如,在计算机视觉领域有一个研究热点是风格迁移,可把自拍照转换成卡通风格,或把风光照转换成符合某个画家画风的图像等等。在这类应用中,很难用数学公式直接衡量生成的图像的风格是否合适,而如果要用基于范数的损失函数则需要大量成对的标注数据。但有了GAN,我们就可以让判别器来学习判断图像的风格。因为判别器学习的是图像风格而不是图像里的物体,所以只需要符合同一种风格的图像就能训练,不需要对应图像中的物体。在自然语言处理的任务中也类似,例如在聊天机器人方面,采用基于范数的损失函数可能会让机器人固定地针对某些问题产生某些固定答案,这是过拟合的表现。而实际上,我们知道同一个意思有很多种表达,想要让机器人学会用不同方式来表达同一个意思,就可以利用GAN。因此,GAN最大的魅力就在于这种对抗机制的普适性,相信它会在很多目标函数复杂的研究领域取得突破性进展。

虽然对抗机制给我们带来了很多便利,但它也有明显的缺点。在很多复杂的图像生成任务上GAN的表现并不如人意,例如它会经常生成扭曲的人体。反观基于范数的方法,即使生成复杂的图像也能保证物体基本轮廓的正确。这种区别主要来自于范数目标函数是对每个像素操作的,把生成图像与真实图像的像素一一对应上,也就相当于约束了物体的轮廓;而GAN则对图像整体做判断,并没有对物体轮廓做约束。所以现在用GAN做图像生成的模型,在训练生成器的时候会加上一个L1或者L2范数的损失函数。实验结果表明,这样做确实会比单纯使用对抗目标函数效果更好。

除此之外,GAN实际上是一个统一了生成式模型与判别式模型的框架。一般而言,我们用GAN是为了用它的生成器生成以假乱真的数据,所以我们通常把它归为生成式模型。而实际上,它的判别器也是一个判别式模型,能够在一些特定的任务中体现它的价值。最近SIGIR会议的最佳论文IRGAN,就是利用GAN把信息检索(information retrieval)领域的生成式模型和判别式模型结合起来。在信息检索领域,通常有两种流派,即生成式模型和判别式模型。生成式模型做的是,给定一个问题(query),输出与它最匹配的文档(document);而判别式模型,是输入一个问题和文档对,输出两者匹配的程度。可以看到,GAN的框架很直接地把二者联系起来了:生成模型的输出就是判别模型的输入,判别模型的输出又能促进生成模型的学习。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190918A03U4500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券