BigBiGAN的前世今生,走向成熟的特徵抽取器
機器之心原創
作者:王子嘉
編輯:Haojin Yang
生成模型的基本原則是想要構建一個令人信服的數據示例。圖像越逼真,模型掌握目標的證據就越強。生成對抗網路(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 imes N / RevNet imes 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.


※KDD 2019 | 自動探索特徵組合,第四範式提出新方法AutoCross
※備戰秋招:國內大廠面試指南,GitHub六千星
TAG:機器之心 |