生成對抗網路(GAN)

圖1. 『全球首次!AI創作肖像畫 10月佳士得拍賣』,圖片來源:佳士得網站

 

話說水能載舟,亦能覆舟,AI雖然給人類帶來了許多便利,但也造成不小的危害。近幾年氾濫的深度偽造(Deepfake)就是一例,它利用AI技術偽造政治人物與明星的視訊,能夠做到真假難辨,一旦在網路上散播開來,就形成莫大的災難,根據統計,名人色情片8成都是偽造的。深度偽造的基礎演算法就是『生成對抗網路』(Generative Adversarial Network, GAN),接下來我們就來探究一下GAN的演算法原理。

 

關於生成對抗網路有一個很生動的比喻:它是由兩個神經網路所組成,一個網路扮演偽鈔製造者(Counterfeiter),一直製造假鈔,另一個網路則扮演警察,不斷從偽造者那邊拿到假鈔,並判斷真假,然後,偽造者就根據警察判斷結果的回饋,不停改良,直到最後假鈔變成真假難辨(天啊!這是什麼電影情節!),這就是GAN的概念。

 

偽鈔製造者稱為『生成模型』(Generative model),警察則是『判别模型』(Discriminative model),簡單的架構如下圖:

圖2. GAN架構

GAN分別定義兩個神經網路的損失函數,經過不斷的對抗,最後透過反向傳導可以得到優化的模型,也因而可以生成幾可亂真的圖像。

 

GAN不是只有一種模型,其變形非常多,可以參閱『The GAN Zoo』(https://github.com/hindupuravinash/the-gan-zoo),有上百種不同的模型,譬如:

圖3. CGAN演算法的姿勢生成

圖4. ACGAN演算法,從左邊的動漫角色,生成為右邊的新角色