生成对抗网络
让两个网络彼此对抗——一个造假者,一个鉴定者——直到假的足以乱真。
如果你想教计算机画画——不是给它看正确答案,而是让两台机器彼此较量,一个负责造假,一个负责识破造假——会怎样?
把这个想法拆开看
大多数机器学习,是靠纠错来教的:这是正确答案,往它靠近。可你要怎么「纠正」一幅画?根本没有哪一个像素是唯一正确的。这篇论文用一个巧妙的招数绕开了这个难题——它不去直接给输出打分,而是让两个网络互相打分。
一个网络,叫生成器,努力造出假的样本——比如人脸图像。第二个网络,叫判别器,看到的是真人脸与生成器假货的混合,要去猜哪个是哪个。二者被锁进一场较量:判别器越来越擅长抓假货,逼着生成器造出更好的假货,又逼着判别器看得更仔细,如此循环往复。从没有谁告诉它们一张好的人脸长什么样;它们靠着想赢,彼此把对方教会。
它从哪里来
这个故事有个广为流传的起源版本:2014 年,伊恩·古德费洛(Ian Goodfellow)还是约书亚·本吉奥(Yoshua Bengio)在蒙特利尔大学实验室里的一名博士生,他和朋友在蒙特利尔一家酒吧里争论:要怎样才能让计算机生成逼真的图像。那一晚,他勾勒出了对抗的想法,回到家便把它写成代码——传说里,它第一次就跑通了。八位作者在那年六月的 NIPS 会议上发表了它。完整的标题很朴素:《生成对抗网络》。
最初的结果,是一些小小的灰色数字、模糊的人脸。但别的研究者看出了这套框架能长成什么样子,短短几年内,GAN 已经造出了根本不存在的人的照片。
它为何重要
在此之前,让机器创造出令人信服的新图像,既笨拙、结果又糊。而这套对抗的设定,产出了清晰、可信的样本,且只用到了标准的训练机制——运行它,并不需要什么古怪的数学。正是这种组合,让「生成式 AI」成了一个严肃而高速演进的领域。那些深度伪造、那些 AI 肖像、那些会自行脑补出合理细节的修图工具——现代关于「会创造的机器」的整场讨论,大体上,就从这里开始。
一个日常类比
想象一个艺术造假者,和一个博物馆里的鉴定侦探,一同训练了许多年。每当侦探学会识破一个破绽——错了的清漆、过于现代的颜料——造假者就研究这次被抓的缘由,把它补上。两人都把对方磨得更锐利。足够多回合之后,造假者的画作好到侦探也只能靠抛硬币来猜。就在那一刻,无论侦探使出什么手段,赝品都已与真迹无从分辨。那个「抛硬币」的时刻,正是整套系统在数学上的目标——在下方,亲手试试看能不能抵达它。
它处在何处
有大约五年时间,GAN 是图像生成的引擎,它与本馆其他几篇 AI 文献处在同一脉络里:用反向传播训练的深度网络——驱动 Transformer 的,也正是同一套机制。此后,在图像与视频上,它大体被扩散模型取代,后者更易训练,也更清晰。但它最核心的那一步——靠被评判来学会创造——比那个具体的配方活得更久,也重塑了整个领域思考「生成」这件事的方式。
We propose a new framework for estimating generative models via an adversarial process, in which we simultaneously train two models: a generative model G that captures the data distribution, and a discriminative model D that estimates the probability that a sample came from the training data rather than G.
The generative model can be thought of as analogous to a team of counterfeiters, trying to produce fake currency and use it without detection, while the discriminative model is analogous to the police, trying to detect the counterfeit currency. Competition in this game drives both teams to improve their methods until the counterfeits are indistinguishable from the genuine articles.
In other words, D and G play the following two-player minimax game with value function V(G, D): min_G max_D V(D, G) = E_{x∼p_data}[log D(x)] + E_{z∼p_z}[log(1 − D(G(z)))].
Theorem 1. The global minimum of the virtual training criterion C(G) is achieved if and only if p_g = p_data. At that point, C(G) achieves the value −log 4.
The disadvantages are primarily that there is no explicit representation of p_g(x), and that D must be synchronized well with G during training (in particular, G must not be trained too much without updating D …).