史上最強圖像生成器BigGAN變身DeepGAN?四倍深度實現更強效果
去年引起熱議、能夠生成逼真圖像的 BigGAN 聲名鵲起,相關論文後被 ICLR 2019 收錄為 Oral 論文。今天論文一作 Andrew Brock 發推稱:論文更新版已上傳,模型架構有所更新——網路深度是原來的 4 倍、模型參數僅為原來的一半。Andrew Brock 還表示新版 BigGAN(BigGAN-deep)相比原版訓練速度更快、FID 和 IS 均優於原版,且新版 BigGAN 在一些較難類別上的表現也優於原版,如人群和人臉,尤其是在 128x128 解析度圖像上。
- 論文鏈接:https://openreview.net/pdf?id=B1xsqj09Fm
- BigGAN TF Hub demo 地址:https://tfhub.dev/s?q=biggan
- Colab 地址:
- https://colab.research.google.com/github/tensorflow/hub/blob/master/examples/colab/biggan_generation_with_tf_hub.ipynb#scrollTo=Cd1dhL4Ykbm7
論文作者表示,BigGAN-deep 的預訓練模型將會隨後放出。
BigGAN 橫空出世
BigGAN 在去年 9 月一經提出即引起了大量關注,被稱為「史上最強 GAN 圖像生成器」,其生成圖像的目標和背景都高度逼真、邊界自然,並且圖像插值每一幀都相當真實。
這些圖像都是 BigGAN 自動生成的。
該論文一經發布,就引起了著名人工智慧學者 Oriol Vinyals、Ian Goodfellow 的關注。11 月,ICLR 2019 的論文評審結果出爐,這篇 BigGAN 論文獲得了 8、7、10 的評分。BigGAN 的原版在 ImageNet 數據集下 Inception Score 竟然比此前最好 GAN 模型 SAGAN 提高了 100 多分(接近 2 倍)!
BigGAN 已被眾多研究者們「玩壞」:如果把兩種不同類型的事物合併,BigGAN 則會生成詭異的效果。
BigGAN 將正則化思想引入 GAN,通過對輸入先驗分布 z 的適時截斷大大提升了 GAN 的生成性能,通過截斷隱空間來精調樣本保真度和多樣性的權衡。這種修改方法可以讓模型在類條件的圖像合成中達到當前最佳性能。
這項研究成功地將 GAN 生成圖像和真實圖像之間的保真度和多樣性 gap 大幅降低。其主要貢獻如下:
- 展示了 GAN 可以從訓練規模中顯著獲益,並且能在參數數量很大和八倍批大小於之前最佳結果的條件下,仍然能以 2 倍到 4 倍的速度進行訓練。作者引入了兩種簡單的生成架構變化,提高了可擴展性,並修改了正則化方案以提升條件化(conditioning),從而提升性能。
- 作為修改方法的副作用,該模型變得服從「截斷技巧」,這是一種簡單的採樣技術,允許對樣本多樣性和保真度進行精細控制。
- 發現大規模 GAN 帶來的不穩定性,並對其進行經驗描述。從這種分析中獲得的洞察表明,將一種新型的和已有的技術結合可以減少這種不穩定性,但要實現完全的訓練穩定性必須以顯著降低性能為代價。
BigGAN vs. BigGAN-deep
目前,這篇論文已經出了更新版,模型架構也有所改進,新版模型名為 BigGAN-deep,從名字中我們可以猜測出二者在深度方面似乎有所區別。
在 128x128 解析度的 ImageNet 上訓練時,BigGAN 可以達到 166.3 的 Inception 分數(IS),以及 9.6 的 Frechet Inception 距離(FID);而 BigGAN-deep 可達到 166.5 的 IS,7.4 的 FID,均優於原版 BigGAN。
BigGAN-deep 與 BigGAN 在 128×128 圖像上的 IS 和 FID 對比。
那麼 BigGAN-deep 相比於 BigGAN 有何不同呢?
- 深度增加:BigGAN-deep 的深度是 BigGAN 的 4 倍;
- 參數減少:BigGAN-deep 基於帶有 bottleneck 的殘差塊;
- 訓練速度變快
- 性能改進:FID 和 IS 均優於原版。在 128x128 解析度的 ImageNet 圖像上,BigGAN-deep 的 IS 高出 BigGAN 兩個百分點,而 FID 比 BigGAN 降低了 2.2。
BigGAN-deep 和 BigGAN 在不同解析度圖像上的評估結果對比。
模型架構
二者的模型架構如下圖所示:
BigGAN 模型架構。
BigGAN-deep 模型架構。
從命名上我們可以看到更新版比原版多了個後綴「-deep」。據作者介紹,BigGAN-deep 的深度是原來的 4 倍。從模型架構上來看,BigGAN 模型使用ResNet架構,在生成器 G 中使用了單個共享類別嵌入,對 latent vector z 應用了跳過連接(skip-z)。具體來說,研究者使用了層級潛在空間,使得 latent vector z 按照通道維度被分割為同等大小的塊(該研究案例中是 20-D),每個塊被級聯到共享類別嵌入,並傳輸到對應的殘差塊作為條件向量。每個殘差塊的條件向量被線性投影,以為殘差塊 BatchNorm 層生成每個樣本的 gain 和偏差。偏差投影以零為中心,而 gain 投影以 1 為中心。由於殘差塊依賴於圖像解析度,因此 z 對於 128 × 128 圖像的完整維度是 120,對 256 × 256 圖像的完整維度是 140,對 512 × 512 圖像的完整維度是 160。
BigGAN-deep 和 BigGAN 的區別主要體現在以下幾個方面:BigGAN-deep 使用了 skip-z 條件的一個更簡單的變體:作者不是先將 z 分割成塊,而是將整個 z 與類別嵌入連接起來,並通過跳過連接將得到的向量傳遞給每個殘差塊。BigGAN-deep 基於帶有 bottleneck 的殘差塊,它合併了兩個額外的 1 × 1 卷積:第一個卷積將通道數縮減為原來的 1/4,比之前的 3 × 3 卷積開銷要小;第二個卷積產生所需數量的輸出通道。無論何時通道的數量需要改變,BigGAN 在跳過連接中都依賴 1 × 1 卷積,但 BigGAN-deep 則選擇了不同的策略,以在跳過連接中保持 identity。G 中的通道數需要減少,因此研究者保留第一組通道捨棄其他通道,以使最終通道數符合要求。D 中的通道數需要增加,因此研究者將輸入通道原封不動地饋入 D,並將其與 1 × 1 卷積生成的其餘通道級聯起來。至於網路配置,判別器是生成器的完美反映。該模型中對每個解析度使用兩個模塊(BigGAN 使用 1 個),因此 BigGAN-deep 的深度是 BigGAN 的 4 倍。儘管深度有所增加,但 BigGAN-deep 的參數卻遠遠少於 BigGAN,這主要是因為前者殘差塊的瓶頸結構。例如,128 × 128 BigGAN-deep G 和 D 分別具備 50.4M 和 34.6M 個參數,而對應的原版 BigGAN 分別具備 70.4M 和 88.0M 個參數。所有 BigGAN-deep 模型在 64 × 64 解析度、通道寬度乘數 ch = 128、z ∈ R^128 時使用注意力。
BigGAN-deep 效果
目前 BigGAN-deep 尚未開源,但作者已經把新模型的生成圖像樣本放在了論文所附鏈接中。
鏈接:https://drive.google.com/drive/folders/1lWC6XEPD0LT5KUnPXeve_kWeY-FxH002


※跨語言版BERT:Facebook提出跨語言預訓練模型XLM
※對話Matt Zeiler: 也許Clarifai可以上演大衛和歌利亞的故事
TAG:機器之心 |