當前位置:
首頁 > 新聞 > 「史上最強GAN圖像生成器」BigGAN的demo出了!

「史上最強GAN圖像生成器」BigGAN的demo出了!

機器之心報道,參與:劉曉坤、路。


BigGAN 一經提出即引起了大量關注,被稱為「史上最強 GAN 圖像生成器」。今日,DeepMind 放出了 BigGAN 的拿來即用 TF Hub demo,可以在 Colab 上運行圖像生成和圖像插值任務。

  • 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

ICLR 2019 大會將在明年 5 月 6 日於美國舉行,9 月 27 日論文提交截止後很多論文引起了大家的關注,其中就有一篇 GAN 生成圖像的論文。該研究生成圖像的目標和背景都高度逼真、邊界自然,並且圖像插值每一幀都相當真實,簡直稱得上「創造物種的 GAN」。該論文還引起了 Oriol Vinyals、Ian Goodfellow 的關注。上周,ICLR 2019 的論文評審結果出爐,評審們已經在論文的 openreview 頁面公布了他們的評論和分數。這篇 BigGAN 論文獲得了 8、7、10 的評分,三位評審人員對該論文給出了很高的評價,參見:https://openreview.net/forum?id=B1xsqj09Fm。

BigGAN 簡介

該論文出自 DeepMind,提出了一種新型 GAN 模型 BigGAN,該模型因其出色性能被稱為「史上最強 GAN 圖像生成器」。該研究的創新點是將正交正則化的思想引入 GAN,通過對輸入先驗分布 z 的適時截斷大大提升了 GAN 的生成性能,在 ImageNet 數據集下 Inception Score 竟然比當前最好 GAN 模型 SAGAN 提高了 100 多分(接近 2 倍)!

該研究展示了 GAN 可以從訓練規模中顯著獲益,並且能在參數數量很大和八倍批大小於之前最佳結果的條件下,仍然能以 2 倍到 4 倍的速度進行訓練。作者引入了兩種簡單的生成架構變化,提高了可擴展性,並修改了正則化方案以提升條件化(conditioning),這可論證地提升了性能。作為修改方法的副作用(side effect),該模型變得服從「截斷技巧」,這是一種簡單的採樣技術,允許對樣本多樣性和保真度進行精細控制。此外,該研究發現大規模 GAN 帶來的不穩定性,並對其進行經驗的描述。從這種分析中獲得的洞察表明,將一種新型的和已有的技術結合可以減少這種不穩定性,但要實現完全的訓練穩定性必須以顯著降低性能為代價。

「史上最強GAN圖像生成器」BigGAN的demo出了!

打開今日頭條,查看更多精彩圖片

由 BigGAN 生成的類條件樣本。

「史上最強GAN圖像生成器」BigGAN的demo出了!

(a)增加截斷的效應。從左到右,閾值=2, 1.5, 1, 0.5, 0.04。(b)應用截斷和性能差的條件生成模型的飽和度偽影。

「史上最強GAN圖像生成器」BigGAN的demo出了!

由 BigGAN 在 512x512 解析度下生成的其它樣本。

「史上最強GAN圖像生成器」BigGAN的demo出了!

BigGAN 生成網路結構。

現在 DeepMind 終於放出了 BigGAN 的 TF Hub demo,讓我們來一探究竟。

教你怎麼用 Colab Demo

這個 Colab Demo 的使用非常簡單,直接用 Chrome 瀏覽器打開 Colab 地址,登陸你的谷歌賬號,就可以開始耍了。

剛打開 Colab 時,我們可以看到代碼總體上分成四大塊,分別是 BigGAN Demo、Setup、Explore BigGAN samples of a particular category、Interpolate between BigGAN samples。前面兩塊給出了大致的使用說明,以及具體實現(從 TF Hub 載入預訓練模型、定義函數、創建會話和初始化變數等),之後兩塊才是重點,提供了特定類別的圖像樣本生成,以及指定兩個類別的圖像插值兩個任務演示。只需要點擊幾個按鈕,我們就能輕鬆啟動運行和修改參數,完全不需要修改代碼。

「史上最強GAN圖像生成器」BigGAN的demo出了!


這個 Colab 的環境配置如下,打開「修改」-「筆記本設置」就可以看到。該 Colab 在 Python 2 環境和 GPU 上運行,這個不用修改,也不能修改,會報錯。

「史上最強GAN圖像生成器」BigGAN的demo出了!

