生成模型的基本原則是想要構建一個令人信服的資料示例。影像越逼真,模型掌握目標的證據就越強。生成對抗網路(GAN)憑藉其在影像合成方面的出色表現吸引了大量的關注,但 GAN 的一些潛在優勢並沒有被開發出來,例如無監督表示學習。本文作者為王子嘉,目前在帝國理工學院人工智慧碩士在讀。
生成模型經過訓練可以模擬出完整的資料分佈,同時無需對原始資料進行任何修改,如果 GAN 可以在生成圖片的同時,也清晰的學習到語義(在生成圖片時的隨機潛變數),那麼在自我監督任務中,GAN 就可以稱為特徵提取部分很有力的備選項,但可惜的是,GAN 在這方面一直沒能做的特別出彩。
近日,DeepMind 就基於 BiGAN 完成了這一突破,提出了「BigBiGAN」,它在 ImageNet 上的無監督表示學習和無條件影像生成方面都取得了極為優秀的成績。
1.BigBiGAN 的由來
BigBiGAN 這一名字可以被分成三個部分來解讀,Big+Bi+GAN。
第一部分和第三部分比較好理解,GAN 表示 BigBiGAN 的基礎之一是標準 GAN 結構,而 Big 表示的就是大規模學習(Large scale),從 BigGAN 中繼承了一些訓練大規模 GAN 的方法。
第二部分的 Bi 則表示雙向(Bidirectional),這裡的雙向不是像 RNN、XLNet 等處理序列類資料時那樣獲取雙向資訊。這裡的雙向表示在 BigBiGAN 中的資料處理方向,生成器(G)的作用是將隨機潛變數(z)還原成原始資料(x),而編碼器(E)則希望從 x 中提取 z,這個兩個元件就是 GAN 能完成表徵學習的關鍵了,所以 Twitter 上有人會說 BigBiGAN 也可以叫 BigALI,這裡 ALI 的意思是對抗學習推理 (Adversarial Learned Inference),與 Bi 本質上是一個意思,只不過 Bi 與 ALI 在不同的論文中提出。
瞭解了 BigBiGAN 名字的意義後,它的由來就很清楚了。首先,它來源於 BiGAN,但由於 BiGAN 的 G 是基於 DCGAN 的,所以生成的圖片質量並不高,這也就導致了 G 的輸出、判別器(D)的輸入同 E 的輸入的圖片解析度不同,E 輸入的圖片解析度會高很多。這個差別也對 BiGAN 的特徵提取效果也產生了限制。
BiGAN(2017)提出一年後,BigGAN(2018)出現了,利用一些方法很好地完成了大規模 GAN 的訓練,並且生成了很高質量的圖片。因此,BigGAN 恰好解決了 BiGAN 提出時 G 的效果不佳的問題,BigBiGAN 也就應運而生了。
2.BiGAN
因為 BigBiGAN 主要是在 BiGAN 的基礎上進行改進的,所以本文的第二部分將對 BiGAN 進行簡單介紹,以說明如何利用 GAN 進行特徵提取。BiGAN 使用對抗的方式聯合訓練了一個生成網路與一個推斷網路。生成網路就是 GAN 中的 G, 將隨機潛變數對映到資料空間, 而推理網路 (在 BiGAN 中由 E 充當) 將訓練樣本從資料空間反對映到潛變數空間。因此, 對抗博弈在 G, E 與 D 之間展開。下圖是 BiGAN 的結構:
從上圖可以看出,BiGAN 在 GAN 的基礎上加入了一個將資料對映到隱特徵空間的 E,同時對 D 做了相應的改進。D 的輸入變成了兩個資料對(G(z),z)和(x, E(x)),其中 G(z)和 E(x)分別代表 G 和 E 的輸出,x 代表原始資料,z 表示隨機潛變數。此時 G 與 E 的聯合機率可以表示為:
編碼器的聯合 (機率) 分佈 q(x, z)=q(x)q(z|x)
解碼器的聯合分佈 p(x, z)=p(z)p(x|z)
此時 G,E 和 D 的博弈可以理解為——G 和 E 希望能夠欺騙 D,讓 D 無法分辨這兩個資料對的來源。最終的模型希望 x = G(E(x)),z = E(G(z))(雙向)。如果 D 認為這個資料對來自 G,則輸出 1,若是來自 E,則輸出 0。
BiGAN 的目標函式還是採用類似 GAN 的形式
將上述目標轉換成數學公式,V 即被定義為:
這個式子和 GAN 的價值函式的區別僅在於 D(x) 變成了 D(x, Gz(x)), D(G(z)) 變成了 D(Gx(z), z)。[1] 中也對這個目標函式是否能實現 x = G(E(x)),z = E(G(z))做了證明,這一目標的數學含義可以說是兩個聯合機率相等,即當 BiGAN 的訓練完成, 上文提到的兩個聯合分佈(q(x, z) 與 p(x, z))匹配,這也就意味著所有的邊緣分佈和條件分佈都匹配了。比如可以認為條件機率 q(z|x) 匹配了後驗機率 p(x|z)。
總之,BiGAN 使得 GAN 具有了學習有意義的特徵表示的能力。原始 GAN 中,D 接收樣本作為輸入, 並將其習得的中間表示作為相關任務的特徵表示, 沒有其他的機制。它對於生成資料與真實資料的語義上有意義的特徵並不十分清晰。當 G 生成了真實資料時,D 只能預測生成資料(圖片)的真實性,但是無法學習有意義的中間表示。BiGAN 就是希望讓 GAN 能夠具備表徵學習能力。
3.BigBiGAN
BigBiGAN 在結構上並沒有對 BiGAN 做什麼改變,原理也基本一致,只是將 D 的結構改進了一下,同時使用了 BigGAN 的生成器和判別器結構(見後文 Ablation Study)以及 BigGAN 的訓練方法(如資料截斷)。BigBiGAN 的結構如下圖所示:
在上圖中,影像的左上方的兩個 x 是真實資料(影像),左下方的兩個 z 是上述資料(影像)的重建。由圖可見,D 包括三個部分——F,H,J,其中 F,H 是兩個單元項 (unary term,只與 x 或者 z 中的一項有關),F 的作用與普通 GAN 的 D 一樣,區分生成的資料與原始資料;H 的作用則是確定 E 提取出的 z 與輸入到 G 的 z 是否一樣,這兩個單元項的加入是為了更好的保證最佳化過程中向著最優解的方向前進。剩下的 J 的作用則是將 x 與 z 結合在一起。具體的損失函式為:
其中,s_* 是 D 的分數(score),L_D 是 D 的損失,L_{EG} 是 E 和 G 的損失,l_* 是單個樣本的損失,E 和 G 引數的最佳化目標是最小化 L_{EG},而 D 的目標是最小化 L_D。可見與大多數顯式重建損失(如 pixel-wise)不同,加入了 E 的重建傾向於保留輸入的高階語義,而不是畫素這種低階細節,因此 BigBiGAN 的訓練更鼓勵編碼器對高階語義進行建模,而不是低階細節。
4.實驗結果
BigBiGAN 為了證明自己所做改進的有效性以及不同結構的效果區別,首先進行了比較全面的 Ablation Study,可以看到結果如下:
本次測試使用了三個標準——IS(Inception Score),FID(Fréchet Inception Distance)和 Cls(Classification accuracy percentage)。對於 base,LR 代表學習速率,ResNet \times N / RevNet \times N 中的 N 代表 N 倍寬度的對應框架;對於 Encoder,A 代表結構(S 代表 ResNet,V 代表 RevNet),D 代表網路的深度,C 代表 Channel Width,R 表示輸入圖片的解析度,\eta 表示 learning rate multiplier。圖中標藍的表示基本設定的更改。
同時,為了證明其表徵學習能力,文章作者也將 BigBiGAN 的最佳組合(上表中的最後兩行)在 ImageNet 上就準確率與最近效果較好的自我監督方法進行了比較。其中 BN+CReLU 是在 AvePool 的結果 a 的基礎上,先進行 h = BatchNorm(a) 操作,並將 [ReLU(h), ReLU(-h)] 作為最終特徵輸出,這種輸出方法也叫 CReLU。其中 BatchNorm() 表示無引數 Batch Normalization,所以這個新加的操作並不會增加計算成本;而 CReLU 的加入則讓結果變得更加全面,從而獲得更好的輸出結果。具體結果如下表所示:
由上表可見,根據 top-1 準確率來看,BigBiGAN 的表徵效果是處於領先水平的。但是在 top-5 準確率上,[4] 中與 BigBiGAN 幾乎同時提出的模型 Contrastic Predictive Coding(CPC) 要更高一點,這是一種非監督學習方法,感興趣的讀者可以自己去看一下論文。除此之外,作者還在附錄裡貼了同樣框架下監督學習的準確率,如下表所示。由下表可以看出,BigBiGAN 作為一種完全基於 Generative Model 的方法,在準確率上比監督學習的方法還是要差很多的。是否必須要完全基於 Generative Model?未來是否能如同半監督學習一樣,結合 Generative Model 與監督學習產出一種新的更高效且準確率也很高的方法?這些都是很值得期待的。
最後,作者回歸 GAN 最原始的任務——影像生成,將其與其他非監督影像生成方法進行了對比。下表中的實驗結果是在經過資料增強後的,所以與最開始的表格結果有所出入。第一行中的 SL 表示 single label 方法,產生的是一種單混和標籤;而 Clustering 表示標籤是由 Clustering 獲得的,是一種偽標籤。最後,因為在 500K 步後,BigBiGAN High Res + SL 的效果還有提升,所以最後一行也加入了 1M 步後的結果。詳細結果見下表。
可見 BigBiGAN 在影像生成任務上的表現是很好的,IS 和 FID 都比 BigGAN 的各種組合(SL 和 Clustering)要好很多,同時在高解析度圖的生成上(High Res),BigBiGAN 也比當下的最佳組合 BigGAN+Clustering 要好很多(因為這兩種組合中 E 的輸出都是一樣的 128*128,所以還是有可比性的)。
5.總結
BigBiGAN 結合了當前在 GAN 領域的最新技術,也提出了自己的改進(D 結構的最佳化等),從而在 GAN 領域獨領風騷,也在特徵提取方面躋身前列。但是未來是否會有更大的進步,讓我們拭目以待吧。
[1] Jeff Donahue, Philipp Krähenbühl, and Trevor Darrell. Adversarial feature learning. CoRR, abs/1605.09782, 2016.
[2] Jeff Donahue and Karen Simonyan. Large scale adversarial representation learning. CoRR, abs/1809.11096, 2019.
[3] Andrew Brock, Jeff Donahue, and Karen Simonyan. Large scale GAN training for high fidelity natural image synthesis. CoRR, abs/1809.11096, 2018.
[4] Olivier J. Hénaff, Ali Razavi, Carl Doersch, S. M. Ali Eslami, and Aäron van den Oord. Data-efficient image recognition with contrastive predictive coding. In arXiv:1905.09272, 2019.