来源:中国计算机协会
作者:黄鹤 王长虎
概要:“What I cannot create, I do not understand.” 这是著名物理学家费曼的一句名言。把这句话放在人工智能领域,可以理解为:要想让机器真正理解某样东西,就得让它学会如何创造那样东西。
“What I cannot create, I do not understand.” 这是著名物理学家费曼的一句名言。把这句话放在人工智能领域,可以理解为:要想让机器真正理解某样东西,就得让它学会如何创造那样东西。近年来,深度学习研究可谓如火如荼,特别是在计算机视觉领域,深度学习算法在人脸识别和物体分类等应用上已经超越了人的分辨力。那么,机器在图像理解方面真的足够智能了吗?套用费曼的那句话,如果机器学习算法能够生成逼真的图像,那它就应该真正理解图像了吧?然而,机器学习算法在生成图像的能力上还很不理想,只能生成很模糊的、缺乏细节的图像。幸运的是,随着生成对抗网络(Generative Adversarial Net, GAN)的出现,生成式模型迎来了一个美好的春天。
什么是生成对抗网络
生成对抗网络是伊恩·古德费洛(Ian Goodfellow)在2014年提出的。他最早想要解决的问题是如何生成高质量的人工数据集以弥补真实数据的不足,跟“对抗”没有半点关系。当时,他遇到的难点是如何衡量生成的数据的质量。简单的办法是希望生成的数据与真实数据尽可能相似,也就是用L1范数或L2范数作为损失函数;又或者直接简单地在两个真实样本之间插值产生样本。但古德费洛又发现,这些方法的效果都不理想,于是就想到训练一个神经网络来判别生成样本的好坏。他用一个生成器生成假样本,用另一个判别器去区分真假样本,这就是GAN的雏形。在训练的过程中,生成器努力地欺骗判别器,而判别器努力地学习如何正确区分真假样本,这样,两者就形成了对抗的关系——至此,也就产生了生成对抗网络。随后,各种关于GAN的论文如雨后春笋般破土而出。
具体而言,一个GAN主要包含两个独立的神经网络:生成器(Generator)和判别器(Discriminator)(见图1)。生成器的任务是,从一个随机均匀分布里采样一个噪声z,然后输出合成数据G(z);判别器获得一个真实数据x或者合成数据G(z)作为输入,输出这个样本为“真”的概率。