零成本體驗StyleGAN2:Colab程式碼直接使用,細節逼真難以分辨

機器之心發表於2019-12-21

近日,英偉達公開了 StyleGAN 的 2.0 改進版,提出了對這種生成對抗網路的多項新改進,在解決了生成影像偽影的同時還能得到細節更好的高質量影像。新的改進方案也不會帶來更高的計算成本。整體來看,不管是在現有的分佈質量指標上,還是在人所感知的影像質量上,新提出的模型都實現了無條件影像建模任務上新的 SOTA。

零成本體驗StyleGAN2:Colab程式碼直接使用,細節逼真難以分辨

最近英偉達在 GAN 領域最大的研究突破莫過於 StyleGAN2 了。這一新的研究提升了生成影像的質量,實現了最新的 SOTA。論文公開的同時,英偉達也公開了相關的程式碼和 Colab 筆記,你可以直接線上使用。

  • 論文:https://arxiv.org/abs/1912.04958

  • 實現和模型:https://github.com/NVlabs/stylegan2

  • Colab 地址:https://colab.research.google.com/drive/1ShgW6wohEFQtqs_znMna3dzrcVoABKIH

根據筆記本提供的示例程式碼,我們可以生成諸如汽車、人臉等相關的影像。這些影像和真實影像相比似乎差別不大。

零成本體驗StyleGAN2:Colab程式碼直接使用,細節逼真難以分辨

生成的汽車影像。

零成本體驗StyleGAN2:Colab程式碼直接使用,細節逼真難以分辨

生成的人臉。

這樣的成果是如何實現的呢?以下英偉達論文的詳細介紹。

引言

使用生成方法(尤其是生成對抗網路)得到的影像的解析度和質量都在快速提升。在高解析度合成任務上的當前最佳方法是 StyleGAN,研究表明其能在多種資料集上可靠地發揮作用。這項研究關注的問題是修復 StyleGAN 的特有偽影以及進一步提升其結果的質量。

StyleGAN 的顯著特徵是其具有非常規的生成器架構。這種架構不會僅在網路的開始處向其饋送輸入隱程式碼 z ∈ Z,而是其對映網路 f 首先會將其變換成一箇中間隱程式碼 w ∈ W。然後,仿射變換透過自適應例項歸一化(AdaIN)得到能控制合成網路 g 的層的風格。另外,其還透過向合成網路提供額外的隨機噪聲圖而提升了隨機變化的效能。研究表明,這種設計能讓中間的隱空間 W 比輸入的隱空間 Z 的糾纏少得多。這篇論文的所有分析都集中在 W 上,因為從合成網路的視角看,它是相關的隱空間。

很多觀察者注意到 StyleGAN 生成的影像會有很有特點的偽影。這篇論文給出了產生這些偽影的兩個原因,並描述了可以如何透過修改架構和訓練方法來消除這些偽影。

第一,研究者研究了常見的斑點狀偽影的起源,發現生成器建立它們的原因是為了規避其架構中的設計缺陷。研究者於是重新設計了生成器中所使用的歸一化方案,這能夠移除偽影。

第二,作者分析了與漸進式增長(progressive growing)相關的偽影,這已經在穩定化高解析度 GAN 訓練中取得了高度成功。研究者提出了另一種無需在訓練中修改網路拓撲結構就能實現同樣目標的設計——首先以低解析度影像為重心開始訓練,然後將重心逐漸轉移到越來越高的解析度。這種新設計還能推理所生成影像的有效解析度,事實證明這個有效解析度低於預期,說明相關研究還有進一步的提升空間。

對於生成方法產生的影像的質量如何進行定量分析?這還依然是一個頗具挑戰性的難題。Frechet inception 距離(FID)衡量的是一個 InceptionV3 分類器的高維特徵空間中兩個分佈的密度差異。精確度和召回率(P&R)則提供了額外的可見性,它們的具體方法分別是顯式地量化所生成影像與訓練資料類似的百分比以及可以被生成的訓練資料的百分比。作者使用這些指標對改進情況進行了量化。

FID 和 P&R 都基於近期出現的關注紋理而非形狀的分類器網路,由此造成的後果是這些指標無法準確體現影像質量的所有方面。研究者觀察到感知路徑長度(PPL)指標與形狀的一致性和穩定性相關,而該指標最早是為評估隱空間插值的質量而引入的一種方法。基於此,研究者對合成網路進行了正則化處理,以支援平滑的對映和實現明顯的質量提升。為了抵消這種方法的計算成本,研究者還提出降低所有正則化的執行頻率。實驗表明,這種做法其實對效果沒什麼影響。