那麼要怎麼開始呢?很簡單,直接打開「代碼執行程序」-「全部運行」,就可以了。該 GPU 能提供 11G 左右的內存,運行過程中經常會出現內存不足的情況,如果沒有報錯,直接忽略就行。如果報錯了,就打開「代碼執行程序」-「重置所有代碼執行程序」,重新開始吧。

在執行過程中,我們不一定需要同時執行生成和插值兩個任務。為此,我們可以選中 Explore BigGAN samples of a particular category 這個單元格,然後打開「代碼執行程序」-「運行當前單元格之前的所有單元格」,然後再分別執行之後的其中一個單元格,這樣也能避免內存不足的問題。

在大部分情況下,內存不足並沒有導致報錯。在啟動一個任務後,大概等待 10 秒左右的時間,我們就可以看到生成和插值的結果。

「史上最強GAN圖像生成器」BigGAN的demo出了!

上圖是樣本生成單元格的控制界面,可以控制:生成樣本數量、截斷值、雜訊種子、和類別的參數。我們可以看看下圖的例子來說明各自的作用。

「史上最強GAN圖像生成器」BigGAN的demo出了!

如上圖所示,很容易看出,生成樣本數量(10)和類別(芝士漢堡)就是字面的意思,那麼截斷值、雜訊種子分別有什麼作用呢?僅用一張圖看不出來,我們修改一下參數看看區別就行了。

這時,我們只需要拖動滑塊來修改參數,然後 Colab 會立刻執行新參數設置下的任務,但這也意味著我們一次只能修改一個參數。

經過多次實驗,我們發現,截斷值越大,生成樣本的多樣性越大;實際上,截斷值控制的是隱變數分布(一般呈高斯型)的截斷距離,也就是採樣範圍,因此不難理解其對多樣性的作用。

「史上最強GAN圖像生成器」BigGAN的demo出了!


「史上最強GAN圖像生成器」BigGAN的demo出了!


「史上最強GAN圖像生成器」BigGAN的demo出了!


「史上最強GAN圖像生成器」BigGAN的demo出了!

從上到下:截斷值為 0.02、0.26、0.58、1.0 的芝士漢堡生成結果。

而雜訊種子的值對生成結果的影響主要是每次生成樣本的差異。但實際上,即使在同樣的參數設置下,每次運行的結果也會有所不同,所以這個參數沒那麼多探索價值。不過,如果每次生成的樣本都很相似,或許可以用它來改善多樣性。

最後是類別參數的控制,該 Colab 中提供了 1000 個類別選項,可玩性很足,但要找到自己想要的類別實在有點困難。可以這樣操作,雙擊這個單元格,代碼會顯示在左側,右側會出現鉛筆圖標,點擊該圖標後就能查看完整列表,在這個列表下用 Ctrl+F 搜索類別的編號,再返回修改,這樣就簡單多了。

「史上最強GAN圖像生成器」BigGAN的demo出了!

「史上最強GAN圖像生成器」BigGAN的demo出了!


我們嘗試生成了埃及貓(285)和大熊貓(388)的樣本:


「史上最強GAN圖像生成器」BigGAN的demo出了!


「史上最強GAN圖像生成器」BigGAN的demo出了!

可以發現,埃及貓的眼神不太對,大熊貓有點營養不良。論文給出的結果很真實自然,但在這個 Colab 實驗中我們也能發現存在很多「不自然」的生成樣本。

接下來,我們來嘗試圖像插值任務。

「史上最強GAN圖像生成器」BigGAN的demo出了!

如上圖所示,這個任務的可控參數有:樣本數量、插值數量、截斷值、雜訊種子、以及用於插值的圖像類別 A 和 B。樣本數量是指每次插值時類別 A 和類別 B 的的初始樣本數量,如下圖所示樣本數量為 2。和之前一樣,我們發現雜訊種子並沒有發揮什麼作用。下圖展示了一些示例,供大家參考。注意該圖像插值是生成樣本之間的插值,所以左右兩側的原圖也會有些不自然。

「史上最強GAN圖像生成器」BigGAN的demo出了!

圖像插值結果示例,其中樣本數量為 2、插值數量為 5、截斷值為 0.2、雜訊種子為 0、類別 A 為金毛、類別 B 為雞。

「史上最強GAN圖像生成器」BigGAN的demo出了!

其它參數不變,插值數量為 10 的插值結果示例。

「史上最強GAN圖像生成器」BigGAN的demo出了!

金毛和埃及貓的圖像插值結果。

知道怎麼用了吧?自己去耍吧~

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

18 分鐘訓練ImageNet復現代碼
一圖抵千言:帶你了解最直觀的神經網路架構可視化

TAG:機器之心 |