生成對抗網路
讓兩個網路彼此對抗——一個造假者,一個鑑定者——直到假的足以亂真。
如果你想教電腦畫畫——不是給它看正確答案,而是讓兩臺機器彼此較量,一個負責造假,一個負責識破造假——會怎樣?
把這個想法拆開看
大多數機器學習,是靠糾錯來教的:這是正確答案,往它靠近。可你要怎麼「糾正」一幅畫?根本沒有哪一個像素是唯一正確的。這篇論文用一個巧妙的招數繞開了這個難題——它不去直接給輸出打分,而是讓兩個網路互相打分。
一個網路,叫生成器,努力造出假的樣本——比如人臉影像。第二個網路,叫判別器,看到的是真人臉與生成器假貨的混合,要去猜哪個是哪個。二者被鎖進一場較量:判別器越來越擅長抓假貨,逼著生成器造出更好的假貨,又逼著判別器看得更仔細,如此循環往復。從沒有誰告訴牠們一張好的人臉長什麼樣;牠們靠著想贏,彼此把對方教會。
它從哪裡來
這個故事有個廣為流傳的起源版本: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 …).