最後,作者發現相比於使用原始的 StyleGAN,使用新的路徑長度正則化的生成器時,影像到隱含空間 W 的投射的效果要好得多。這在實際應用中是很重要的,因為這讓我們可以可靠地辨別給定影像是否是用特定的生成器生成的。

移除歸一化偽影

首先來看看 StyleGAN 生成的大多數影像都有類似水滴的斑狀偽影。如圖 1 所示,即使當水滴在最終影像中並不明顯時,它也會出現在生成器的中間特徵圖中。這種異常在大約 64×64 解析度時開始出現,並會出現在所有特徵圖中,還會在解析度增高時逐漸變強。這種總是存在的偽影很令人困惑,因為判別器本應該有檢測它的能力的。

零成本體驗StyleGAN2:Colab程式碼直接使用,細節逼真難以分辨

 圖 1:例項歸一化會導致 StyleGAN 影像中出現水滴狀的偽影。這在生成的影像中不總是很明顯,但如果看看生成器網路內部的啟用,這個問題在從 64×64 解析度開始的所有特徵圖中總是存在。這是一個有損所有 StyleGAN 影像的系統性問題。

研究者認為問題出在 AdaIN 運算,它可以分別對每個特徵圖的均值和方差進行歸一化,由此可能摧毀特徵的幅度中找到的任何彼此相關的資訊。研究者假設這種水滴狀偽影出現的原因是生成器有意將訊號強度資訊傳遞透過例項歸一化:透過建立一個主導統計情況的強的區域性化尖峰,生成器可以有效地像在其它地方一樣擴充套件該訊號。研究者發現,當從生成器移除這個歸一化步驟時,這種水滴狀偽影會完全消失。

零成本體驗StyleGAN2:Colab程式碼直接使用,細節逼真難以分辨

圖 2:研究者重新設計了 StyleGAN 合成網路的架構。(a)原始的 StyleGAN,其中 A 是從 W 學習到的一個仿射變換,其會得到一種風格,B 則是一種噪聲廣播運算。(b)有完整細節的同一方案。這裡,AdaIN 已被分解成了之後跟著調製的顯式歸一化,這兩者操作的都是每個特徵圖的均值和標準差。其中 w 是學習到的權重,b 是偏差,c 是常量輸入。啟用函式(Leaky ReLU)總是在新增偏差之後馬上就應用。(c)研究者對原始的架構進行了一些修改:移除了開始處的一些冗餘的操作,將 b 和 B 的求和移到了風格的活動區域之外,並且僅調整每個特徵圖的標準差。(d)架構經過修改後,可以用一個「解調(demodulation)」操作替換例項歸一化,研究者將其應用於與每個卷積層相關的權重

這種新設計能在維持完全控制能力的同時移除這種特有偽影。FID 基本上不受影響(表 1,A 和 B 行),但有明顯的從精度到召回率的轉移。研究者表示這符合預期,因為召回率可以透過截斷(truncation)而轉換為精度,而反過來卻不行。在實踐中,這種設計可以透過分組式卷積來有效地實現。

零成本體驗StyleGAN2:Colab程式碼直接使用,細節逼真難以分辨

圖 3:使用解調替代歸一化能夠移除影像和啟用中特有偽影

零成本體驗StyleGAN2:Colab程式碼直接使用,細節逼真難以分辨

表 1:主要結果。對於每次訓練過程,這裡選出的都是 FID 最低的訓練快照。研究者使用不同的隨機種子計算了每個指標 10 次,並報告了平均結果。「path length」一列對應於 PPL 指標,這是基於 W 中的路徑端點(path endpoints)而計算得到的。對於 LSUN 資料集,報告的路徑長度是原本為 FFHQ 提出的無中心裁剪的結果。FFHQ 資料集包含 7 萬張影像,研究者在訓練階段向判別器展示了 2500 萬張影像。對於 LSUN CAR 資料集,對應的數字是 89.3 萬和 5700 萬。

影像質量和生成器平滑度

儘管 FID 或 P&R 等 GAN 指標能夠成功體現生成器的很多方面,但它們在影像質量方面還存在一些盲區。

作者觀察到在被感知的影像質量和感知路徑長度(PPL)之間存在有趣的關聯。PPL 原本是為量化從隱空間到輸出影像的對映的平滑度而提出的,其做法是在對隱空間施加小型擾動時測量所生成的影像之間的平均 LPIPS 距離。

為什麼低 PPL 會與影像質量存在關聯?這一點並不直觀和明顯。研究者猜想,在訓練期間,由於判別器會懲罰有損的影像,因此改進生成器的最直接方式是有效地伸展能得到優良影像的隱空間的區域。這會導致低質量影像被壓縮排快速變化的小型隱藏空間。儘管這能在短期內提升平均輸出質量,但累積起來的失真會有損訓練動態,並由此影響最終的影像質量。

這種經驗上的相關性說明,透過在訓練期間鼓勵 PPL 更低,有助於實現平滑的生成器對映,從而可能提升影像質量。實驗表明,事實確實如此。由於所得到的正則化項在一定程度上計算成本較高,所以研究者首先描述了一種可應用於所有正則化技術的通用最佳化方法。

懶惰式正則化(Lazy regularization)

表 1 第 C 行說明,即使每 16 minibatch 僅執行一次 R1 正則化,對結果也沒什麼影響。研究者在新的正則化器中就採用了這一策略。

路徑長度正則化

零成本體驗StyleGAN2:Colab程式碼直接使用,細節逼真難以分辨

圖 5:(a)使用一種基準 StyleGAN(表 1 中的 A 配置,FID = 8.53,PPL = 924)生成的各個影像的 PPL 分數的分佈情況。(b)新提出的方法(配置 F)能夠顯著改善 PPL 分佈(展示了有同樣的 FID = 8.53 的快照,PPL = 387)。

漸進式增長

零成本體驗StyleGAN2:Colab程式碼直接使用,細節逼真難以分辨 圖 6:漸進式增長會導致「相位」偽影。在這個例子中,牙齒沒有跟隨姿勢而變化,而是與相機對齊了,如藍線所示。

可替代使用的網路架構

零成本體驗StyleGAN2:Colab程式碼直接使用,細節逼真難以分辨 圖 7:三種生成器(虛線上面)和判別器架構。Up 和 Down 分別表示雙線性的上取樣和下采樣。在殘差網路中,這些也包含用於調整特徵圖數量的 1×1 卷積。tRGB 和 fRGB 可將每個畫素的資料在 RGB 和高維資料之間轉換。配置 E 和 F 所用的架構用綠色標註。

零成本體驗StyleGAN2:Colab程式碼直接使用,細節逼真難以分辨 表 2:沒有使用漸進式增長的生成器和判別器架構比較。使用了輸出跳過和殘差判別器的生成器的組合對應於主結果表格中的配置 E。

解析度使用情況

零成本體驗StyleGAN2:Colab程式碼直接使用,細節逼真難以分辨

 圖 8:每種解析度對生成器的輸出的貢獻,用訓練時間的函式表示。其中縱軸展示了不同解析度的相對標準差的分解情況,橫軸則對應於訓練進度,度量單位是展示給判別器的百萬張訓練影像。可以看到,網路在一開始關注的重點是低解析度的影像,然後隨著訓練推進,逐漸將重心轉移至更高的解析度。在(a)中,生成器基本上就是輸出一張 512×512 的影像,經過一些細微的銳化之後,得到 1024×1024 的影像;而在(b)中,更大的網路更重視高解析度的細節。

零成本體驗StyleGAN2:Colab程式碼直接使用,細節逼真難以分辨 表 3:使用 FID 和 PPL 衡量的在 LSUN 資料集上的改進情況。研究者為 CAR 訓練了 5700 萬張影像,為 CAT 訓練了 8800 萬張影像,為 CHURCH 訓練了 4800 萬張影像,為 HORSE 訓練了 1 億張影像。

影像到隱空間的投射

新提出的投射方法在兩方面不同於之前的方法。第一,在最佳化期間為隱程式碼新增了經過削減的噪聲,以便更全面地探索隱空間。第二,研究者也最佳化了 StyleGAN 生成器的隨機噪聲輸入,並對它們進行了正則化,以確保它們不會最終攜帶上相干的訊號。這種正則化基於強制噪聲對映圖的自相關係數與單位高斯噪聲的自相關係數在多個尺度上相匹配。

零成本體驗StyleGAN2:Colab程式碼直接使用,細節逼真難以分辨

圖 9:原始影像和被投射影像之間的 LPIPS 距離。藍色展示了生成影像的距離直方圖,橙色表示真實影像。儘管新改進的生成器生成的影像質量更高,但將生成影像投射至其隱空間 W 會容易得多。所有的案例都使用了這一種投射方法。

零成本體驗StyleGAN2:Colab程式碼直接使用,細節逼真難以分辨

 圖 10:示例影像以及它們的經過投射和重新合成的對應影像。對於每種配置,上行展示了目標影像,下行展示了對應的被投射隱向量和噪聲輸入的合成結果。上:使用基準 StyleGAN,投射往往能為生成的影像找到一個接近程度合理的匹配結果,但背景不同於原始影像。中:使用新提出的最佳的架構生成的影像可以近乎完美地投射回生成器輸入,這毫無疑問可歸功於生成模型。下:和預期的一樣,(從訓練集)投射的真實影像與原始影像有明顯的差異。所有的測試都使用了同樣的投射方法和超引數

相關文章